Index: gnus/.arch-inventory
diff -u /dev/null gnus/.arch-inventory:1.1
--- /dev/null	Sun May  1 19:04:56 2005
+++ gnus/.arch-inventory	Fri Sep 10 17:04:32 2004
@@ -0,0 +1,4 @@
+# Generated files
+precious ^(configure|config\.status|config\.cache)$
+
+# arch-tag: 62f59105-7e14-4869-a14d-1030bd187a09
Index: gnus/.cvsignore
diff -u gnus/.cvsignore:7.2 gnus/.cvsignore:7.3
--- gnus/.cvsignore:7.2	Sun Jan  4 23:56:40 2004
+++ gnus/.cvsignore	Mon Aug 30 17:37:22 2004
@@ -1,4 +1,5 @@
 Makefile
+autom4te.cache
 config.cache
 config.log
 config.status
Index: gnus/ChangeLog
diff -u gnus/ChangeLog:7.10 gnus/ChangeLog:7.27
--- gnus/ChangeLog:7.10	Tue Mar  9 08:10:42 2004
+++ gnus/ChangeLog	Sun Feb 20 00:11:31 2005
@@ -1,3 +1,77 @@
+2005-02-19  Miles Bader  <miles@gnu.org>
+
+	* etc/Makefile.in (install): Create $(etcdir)/images/gnus dir.
+
+	* etc/Makefile.in (install, uninstall): Fix installed image dirs.
+
+	* etc/Makefile.in (install): Put gnus-tut.txt in the right place.
+
+	* Makefile.in (all): Don't do sub-make in etc.
+	* etc/Makefile.in (all): Remove target.
+
+	* make.bat: Do image copies properly.
+
+2005-02-18  Miles Bader  <miles@gnu.org>
+
+	Move all remaining images from etc/gnus to etc/images/gnus.
+
+2004-06-18  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* Makefile.in (all): Do sub-make in etc.
+	* etc/Makefile.in (all): Link . to images.
+	(install, uninstall): Use $(etcdir)/images for images.
+	* make.bat: Likewise.
+
+2005-01-02  Romain Francoise  <romain@orebokech.com>
+
+	* GNUS-NEWS: Generated.
+
+2004-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* GNUS-NEWS: Generated.
+
+2004-12-06  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* GNUS-NEWS: Generated.
+
+2004-09-30  Simon Josefsson  <jas@extundo.com>
+
+	* Makefile.in (GNUS-NEWS): Depend on texi/gnus-news.texi.
+
+	* GNUS-NEWS: Generated.
+
+2004-09-29  Simon Josefsson  <jas@extundo.com>
+
+	* GNUS-NEWS: Generated.
+
+	* Makefile.in (GNUS-NEWS): Add.
+
+2004-09-11  Simon Josefsson  <jas@extundo.com>
+
+	* GNUS-NEWS: Generated.
+
+2004-09-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* etc/.cvsignore: Remove unused.
+
+2004-06-16  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* make.bat: Fix line endings around arch-tag.
+
+2004-06-03  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* etc/gnus/gnus-setup.ast (Setting up a NNTP server)
+	(Setting up local mail storage (nnml)): fixed some bugs, added a
+	new screen - still testing
+
+2004-06-01  Simon Josefsson  <jas@extundo.com>
+
+	* make.bat: Add SASL manual.
+
+2004-05-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* etc/gnus/news-server.ast: Use library validation.
+
 2004-03-08  Kevin Greiner <kgreiner@xpediantsolutions.com>
 
 	* make.bat: Make sure that gnus-load.el and sieve are writable to
@@ -372,3 +446,5 @@
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; End:
+
+;;; arch-tag: 60301ba8-b152-41b3-8fb2-173bba77f2a8
Index: gnus/GNUS-NEWS
diff -u gnus/GNUS-NEWS:7.8 gnus/GNUS-NEWS:7.31
--- gnus/GNUS-NEWS:7.8	Mon Jan  5 02:10:31 2004
+++ gnus/GNUS-NEWS	Mon Feb 14 16:42:37 2005
@@ -5,9 +5,52 @@
 Please send Gnus bug reports to bugs@gnus.org.
 For older news, see Gnus info node "New Features".
 
+
 
 * Changes in No Gnus
 
+** Upgrading from previous (stable) version if you have used No Gnus.
+
+If you have tried No Gnus (the unstable Gnus branch leading to this
+release) but went back to a stable version, be careful when upgrading
+to this version.  In particular, you will probably want to remove the
+`~/News/marks' directory (perhaps selectively), so that flags are
+read from your `~/.newsrc.eld' instead of from the stale marks file,
+where this release will store flags for nntp.  See a later entry for
+more information about nntp marks.  Note that downgrading isn't safe
+in general.
+
+** The nntp back end store article marks in `~/News/marks'.
+
+The directory can be changed using the (customizable) variable
+`nntp-marks-directory', and marks can be disabled using the (back
+end) variable `nntp-marks-is-evil'.  The advantage of this is that
+you can copy `~/News/marks' (using rsync, scp or whatever) to another
+Gnus installation, and it will realize what articles you have read
+and marked.  The data in `~/News/marks' has priority over the same
+data in `~/.newsrc.eld'.
+
+** Picons can be displayed right from the textual address, see
+`gnus-picon-style'.  *Note Picons::.
+
+** You can import and export your RSS subscriptions from OPML files.
+*Note RSS::.
+
+** The option `mm-fill-flowed' can be used to disable treatment of
+format=flowed messages.  Also, flowed text is disabled when sending
+inline PGP signed messages.
+
+** You can now drag and drop attachments to the Message buffer.
+
+** ANSI SGR control sequences can be transformed using `W A'.
+
+ANSI sequences are used in some Chinese hierarchies for highlighting
+articles (`gnus-article-treat-ansi-sequences').
+
+** International host names (IDNA) can now be decoded inside article
+bodies using `W i' (`gnus-summary-idna-message').  This require that
+GNU Libidn (`http://www.gnu.org/software/libidn/') has been installed.
+
 ** Gnus includes an Emacs Lisp SASL library.
 
 This provide a clean API to SASL mechanisms from within Emacs.  The
@@ -23,16 +66,48 @@
 
 It is enabled by default (see `password-cache'), with a short timeout
 of 16 seconds (see `password-cache-expiry').  If PGG is used as the
-PGP backend, the PGP passphrase is managed by this mechanism.
+PGP back end, the PGP passphrase is managed by this mechanism.
 Passwords for ManageSieve connections are managed by this mechanism,
 after quering the user about whether to do so.
 
 ** IMAP identity (RFC 2971) is supported.
 
 By default, Gnus do not send any information about itself, but you can
-customize it using `nnimap-id'.
+customize it using the variable `nnimap-id'.
+
+** The `all.SCORE' file can be edited from the group buffer using `W e'.
+
+** Gnus now MIME decode articles even when they lack "MIME-Version"
+header.  This changes the default of `gnus-article-loose-mime'.
+
+** Gnus now view DNS master files sent as text/dns using dns-mode.
+
+** Gnus now support the "hashcash" client puzzle anti-spam idea.  See
+the Gnus manual, section Hashcash, for more information.  Use `(setq
+message-generate-hashcash t)' to enable.
+
+** Gnus supports new limiting commands in the Summary buffer: `/ r'
+(`gnus-summary-limit-to-replied') and `/ R'
+(`gnus-summary-limit-to-recipient').  *Note Limiting::.
+
+** Gnus supports a new sort command in the Summary buffer: `C-c C-s C-t'
+(`gnus-summary-sort-by-recipient').  *Note Summary Sorting::
+
+** The `nnrss' back end now supports multilingual text.  Non-ASCII group
+names for the `nnrss' groups are also supported.  *Note RSS::.
+
+** URLs inside OpenPGP: headers are retrieved and imported to your PGP
+key ring when you click on them.
+
+** Gnus uses narrowing to hide headers in Message buffers.  The
+`References' header is hidden by default.  To make all headers
+visible, use `(setq message-hidden-headers nil)'.
+
+** `gnus-decay-scores' can be a regexp matching score files.  This
+allows to decay only adaptive score files.  *Note Score Decays::.
 
-** The "all.SCORE" file can now be edited from the group buffer using `W e'.
+** S/MIME now feature LDAP user certificate searches.  You need to
+configure the server in `smime-ldap-host-list'.
 
 
 * For older news, see Gnus info node "New Features".
@@ -40,7 +115,7 @@
 ----------------------------------------------------------------------
 Copyright information:
 
-Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the
Index: gnus/Makefile.in
diff -u gnus/Makefile.in:7.1 gnus/Makefile.in:7.7
--- gnus/Makefile.in:7.1	Sun Jan  4 22:50:48 2004
+++ gnus/Makefile.in	Sat Feb 19 14:12:38 2005
@@ -22,6 +22,9 @@
 	cd texi && $(MAKE) uninstall
 	cd etc && $(MAKE) uninstall
 
+GNUS-NEWS: texi/gnus-news.texi
+	cd texi && $(MAKE) GNUS-NEWS
+
 # Rule for Lars and nobody else.
 some:
 	cd lisp && $(MAKE) EMACS="$(EMACS)" some
Index: gnus/aclocal.m4
diff -u gnus/aclocal.m4:7.1 gnus/aclocal.m4:7.2
--- gnus/aclocal.m4:7.1	Sun Jan  4 22:50:48 2004
+++ gnus/aclocal.m4	Thu May 20 10:02:34 2004
@@ -321,3 +321,7 @@
 fi
 AC_SUBST(USE_FONTS)
 ])
+
+ifelse(dnl	Do not change this comment
+   arch-tag: 5c987641-c3ef-4f12-b067-028302282c66
+)dnl
Index: gnus/configure
diff -u gnus/configure:7.1 gnus/configure:7.2
--- gnus/configure:7.1	Sun Jan  4 22:50:48 2004
+++ gnus/configure	Sun May  1 19:03:24 2005
@@ -1,287 +1,40 @@
 #! /bin/sh
+
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  as_mkdir_p=false
-fi
 
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
+# Defaults:
+ac_help=
 ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="lisp/gnus.el"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS SET_MAKE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA MAKEINFO EMACS XEMACS EMACS_FLAVOR lispdir etcdir info_dir HAVE_url URL HAVE_w3_forms W3 FLAGS LATEX WITH_FONTS_bembo WITHOUT_FONTS_bembo WITH_FONTS_pfu WITHOUT_FONTS_pfu WITH_FONTS_bcr WITHOUT_FONTS_bcr USE_FONTS LIBOBJS LTLIBOBJS'
-ac_subst_files=''
+# Any additions from configure.in:
+ac_help="$ac_help
+  --with-xemacs           Use XEmacs to build"
+ac_help="$ac_help
+  --with-emacs            Use Emacs to build"
+ac_help="$ac_help
+  --with-lispdir=DIR      Where to install lisp files"
+ac_help="$ac_help
+  --with-etcdir=DIR       Where to install etc files"
+ac_help="$ac_help
+  --with-url=DIR          Specify where to find the url package"
+ac_help="$ac_help
+  --with-w3=DIR           Specify where to find the w3 package"
+ac_help="$ac_help
+  --with-fonts            Assume all fonts required are available"
 
 # Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
 # The variables have the same names as the options, with
 # dashes changed to underlines.
-cache_file=/dev/null
+build=NONE
+cache_file=./config.cache
 exec_prefix=NONE
+host=NONE
 no_create=
+nonopt=NONE
 no_recursion=
 prefix=NONE
 program_prefix=NONE
@@ -290,15 +43,10 @@
 silent=
 site=
 srcdir=
+target=NONE
 verbose=
 x_includes=NONE
 x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
@@ -312,9 +60,17 @@
 infodir='${prefix}/info'
 mandir='${prefix}/man'
 
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
 ac_prev=
 for ac_option
 do
+
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
     eval "$ac_prev=\$ac_option"
@@ -322,59 +78,59 @@
     continue
   fi
 
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case $ac_option in
+  case "$ac_option" in
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
+    bindir="$ac_optarg" ;;
 
   -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
+    ac_prev=build ;;
   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
+    build="$ac_optarg" ;;
 
   -cache-file | --cache-file | --cache-fil | --cache-fi \
   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
     ac_prev=cache_file ;;
   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
+    cache_file="$ac_optarg" ;;
 
   -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
     ac_prev=datadir ;;
   -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
   | --da=*)
-    datadir=$ac_optarg ;;
+    datadir="$ac_optarg" ;;
 
   -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
 
   -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
       *) ac_optarg=yes ;;
     esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -383,47 +139,95 @@
   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
   | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
+    exec_prefix="$ac_optarg" ;;
 
   -gas | --gas | --ga | --g)
     # Obsolete; use --with-gas.
     with_gas=yes ;;
 
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
 
   -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
+    ac_prev=host ;;
   -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
+    host="$ac_optarg" ;;
 
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
   | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
+    includedir="$ac_optarg" ;;
 
   -infodir | --infodir | --infodi | --infod | --info | --inf)
     ac_prev=infodir ;;
   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
+    infodir="$ac_optarg" ;;
 
   -libdir | --libdir | --libdi | --libd)
     ac_prev=libdir ;;
   -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
+    libdir="$ac_optarg" ;;
 
   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
   | --libexe | --libex | --libe)
     ac_prev=libexecdir ;;
   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
   | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
+    libexecdir="$ac_optarg" ;;
 
   -localstatedir | --localstatedir | --localstatedi | --localstated \
   | --localstate | --localstat | --localsta | --localst \
@@ -432,19 +236,19 @@
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
+    localstatedir="$ac_optarg" ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
     ac_prev=mandir ;;
   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
+    mandir="$ac_optarg" ;;
 
   -nfp | --nfp | --nf)
     # Obsolete; use --without-fp.
     with_fp=no ;;
 
   -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
+  | --no-cr | --no-c)
     no_create=yes ;;
 
   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
@@ -458,26 +262,26 @@
   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
+    oldincludedir="$ac_optarg" ;;
 
   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
     ac_prev=prefix ;;
   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
+    prefix="$ac_optarg" ;;
 
   -program-prefix | --program-prefix | --program-prefi | --program-pref \
   | --program-pre | --program-pr | --program-p)
     ac_prev=program_prefix ;;
   -program-prefix=* | --program-prefix=* | --program-prefi=* \
   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
+    program_prefix="$ac_optarg" ;;
 
   -program-suffix | --program-suffix | --program-suffi | --program-suff \
   | --program-suf | --program-su | --program-s)
     ac_prev=program_suffix ;;
   -program-suffix=* | --program-suffix=* | --program-suffi=* \
   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
+    program_suffix="$ac_optarg" ;;
 
   -program-transform-name | --program-transform-name \
   | --program-transform-nam | --program-transform-na \
@@ -494,7 +298,7 @@
   | --program-transfo=* | --program-transf=* \
   | --program-trans=* | --program-tran=* \
   | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
+    program_transform_name="$ac_optarg" ;;
 
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
@@ -504,7 +308,7 @@
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
   | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
+    sbindir="$ac_optarg" ;;
 
   -sharedstatedir | --sharedstatedir | --sharedstatedi \
   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
@@ -515,57 +319,58 @@
   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
   | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
+    sharedstatedir="$ac_optarg" ;;
 
   -site | --site | --sit)
     ac_prev=site ;;
   -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
+    site="$ac_optarg" ;;
 
   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
     ac_prev=srcdir ;;
   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
+    srcdir="$ac_optarg" ;;
 
   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
   | --syscon | --sysco | --sysc | --sys | --sy)
     ac_prev=sysconfdir ;;
   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
+    sysconfdir="$ac_optarg" ;;
 
   -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
+    ac_prev=target ;;
   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
+    target="$ac_optarg" ;;
 
   -v | -verbose | --verbose | --verbos | --verbo | --verb)
     verbose=yes ;;
 
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
 
   -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
     ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+    case "$ac_option" in
+      *=*) ;;
       *) ac_optarg=yes ;;
     esac
-    eval "with_$ac_package='$ac_optarg'" ;;
+    eval "with_${ac_package}='$ac_optarg'" ;;
 
   -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -576,110 +381,99 @@
     ac_prev=x_includes ;;
   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
+    x_includes="$ac_optarg" ;;
 
   -x-libraries | --x-libraries | --x-librarie | --x-librari \
   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
     ac_prev=x_libraries ;;
   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
+    x_libraries="$ac_optarg" ;;
 
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
     ;;
 
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
   *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
     ;;
 
   esac
 done
 
 if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
 fi
 
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
 
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-              localstatedir libdir includedir oldincludedir infodir mandir
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
 do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
   esac
 done
 
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
 
-test "$silent" = yes && exec 6>/dev/null
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
 
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=lisp/gnus.el
 
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$0" : 'X\(//\)[^/]' \| \
-         X"$0" : 'X\(//\)$' \| \
-         X"$0" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
   srcdir=$ac_confdir
   if test ! -r $srcdir/$ac_unique_file; then
     srcdir=..
@@ -689,401 +483,13 @@
 fi
 if test ! -r $srcdir/$ac_unique_file; then
   if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
   else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
   fi
 fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
 
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-xemacs           Use XEmacs to build
-  --with-emacs            Use Emacs to build
-  --with-lispdir=DIR      Where to install lisp files
-  --with-etcdir=DIR       Where to install etc files
-  --with-url=DIR          Specify where to find the url package
-  --with-w3=DIR           Specify where to find the w3 package
-  --with-fonts            Assume all fonts required are available
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-           test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.57.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-        ac_must_keep_next=false # Got value, back to normal.
-      else
-        case $ac_arg in
-          *=* | --config-cache | -C | -disable-* | --disable-* \
-          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-          | -with-* | --with-* | -without-* | --without-* | --x)
-            case "$ac_configure_args0 " in
-              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-            esac
-            ;;
-          -* ) ac_must_keep_next=true ;;
-        esac
-      fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-        echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core core.* *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
 # Prefer explicitly selected file to automatically selected ones.
 if test -z "$CONFIG_SITE"; then
   if test "x$prefix" != xNONE; then
@@ -1094,131 +500,65 @@
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
+    echo "loading site script $ac_site_file"
     . "$ac_site_file"
   fi
 done
 
 if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
+  echo "loading cache $cache_file"
+  . $cache_file
 else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-        ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
+  echo "creating cache $cache_file"
+  > $cache_file
 fi
 
 ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
 
 
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:540: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat >conftest.make <<\_ACEOF
+  cat > conftestmake <<\EOF
 all:
-	@echo 'ac_maketemp="$(MAKE)"'
-_ACEOF
+	@echo 'ac_maketemp="${MAKE}"'
+EOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
 if test -n "$ac_maketemp"; then
   eval ac_cv_prog_make_${ac_make}_set=yes
 else
   eval ac_cv_prog_make_${ac_make}_set=no
 fi
-rm -f conftest.make
+rm -f conftestmake
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+  echo "$ac_t""yes" 1>&6
   SET_MAKE=
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
@@ -1232,20 +572,14 @@
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -1254,73 +588,60 @@
 # SunOS /usr/etc/install
 # IRIX /sbin/install
 # AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
 # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:597: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-          if test $ac_prog = install &&
-            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # AIX install.  It has an incompatible calling convention.
-            :
-          elif test $ac_prog = install &&
-            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-            # program-specific install script used by HP pwplus--don't use.
-            :
-          else
-            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-            break 3
-          fi
-        fi
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
       done
-    done
-    ;;
-esac
-done
-
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
+    INSTALL="$ac_cv_path_install"
   else
     # As a last resort, use the slow shell script.  We don't cache a
     # path for INSTALL within a source directory, because that will
     # break other packages using the cache if that directory is
     # removed, or if the path is relative.
-    INSTALL=$ac_install_sh
+    INSTALL="$ac_install_sh"
   fi
 fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
+echo "$ac_t""$INSTALL" 1>&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
 test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
@@ -1329,108 +650,96 @@
    EMACS=""
 fi
 
-
 # Check whether --with-xemacs or --without-xemacs was given.
 if test "${with_xemacs+set}" = set; then
   withval="$with_xemacs"
-   if test "${withval}" = "yes"; then EMACS=xemacs; else EMACS=${withval}; fi
-fi;
+   if test "${withval}" = "yes"; then EMACS=xemacs; else EMACS=${withval}; fi 
+fi
 
 # Check whether --with-emacs or --without-emacs was given.
 if test "${with_emacs+set}" = set; then
   withval="$with_emacs"
-   if test "${withval}" = "yes"; then EMACS=emacs; else EMACS=${withval}; fi
-fi;
+   if test "${withval}" = "yes"; then EMACS=emacs; else EMACS=${withval}; fi 
+fi
+
 # Extract the first word of "makeinfo", so it can be a program name with args.
 set dummy makeinfo; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_MAKEINFO+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:669: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$MAKEINFO"; then
   ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_MAKEINFO="makeinfo"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_MAKEINFO="makeinfo"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   test -z "$ac_cv_prog_MAKEINFO" && ac_cv_prog_MAKEINFO="no"
 fi
 fi
-MAKEINFO=$ac_cv_prog_MAKEINFO
+MAKEINFO="$ac_cv_prog_MAKEINFO"
 if test -n "$MAKEINFO"; then
-  echo "$as_me:$LINENO: result: $MAKEINFO" >&5
-echo "${ECHO_T}$MAKEINFO" >&6
+  echo "$ac_t""$MAKEINFO" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 
 # Extract the first word of "emacs", so it can be a program name with args.
 set dummy emacs; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_EMACS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:700: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_EMACS'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$EMACS"; then
   ac_cv_prog_EMACS="$EMACS" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_EMACS="emacs"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_EMACS="emacs"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   test -z "$ac_cv_prog_EMACS" && ac_cv_prog_EMACS="xemacs"
 fi
 fi
-EMACS=$ac_cv_prog_EMACS
+EMACS="$ac_cv_prog_EMACS"
 if test -n "$EMACS"; then
-  echo "$as_me:$LINENO: result: $EMACS" >&5
-echo "${ECHO_T}$EMACS" >&6
+  echo "$ac_t""$EMACS" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
 
 
-
-  echo "$as_me:$LINENO: checking if $EMACS is really XEmacs" >&5
-echo $ECHO_N "checking if $EMACS is really XEmacs... $ECHO_C" >&6
-
+  
+  echo $ac_n "checking if $EMACS is really XEmacs""... $ac_c" 1>&6
+echo "configure:731: checking if $EMACS is really XEmacs" >&5
+  
 elisp="(if (string-match \"XEmacs\" emacs-version) \"yes\" \"no\") "
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: checking for xemacsp" >&5
-echo $ECHO_N "checking for xemacsp... $ECHO_C" >&6
+	echo $ac_n "checking for xemacsp""... $ac_c" 1>&6
+echo "configure:736: checking for xemacsp" >&5
 fi
-if test "${EMACS_cv_SYS_xemacsp+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'EMACS_cv_SYS_xemacsp'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 	OUTPUT=./conftest-$$
-	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1
+	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1  
 	${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x 'ignore) (prin1-to-string x)) nil \"${OUTPUT}\"nil 5))" >& 5 2>&1
 	retval=`cat ${OUTPUT}`
 	echo "=> ${retval}" >& 5 2>&1
@@ -1441,8 +750,7 @@
 
 xemacsp=${EMACS_cv_SYS_xemacsp}
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: result: $xemacsp" >&5
-echo "${ECHO_T}$xemacsp" >&6
+	echo "$ac_t""$xemacsp" 1>&6
 fi
 
   XEMACS=${EMACS_cv_SYS_xemacsp}
@@ -1450,26 +758,25 @@
   if test "$XEMACS" = "yes"; then
      EMACS_FLAVOR=xemacs
   fi
-  echo "$as_me:$LINENO: result: $XEMACS" >&5
-echo "${ECHO_T}$XEMACS" >&6
-
-
+  echo "$ac_t""$XEMACS" 1>&6
+  
+  
 
   if test "$prefix" = "NONE"; then
-	echo "$as_me:$LINENO: checking prefix for your Emacs" >&5
-echo $ECHO_N "checking prefix for your Emacs... $ECHO_C" >&6
-
+	echo $ac_n "checking prefix for your Emacs""... $ac_c" 1>&6
+echo "configure:768: checking prefix for your Emacs" >&5
+	
 elisp="(expand-file-name \"..\" invocation-directory)"
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: checking for prefix" >&5
-echo $ECHO_N "checking for prefix... $ECHO_C" >&6
+	echo $ac_n "checking for prefix""... $ac_c" 1>&6
+echo "configure:773: checking for prefix" >&5
 fi
-if test "${EMACS_cv_SYS_prefix+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'EMACS_cv_SYS_prefix'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 	OUTPUT=./conftest-$$
-	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1
+	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1  
 	${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x 'ignore) (prin1-to-string x)) nil \"${OUTPUT}\"nil 5))" >& 5 2>&1
 	retval=`cat ${OUTPUT}`
 	echo "=> ${retval}" >& 5 2>&1
@@ -1480,22 +787,20 @@
 
 prefix=${EMACS_cv_SYS_prefix}
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: result: $prefix" >&5
-echo "${ECHO_T}$prefix" >&6
+	echo "$ac_t""$prefix" 1>&6
 fi
 
 	prefix=${EMACS_cv_SYS_prefix}
-	echo "$as_me:$LINENO: result: $prefix" >&5
-echo "${ECHO_T}$prefix" >&6
+	echo "$ac_t""$prefix" 1>&6
   fi
-
-# Check whether --with-lispdir or --without-lispdir was given.
+  # Check whether --with-lispdir or --without-lispdir was given.
 if test "${with_lispdir+set}" = set; then
   withval="$with_lispdir"
   lispdir=${withval}
-fi;
-  echo "$as_me:$LINENO: checking where .elc files should go" >&5
-echo $ECHO_N "checking where .elc files should go... $ECHO_C" >&6
+fi
+
+  echo $ac_n "checking where .elc files should go""... $ac_c" 1>&6
+echo "configure:804: checking where .elc files should go" >&5
   if test -z "$lispdir"; then
         theprefix=$prefix
     if test "x$theprefix" = "xNONE"; then
@@ -1519,19 +824,18 @@
 	fi
     done
   fi
-  echo "$as_me:$LINENO: result: $lispdir" >&5
-echo "${ECHO_T}$lispdir" >&6
-
+  echo "$ac_t""$lispdir" 1>&6
+  
 
 
-
-# Check whether --with-etcdir or --without-etcdir was given.
+  # Check whether --with-etcdir or --without-etcdir was given.
 if test "${with_etcdir+set}" = set; then
   withval="$with_etcdir"
   etcdir=${withval}
-fi;
-  echo "$as_me:$LINENO: checking where etc files should go" >&5
-echo $ECHO_N "checking where etc files should go... $ECHO_C" >&6
+fi
+
+  echo $ac_n "checking where etc files should go""... $ac_c" 1>&6
+echo "configure:839: checking where etc files should go" >&5
   if test -z "$etcdir"; then
         if test "$EMACS_FLAVOR" = "xemacs"; then
       etcdir="\$(lispdir)/../../etc"
@@ -1539,13 +843,12 @@
     etcdir="\$(lispdir)/../etc"
     fi
   fi
-  echo "$as_me:$LINENO: result: $etcdir" >&5
-echo "${ECHO_T}$etcdir" >&6
+  echo "$ac_t""$etcdir" 1>&6
+  
 
 
-
-  echo "$as_me:$LINENO: checking where the TeXinfo docs should go" >&5
-echo $ECHO_N "checking where the TeXinfo docs should go... $ECHO_C" >&6
+  echo $ac_n "checking where the TeXinfo docs should go""... $ac_c" 1>&6
+echo "configure:852: checking where the TeXinfo docs should go" >&5
     if test "$infodir" = "\${prefix}/info"; then
     if test "$EMACS_FLAVOR" = "xemacs"; then
       info_dir="\$(prefix)/${thedir}/${EMACS_FLAVOR}/site-packages/info"
@@ -1555,35 +858,34 @@
   else
     info_dir=$infodir
   fi
-  echo "$as_me:$LINENO: result: $info_dir" >&5
-echo "${ECHO_T}$info_dir" >&6
-
+  echo "$ac_t""$info_dir" 1>&6
+  
 
 
-echo "$as_me:$LINENO: checking for acceptable URL version" >&5
-echo $ECHO_N "checking for acceptable URL version... $ECHO_C" >&6
-if test "${EMACS_cv_ACCEPTABLE_URL+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for acceptable URL version""... $ac_c" 1>&6
+echo "configure:867: checking for acceptable URL version" >&5
+if eval "test \"`echo '$''{'EMACS_cv_ACCEPTABLE_URL'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: checking for url-retrieve in url" >&5
-echo $ECHO_N "checking for url-retrieve in url... $ECHO_C" >&6
+	echo $ac_n "checking for url-retrieve in url""... $ac_c" 1>&6
+echo "configure:875: checking for url-retrieve in url" >&5
 fi
 library=`echo url | tr _ -`
 
 elisp="(progn (fmakunbound 'url-retrieve) (condition-case nil (progn (require '$library) (fboundp 'url-retrieve)) (error (prog1 nil (message \"$library not found\")))))"
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: checking for url" >&5
-echo $ECHO_N "checking for url... $ECHO_C" >&6
+	echo $ac_n "checking for url""... $ac_c" 1>&6
+echo "configure:882: checking for url" >&5
 fi
-if test "${EMACS_cv_SYS_url+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'EMACS_cv_SYS_url'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 	OUTPUT=./conftest-$$
-	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1
+	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1  
 	${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x 'ignore) (prin1-to-string x)) nil \"${OUTPUT}\"nil 5))" >& 5 2>&1
 	retval=`cat ${OUTPUT}`
 	echo "=> ${retval}" >& 5 2>&1
@@ -1594,8 +896,7 @@
 
 url=${EMACS_cv_SYS_url}
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: result: $url" >&5
-echo "${ECHO_T}$url" >&6
+	echo "$ac_t""$url" 1>&6
 fi
 
 if test "${EMACS_cv_SYS_url}" = "nil"; then
@@ -1607,8 +908,7 @@
 HAVE_url=${EMACS_cv_SYS_url}
 
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: result: $HAVE_url" >&5
-echo "${ECHO_T}$HAVE_url" >&6
+	echo "$ac_t""$HAVE_url" 1>&6
 fi
 
 if test "${HAVE_url}" = "yes"; then
@@ -1618,18 +918,18 @@
 fi
 
 if test "${EMACS_cv_ACCEPTABLE_URL}" = "yes"; then
-
+	
 elisp="(file-name-directory (locate-library \"url\"))"
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: checking for url_dir" >&5
-echo $ECHO_N "checking for url_dir... $ECHO_C" >&6
+	echo $ac_n "checking for url_dir""... $ac_c" 1>&6
+echo "configure:926: checking for url_dir" >&5
 fi
-if test "${EMACS_cv_SYS_url_dir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'EMACS_cv_SYS_url_dir'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 	OUTPUT=./conftest-$$
-	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1
+	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1  
 	${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x 'ignore) (prin1-to-string x)) nil \"${OUTPUT}\"nil 5))" >& 5 2>&1
 	retval=`cat ${OUTPUT}`
 	echo "=> ${retval}" >& 5 2>&1
@@ -1640,8 +940,7 @@
 
 url_dir=${EMACS_cv_SYS_url_dir}
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: result: $url_dir" >&5
-echo "${ECHO_T}$url_dir" >&6
+	echo "$ac_t""$url_dir" 1>&6
 fi
 
 	EMACS_cv_ACCEPTABLE_URL=$EMACS_cv_SYS_url_dir
@@ -1649,42 +948,41 @@
 
 fi
 
-
-# Check whether --with-url or --without-url was given.
+   # Check whether --with-url or --without-url was given.
 if test "${with_url+set}" = set; then
   withval="$with_url"
-   EMACS_cv_ACCEPTABLE_URL=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null`
-fi;
-   URL=${EMACS_cv_ACCEPTABLE_URL}
+   EMACS_cv_ACCEPTABLE_URL=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` 
+fi
 
-   echo "$as_me:$LINENO: result: \"${URL}\"" >&5
-echo "${ECHO_T}\"${URL}\"" >&6
+   URL=${EMACS_cv_ACCEPTABLE_URL}
+   
+   echo "$ac_t"""${URL}"" 1>&6
 
 
-echo "$as_me:$LINENO: checking for acceptable W3 version" >&5
-echo $ECHO_N "checking for acceptable W3 version... $ECHO_C" >&6
-if test "${EMACS_cv_ACCEPTABLE_W3+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for acceptable W3 version""... $ac_c" 1>&6
+echo "configure:964: checking for acceptable W3 version" >&5
+if eval "test \"`echo '$''{'EMACS_cv_ACCEPTABLE_W3'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: checking for w3-form-encode-xwfu in w3_forms" >&5
-echo $ECHO_N "checking for w3-form-encode-xwfu in w3_forms... $ECHO_C" >&6
+	echo $ac_n "checking for w3-form-encode-xwfu in w3_forms""... $ac_c" 1>&6
+echo "configure:972: checking for w3-form-encode-xwfu in w3_forms" >&5
 fi
 library=`echo w3_forms | tr _ -`
 
 elisp="(progn (fmakunbound 'w3-form-encode-xwfu) (condition-case nil (progn (require '$library) (fboundp 'w3-form-encode-xwfu)) (error (prog1 nil (message \"$library not found\")))))"
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: checking for w3_forms" >&5
-echo $ECHO_N "checking for w3_forms... $ECHO_C" >&6
+	echo $ac_n "checking for w3_forms""... $ac_c" 1>&6
+echo "configure:979: checking for w3_forms" >&5
 fi
-if test "${EMACS_cv_SYS_w3_forms+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'EMACS_cv_SYS_w3_forms'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 	OUTPUT=./conftest-$$
-	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1
+	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1  
 	${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x 'ignore) (prin1-to-string x)) nil \"${OUTPUT}\"nil 5))" >& 5 2>&1
 	retval=`cat ${OUTPUT}`
 	echo "=> ${retval}" >& 5 2>&1
@@ -1695,8 +993,7 @@
 
 w3_forms=${EMACS_cv_SYS_w3_forms}
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: result: $w3_forms" >&5
-echo "${ECHO_T}$w3_forms" >&6
+	echo "$ac_t""$w3_forms" 1>&6
 fi
 
 if test "${EMACS_cv_SYS_w3_forms}" = "nil"; then
@@ -1708,8 +1005,7 @@
 HAVE_w3_forms=${EMACS_cv_SYS_w3_forms}
 
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: result: $HAVE_w3_forms" >&5
-echo "${ECHO_T}$HAVE_w3_forms" >&6
+	echo "$ac_t""$HAVE_w3_forms" 1>&6
 fi
 
 if test "${HAVE_w3_forms}" = "yes"; then
@@ -1719,18 +1015,18 @@
 fi
 
 if test "${EMACS_cv_ACCEPTABLE_W3}" = "yes"; then
-
+	
 elisp="(file-name-directory (locate-library \"w3-forms\"))"
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: checking for w3_dir" >&5
-echo $ECHO_N "checking for w3_dir... $ECHO_C" >&6
+	echo $ac_n "checking for w3_dir""... $ac_c" 1>&6
+echo "configure:1023: checking for w3_dir" >&5
 fi
-if test "${EMACS_cv_SYS_w3_dir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if eval "test \"`echo '$''{'EMACS_cv_SYS_w3_dir'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-
+  
 	OUTPUT=./conftest-$$
-	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1
+	echo ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& 5 2>&1  
 	${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x 'ignore) (prin1-to-string x)) nil \"${OUTPUT}\"nil 5))" >& 5 2>&1
 	retval=`cat ${OUTPUT}`
 	echo "=> ${retval}" >& 5 2>&1
@@ -1741,8 +1037,7 @@
 
 w3_dir=${EMACS_cv_SYS_w3_dir}
 if test -z ""noecho""; then
-	echo "$as_me:$LINENO: result: $w3_dir" >&5
-echo "${ECHO_T}$w3_dir" >&6
+	echo "$ac_t""$w3_dir" 1>&6
 fi
 
 	EMACS_cv_ACCEPTABLE_W3=$EMACS_cv_SYS_w3_dir
@@ -1750,20 +1045,19 @@
 
 fi
 
-
-# Check whether --with-w3 or --without-w3 was given.
+   # Check whether --with-w3 or --without-w3 was given.
 if test "${with_w3+set}" = set; then
   withval="$with_w3"
-   EMACS_cv_ACCEPTABLE_W3=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null`
-fi;
-   W3=${EMACS_cv_ACCEPTABLE_W3}
+   EMACS_cv_ACCEPTABLE_W3=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` 
+fi
 
-   echo "$as_me:$LINENO: result: \"${W3}\"" >&5
-echo "${ECHO_T}\"${W3}\"" >&6
+   W3=${EMACS_cv_ACCEPTABLE_W3}
+   
+   echo "$ac_t"""${W3}"" 1>&6
 
 
-  echo "$as_me:$LINENO: checking which options to pass on to (X)Emacs" >&5
-echo $ECHO_N "checking which options to pass on to (X)Emacs... $ECHO_C" >&6
+  echo $ac_n "checking which options to pass on to (X)Emacs""... $ac_c" 1>&6
+echo "configure:1061: checking which options to pass on to (X)Emacs" >&5
   if test "x$FLAGS" = "x"; then
     if test "$EMACS_FLAVOR" = "xemacs"; then
       FLAGS="-batch -no-autoloads -l \$(srcdir)/dgnushack.el"
@@ -1773,65 +1067,60 @@
   else
     FLAGS=$FLAGS
   fi
-  echo "$as_me:$LINENO: result: $FLAGS" >&5
-echo "${ECHO_T}$FLAGS" >&6
-
+  echo "$ac_t""$FLAGS" 1>&6
+  
 
 
 test "$LATEX" = t && LATEX=
 test "$LATEX" || for ac_prog in latex
 do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
+# Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_LATEX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1081: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_LATEX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case $LATEX in
-  [\\/]* | ?:[\\/]*)
+  case "$LATEX" in
+  /*)
   ac_cv_path_LATEX="$LATEX" # Let the user override the test with a path.
   ;;
+  ?:/*)			 
+  ac_cv_path_LATEX="$LATEX" # Let the user override the test with a dos path.
+  ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_LATEX="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_LATEX="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
   ;;
 esac
 fi
-LATEX=$ac_cv_path_LATEX
-
+LATEX="$ac_cv_path_LATEX"
 if test -n "$LATEX"; then
-  echo "$as_me:$LINENO: result: $LATEX" >&5
-echo "${ECHO_T}$LATEX" >&6
+  echo "$ac_t""$LATEX" 1>&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  echo "$ac_t""no" 1>&6
 fi
 
-  test -n "$LATEX" && break
+test -n "$LATEX" && break
 done
 test -n "$LATEX" || LATEX="no"
 
-echo "$as_me:$LINENO: checking for available fonts" >&5
-echo $ECHO_N "checking for available fonts... $ECHO_C" >&6
-
+echo $ac_n "checking for available fonts""... $ac_c" 1>&6
+echo "configure:1118: checking for available fonts" >&5
 # Check whether --with-fonts or --without-fonts was given.
 if test "${with_fonts+set}" = set; then
   withval="$with_fonts"
   USE_FONTS="$withval"
-fi;
+fi
+
 WITH_FONTS_bembo='%'
 WITHOUT_FONTS_bembo=
 WITH_FONTS_pfu='%'
@@ -1844,7 +1133,7 @@
   else
     OUTPUT=./conftest-$$
     echo '\nonstopmode\documentclass{article}\usepackage{bembo}\begin{document}\end{document}' > ${OUTPUT}
-    if ${LATEX} ${OUTPUT} </dev/null >& 5 2>&1  ; then
+    if ${LATEX} ${OUTPUT} </dev/null >& 5 2>&1  ; then  
       if test -z "${USE_FONTS}"; then
 	USE_FONTS="Adobe Bembo"
       else
@@ -1855,7 +1144,7 @@
     fi
     echo '\nonstopmode\documentclass{article}\begin{document}{\fontfamily{pfu}\fontsize{10pt}{10}\selectfont test}\end{document}' > ${OUTPUT}
     if retval=`${LATEX} ${OUTPUT} </dev/null 2>& 5`; then
-      if echo "$retval" | grep 'Some font shapes were not available' >& 5 2>&1  ; then
+      if echo "$retval" | grep 'Some font shapes were not available' >& 5 2>&1  ; then  
 	:
       else
         if test -z "${USE_FONTS}"; then
@@ -1869,7 +1158,7 @@
     fi
     echo '\nonstopmode\documentclass{article}\begin{document}{\fontfamily{bcr}\fontsize{10pt}{10}\selectfont test}\end{document}' > ${OUTPUT}
     if retval=`${LATEX} ${OUTPUT} </dev/null 2>& 5`; then
-      if echo "$retval" | grep 'Some font shapes were not available' >& 5 2>&1  ; then
+      if echo "$retval" | grep 'Some font shapes were not available' >& 5 2>&1  ; then  
 	:
       else
         if test -z "${USE_FONTS}"; then
@@ -1901,8 +1190,7 @@
   USE_FONTS=no
 fi
 USE_FONTS=`echo "${USE_FONTS}" | sed 's/,\([^,]*\)$/ and\1/'`
-echo "$as_me:$LINENO: result: \"${USE_FONTS}\"" >&5
-echo "${ECHO_T}\"${USE_FONTS}\"" >&6
+echo "$ac_t"""${USE_FONTS}"" 1>&6
 if test "${USE_FONTS}" = yes ; then
   USE_FONTS='Set in Adobe Bembo, Adobe Futura and Bitstream Courier.'
 elif test "${USE_FONTS}" = no ; then
@@ -1913,904 +1201,285 @@
 
 
 
-                                                            ac_config_files="$ac_config_files Makefile etc/Makefile lisp/Makefile texi/Makefile texi/gnusconfig.tex texi/ps/Makefile"
-cat >confcache <<\_ACEOF
+trap '' 1 2 15
+cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
 #
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
 #
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
+EOF
 # The following way of writing the cache mishandles newlines in values,
 # but we know of no workaround that is simple, portable, and efficient.
 # So, don't put newlines in cache variables' values.
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-        "s/'/'\\\\''/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
   if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
   else
     echo "not updating unwritable cache $cache_file"
   fi
 fi
 rm -f confcache
 
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
 test "x$prefix" = xNONE && prefix=$ac_default_prefix
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ 	]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ 	]*$//;
-}'
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
 fi
 
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
 # Transform confdefs.h into DEFS.
 # Protect against shell expansion while executing Makefile rules.
 # Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*([^)]*)\)[ 	]*\(.*\),-D\1=\2,g
-t quote
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[ 	`~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+s%[ 	`~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
 
 
+# Without the "./", some shells look in PATH for config.status.
 : ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
 # Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
 # Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-
-# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
+# configure, is in ./config.log if it exists.
 
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
 do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
 done
 
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
 
+trap 'rm -fr `echo "Makefile etc/Makefile lisp/Makefile texi/Makefile texi/gnusconfig.tex texi/ps/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@MAKEINFO@%$MAKEINFO%g
+s%@EMACS@%$EMACS%g
+s%@XEMACS@%$XEMACS%g
+s%@EMACS_FLAVOR@%$EMACS_FLAVOR%g
+s%@lispdir@%$lispdir%g
+s%@etcdir@%$etcdir%g
+s%@info_dir@%$info_dir%g
+s%@HAVE_url@%$HAVE_url%g
+s%@URL@%$URL%g
+s%@HAVE_w3_forms@%$HAVE_w3_forms%g
+s%@W3@%$W3%g
+s%@FLAGS@%$FLAGS%g
+s%@LATEX@%$LATEX%g
+s%@WITH_FONTS_bembo@%$WITH_FONTS_bembo%g
+s%@WITHOUT_FONTS_bembo@%$WITHOUT_FONTS_bembo%g
+s%@WITH_FONTS_pfu@%$WITH_FONTS_pfu%g
+s%@WITHOUT_FONTS_pfu@%$WITHOUT_FONTS_pfu%g
+s%@WITH_FONTS_bcr@%$WITH_FONTS_bcr%g
+s%@WITHOUT_FONTS_bcr@%$WITHOUT_FONTS_bcr%g
+s%@USE_FONTS@%$USE_FONTS%g
 
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
+CEOF
+EOF
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+cat >> $CONFIG_STATUS <<\EOF
 
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
   fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
   else
-    as_ln_s='ln -s'
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
   fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.57.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.57,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
 done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
 fi
+EOF
 
-_ACEOF
-
-
-
+cat >> $CONFIG_STATUS <<EOF
 
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "etc/Makefile" ) CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;;
-  "lisp/Makefile" ) CONFIG_FILES="$CONFIG_FILES lisp/Makefile" ;;
-  "texi/Makefile" ) CONFIG_FILES="$CONFIG_FILES texi/Makefile" ;;
-  "texi/gnusconfig.tex" ) CONFIG_FILES="$CONFIG_FILES texi/gnusconfig.tex" ;;
-  "texi/ps/Makefile" ) CONFIG_FILES="$CONFIG_FILES texi/ps/Makefile" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
+CONFIG_FILES=\${CONFIG_FILES-"Makefile etc/Makefile lisp/Makefile texi/Makefile texi/gnusconfig.tex texi/ps/Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
   esac
-done
 
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
 
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@MAKEINFO@,$MAKEINFO,;t t
-s,@EMACS@,$EMACS,;t t
-s,@XEMACS@,$XEMACS,;t t
-s,@EMACS_FLAVOR@,$EMACS_FLAVOR,;t t
-s,@lispdir@,$lispdir,;t t
-s,@etcdir@,$etcdir,;t t
-s,@info_dir@,$info_dir,;t t
-s,@HAVE_url@,$HAVE_url,;t t
-s,@URL@,$URL,;t t
-s,@HAVE_w3_forms@,$HAVE_w3_forms,;t t
-s,@W3@,$W3,;t t
-s,@FLAGS@,$FLAGS,;t t
-s,@LATEX@,$LATEX,;t t
-s,@WITH_FONTS_bembo@,$WITH_FONTS_bembo,;t t
-s,@WITHOUT_FONTS_bembo@,$WITHOUT_FONTS_bembo,;t t
-s,@WITH_FONTS_pfu@,$WITH_FONTS_pfu,;t t
-s,@WITHOUT_FONTS_pfu@,$WITHOUT_FONTS_pfu,;t t
-s,@WITH_FONTS_bcr@,$WITH_FONTS_bcr,;t t
-s,@WITHOUT_FONTS_bcr@,$WITHOUT_FONTS_bcr,;t t
-s,@USE_FONTS@,$USE_FONTS,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
   fi
-fi # test -n "$CONFIG_FILES"
 
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$as_dir" : 'X\(//\)[^/]' \| \
-         X"$as_dir" : 'X\(//\)$' \| \
-         X"$as_dir" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
   *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
 
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
 
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
   esac
 
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                     sed 's,.*/,,'` by configure."
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
 
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         echo $f;;
-      *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-         fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
+EOF
+cat >> $CONFIG_STATUS <<EOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+EOF
+cat >> $CONFIG_STATUS <<\EOF
 
-{ (exit 0); exit 0; }
-_ACEOF
+exit 0
+EOF
 chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
 
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
 
Index: gnus/configure.in
diff -u gnus/configure.in:7.1 gnus/configure.in:7.3
--- gnus/configure.in:7.1	Sun Jan  4 22:50:48 2004
+++ gnus/configure.in	Mon May 24 22:13:03 2004
@@ -27,3 +27,7 @@
 GNUS_CHECK_FONTS
 
 AC_OUTPUT(Makefile etc/Makefile lisp/Makefile texi/Makefile texi/gnusconfig.tex texi/ps/Makefile)
+
+ifelse(dnl	Do not change this comment
+   arch-tag: 4fda042e-c632-45be-867f-4d90bc87746b
+)dnl
Index: gnus/install-sh
diff -u gnus/install-sh:7.1 gnus/install-sh:7.2
--- gnus/install-sh:7.1	Sun Jan  4 22:50:48 2004
+++ gnus/install-sh	Thu May 20 10:02:34 2004
@@ -248,3 +248,5 @@
 
 
 exit 0
+
+# arch-tag: 04aca0e8-c9e3-4a4e-8ad0-302ad9956e6f
Index: gnus/make.bat
diff -u gnus/make.bat:7.4 gnus/make.bat:7.9
--- gnus/make.bat:7.4	Tue Mar  9 08:10:42 2004
+++ gnus/make.bat	Sat Feb 19 14:12:38 2005
@@ -135,6 +135,8 @@
 if ErrorLevel 1 set ERROR=%ERROR%,pgg.texi
 %EMACSINFO% message.texi
 if ErrorLevel 1 set ERROR=%ERROR%,message.texi
+%EMACSINFO% sasl.texi
+if ErrorLevel 1 set ERROR=%ERROR%,sasl.texi
 
 if not "%2" == "/copy" goto nocopy
 if not exist %GNUS_INFO_DIR%\nul mkdir %GNUS_INFO_DIR%
@@ -158,6 +160,8 @@
 if ErrorLevel 1 set ERROR=%ERROR%,copy-sieve-info
 xcopy /R /Q /Y pgg        %GNUS_INFO_DIR%
 if ErrorLevel 1 set ERROR=%ERROR%,copy-pgg-info
+xcopy /R /Q /Y sasl        %GNUS_INFO_DIR%
+if ErrorLevel 1 set ERROR=%ERROR%,copy-sasl-info
 
 echo.
 echo ***************************************************************************
@@ -167,6 +171,7 @@
 echo *
 echo * * PGG: (pgg).	Emacs interface to various PGP implementations.
 echo * * Sieve: (sieve).	Managing Sieve scripts in Emacs.
+echo * * SASL: (sasl).	The Emacs SASL library.
 echo ***************************************************************************
 echo.
 
@@ -181,9 +186,13 @@
 if not exist %GNUS_ETC_DIR%\gnus\nul mkdir %GNUS_ETC_DIR%\gnus
 xcopy /R /Q /Y .\gnus\* %GNUS_ETC_DIR%\gnus\
 if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-gnus-*
-if not exist %GNUS_ETC_DIR%\smilies\nul mkdir %GNUS_ETC_DIR%\smilies
-xcopy /R /Q /Y .\smilies\* %GNUS_ETC_DIR%\smilies\
-if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-smilies-*
+if not exist %GNUS_ETC_DIR%\images\nul mkdir %GNUS_ETC_DIR%\images
+if not exist %GNUS_ETC_DIR%\images\gnus\nul mkdir %GNUS_ETC_DIR%\images\gnus
+xcopy /R /Q /Y .\images\gnus\* %GNUS_ETC_DIR%\images\gnus\
+if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-images-gnus-*
+if not exist %GNUS_ETC_DIR%\images\smilies\nul mkdir %GNUS_ETC_DIR%\images\smilies
+xcopy /R /Q /Y .\images\smilies\* %GNUS_ETC_DIR%\images\smilies\
+if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-images-smilies-*
 goto warnings
 
 :nocopy
@@ -286,3 +295,7 @@
 set GNUS_ETC_DIR=
 set subdirwarning=
 set ERROR=
+
+goto skipArchTag
+   arch-tag: 502dd14c-acde-4f69-8e82-43203b12a82c
+:skipArchTag
Index: gnus/mkinstalldirs
diff -u gnus/mkinstalldirs:7.1 gnus/mkinstalldirs:7.3
--- gnus/mkinstalldirs:7.1	Sun Jan  4 22:50:48 2004
+++ gnus/mkinstalldirs	Fri May 21 02:16:55 2004
@@ -4,8 +4,6 @@
 # Created: 1993-05-16
 # Public domain
 
-# $Id: mkinstalldirs,v 7.1 2004/01/04 21:50:48 larsi Exp $
-
 errstatus=0
 
 for file
@@ -37,4 +35,5 @@
 
 exit $errstatus
 
+# arch-tag: 40090a56-c506-4e64-a963-224cca4a7524
 # mkinstalldirs ends here
Index: gnus/contrib/ChangeLog
diff -u gnus/contrib/ChangeLog:7.5 gnus/contrib/ChangeLog:7.18
--- gnus/contrib/ChangeLog:7.5	Mon Apr  5 16:20:07 2004
+++ gnus/contrib/ChangeLog	Wed Jan 26 09:54:32 2005
@@ -1,3 +1,49 @@
+2005-01-26  Steve Youngs  <steve@sxemacs.org>
+
+	* gpg.el: Add timer/itimer compatibility.
+
+2004-10-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* README (compface.el): Describe.
+
+2004-10-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* compface.el: Move the version of ELisp-based uncompface program
+	from the lisp directory because of the copyright problem.
+
+2004-09-27  Simon Josefsson  <jas@extundo.com>
+
+	* hashcash.el: Move to ../lisp/.
+
+2004-07-30  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* gnus-namazu.el (gnus-namazu/make-directory-table): Treat drive
+	letters when calcurating pathnames of remote groups.
+	From KOSEKI Yoshinori <kose@meadowy.org> (tiny change).
+
+2004-05-27  Simon Josefsson  <jas@extundo.com>
+
+	* starttls.el: Moved to ../lisp/.
+
+2004-05-26  Simon Josefsson  <jas@extundo.com>
+
+	* starttls.el: Sync with proposed Emacs version.
+
+2004-05-13  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* gnus-namazu.el (gnus-namazu/setup): Do not update indices
+	`gnus-namazu-command-prefix' is non-nil.
+
+2004-05-12  Kai Grossjohann  <kai@emptydomain.de>
+
+	* README (nnir.el): Describe.
+
+2004-05-11  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* README (gnus-namazu.el): Describe.
+
+	* gnus-namazu.el: New file.
+
 2004-04-05  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* nnir.el (nnir-group-server): Move before first use.
@@ -262,3 +308,5 @@
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; End:
+
+;;; arch-tag: 105a2bf0-3f04-4ba6-a991-619aece2c04f
Index: gnus/contrib/README
diff -u gnus/contrib/README:7.2 gnus/contrib/README:7.5
--- gnus/contrib/README:7.2	Fri Jan 23 04:18:58 2004
+++ gnus/contrib/README	Mon Oct 25 09:52:28 2004
@@ -12,10 +12,31 @@
 
 Here is an overview of the files:
 
+compface.el
+
+	Provides the ELisp-based uncompface program.  It is excellent
+	and practical (actually you can replace lisp/compface.el with
+	it), however the author is missing and the copyright has not
+	been assigned yet.
+
+gnus-namazu.el
+
+	This file defines the command to search mails and persistent
+	articles with Namazu, which is a full-text search engine
+	distributed at http://namazu.org, and to browse its results
+	with Gnus.
+
 gpg-ring.el
 gpg.el
 
 hashcash.el
+
+nnir.el
+
+	Interface to various full-text search engines.  Provides less
+	functionality than gnus-namazu.el, but also supports programs
+	other than Namazu.  Current implementation is restricted to
+	nnml folders, but could be extended for other backends.
 
 one-line-cookie.diff
 
Index: gnus/contrib/compface.el
diff -u /dev/null gnus/contrib/compface.el:7.3
--- /dev/null	Sun May  1 19:04:56 2005
+++ gnus/contrib/compface.el	Wed Oct 13 01:08:28 2004
@@ -0,0 +1,749 @@
+;;; compface.el --- functions for converting X-Face headers
+;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;	TAKAI Kousuke <tak@kmc.gr.jp>
+;; Keywords: news
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+(defgroup compface nil
+  "X-Face image conversion."
+  :group 'extensions)
+
+(defcustom uncompface-use-external (and (not noninteractive)
+					(executable-find "uncompface")
+					(executable-find "icontopbm")
+					'undecided)
+  "*Specify which of the internal or the external decoder should be used.
+nil means to use the internal ELisp-based uncompface program.  t means
+to use the external decoder.  In the later case, you need to have the
+external `uncompface' and `icontopbm' programs installed.  The default
+value is nil if those external programs aren't available, otherwise
+`undecided' which means to determine it by checking whether the host
+machine is slow.  See also `uncompface-use-external-threshold'.  You
+can skip that check by setting this value as nil or t explicitly."
+  :type '(choice (const :tag "Use the internal decoder" nil)
+		 (const :tag "Use the external decoder" t)
+		 (const :tag "Autodetection" undecided))
+  :group 'compface)
+
+(defcustom uncompface-use-external-threshold 0.1
+  "*Number of seconds to check whether the host machine is slow.
+If the host takes time larger than this value for decoding an X-Face
+using the internal ELisp-based uncompface program, it will be changed
+to using the external `uncompface' and `icontopbm' programs if they
+are available.  Note that the measurement may never be exact."
+  :type 'number
+  :group 'compface)
+
+(eval-when-compile
+  (defmacro uncompface-float-time (&optional specified-time)
+    (if (fboundp 'float-time)
+	`(float-time ,specified-time)
+      `(let ((time (or ,specified-time (current-time))))
+	 (+ (* (car time) 65536.0)
+	    (cadr time)
+	    (cond ((consp (setq time (cddr time)))
+		   (/ (car time) 1000000.0))
+		  (time
+		   (/ time 1000000.0))
+		  (t
+		   0)))))))
+
+(defun uncompface (face)
+  "Convert FACE to pbm.
+If `uncompface-use-external' is t, it requires the external programs
+`uncompface', and `icontopbm'.  On a GNU/Linux system these might be
+in packages with names like `compface' or `faces-xface' and `netpbm'
+or `libgr-progs', for instance."
+  (cond ((eq uncompface-use-external nil)
+	 (uncompface-internal face))
+	((eq uncompface-use-external t)
+	 (with-temp-buffer
+	   (insert face)
+	   (and (eq 0 (apply 'call-process-region (point-min) (point-max)
+			     "uncompface"
+			     'delete '(t nil) nil))
+		(progn
+		  (goto-char (point-min))
+		  (insert "/* Width=48, Height=48 */\n")
+		  ;; I just can't get "icontopbm" to work correctly on its
+		  ;; own in XEmacs.  And Emacs doesn't understand un-raw pbm
+		  ;; files.
+		  (if (not (featurep 'xemacs))
+		      (eq 0 (call-process-region (point-min) (point-max)
+						 "icontopbm"
+						 'delete '(t nil)))
+		    (shell-command-on-region (point-min) (point-max)
+					     "icontopbm | pnmnoraw"
+					     (current-buffer) t)
+		    t))
+		(buffer-string))))
+	(t
+	 (let* ((gc-cons-threshold (eval '(lsh -1 -1)))
+		(start (current-time)))
+	   (prog1
+	       (uncompface-internal face)
+	     (setq uncompface-use-external
+		   (and (> (- (uncompface-float-time (current-time))
+			      (uncompface-float-time start))
+			   uncompface-use-external-threshold)
+			(executable-find "uncompface")
+			(executable-find "icontopbm")
+			t))
+	     (message "Setting `uncompface-use-external' to `%s'"
+		      uncompface-use-external))))))
+
+;; The following section is a bug-for-bug compatible version of
+;; `uncompface' program entirely implemented in Emacs-Lisp.
+
+(eval-when-compile
+  ;; The size of 48x48 is actually hard-coded into the code itself,
+  ;; so you cannot simply change those values.  So we hard-code
+  ;; them into the compiled code.
+  (defconst uncompface-width 48
+    "Width of X-Face bitmap image.")
+  (defconst uncompface-height 48
+    "Height of X-Face bitmap image.")
+
+  ;; Again, this is also hard-coded into the compiled code.
+  (defconst uncompface-guesses
+    (mapcar (lambda (x)
+	      (mapcar (lambda (x)
+			(let ((vector (make-vector (length x) nil))
+			      (i 0))
+			  (while x
+			    (or (zerop (car x))
+				(aset vector i t))
+			    (setq x (cdr x)
+				  i (1+ i)))
+			  vector))
+		      x))
+	    '((;; g_00
+	       (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1
+		0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1
+		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1
+		0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+		0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1
+		0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
+		0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1
+		1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
+		1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1
+		0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0
+		0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1
+		0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1
+		1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1
+		1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1
+		0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1
+		0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1
+		0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1
+		0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1
+		1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
+		1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1
+		1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1
+		0 1 0 1 0 1 1 0 0 0 1 0 0 1 0 1
+		0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1
+		1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
+		0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1
+		0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0
+		0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1
+		0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1
+		1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
+		0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1
+		0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1
+		0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+		0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1
+		1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1
+		0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1
+		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
+		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1
+		0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1
+		0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
+		0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0
+		0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
+		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1
+		0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0
+		0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+		1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1
+		1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1
+		0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1
+		1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+		0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1
+		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1
+		0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0
+		0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1
+		0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
+		0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+		0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
+		0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+		0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
+		1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
+		0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
+		0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1
+		1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+		0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+		0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0
+		0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+		1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1
+		1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+		0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+		0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1
+		1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0
+		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+		1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1
+		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1
+		0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1
+		1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1
+		0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0
+		0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1
+		0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1
+		1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
+		0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0
+		0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1
+		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
+		0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1
+		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1
+		1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1
+		0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1
+		1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
+		0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1
+		1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1
+		0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
+		0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1
+		0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1
+		0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0
+		0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1
+		0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0
+		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
+		0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0
+		1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1
+		0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1
+		0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0
+		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
+		0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1
+		1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0
+		1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1
+		1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1
+		1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1
+		0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0
+		1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0
+		1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0
+		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0
+		1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1
+		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0
+		1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
+	       ;; g_10
+	       (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
+		1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1
+		1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0
+		0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 1
+		0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1
+		0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
+		0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
+		0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1
+		0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1
+		0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1
+		0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
+		0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0
+		0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0
+		0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1
+		0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1
+		0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1
+		0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1
+		1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1
+		0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0
+		0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0
+		1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0
+		0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1
+		0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1
+		0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
+	       ;; g_20
+	       (0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
+		0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0
+		1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1)
+	       ;; g_40
+	       (0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0
+		1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1
+		0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+		0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0
+		0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
+		1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1
+		0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1
+		1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
+		0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+		0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1
+		0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
+		0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
+		0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+		0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1
+		0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1
+		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
+		0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+		0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1
+		0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
+		0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+		0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1
+		0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1
+		0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1
+		0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1
+		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+		0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1
+		0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
+		0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1
+		0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1
+		0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0
+		0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1
+		0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1
+		0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1
+		0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1
+		0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1
+		0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
+		0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1
+		0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1))
+	      (;; g_01
+	       (0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1
+		0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
+		0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1
+		1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1
+		0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1
+		1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1
+		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
+	       ;; g_11
+	       (0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1
+		0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1)
+	       ;; g_21
+	       (0 0 0 1 0 1 1 1)
+	       ;; g_41
+	       (0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
+		0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1
+		0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1
+		0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
+	      (;; g_02
+	       (0 1 0 1)
+	       ;; g_12
+	       (0 1)
+	       ;; g_22
+	       (0)
+	       ;; g_42
+	       (0 0 0 1))))
+    "Static prediction table for X-Face image compression algorithm.")
+
+  ;; Macros for inlining critical values. 
+  (defmacro uncompface-width () (list 'quote uncompface-width))
+  (defmacro uncompface-height () (list 'quote uncompface-height))
+  (defmacro uncompface-guesses () (list 'quote uncompface-guesses))
+
+  (defmacro uncompface-loop (&rest body)
+    "Eval BODY and repeat if last expression of BODY yields non-nil."
+    (list 'while (cons 'progn body))))
+
+;; (defun uncompface-print-bignum (bignum &optional prefix)
+;;   (princ (format (concat prefix "<%s>\n")
+;; 		 (mapconcat (lambda (x) (format "%02x" x))
+;; 			    (reverse bignum) " "))))
+
+;; Shut up the byte-compiler.
+;; These variables are once bound in `uncompface' and all subfunctions
+;; accesses them directly rather than creating their own bindings.
+(eval-when-compile
+  (defvar bignum)
+  (defvar face))
+
+;; Big-number facilities.
+;; These functions were used to be implemented with `lsh' and `logand',
+;; but rewritten to use `/' and `%'.  The last two are mapped into
+;; byte-code directly, but the formers are normal functions even in
+;; compiled code which involve expensive `funcall' operations.
+(eval-when-compile
+  (defsubst uncompface-big-mul-add (multiplier adder)
+    "Multiply BIGNUM by MULTIPLIER and add ADDER and put result in `bignum'."
+    (setq bignum (if (= multiplier 0)
+		     (cons 0 bignum)
+		   (prog1 bignum
+		     (while (progn
+			      (setcar bignum (% (setq adder (+ (* (car bignum)
+								  multiplier)
+							       adder))
+						256))
+			      (setq adder (/ adder 256))
+			      (cdr bignum))
+		       (setq bignum (cdr bignum)))
+		     (or (= adder 0)
+			 (setcdr bignum (list adder))))))))
+
+;; This trick is for XEmacs 21.4 which doesn't allow inlining a function
+;; using `defsubst' into another function also defined with `defsubst'.
+(eval-when-compile
+  (when (featurep 'xemacs)
+    (defvar uncompface-big-mul-add (symbol-function 'uncompface-big-mul-add))
+    (defmacro uncompface-big-mul-add (multiplier adder)
+      `(,uncompface-big-mul-add ,multiplier ,adder))))
+
+;; Separate `eval-when-compile' for the byte compiler
+;; to properly define `uncompface-big-mul-add' before `uncompface-big-pop'.
+(eval-when-compile
+  (defsubst uncompface-big-pop (prob)
+    (let ((n (car bignum)) (i 0))
+      (if (cdr bignum)
+	  (setq bignum (cdr bignum))
+	(setcar bignum 0))
+      (while (or (< n (cdr (car prob)))
+		 (>= n (+ (cdr (car prob)) (car (car prob)))))
+	(setq prob (cdr prob)
+	      i (1+ i)))
+      (uncompface-big-mul-add (car (car prob)) (- n (cdr (car prob))))
+      i)))
+
+;; This function cannot be inlined due to recursive calls.
+(defun uncompface-pop-grays (offset size)
+  (if (<= size 3)
+      (let ((bits (uncompface-big-pop
+		   ;; This is freqs[16] in compface_private.h.
+		   '(( 0 .   0) (38 .   0) (38 .  38) (13 . 152)
+		     (38 .  76) (13 . 165) (13 . 178) ( 6 . 230)
+		     (38 . 114) (13 . 191) (13 . 204) ( 6 . 236)
+		     (13 . 217) ( 6 . 242) ( 5 . 248) ( 3 . 253)))))
+;; 	(if (/= (logand bits 1) 0)
+;; 	    (aset face offset t))
+;; 	(if (/= (logand bits 2) 0)
+;; 	    (aset face (1+ offset) t))
+;; 	(if (/= (logand bits 4) 0)
+;; 	    (aset face (+ offset (uncompface-width)) t))
+;; 	(if (/= (logand bits 8) 0)
+;; 	    (aset face (+ offset (uncompface-width) 1) t))
+	(when (>= bits 8)
+	  (aset face (+ offset (uncompface-width) 1) t)
+	  (setq bits (- bits 8)))
+	(when (>= bits 4)
+	  (aset face (+ offset (uncompface-width)) t)
+	  (setq bits (- bits 4)))
+	(or (eq (if (< bits 2)
+		    bits
+		  (aset face (1+ offset) t)
+		  (- bits 2))
+		0)
+	    (aset face offset t))
+	)
+    (setq size (/ size 2))
+    (uncompface-pop-grays offset size)
+    (uncompface-pop-grays (+ offset size) size)
+    (uncompface-pop-grays (+ offset (* (uncompface-width) size)) size)
+    (uncompface-pop-grays (+ offset (* (uncompface-width) size) size) size)))
+
+;; Again, this function call itself recursively.
+(defun uncompface-uncompress (offset size level)
+  ;; This used to be (funcall (aref [(lambda ...) ...] (u-big-pop ...)))
+  ;; but this was slow due to function call.
+  (let ((i (uncompface-big-pop (car level))))
+    (cond ((eq i 0)			; black
+	   (uncompface-pop-grays offset size))
+	  ((eq i 1)			; gray
+	   (setq size (/ size 2)
+		 level (cdr level))
+	   (uncompface-uncompress offset size level)
+	   (uncompface-uncompress (+ offset size) size level)
+	   (uncompface-uncompress (+ offset (* size (uncompface-width)))
+				  size level)
+	   (uncompface-uncompress (+ offset (* size (uncompface-width)) size)
+				  size level))
+	  ;; ((eq i 2) nil)
+	  ;; (t (error "Cannot happen"))
+	  )))
+
+(eval-when-compile
+  (defmacro uncompface-shift-in (k dy dx)
+    `(+ k k (if (aref face (+ i (* ,dy (uncompface-width)) ,dx)) 1 0))))
+
+(defun uncompface-internal (string &optional raw)
+  "Decode X-Face data STRING and return an image in the pbm format.
+If the optional RAW is non-nil, return a raw bitmap as a vector."
+  (let (;; `bignum' and `face' are semi-global variables.
+	;; Do not use '(0) below, because BIGNUM is modified in-place.
+	(bignum (list 0))
+	(face (make-vector (* (uncompface-width) (uncompface-height)) nil))
+	;;(uncompface-big-shift -16)
+	;;(uncompface-big-mask 65535)
+	(y 0) x)
+    (mapc (lambda (c)
+	    (and (>= c ?!) (<= c ?~)
+		 (uncompface-big-mul-add (1+ (- ?~ ?!)) (- c ?!))))
+	  string)
+    ;;(uncompface-print-bignum bignum)
+    ;;(setq y 0)
+    (uncompface-loop
+      (setq x 0)
+      (uncompface-loop
+	(uncompface-uncompress (+ (* (uncompface-width) y) x) 16
+			       ;; This is levels[4][3] in compface_private.h.
+			       '(;; Top of tree almost always grey
+				 ((  1 . 255) (251 .   0) (  4 . 251))
+				 ((  1 . 255) (200 .   0) ( 55 . 200))
+				 (( 33 . 223) (159 .   0) ( 64 . 159))
+				 ;; Grey disallowed at bottom
+				 ((131 .   0) (  0 .   0) (125 . 131))))
+	(< (setq x (+ x 16)) (uncompface-width)))
+      (< (setq y (+ y 16)) (uncompface-height)))
+    (setq y 0)
+    (let ((i 0) guesses k)
+      (uncompface-loop
+	(setq guesses (cond ((= y 1) (nth 2 (uncompface-guesses)))
+			    ((= y 2) (nth 1 (uncompface-guesses)))
+			    (t	     (nth 0 (uncompface-guesses))))
+	      x 0)
+	(uncompface-loop
+	  (setq k 0)
+	  (when (>= x 1)
+	    (when (>= x 2)
+	      (when (>= x 3)
+		(when (>= y 1)
+		  (when (>= y 2)
+		    (when (>= y 3)
+		      (setq k (uncompface-shift-in k -2 -2)))
+		    (setq k (uncompface-shift-in k -1 -2)))
+		  (setq k (uncompface-shift-in k 0 -2))))
+	      (when (>= y 1)
+		(when (>= y 2)
+		  (when (>= y 3)
+		    (setq k (uncompface-shift-in k -2 -1)))
+		  (setq k (uncompface-shift-in k -1 -1)))
+		(setq k (uncompface-shift-in k 0 -1))))
+	    (when (>= y 2)
+	      (when (>= y 3)
+		(setq k (uncompface-shift-in k -2 0)))
+	      (setq k (uncompface-shift-in k -1 0)))
+	    (when (>= y 2)
+	      (when (>= y 3)
+		(setq k (uncompface-shift-in k -2 1)))
+	      (setq k (uncompface-shift-in k -1 1)))
+	    (when (<= x (- (uncompface-width) 2))
+	      (when (>= y 2)
+		(when (>= y 3)
+		  (setq k (uncompface-shift-in k -2 2)))
+		(setq k (uncompface-shift-in k -1 2)))))
+	  (if (aref (car (cond ((= x 1)
+				(cdr (cdr guesses)))
+			       ((= x 2)
+				(cdr guesses))
+			       ((= x (1- (uncompface-width)))
+				(cdr (cdr (cdr guesses))))
+			       (t
+				guesses))) k)
+	      (aset face i (not (aref face i))))
+	  (setq i (1+ i))
+	  (< (setq x (1+ x)) (uncompface-width)))
+	(< (setq y (1+ y)) (uncompface-height))))
+    (if raw
+	face
+      (concat (eval-when-compile
+		(format "P1\n%d %d\n" uncompface-width uncompface-height))
+	      (mapconcat (lambda (bit) (if bit "1" "0")) face " ")
+	      "\n"))))
+
+(provide 'compface)
+
+;; Local variables:
+;; eval: (put 'uncompface-loop 'lisp-indent-hook 0)
+;; End:
+
+;; arch-tag: a8e3f4a0-e375-4f1d-a426-c7da30e16c18
+;;; compface.el ends here
Index: gnus/contrib/gnus-namazu.el
diff -u /dev/null gnus/contrib/gnus-namazu.el:7.4
--- /dev/null	Sun May  1 19:04:56 2005
+++ gnus/contrib/gnus-namazu.el	Fri Jul 30 12:12:55 2004
@@ -0,0 +1,905 @@
+;;; gnus-namazu.el --- Search mail with Namazu -*- coding: iso-2022-7bit; -*-
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004
+;; TSUCHIYA Masatoshi <tsuchiya@namazu.org>
+
+;; Author: TSUCHIYA Masatoshi <tsuchiya@namazu.org>
+;; Keywords: mail searching namazu
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, you can either send email to this
+;; program's maintainer or write to: The Free Software Foundation,
+;; Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
+
+
+;;; Commentary:
+
+;; This file defines the command to search mails and persistent
+;; articles with Namazu and to browse its results with Gnus.
+;;
+;; Namazu is a full-text search engine intended for easy use.  For
+;; more detail about Namazu, visit the following page:
+;;
+;;     http://namazu.org/
+
+
+;;; Quick Start:
+
+;; If this module has already been installed, only four steps are
+;; required to search articles with this module.
+;;
+;;   (1) Install Namazu.
+;;
+;;   (2) Put this expression into your ~/.gnus.
+;;
+;;          (gnus-namazu-insinuate)
+;;
+;;   (3) Start Gnus and type M-x gnus-namazu-create-index RET to make
+;;       index of articles.
+;;
+;;   (4) In group buffer or in summary buffer, type C-c C-n query RET.
+
+
+;;; Install:
+
+;; Before installing this module, you must install Namazu.
+;;
+;; When you would like to byte-compile this module in Gnus, put this
+;; file into the lisp/ directory in the Gnus source tree and run `make
+;; install'.  And then, put the following expression into your
+;; ~/.gnus.
+;;
+;;      (gnus-namazu-insinuate)
+;;
+;; In order to make index of articles with Namazu before using this
+;; module, type M-x gnus-namazu-create-index RET.  Otherwise, you can
+;; create index by yourself with the following commands:
+;;
+;;      % mkdir ~/News/namazu
+;;      % mknmz -a -h -O ~/News/namazu ~/Mail ~/News/cache
+;;
+;; The first command makes the directory for index files, and the
+;; second command generates index files of mails and persistent
+;; articles.
+;;
+;; In order to update indices for incoming articles, this module
+;; automatically runs mknmz, the indexer of Namazu, at an interval of
+;; 3 days; this period is set to `gnus-namazu-index-update-interval'.
+;;
+;; Indices will be updated when `gnus-namazu-search' is called.  If
+;; you want to update indices everywhen Gnus is started, you can put
+;; the following expression to your ~/.gnus.
+;;
+;;      (add-hook 'gnus-startup-hook 'gnus-namazu-update-all-indices)
+;;
+;; In order to control mknmz closely, disable the automatic updating
+;; feature and run mknmz by yourself.  In this case, set nil to the
+;; above option.
+;;
+;;      (setq gnus-namazu-index-update-interval nil)
+;;
+;; When your index is put into the directory other than the default
+;; one (~/News/namazu), it is necessary to set its place to
+;; `gnus-namazu-index-directories' as follows:
+;;
+;;      (setq gnus-namazu-index-directories
+;;            (list (expand-file-name "~/namazu")))
+
+
+;;; Code:
+
+(eval-when-compile (require 'cl))
+(require 'nnoo)
+(require 'nnheader)
+(require 'nnmail)
+(require 'gnus-sum)
+
+;; To suppress byte-compile warning.
+(eval-when-compile
+  (defvar nnml-directory)
+  (defvar nnmh-directory))
+
+
+(defgroup gnus-namazu nil
+  "Search nnmh and nnml groups in Gnus with Namazu."
+  :group 'namazu
+  :group 'gnus
+  :prefix "gnus-namazu-")
+
+(defconst gnus-namazu-default-index-directory
+  (expand-file-name "namazu" gnus-directory)
+  "Default place of Namazu index files.")
+
+(defcustom gnus-namazu-index-directories
+  (list
+   (or (and (boundp 'gnus-namazu-index-directory)
+	    (symbol-value 'gnus-namazu-index-directory))
+       (and (boundp 'nnir-namazu-index-directory)
+	    (symbol-value 'nnir-namazu-index-directory))
+       gnus-namazu-default-index-directory))
+  "*Places of Namazu index files."
+  :type '(repeat directory)
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-command
+  (or (and (boundp 'namazu-command)
+	   (symbol-value 'namazu-command))
+      (and (boundp 'nnir-namazu-program)
+	   (symbol-value 'nnir-namazu-program))
+      "namazu")
+  "*Name of the executable file of Namazu."
+  :type 'string
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-command-prefix nil
+  "*Prefix commands to execute Namazu.
+If you put your index on a remote server, set this option as follows:
+
+    (setq gnus-namazu-command-prefix
+          '(\"ssh\" \"-x\" \"remote-server\"))
+
+This makes gnus-namazu execute \"ssh -x remote-server namazu ...\"
+instead of executing \"namazu\" directly."
+  :type '(repeat string)
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-additional-arguments nil
+  "*Additional arguments of Namazu.
+The options `-q', `-a', and `-l' are always used, very few other
+options make any sense in this context."
+  :type '(repeat string)
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-index-update-interval
+  259200				; 3 days == 259200 seconds.
+  "*Number of seconds between running the indexer of Namazu."
+  :type '(choice (const :tag "Never run the indexer" nil)
+		 (integer :tag "Number of seconds"))
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-make-index-command "mknmz"
+  "*Name of the executable file of the indexer of Namazu."
+  :type 'string
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-make-index-arguments
+  (nconc
+   (list "--all" "--mailnews" "--deny=^.*[^0-9].*$")
+   (when (and (boundp 'current-language-environment)
+	      (string= "Japanese"
+		       (symbol-value 'current-language-environment)))
+     (list "--indexing-lang=ja")))
+  "*Arguments of the indexer of Namazu."
+  :type '(repeat string)
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-field-keywords
+  '("date" "from" "newsgroups" "size" "subject" "summary" "to" "uri")
+  "*List of keywords to do field-search."
+  :type '(repeat string)
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-coding-system
+  (if (memq system-type '(windows-nt OS/2 emx))
+      'shift_jis
+    'euc-japan)
+  "*Coding system for Namazu process."
+  :type 'coding-system
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-need-path-normalization
+  (and (memq system-type '(windows-nt OS/2 emx)) t)
+  "*Non-nil means that outputs of namazu may contain drive letters."
+  :type 'boolean
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-case-sensitive-filesystem
+  (not (eq system-type 'windows-nt))
+  "*Non-nil means that the using file system distinguishes cases of characters."
+  :type 'boolean
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-query-highlight t
+  "Non-nil means that queried words is highlighted."
+  :type 'boolean
+  :group 'gnus-namazu)
+
+(defface gnus-namazu-query-highlight-face
+  '((((type tty pc) (class color))
+     (:background "magenta4" :foreground "cyan1"))
+    (((class color) (background light))
+     (:background "magenta4" :foreground "lightskyblue1"))
+    (((class color) (background dark))
+     (:background "palevioletred2" :foreground "brown4"))
+    (t (:inverse-video t)))
+  "Face used for namazu query matching words."
+  :group 'gnus-namazu)
+
+(defcustom gnus-namazu-remote-groups nil
+  "*Alist of regular expressions matching remote groups and their base paths.
+If you use an IMAP server and have a special index, set this option as
+follows:
+
+    (setq gnus-namazu-remote-groups
+          '((\"^nnimap\\\\+server:INBOX\\\\.\" . \"~/Maildir/.\")))
+
+This means that the group \"nnimap+server:INBOX.group\" is placed in
+\"~/Maildir/.group\"."
+  :group 'gnus-namazu
+  :type '(repeat
+	  (cons (regexp :tag "Regexp of group name")
+		(string :tag "Base path of groups")))
+  :set (lambda (symbol value)
+	 (prog1 (set-default symbol value)
+	   (when (featurep 'gnus-namazu)
+	     (gnus-namazu/make-directory-table t)))))
+
+;;; Internal Variable:
+(defconst gnus-namazu/group-name-regexp "\\`nnvirtual:namazu-search\\?")
+
+;; Multibyte group name:
+(and
+ (fboundp 'gnus-group-decoded-name)
+ (let ((gnus-group-name-charset-group-alist
+	(list (cons gnus-namazu/group-name-regexp gnus-namazu-coding-system)))
+       (query (decode-coding-string (string 27 36 66 52 65 59 122 27 40 66)
+				    'iso-2022-7bit)))
+   (not (string-match query
+		      (gnus-summary-buffer-name
+		       (encode-coding-string
+			(concat "nnvirtual:namazu-search?query=" query)
+			gnus-namazu-coding-system)))))
+ (let (current-load-list)
+   (defadvice gnus-summary-buffer-name
+     (before gnus-namazu-summary-buffer-name activate compile)
+     "Advised by `gnus-namazu' to handle encoded group names."
+     (ad-set-arg 0 (gnus-group-decoded-name (ad-get-arg 0))))))
+
+(defmacro gnus-namazu/make-article (group number)
+  `(cons ,group ,number))
+(defmacro gnus-namazu/article-group  (x) `(car ,x))
+(defmacro gnus-namazu/article-number (x) `(cdr ,x))
+
+(defsubst gnus-namazu/indexed-servers ()
+  "Choice appropriate servers from opened ones, and return thier list."
+  (append
+   (gnus-servers-using-backend 'nnml)
+   (gnus-servers-using-backend 'nnmh)))
+
+(defsubst gnus-namazu/default-index-directory ()
+  (if (member gnus-namazu-default-index-directory
+	      gnus-namazu-index-directories)
+      gnus-namazu-default-index-directory
+    (car gnus-namazu-index-directories)))
+
+(defun gnus-namazu/setup ()
+  (and (boundp 'gnus-group-name-charset-group-alist)
+       (not (member (cons gnus-namazu/group-name-regexp
+			  gnus-namazu-coding-system)
+		    gnus-group-name-charset-group-alist))
+       (let ((pair (assoc gnus-namazu/group-name-regexp
+			  gnus-group-name-charset-group-alist)))
+	 (if pair
+	     (setcdr pair gnus-namazu-coding-system)
+	   (push (cons gnus-namazu/group-name-regexp
+		       gnus-namazu-coding-system)
+		 gnus-group-name-charset-group-alist))))
+  (unless gnus-namazu-command-prefix
+    (gnus-namazu-update-all-indices)))
+
+(defun gnus-namazu/server-directory (server)
+  "Return the top directory of the server SERVER."
+  (and (memq (car server) '(nnml nnmh))
+       (nnoo-change-server (car server) (nth 1 server) (nthcdr 2 server))
+       (file-name-as-directory
+	(expand-file-name (if (eq 'nnml (car server))
+			      nnml-directory
+			    nnmh-directory)))))
+
+;;; Functions to call Namazu.
+(defsubst gnus-namazu/normalize-results ()
+  "Normalize file names returned by Namazu in this current buffer."
+  (goto-char (point-min))
+  (while (not (eobp))
+    (when (looking-at "file://")
+      (delete-region (point) (match-end 0)))
+    (when (if gnus-namazu-need-path-normalization
+	      (or (not (looking-at "/\\(.\\)|/"))
+		  (replace-match "\\1:/"))
+	    (eq ?~ (char-after (point))))
+      (insert (expand-file-name
+	       (buffer-substring (point-at-bol) (point-at-eol))))
+      (delete-region (point) (point-at-eol)))
+    (forward-line 1)))
+
+(defsubst gnus-namazu/call-namazu (query)
+  (let ((coding-system-for-read gnus-namazu-coding-system)
+	(coding-system-for-write gnus-namazu-coding-system)
+	(default-process-coding-system
+	  (cons gnus-namazu-coding-system gnus-namazu-coding-system))
+	program-coding-system-alist
+	(file-name-coding-system gnus-namazu-coding-system)
+	(commands
+	 (append gnus-namazu-command-prefix
+		 (list gnus-namazu-command
+		       "-q"		; don't be verbose
+		       "-a"		; show all matches
+		       "-l")		; use list format
+		 gnus-namazu-additional-arguments
+		 (list query)
+		 gnus-namazu-index-directories)))
+    (apply 'call-process (car commands) nil t nil (cdr commands))))
+
+(defvar gnus-namazu/directory-table nil)
+(defun gnus-namazu/make-directory-table (&optional force)
+  (interactive (list t))
+  (unless (and (not force)
+	       gnus-namazu/directory-table
+	       (eq gnus-namazu-case-sensitive-filesystem
+		   (car gnus-namazu/directory-table)))
+    (let ((table (make-vector (length gnus-newsrc-hashtb) 0))
+	  cache agent alist dir method)
+      (mapatoms
+       (lambda (group)
+	 (unless (gnus-ephemeral-group-p (setq group (symbol-name group)))
+	   (when (file-directory-p
+		  (setq dir (file-name-as-directory
+			     (gnus-cache-file-name group ""))))
+	     (push (cons dir group) cache))
+	   (when (file-directory-p
+		  (setq dir (gnus-agent-group-pathname group)))
+	     (push (cons dir group) agent))
+	   (when (memq (car (setq method (gnus-find-method-for-group group)))
+		       '(nnml nnmh))
+	     (when (file-directory-p
+		    (setq dir (nnmail-group-pathname
+			       (gnus-group-short-name group)
+			       (gnus-namazu/server-directory method))))
+	       (push (cons dir group) alist)))
+	   (dolist (pair gnus-namazu-remote-groups)
+	     (when (string-match (car pair) group)
+	       (setq dir (nnmail-group-pathname
+			  (substring group (match-end 0))
+			  "/"))
+	       (push (cons (concat (cdr pair)
+				   ;; nnmail-group-pathname() on some
+				   ;; systems returns pathnames which
+				   ;; have drive letters at their top.
+				   (substring dir (1+ (string-match "/" dir))))
+			   group)
+		     alist)))))
+       gnus-newsrc-hashtb)
+      (dolist (pair (nconc agent cache alist))
+	(set (intern (if gnus-namazu-case-sensitive-filesystem
+			 (car pair)
+		       (downcase (car pair)))
+		     table)
+	     (cdr pair)))
+      (setq gnus-namazu/directory-table
+	    (cons gnus-namazu-case-sensitive-filesystem table)))))
+
+(defun gnus-namazu/search (groups query)
+  (gnus-namazu/make-directory-table)
+  (with-temp-buffer
+    (let ((exit-status (gnus-namazu/call-namazu query)))
+      (unless (zerop exit-status)
+	(error "Namazu finished abnormally: %d" exit-status)))
+    (gnus-namazu/normalize-results)
+    (goto-char (point-min))
+    (let (articles group)
+      (while (not (eobp))
+	(setq group (buffer-substring-no-properties
+		     (point)
+		     (progn
+		       (end-of-line)
+		       ;; NOTE: Only numeric characters are permitted
+		       ;; as file names of articles.
+		       (skip-chars-backward "0-9")
+		       (point))))
+	(and (setq group
+		   (symbol-value
+		    (intern-soft (if gnus-namazu-case-sensitive-filesystem
+				     group
+				   (downcase group))
+				 (cdr gnus-namazu/directory-table))))
+	     (or (not groups)
+		 (member group groups))
+	     (push (gnus-namazu/make-article
+		    group
+		    (string-to-number
+		     (buffer-substring-no-properties (point)
+						     (point-at-eol))))
+		   articles))
+	(forward-line 1))
+      (nreverse articles))))
+
+;;; User Interface:
+(defun gnus-namazu/get-target-groups ()
+  (cond
+   ((eq major-mode 'gnus-group-mode)
+    ;; In Group buffer.
+    (cond
+     (current-prefix-arg
+      (gnus-group-process-prefix current-prefix-arg))
+     (gnus-group-marked
+      (prog1 gnus-group-marked (gnus-group-unmark-all-groups)))))
+   ((eq major-mode 'gnus-summary-mode)
+    ;; In Summary buffer.
+    (if current-prefix-arg
+	(list (gnus-read-group "Group: "))
+      (if (and
+	   (gnus-ephemeral-group-p gnus-newsgroup-name)
+	   (string-match gnus-namazu/group-name-regexp gnus-newsgroup-name))
+	  (cadr (assq 'gnus-namazu-target-groups
+		      (gnus-info-method (gnus-get-info gnus-newsgroup-name))))
+	(list gnus-newsgroup-name))))))
+
+(defun gnus-namazu/get-current-query ()
+  (and (eq major-mode 'gnus-summary-mode)
+       (gnus-ephemeral-group-p gnus-newsgroup-name)
+       (string-match gnus-namazu/group-name-regexp gnus-newsgroup-name)
+       (cadr (assq 'gnus-namazu-current-query
+		   (gnus-info-method (gnus-get-info gnus-newsgroup-name))))))
+
+(defvar gnus-namazu/read-query-original-buffer nil)
+(defvar gnus-namazu/read-query-prompt nil)
+(defvar gnus-namazu/read-query-history nil)
+
+(defun gnus-namazu/get-current-subject ()
+  (and gnus-namazu/read-query-original-buffer
+       (bufferp gnus-namazu/read-query-original-buffer)
+       (with-current-buffer gnus-namazu/read-query-original-buffer
+	 (when (eq major-mode 'gnus-summary-mode)
+	   (let ((s (gnus-summary-article-subject)))
+	     ;; Remove typically prefixes of mailing lists.
+	     (when (string-match
+		    "^\\(\\[[^]]*[0-9]+\\]\\|([^)]*[0-9]+)\\)\\s-*" s)
+	       (setq s (substring s (match-end 0))))
+	     (when (string-match
+		    "^\\(Re\\(\\^?\\([0-9]+\\|\\[[0-9]+\\]\\)\\)?:\\s-*\\)+" s)
+	       (setq s (substring s (match-end 0))))
+	     (when (string-match "\\s-*(\\(re\\|was\\)\\b" s)
+	       (setq s (substring s 0 (match-beginning 0))))
+	     s)))))
+
+(defun gnus-namazu/get-current-from ()
+  (and gnus-namazu/read-query-original-buffer
+       (bufferp gnus-namazu/read-query-original-buffer)
+       (with-current-buffer gnus-namazu/read-query-original-buffer
+	 (when (eq major-mode 'gnus-summary-mode)
+	   (cadr (mail-extract-address-components
+		  (mail-header-from
+		   (gnus-summary-article-header))))))))
+
+(defun gnus-namazu/get-current-to ()
+  (and gnus-namazu/read-query-original-buffer
+       (bufferp gnus-namazu/read-query-original-buffer)
+       (with-current-buffer gnus-namazu/read-query-original-buffer
+	 (when (eq major-mode 'gnus-summary-mode)
+	   (cadr (mail-extract-address-components
+		  (cdr (assq 'To (mail-header-extra
+				  (gnus-summary-article-header))))))))))
+
+(defmacro gnus-namazu/minibuffer-prompt-end ()
+  (if (fboundp 'minibuffer-prompt-end)
+      '(minibuffer-prompt-end)
+    '(point-min)))
+
+(defun gnus-namazu/message (string &rest arguments)
+  (let* ((s1 (concat
+	      gnus-namazu/read-query-prompt
+	      (buffer-substring (gnus-namazu/minibuffer-prompt-end)
+				(point-max))))
+	 (s2 (apply (function format) string arguments))
+	 (w (- (window-width)
+	       (string-width s1)
+	       (string-width s2)
+	       1)))
+    (message (if (>= w 0)
+		 (concat s1 (make-string w ?\ ) s2)
+	       s2))
+    (if (sit-for 0.3) (message s1))
+    s2))
+
+(defun gnus-namazu/complete-query ()
+  (interactive)
+  (let ((pos (point)))
+    (cond
+     ((and (re-search-backward "\\+\\([-a-z]*\\)" nil t)
+	   (= pos (match-end 0)))
+      (let* ((partial (match-string 1))
+	     (completions
+	      (all-completions
+	       partial
+	       (mapcar 'list gnus-namazu-field-keywords))))
+	(cond
+	 ((null completions)
+	  (gnus-namazu/message "No completions of %s" partial))
+	 ((= 1 (length completions))
+	  (goto-char (match-beginning 1))
+	  (delete-region (match-beginning 1) (match-end 1))
+	  (insert (car completions) ":")
+	  (setq pos (point))
+	  (gnus-namazu/message "Completed"))
+	 (t
+	  (let ((x (try-completion partial (mapcar 'list completions))))
+	    (if (string= x partial)
+		(if (and (eq last-command
+			     'gnus-namazu/field-keyword-completion)
+			 completion-auto-help)
+		    (with-output-to-temp-buffer "*Completions*"
+		      (display-completion-list completions))
+		  (gnus-namazu/message "Sole completion"))
+	      (goto-char (match-beginning 1))
+	      (delete-region (match-beginning 1) (match-end 1))
+	      (insert x)
+	      (setq pos (point))))))))
+     ((and (looking-at "\\+subject:")
+	   (= pos (match-end 0)))
+      (let ((s (gnus-namazu/get-current-subject)))
+	(when s
+	  (goto-char pos)
+	  (insert "\"" s "\"")
+	  (setq pos (point)))))
+     ((and (looking-at "\\+from:")
+	   (= pos (match-end 0)))
+      (let ((f (gnus-namazu/get-current-from)))
+	(when f
+	  (goto-char pos)
+	  (insert "\"" f "\"")
+	  (setq pos (point)))))
+     ((and (looking-at "\\+to:")
+	   (= pos (match-end 0)))
+      (let ((to (gnus-namazu/get-current-to)))
+	(when to
+	  (goto-char pos)
+	  (insert "\"" to "\"")
+	  (setq pos (point))))))
+    (goto-char pos)))
+
+(defvar gnus-namazu/read-query-map
+  (let ((keymap (copy-keymap minibuffer-local-map)))
+    (define-key keymap "\t" 'gnus-namazu/complete-query)
+    keymap))
+
+(defun gnus-namazu/read-query (prompt &optional initial)
+  (let ((gnus-namazu/read-query-original-buffer (current-buffer))
+	(gnus-namazu/read-query-prompt prompt))
+    (unless initial
+      (when (setq initial (gnus-namazu/get-current-query))
+	(setq initial (cons initial 0))))
+    (read-from-minibuffer prompt initial gnus-namazu/read-query-map nil
+			  'gnus-namazu/read-query-history)))
+
+(defun gnus-namazu/highlight-words (query)
+  (with-temp-buffer
+    (insert " " query)
+    ;; Remove tokens for NOT search
+    (goto-char (point-min))
+    (while (re-search-forward "[$B!!(B \t\r\f\n]+not[$B!!(B \t\r\f\n]+\
+\\([^$B!!(B \t\r\f\n\"{(/]+\\|\"[^\"]+\"\\|{[^}]+}\\|([^)]+)\\|/[^/]+/\\)+" nil t)
+      (delete-region (match-beginning 0) (match-end 0)))
+    ;; Remove tokens for Field search
+    (goto-char (point-min))
+    (while (re-search-forward "[$B!!(B \t\r\f\n]+\\+[^$B!!(B \t\r\f\n:]+:\
+\\([^$B!!(B \t\r\f\n\"{(/]+\\|\"[^\"]+\"\\|{[^}]+}\\|([^)]+)\\|/[^/]+/\\)+" nil t)
+      (delete-region (match-beginning 0) (match-end 0)))
+    ;; Remove tokens for Regexp search
+    (goto-char (point-min))
+    (while (re-search-forward "/[^/]+/" nil t)
+      (delete-region (match-beginning 0) (match-end 0)))
+    ;; Remove brackets, double quote, asterisk and operators
+    (goto-char (point-min))
+    (while (re-search-forward "\\([(){}\"*]\\|\\b\\(and\\|or\\)\\b\\)" nil t)
+      (delete-region (match-beginning 0) (match-end 0)))
+    ;; Collect all keywords
+    (setq query nil)
+    (goto-char (point-min))
+    (while (re-search-forward "[^$B!!(B \t\r\f\n]+" nil t)
+      (push (match-string 0) query))
+    (when query
+      (let (en ja)
+	(dolist (q query)
+	  (if (string-match "\\cj" q)
+	      (push q ja)
+	    (push q en)))
+	(append
+	 (when en
+	   (list (list (concat "\\b\\(" (regexp-opt en) "\\)\\b")
+		       0 0 'gnus-namazu-query-highlight-face)))
+	 (when ja
+	   (list (list (regexp-opt ja)
+		       0 0 'gnus-namazu-query-highlight-face))))))))
+
+(defun gnus-namazu/truncate-article-list (articles)
+  (let ((hit (length articles)))
+    (when (and gnus-large-newsgroup
+	       (> hit gnus-large-newsgroup))
+      (let* ((cursor-in-echo-area nil)
+	     (input (read-from-minibuffer
+		     (format "\
+Too many articles were retrieved.  How many articles (max %d): "
+			     hit)
+		     (cons (number-to-string gnus-large-newsgroup) 0))))
+	(unless (string-match "\\`[ \t]*\\'" input)
+	  (setcdr (nthcdr (min (1- (string-to-number input)) hit) articles)
+		  nil)))))
+  articles)
+
+;;;###autoload
+(defun gnus-namazu-search (groups query)
+  "Search QUERY through GROUPS with Namazu,
+and make a virtual group contains its results."
+  (interactive
+   (list
+    (gnus-namazu/get-target-groups)
+    (gnus-namazu/read-query "Enter query: ")))
+  (gnus-namazu/setup)
+  (let ((articles (gnus-namazu/search groups query)))
+    (if articles
+	(let ((real-groups groups)
+	      (vgroup
+	       (apply (function format)
+		      "nnvirtual:namazu-search?query=%s&groups=%s&id=%d%d%d"
+		      query
+		      (if groups (mapconcat 'identity groups ",") "ALL")
+		      (current-time))))
+	  (gnus-namazu/truncate-article-list articles)
+	  (unless real-groups
+	    (dolist (a articles)
+	      (add-to-list 'real-groups (gnus-namazu/article-group a))))
+	  ;; Generate virtual group which includes all results.
+	  (when (fboundp 'gnus-group-decoded-name)
+	    (setq vgroup
+		  (encode-coding-string vgroup gnus-namazu-coding-system)))
+	  (setq vgroup
+		(gnus-group-read-ephemeral-group
+		 vgroup
+		 `(nnvirtual ,vgroup
+			     (nnvirtual-component-groups ,real-groups)
+			     (gnus-namazu-target-groups ,groups)
+			     (gnus-namazu-current-query ,query))
+		 t (cons (current-buffer) (current-window-configuration)) t))
+	  (when gnus-namazu-query-highlight
+	    (gnus-group-set-parameter vgroup 'highlight-words
+				      (gnus-namazu/highlight-words query)))
+	  ;; Generate new summary buffer which contains search results.
+	  (gnus-group-read-group
+	   t t vgroup
+	   (sort (delq nil ;; Ad-hoc fix, to avoid wrong-type-argument error.
+		       (mapcar
+			(lambda (a)
+			  (nnvirtual-reverse-map-article
+			   (gnus-namazu/article-group a)
+			   (gnus-namazu/article-number a)))
+			articles))
+		 '<)))
+      (message "No entry."))))
+
+(defmacro gnus-namazu/lock-file-name (&optional directory)
+  `(expand-file-name "NMZ.lock2" ,directory))
+
+(defmacro gnus-namazu/status-file-name (&optional directory)
+  `(expand-file-name "NMZ.status" ,directory))
+
+(defmacro gnus-namazu/index-file-name (&optional directory)
+  `(expand-file-name "NMZ.i" ,directory))
+
+(defun gnus-namazu/mknmz-cleanup (directory)
+  (let ((lockfile (gnus-namazu/lock-file-name directory)))
+    (when (file-exists-p lockfile)
+      (delete-file lockfile)
+      (dolist (tmpfile (directory-files directory t "\\`NMZ\\..*\\.tmp\\'" t))
+	(delete-file tmpfile)))))
+
+;;;###autoload
+(defun gnus-namazu-create-index (directory &optional target-directories force)
+  "Create index under DIRECTORY."
+  (interactive
+   (list
+    (if (and current-prefix-arg (> (length gnus-namazu-index-directories) 1))
+	(completing-read "Directory: "
+			 (mapcar 'list gnus-namazu-index-directories) nil t)
+      (gnus-namazu/default-index-directory))
+    nil t))
+  (setq directory (file-name-as-directory (expand-file-name directory)))
+  (unless target-directories
+    (setq target-directories
+	  (delq nil
+		(mapcar (lambda (dir)
+			  (when (file-directory-p dir) dir))
+			(append
+			 (mapcar 'gnus-namazu/server-directory
+				 (gnus-namazu/indexed-servers))
+			 (list
+			  (expand-file-name gnus-cache-directory)
+			  (expand-file-name gnus-agent-directory)))))))
+  (if (file-exists-p (gnus-namazu/lock-file-name directory))
+      (when force
+	(error "Found lock file: %s" (gnus-namazu/lock-file-name directory)))
+    (with-current-buffer
+	(get-buffer-create (concat " *mknmz*" directory))
+      (erase-buffer)
+      (unless (file-directory-p directory)
+	(make-directory directory t))
+      (setq default-directory directory)
+      (let ((args (append gnus-namazu-make-index-arguments
+			  target-directories)))
+	(insert "% " gnus-namazu-make-index-command " "
+		(mapconcat 'identity args " ") "\n")
+	(goto-char (point-max))
+	(when force
+	  (pop-to-buffer (current-buffer)))
+	(message "Make index at %s..." directory)
+	(unwind-protect
+	    (apply 'call-process gnus-namazu-make-index-command nil t t args)
+	  (gnus-namazu/mknmz-cleanup directory))
+	(message "Make index at %s...done" directory)
+	(unless force
+	  (kill-buffer (current-buffer)))))
+    (gnus-namazu/make-directory-table t)))
+
+(defun gnus-namazu/lapse-seconds (start end)
+  "Return lapse seconds from START to END.
+START and END are lists which represent time in Emacs-style."
+  (+ (* (- (car end) (car start)) 65536)
+     (cadr end)
+     (- (cadr start))))
+
+(defun gnus-namazu/index-old-p (directory)
+  "Return non-nil value when the index under the DIRECTORY is older
+than the period that is set to `gnus-namazu-index-update-interval'"
+  (let ((file (gnus-namazu/index-file-name directory)))
+    (or (not (file-exists-p file))
+	(and (integerp gnus-namazu-index-update-interval)
+	     (>= (gnus-namazu/lapse-seconds
+		  (nth 5 (file-attributes file))
+		  (current-time))
+		 gnus-namazu-index-update-interval)))))
+
+(defvar gnus-namazu/update-directories nil)
+(defvar gnus-namazu/update-process nil)
+
+(defun gnus-namazu/update-p (directory &optional force)
+  "Return the DIRECTORY when the index undef the DIRECTORY should be updated."
+  (setq directory (file-name-as-directory (expand-file-name directory)))
+  (labels ((error-message (format &rest args)
+			  (apply (if force 'error 'message) format args)
+			  nil))
+    (if gnus-namazu/update-process
+	(error-message "%s" "Can not run two update processes simultaneously")
+      (and (or force
+	       (gnus-namazu/index-old-p directory))
+	   (let ((status-file (gnus-namazu/status-file-name directory)))
+	     (or (file-exists-p status-file)
+		 (error-message "Can not find status file: %s" status-file)))
+	   (let ((lock-file (gnus-namazu/lock-file-name directory)))
+	     (or (not (file-exists-p lock-file))
+		 (error-message "Found lock file: %s" lock-file)))
+	   directory))))
+
+;;;###autoload
+(defun gnus-namazu-update-index (directory &optional force)
+  "Update the index under the DIRECTORY."
+  (interactive
+   (list
+    (if (and current-prefix-arg (> (length gnus-namazu-index-directories) 1))
+	(completing-read "Directory: "
+			 (mapcar 'list gnus-namazu-index-directories) nil t)
+      (gnus-namazu/default-index-directory))
+    t))
+  (when (setq directory (gnus-namazu/update-p directory force))
+    (with-current-buffer (get-buffer-create (concat " *mknmz*" directory))
+      (buffer-disable-undo)
+      (erase-buffer)
+      (unless (file-directory-p directory)
+	(make-directory directory t))
+      (setq default-directory directory)
+      (let ((proc (start-process gnus-namazu-make-index-command
+				 (current-buffer)
+				 gnus-namazu-make-index-command
+				 (format "--update=%s" directory))))
+	(if (processp proc)
+	    (prog1 (setq gnus-namazu/update-process proc)
+	      (process-kill-without-query proc)
+	      (set-process-sentinel proc 'gnus-namazu/update-sentinel)
+	      (add-hook 'kill-emacs-hook 'gnus-namazu-stop-update)
+	      (message "Update index at %s..." directory))
+	  (goto-char (point-min))
+	  (if (re-search-forward "^ERROR:.*$" nil t)
+	      (progn
+		(pop-to-buffer (current-buffer))
+		(funcall (if force 'error 'message)
+			 "Update index at %s...%s" directory (match-string 0)))
+	    (kill-buffer (current-buffer))
+	    (funcall (if force 'error 'message)
+		     "Can not start %s" gnus-namazu-make-index-command))
+	  nil)))))
+
+;;;###autoload
+(defun gnus-namazu-update-all-indices (&optional force)
+  "Update all indices which is set to `gnus-namazu-index-directories'."
+  (interactive (list t))
+  (gnus-namazu-update-indices gnus-namazu-index-directories force))
+
+(defun gnus-namazu-update-indices (&optional directories force)
+  (when (setq directories
+	      (delq nil (mapcar (lambda (d)
+				  (gnus-namazu/update-p d force))
+				directories)))
+    (setq gnus-namazu/update-directories (cons force (cdr directories)))
+    (gnus-namazu-update-index (car directories) force)))
+
+(defun gnus-namazu/update-sentinel (process event)
+  (let ((buffer (process-buffer process)))
+    (when (buffer-name buffer)
+      (with-current-buffer buffer
+	(gnus-namazu/mknmz-cleanup default-directory)
+	(goto-char (point-min))
+	(cond
+	 ((re-search-forward "^ERROR:.*$" nil t)
+	  (pop-to-buffer (current-buffer))
+	  (message "Update index at %s...%s"
+		   default-directory (match-string 0))
+	  (setq gnus-namazu/update-directories nil))
+	 ((and (eq 'exit (process-status process))
+	       (zerop (process-exit-status process)))
+	  (message "Update index at %s...done" default-directory)
+	  (unless (or debug-on-error debug-on-quit)
+	    (kill-buffer buffer)))))))
+  (setq gnus-namazu/update-process nil)
+  (unless (gnus-namazu-update-indices (cdr gnus-namazu/update-directories)
+				      (car gnus-namazu/update-directories))
+    (gnus-namazu/make-directory-table t)))
+
+;;;###autoload
+(defun gnus-namazu-stop-update ()
+  "Stop the running indexer of Namazu."
+  (interactive)
+  (setq gnus-namazu/update-directories nil)
+  (and gnus-namazu/update-process
+       (processp gnus-namazu/update-process)
+       (kill-process gnus-namazu/update-process)))
+
+(let (current-load-list)
+  (defadvice gnus-offer-save-summaries
+    (before gnus-namazu-kill-summary-buffers activate compile)
+    "Advised by `gnus-namazu'.
+In order to avoid annoying questions, kill summary buffers which
+generated by `gnus-namazu' itself before `gnus-offer-save-summaries'
+is called."
+    (let ((buffers (buffer-list)))
+      (while buffers
+	(when (with-current-buffer (car buffers)
+		(and (eq major-mode 'gnus-summary-mode)
+		     (gnus-ephemeral-group-p gnus-newsgroup-name)
+		     (string-match gnus-namazu/group-name-regexp
+				   gnus-newsgroup-name)))
+	  (kill-buffer (car buffers)))
+	(setq buffers (cdr buffers))))))
+
+;;;###autoload
+(defun gnus-namazu-insinuate ()
+  (add-hook
+   'gnus-group-mode-hook
+   (lambda ()
+     (define-key gnus-group-mode-map "\C-c\C-n" 'gnus-namazu-search)))
+  (add-hook
+   'gnus-summary-mode-hook
+   (lambda ()
+     (define-key gnus-summary-mode-map "\C-c\C-n" 'gnus-namazu-search))))
+
+(provide 'gnus-namazu)
+
+;;; arch-tag: a6814a35-593a-4563-8157-a2b762c29ed8
+;; gnus-namazu.el ends here.
Index: gnus/contrib/gpg-ring.el
diff -u gnus/contrib/gpg-ring.el:7.1 gnus/contrib/gpg-ring.el:7.3
--- gnus/contrib/gpg-ring.el:7.1	Sun Jan  4 22:50:49 2004
+++ gnus/contrib/gpg-ring.el	Fri May 21 02:16:54 2004
@@ -7,8 +7,6 @@
 ;; Keywords: crypto
 ;; Created: 2000-04-28
 
-;; $Id: gpg-ring.el,v 7.1 2004/01/04 21:50:49 larsi Exp $
-
 ;; This file is NOT (yet?) part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
@@ -480,4 +478,5 @@
 
 (provide 'gpg-ring)
 
+;;; arch-tag: a4c5b2d1-aff0-4ab6-96e9-267727226c2d
 ;;; gpg-ring.el ends here
Index: gnus/contrib/gpg.el
diff -u gnus/contrib/gpg.el:7.1 gnus/contrib/gpg.el:7.4
--- gnus/contrib/gpg.el:7.1	Sun Jan  4 22:50:49 2004
+++ gnus/contrib/gpg.el	Wed Jan 26 09:54:32 2005
@@ -7,8 +7,6 @@
 ;; Keywords: crypto
 ;; Created: 2000-04-15
 
-;; $Id: gpg.el,v 7.1 2004/01/04 21:50:49 larsi Exp $
-
 ;; This file is NOT (yet?) part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
@@ -108,7 +106,9 @@
 
 ;;; Code:
 
-(require 'timer)
+(if (featurep 'xemacs)
+    (require 'timer-funcs)
+  (require 'timer))
 (eval-when-compile (require 'cl))
 
 (eval-and-compile 
@@ -117,6 +117,21 @@
 	'point-at-eol
       'line-end-position)))
 
+;; itimer/timer compatibility
+(eval-and-compile
+  (if (featurep 'xemacs)
+      (progn
+	(defalias 'gpg-cancel-timer 'delete-itimer)
+	(defalias 'gpg-timer-activate 'activate-itimer)
+	(defalias 'gpg-timer-create 'make-itimer)
+	(defalias 'gpg-timer-set-function 'set-itimer-function)
+	(defalias 'gpg-timer-set-time 'set-itimer-value))
+    (defalias 'gpg-cancel-timer 'cancel-timer)
+    (defalias 'gpg-timer-activate 'timer-activate)
+    (defalias 'gpg-timer-create 'timer-create)
+    (defalias 'gpg-timer-set-function 'timer-set-function)
+    (defalias 'gpg-timer-set-time 'timer-set-time)))
+
 ;;;; Customization:
 
 ;;; Customization: Groups:
@@ -781,7 +796,7 @@
 ;;; Passphrase handling:
 
 (defvar gpg-passphrase-timer
-  (timer-create)
+  (gpg-timer-create)
   "This timer will clear the passphrase cache periodically.")
 
 (defvar gpg-passphrase
@@ -801,7 +816,7 @@
   "Forget stored passphrase."
   (interactive)
   (when gpg-passphrase
-    (cancel-timer gpg-passphrase-timer)
+    (gpg-cancel-timer gpg-passphrase-timer)
     (setq gpg-passphrase-timer nil)
     (gpg-passphrase-clear-string gpg-passphrase)
     (setq gpg-passphrase nil)))
@@ -811,14 +826,14 @@
 Updates the timeout for clearing the cache to `gpg-passphrase-timeout'."
   (unless (equal gpg-passphrase-timeout 0)
     (if (null gpg-passphrase-timer)
-	(setq gpg-passphrase-timer (timer-create)))
-    (timer-set-time gpg-passphrase-timer 
-		    (timer-relative-time (current-time) 
-					 gpg-passphrase-timeout))
-    (timer-set-function gpg-passphrase-timer 'gpg-passphrase-forget)
+	(setq gpg-passphrase-timer (gpg-timer-create)))
+    (gpg-timer-set-time gpg-passphrase-timer 
+			(timer-relative-time (current-time) 
+					     gpg-passphrase-timeout))
+    (gpg-timer-set-function gpg-passphrase-timer 'gpg-passphrase-forget)
     (unless (and (fboundp 'itimer-live-p)
 		 (itimer-live-p gpg-passphrase-timer))
-      (timer-activate gpg-passphrase-timer))
+      (gpg-timer-activate gpg-passphrase-timer))
     (setq gpg-passphrase passphrase))
   passphrase)
 
@@ -1321,4 +1336,5 @@
 
 (provide 'gpg)
 
+;;; arch-tag: c972455d-9bc5-4de1-9dc7-4f494d63053b
 ;;; gpg.el ends here
Index: gnus/contrib/hashcash.el
diff -u gnus/contrib/hashcash.el:7.1 gnus/contrib/hashcash.el:removed
--- gnus/contrib/hashcash.el:7.1	Sun Jan  4 22:50:49 2004
+++ gnus/contrib/hashcash.el	Sun May  1 19:04:56 2005
@@ -1,208 +0,0 @@
-;;; hashcash.el --- Add hashcash payments to email
-
-;; $Revision: 7.1 $
-;; Copyright (C) 2003 Free Software Foundation
-;; Copyright (C) 1997--2002 Paul E. Foley
-
-;; Maintainer: Paul Foley <mycroft@actrix.gen.nz>
-;; Keywords: mail, hashcash
-
-;; Released under the GNU General Public License
-;;   (http://www.gnu.org/licenses/gpl.html)
-
-;;; Commentary:
-
-;; The hashcash binary is at http://www.cypherspace.org/hashcash/
-;;
-;; Call mail-add-payment to add a hashcash payment to a mail message
-;; in the current buffer.
-;;
-;; To automatically add payments to all outgoing mail:
-;;    (add-hook 'message-send-hook 'mail-add-payment)
-
-;;; Code:
-
-(eval-and-compile
- (autoload 'executable-find "executable"))
-
-(defcustom hashcash-default-payment 0
-  "*The default number of bits to pay to unknown users.
-If this is zero, no payment header will be generated.
-See `hashcash-payment-alist'."
-  :type 'integer)
-
-(defcustom hashcash-payment-alist '()
-  "*An association list mapping email addresses to payment amounts.
-Elements may consist of (ADDR AMOUNT) or (ADDR STRING AMOUNT), where
-ADDR is the email address of the intended recipient and AMOUNT is
-the value of hashcash payment to be made to that user.  STRING, if
-present, is the string to be hashed; if not present ADDR will be used.")
-
-(defcustom hashcash-default-accept-payment 10
-  "*The default minimum number of bits to accept on incoming payments."
-  :type 'integer)
-
-(defcustom hashcash-accept-resources `((,user-mail-address nil))
-  "*An association list mapping hashcash resources to payment amounts.
-Resources named here are to be accepted in incoming payments.  If the
-corresponding AMOUNT is NIL, the value of `hashcash-default-accept-payment'
-is used instead.")
-
-(defcustom hashcash-path (executable-find "hashcash")
-  "*The path to the hashcash binary.")
-
-(defcustom hashcash-double-spend-database "hashcash.db"
-  "*The path to the double-spending database.")
-
-(defcustom hashcash-in-news nil
-  "*Specifies whether or not hashcash payments should be made to newsgroups."
-  :type 'boolean)
-
-(require 'mail-utils)
-
-(eval-and-compile
- (if (fboundp 'point-at-bol)
-     (defalias 'hashcash-point-at-bol 'point-at-bol)
-   (defalias 'hashcash-point-at-bol 'line-beginning-position))
-
- (if (fboundp 'point-at-eol)
-     (defalias 'hashcash-point-at-eol 'point-at-eol)
-   (defalias 'hashcash-point-at-eol 'line-end-position)))
-
-(defun hashcash-strip-quoted-names (addr)
-  (setq addr (mail-strip-quoted-names addr))
-  (if (and addr (string-match "\\`\\([^+@]+\\)\\+[^@]*\\(@.+\\)" addr))
-      (concat (match-string 1 addr) (match-string 2 addr))
-    addr))
-
-(defun hashcash-payment-required (addr)
-  "Return the hashcash payment value required for the given address."
-  (let ((val (assoc addr hashcash-payment-alist)))
-    (or (nth 2 val) (nth 1 val) hashcash-default-payment)))
-
-(defun hashcash-payment-to (addr)
-  "Return the string with which hashcash payments should collide."
-  (let ((val (assoc addr hashcash-payment-alist)))
-    (or (nth 1 val) (nth 0 val) addr)))
-
-(defun hashcash-generate-payment (str val)
-  "Generate a hashcash payment by finding a VAL-bit collison on STR."
-  (if (> val 0)
-      (save-excursion
-	(set-buffer (get-buffer-create " *hashcash*"))
-	(erase-buffer)
-	(call-process hashcash-path nil t nil
-		      "-m" "-q" "-b" (number-to-string val) str)
-	(goto-char (point-min))
-	(buffer-substring (hashcash-point-at-bol) (hashcash-point-at-eol)))
-    nil))
-
-(defun hashcash-check-payment (token str val)
-  "Check the validity of a hashcash payment."
-  (zerop (call-process hashcash-path nil nil nil "-c"
-		       "-d" "-f" hashcash-double-spend-database
-		       "-b" (number-to-string val)
-		       "-r" str
-		       token)))
-
-(defun hashcash-version (token)
-  "Find the format version of a hashcash token."
-  ;; Version 1.2 looks like n:yymmdd:rrrrr:xxxxxxxxxxxxxxxx
-  ;;   This carries its own version number embedded in the token,
-  ;;   so no further format number changes should be necessary
-  ;;   in the X-Payment header.
-  ;;
-  ;; Version 1.1 looks like yymmdd:rrrrr:xxxxxxxxxxxxxxxx
-  ;;   You need to upgrade your hashcash binary.
-  ;;
-  ;; Version 1.0 looked like nnnnnrrrrrxxxxxxxxxxxxxxxx
-  ;;   This is no longer supported.
-  (cond ((equal (aref token 1) ?:) 1.2)
-	((equal (aref token 6) ?:) 1.1)
-	(t (error "Unknown hashcash format version"))))
-
-;;;###autoload
-(defun hashcash-insert-payment (arg)
-  "Insert X-Payment and X-Hashcash headers with a payment for ARG"
-  (interactive "sPay to: ")
-  (let ((pay (hashcash-generate-payment (hashcash-payment-to arg)
-					(hashcash-payment-required arg))))
-    (when pay
-;      (insert-before-markers "X-Payment: hashcash "
-;			     (number-to-string (hashcash-version pay)) " "
-;			     pay "\n")
-      (insert-before-markers "X-Hashcash: " pay "\n"))))
-
-;;;###autoload
-(defun hashcash-verify-payment (token &optional resource amount)
-  "Verify a hashcash payment"
-  (let ((key (if (< (hashcash-version token) 1.2)
-		 (nth 1 (split-string token ":"))
-		 (nth 2 (split-string token ":")))))
-    (cond ((null resource)
-	   (let ((elt (assoc key hashcash-accept-resources)))
-	     (and elt (hashcash-check-payment token (car elt)
-			(or (cadr elt) hashcash-default-accept-payment)))))
-	  ((equal token key)
-	   (hashcash-check-payment token resource
-				(or amount hashcash-default-accept-payment)))
-	  (t nil))))
-
-;;;###autoload
-(defun mail-add-payment (&optional arg)
-  "Add X-Payment: and X-Hashcash: headers with a hashcash payment
-for each recipient address.  Prefix arg sets default payment temporarily."
-  (interactive "P")
-  (let ((hashcash-default-payment (if arg (prefix-numeric-value arg)
-				    hashcash-default-payment))
-	(addrlist nil))
-    (save-excursion
-      (save-restriction
-	(goto-char (point-min))
-	(search-forward mail-header-separator)
-	(beginning-of-line)
-	(narrow-to-region (point-min) (point))
-	(let ((to (hashcash-strip-quoted-names (mail-fetch-field "To" nil t)))
-	      (cc (hashcash-strip-quoted-names (mail-fetch-field "Cc" nil t)))
-	      (ng (hashcash-strip-quoted-names (mail-fetch-field "Newsgroups"
-								 nil t))))
-	  (when to
-	    (setq addrlist (split-string to ",[ \t\n]*")))
-	  (when cc
-	    (setq addrlist (nconc addrlist (split-string cc ",[ \t\n]*"))))
-	  (when (and hashcash-in-news ng)
-	    (setq addrlist (nconc addrlist (split-string ng ",[ \t\n]*")))))
-	(when addrlist
-	  (mapcar #'hashcash-insert-payment addrlist))))) ; mapc
-  t)
-
-;;;###autoload
-(defun mail-check-payment (&optional arg)
-  "Look for a valid X-Payment: or X-Hashcash: header.
-Prefix arg sets default accept amount temporarily."
-  (interactive "P")
-  (let ((hashcash-default-accept-payment (if arg (prefix-numeric-value arg)
-					   hashcash-default-accept-payment))
-	(version (hashcash-version (hashcash-generate-payment "x" 1))))
-    (save-excursion
-      (goto-char (point-min))
-      (search-forward "\n\n")
-      (beginning-of-line)
-      (let ((end (point))
-	    (ok nil))
-	(goto-char (point-min))
-	(while (and (not ok) (search-forward "X-Payment: hashcash " end t))
-	  (let ((value (split-string
-			  (buffer-substring (point) (hashcash-point-at-eol))
-			  " ")))
-	    (when (equal (car value) (number-to-string version))
-	      (setq ok (hashcash-verify-payment (cadr value))))))
-	(goto-char (point-min))
-	(while (and (not ok) (search-forward "X-Hashcash: " end t))
-	  (setq ok (hashcash-verify-payment
-		    (buffer-substring (point) (hashcash-point-at-eol)))))
-	(when ok
-	  (message "Payment valid"))
-	ok))))
-
-(provide 'hashcash)
Index: gnus/contrib/nnir.el
diff -u gnus/contrib/nnir.el:7.4 gnus/contrib/nnir.el:7.6
--- gnus/contrib/nnir.el:7.4	Mon Apr  5 16:20:07 2004
+++ gnus/contrib/nnir.el	Fri May 21 02:16:54 2004
@@ -298,9 +298,6 @@
 
 ;;; Setup Code:
 
-(defconst nnir-version "$Id: nnir.el,v 7.4 2004/04/05 14:20:07 rsteib Exp $"
-  "Version of NNIR.")
-
 (require 'cl)
 (require 'nnoo)
 (require 'gnus-group)
@@ -1556,3 +1553,5 @@
 
 ;; The end.
 (provide 'nnir)
+
+;;; arch-tag: 9b3fecf8-4397-4bbb-bf3c-6ac3cbbc6664
Index: gnus/contrib/ssl.el
diff -u gnus/contrib/ssl.el:7.1 gnus/contrib/ssl.el:7.3
--- gnus/contrib/ssl.el:7.1	Sun Jan  4 22:50:49 2004
+++ gnus/contrib/ssl.el	Fri May 21 02:16:54 2004
@@ -1,7 +1,4 @@
 ;;; ssl.el --- ssl functions for emacsen without them builtin
-;; Author: $Author: larsi $
-;; Created: $Date: 2004/01/04 21:50:49 $
-;; Version: $Revision: 7.1 $
 ;; Keywords: comm
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -199,3 +196,5 @@
     proc))
 
 (provide 'ssl)
+
+;;; arch-tag: 659fae92-1c67-4055-939f-32153c2f5114
Index: gnus/contrib/starttls.el
diff -u gnus/contrib/starttls.el:7.2 gnus/contrib/starttls.el:removed
--- gnus/contrib/starttls.el:7.2	Fri Jan 23 08:45:04 2004
+++ gnus/contrib/starttls.el	Sun May  1 19:04:56 2005
@@ -1,227 +0,0 @@
-;;; starttls.el --- STARTTLS support via wrapper around GNU TLS
-
-;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-
-;; Author: Simon Josefsson <simon@josefsson.org>
-;; Keywords: comm, tls, gnutls, ssl
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; This package implements a simple wrapper around the GNU TLS command
-;; line application "gnutls-cli" to make Emacs support STARTTLS.  It
-;; is backwards compatible (same API functions) with the "starttls.el"
-;; that is part of Emacs 21 written by Daiki Ueno <ueno@unixuser.org>.
-;; (That version used an external program "starttls" that isn't widely
-;; installed, and was based on OpenSSL.)
-
-;; This package require GNUTLS 0.9.90 (released 2003-10-08) or later.
-
-;; Usage is similar to `open-network-stream'.  Evaluating the following:
-;;
-;; (progn
-;;   (setq tmp (open-starttls-stream "test" (current-buffer) "mail.example.com" 143))
-;;   (process-send-string tmp ". starttls\n")
-;;   (sit-for 4)
-;;   (message "STARTTLS output:\n%s" (negotiate-starttls tmp))
-;;   (process-send-string tmp ". capability\n"))
-;;
-;; in, e.g., the *scratch* buffer, yields the following output:
-;;
-;; * OK imap.example.com Cyrus IMAP4 v2.1.15 server ready
-;; . OK Begin TLS negotiation now
-;; * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA ...
-;; . OK Completed
-;; nil
-;;
-;; And the message buffer contains:
-;;
-;; STARTTLS output:
-;; *** Starting TLS handshake
-;; - Server's trusted authorities:
-;;    [0]: O=Sendmail,OU=Sendmail Server,CN=imap.example.com,EMAIL=admin@imap.example.com
-;; - Certificate type: X.509
-;;  - Got a certificate list of 1 certificates.
-;;
-;;  - Certificate[0] info:
-;;  # The hostname in the certificate matches 'imap.example.com'.
-;;  # valid since: Wed Aug 28 12:47:00 CEST 2002
-;;  # expires at: Thu Aug 28 12:47:00 CEST 2003
-;;  # serial number: 00
-;;  # fingerprint: 06 3f 25 cb 44 aa 5c 1e 79 d7 63 86 f8 b1 9a cf
-;;  # version: #3
-;;  # public key algorithm: RSA
-;;  #   Modulus: 1024 bits
-;;  # Subject's DN: O=Sendmail,OU=Sendmail Server,CN=imap.example.com,EMAIL=admin@imap.example.com
-;;  # Issuer's DN: O=Sendmail,OU=Sendmail Server,CN=imap.example.com,EMAIL=admin@imap.example.com
-;;
-;;
-;; - Peer's certificate issuer is unknown
-;; - Peer's certificate is NOT trusted
-;; - Version: TLS 1.0
-;; - Key Exchange: RSA
-;; - Cipher: ARCFOUR 128
-;; - MAC: SHA
-;; - Compression: NULL
-
-;; Revision history:
-;;
-;; 2003-09-20: Added to Gnus CVS.
-;; 2003-10-02: Minor fixes.
-;; 2003-11-15: Cleanup, and posted to gnu.emacs.sources.
-;; 2003-11-28: Fixes variable name conflicts, various other fixes, posted g.e.s.
-
-;;; Code:
-
-(defgroup starttls nil
-  "Negotiated Transport Layer Security (STARTTLS) parameters."
-  :group 'comm)
-
-(defcustom starttls-file-name "gnutls-cli"
-  "Name of the program to run in a subprocess to open an STARTTLS connection.
-The program should read input on stdin, write output to stdout,
-and initiate TLS negotiation when receiving the SIGALRM signal.
-Also see `starttls-connect', `starttls-failure', and
-`starttls-success' for what the program should output after
-initial connection and successful negotiation respectively."
-  :type 'string
-  :group 'starttls)
-
-(defcustom starttls-extra-arguments nil
-  "List of extra arguments to `starttls-file-name'.
-E.g., (\"--protocols\" \"ssl3\")."
-  :type '(repeat string)
-  :group 'starttls)
-
-(defcustom starttls-process-connection-type nil
-  "*Value for `process-connection-type' to use when starting STARTTLS process."
-  :type 'boolean
-  :group 'starttls)
-
-(defcustom starttls-connect "- Simple Client Mode:\n\n"
-  "*Regular expression indicating successful connection.
-The default is what GNUTLS's \"gnutls-cli\" outputs."
-  ;; GNUTLS cli.c:main() print this string when it is starting to run
-  ;; in the application read/write phase.  If the logic, or the string
-  ;; itself, is modified, this must be updated.
-  :type 'regexp
-  :group 'starttls)
-
-(defcustom starttls-failure "\\*\\*\\* Handshake has failed"
-  "*Regular expression indicating failed TLS handshake.
-The default is what GNUTLS's \"gnutls-cli\" outputs."
-  ;; GNUTLS cli.c:do_handshake() print this string on failure.  If the
-  ;; logic, or the string itself, is modified, this must be updated.
-  :type 'regexp
-  :group 'starttls)
-
-(defcustom starttls-success "- Compression: "
-  "*Regular expression indicating completed TLS handshakes.
-The default is what GNUTLS's \"gnutls-cli\" outputs."
-  ;; GNUTLS cli.c:do_handshake() calls, on success,
-  ;; common.c:print_info(), that unconditionally print this string
-  ;; last.  If that logic, or the string itself, is modified, this
-  ;; must be updated.
-  :type 'regexp
-  :group 'starttls)
-
-(defun negotiate-starttls (process)
-  "Negotiate TLS on process opened by `open-starttls-stream'.
-This should typically only be done once.  It typically return a
-multi-line informational message with information about the
-handshake, or NIL on failure."
-  (let (buffer info old-max done-ok done-bad)
-    (if (null (setq buffer (process-buffer process)))
-	;; XXX How to remove/extract the TLS negotiation junk?
-	(signal-process (process-id process) 'SIGALRM)
-      (with-current-buffer buffer
-	(save-excursion
-	  (setq old-max (goto-char (point-max)))
-	  (signal-process (process-id process) 'SIGALRM)
-	  (while (and (processp process)
-		      (eq (process-status process) 'run)
-		      (save-excursion
-			(goto-char old-max)
-			(not (or (setq done-ok (re-search-forward
-						starttls-success nil t))
-				 (setq done-bad (re-search-forward
-						 starttls-failure nil t))))))
-	    (accept-process-output process 1 100)
-	    (sit-for 0.1))
-	  (setq info (buffer-substring-no-properties old-max (point-max)))
-	  (delete-region old-max (point-max))
-	  (if (or (and done-ok (not done-bad))
-		  ;; Prevent mitm that fake success msg after failure msg.
-		  (and done-ok done-bad (< done-ok done-bad)))
-	      info
-	    (message "STARTTLS negotiation failed: %s" info)
-	    nil))))))
-
-(defun open-starttls-stream (name buffer host service)
-  "Open a TLS connection for a service to a host.
-Returns a subprocess-object to represent the connection.
-Input and output work as for subprocesses; `delete-process' closes it.
-Args are NAME BUFFER HOST SERVICE.
-NAME is name for process.  It is modified if necessary to make it unique.
-BUFFER is the buffer (or buffer-name) to associate with the process.
- Process output goes at end of that buffer, unless you specify
- an output stream or filter function to handle the output.
-Third arg is name of the host to connect to, or its IP address.
-Fourth arg SERVICE is name of the service desired, or an integer
-specifying a port number to connect to."
-  (message "Opening STARTTLS connection to `%s'..." host)
-  (let* (done
-	 (old-max (with-current-buffer buffer (point-max)))
-	 (process-connection-type starttls-process-connection-type)
-	 (process (apply #'start-process name buffer
-			 starttls-file-name "-s" host
-			 "-p" (if (integerp service)
-				  (int-to-string service)
-				service)
-			 starttls-extra-arguments)))
-    (process-kill-without-query process)
-    (while (and (processp process)
-		(eq (process-status process) 'run)
-		(save-excursion
-		  (set-buffer buffer)
-		  (goto-char old-max)
-		  (not (setq done (re-search-forward
-				   starttls-connect nil t)))))
-      (accept-process-output process 0 100)
-      (sit-for 0.1))
-    (if done
-	(with-current-buffer buffer
-	  (delete-region old-max done))
-      (delete-process process)
-      (setq process nil))
-    (message "Opening STARTTLS connection to `%s'...%s"
-	     host (if done "done" "failed"))
-    process))
-
-;; Compatibility with starttls.el by Daiki Ueno <ueno@unixuser.org>:
-(defvaralias 'starttls-program 'starttls-file-name)
-(make-obsolete-variable 'starttls-program 'starttls-file-name)
-(defvaralias 'starttls-extra-args 'starttls-extra-arguments)
-(make-obsolete-variable 'starttls-extra-args 'starttls-extra-arguments)
-(defalias 'starttls-open-stream 'open-starttls-stream)
-(defalias 'starttls-negotiate 'negotiate-starttls)
-
-(provide 'starttls)
-
-;;; starttls.el ends here
Index: gnus/contrib/ucs-tables.el
diff -u gnus/contrib/ucs-tables.el:7.1 gnus/contrib/ucs-tables.el:7.2
--- gnus/contrib/ucs-tables.el:7.1	Sun Jan  4 22:50:49 2004
+++ gnus/contrib/ucs-tables.el	Thu May 20 10:02:35 2004
@@ -2476,4 +2476,5 @@
 
 (provide 'ucs-tables)
 
+;;; arch-tag: b497e22b-7fe1-486a-9352-e2d7f7d76a76
 ;;; ucs-tables.el ends here
Index: gnus/contrib/vcard.el
diff -u gnus/contrib/vcard.el:7.1 gnus/contrib/vcard.el:7.3
--- gnus/contrib/vcard.el:7.1	Sun Jan  4 22:50:49 2004
+++ gnus/contrib/vcard.el	Fri May 21 02:16:54 2004
@@ -7,8 +7,6 @@
 ;; Keywords: extensions
 ;; Created: 1997-09-27
 
-;; $Id: vcard.el,v 7.1 2004/01/04 21:50:49 larsi Exp $
-
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation; either version 2, or (at your option)
@@ -307,4 +305,5 @@
 
 (provide 'vcard)
 
+;;; arch-tag: 64df032f-e54c-4cfb-9e8c-8bead284f61b
 ;;; vcard.el ends here
Index: gnus/contrib/xml.el
diff -u gnus/contrib/xml.el:7.1 gnus/contrib/xml.el:7.2
--- gnus/contrib/xml.el:7.1	Sun Jan  4 22:50:49 2004
+++ gnus/contrib/xml.el	Thu May 20 10:02:35 2004
@@ -498,4 +498,5 @@
 
 (provide 'xml)
 
+;; arch-tag: 5864b283-5a68-4b59-a20d-36a72b353b9b
 ;;; xml.el ends here
Index: gnus/etc/.cvsignore
diff -u gnus/etc/.cvsignore:7.1 gnus/etc/.cvsignore:7.2
--- gnus/etc/.cvsignore:7.1	Sun Jan  4 22:50:51 2004
+++ gnus/etc/.cvsignore	Thu Sep  2 16:50:23 2004
@@ -1,5 +1 @@
 Makefile
-gnus
-message
-smilies
-sounds
Index: gnus/etc/Makefile.in
diff -u gnus/etc/Makefile.in:7.1 gnus/etc/Makefile.in:7.8
--- gnus/etc/Makefile.in:7.1	Sun Jan  4 22:50:51 2004
+++ gnus/etc/Makefile.in	Sun Feb 20 00:11:31 2005
@@ -13,8 +13,6 @@
 INSTALL_DATA = @INSTALL_DATA@
 SHELL = /bin/sh
 
-all: 
-
 install: 
 	$(SHELL) $(top_srcdir)/mkinstalldirs $(etcdir)
 	cd $(srcdir) \
@@ -22,15 +20,15 @@
 	  echo " $(INSTALL_DATA) $$p $(etcdir)/$$p"; \
 	  $(INSTALL_DATA) $$p $(etcdir)/$$p; \
 	done
-	$(SHELL) $(top_srcdir)/mkinstalldirs $(etcdir)/gnus
+	$(SHELL) $(top_srcdir)/mkinstalldirs $(etcdir)/images/gnus
 	cd $(srcdir) \
-	&& for p in gnus/*.xpm gnus/*.pbm gnus/*.xbm gnus/x-splash; do \
+	&& for p in images/gnus/*.xpm images/gnus/*.pbm images/gnus/*.xbm images/gnus/x-splash; do \
 	  echo " $(INSTALL_DATA) $$p $(etcdir)/$$p"; \
 	  $(INSTALL_DATA) $$p $(etcdir)/$$p; \
 	done
-	$(SHELL) $(top_srcdir)/mkinstalldirs $(etcdir)/smilies
+	$(SHELL) $(top_srcdir)/mkinstalldirs $(etcdir)/images/smilies
 	cd $(srcdir) \
-	&& for p in smilies/*.pbm smilies/*.xpm; do \
+	&& for p in images/smilies/*.pbm images/smilies/*.xpm; do \
 	  echo " $(INSTALL_DATA) $$p $(etcdir)/$$p"; \
 	  $(INSTALL_DATA) $$p $(etcdir)/$$p; \
 	done
@@ -38,15 +36,16 @@
 uninstall: 
 	rm -f $(etcdir)/gnus-tut.txt
 	cd $(srcdir) \
-	&& for p in gnus/*.xpm gnus/*.pbm gnus/*.xbm gnus/x-splash; do \
+	&& for p in images/gnus/*.xpm images/gnus/*.pbm images/gnus/*.xbm images/gnus/x-splash; do \
 	  rm -f "$(etcdir)/$$p"; \
 	done
-	rmdir $(etcdir)/gnus 2> /dev/null || true
+	rmdir $(etcdir)/images/gnus 2> /dev/null || true
 	cd $(srcdir) \
-	&& for p in smilies/*.pbm smilies/*.xpm; do \
+	&& for p in images/smilies/*.pbm images/smilies/*.xpm; do \
 	  rm -f "$(etcdir)/$$p"; \
 	done
-	rmdir $(etcdir)/smilies 2> /dev/null || true
+	rmdir $(etcdir)/images/smilies 2> /dev/null || true
+	rmdir $(etcdir)/images 2> /dev/null || true
 
 Makefile: $(srcdir)/Makefile.in ../config.status
 	cd .. \
Index: gnus/etc/gnus/bar.xbm
diff -u gnus/etc/gnus/bar.xbm:7.1 gnus/etc/gnus/bar.xbm:removed
--- gnus/etc/gnus/bar.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/bar.xbm	Sun May  1 19:04:56 2005
@@ -1,7 +0,0 @@
-#define noname_width 6
-#define noname_height 48
-static char noname_bits[] = {
- 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
- 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
- 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
- 0x0c,0x0c,0x0c};
Index: gnus/etc/gnus/bar.xpm
diff -u gnus/etc/gnus/bar.xpm:7.1 gnus/etc/gnus/bar.xpm:removed
--- gnus/etc/gnus/bar.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/bar.xpm	Sun May  1 19:04:56 2005
@@ -1,54 +0,0 @@
-/* XPM */
-static char * picon-bar_xpm[] = {
-"6 48 2 1",
-" 	c white s background",
-".	c black",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  ",
-"  ..  "};
Index: gnus/etc/gnus/catchup.pbm
Index: gnus/etc/gnus/catchup.xpm
diff -u gnus/etc/gnus/catchup.xpm:7.1 gnus/etc/gnus/catchup.xpm:removed
--- gnus/etc/gnus/catchup.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/catchup.xpm	Sun May  1 19:04:56 2005
@@ -1,33 +0,0 @@
-/* XPM */
-static char * catchup_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #FFFFFFFFFFFF",
-"X	c #E1E1E0E0E0E0",
-"o	c #A5A5A5A59595",
-"O	c #999999999999",
-"+	c #000000000000",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"            .           ",
-"         .  .X          ",
-"       ...  .oX  .      ",
-"     ..oooX.oXo  .X     ",
-"    .oooXXXX..oXXoXX    ",
-"    .oXXXX.XoX.oXooX    ",
-"     X...X.X.XX.XoXX    ",
-"     Xo..X.XXX.XXXX     ",
-"   . Xo.oXX..XXXXXX     ",
-"OOOOXoXXXXXo.XXXXX++OOOO",
-"OOOOOX..X.XXXXXXXX++OOOO",
-"OOOOOX..XXXXXXXXX++OOOOO",
-"OOOOOOXXXXXXXXX+++OOOOOO",
-"OOOOOOOOOXXXX++++OOOOOOO",
-"OOOOOOOOO+++++OOOOOOOOOO",
-"OOOOOOOOOO+OOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOOOOOOOOOO"};
Index: gnus/etc/gnus/cu-exit.pbm
Index: gnus/etc/gnus/cu-exit.xpm
diff -u gnus/etc/gnus/cu-exit.xpm:7.1 gnus/etc/gnus/cu-exit.xpm:removed
--- gnus/etc/gnus/cu-exit.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/cu-exit.xpm	Sun May  1 19:04:56 2005
@@ -1,31 +0,0 @@
-/* XPM */
-static char * cu_exit_xpm[] = {
-"24 24 4 1",
-" 	c None",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"           .....        ",
-"        .. .XXX.        ",
-"      ..X..XXXX...      ",
-"     .XXXX.XXXX.X...    ",
-"    ..XXXX.XXX.XXX..    ",
-"     .XXX..........     ",
-"     .XXX.XXX.XXX..     ",
-"      .XX.XXX.XXX.      ",
-"      .XX.XXX.XX..      ",
-"      ............      ",
-"       .X.X.X.X..       ",
-"ooooooo..........ooooooo",
-"ooooooo.X.X.X.X.oooooooo",
-"ooooooo.........oooooooo",
-"ooooooo..X...X..oooooooo",
-"ooooooo...X.X...oooooooo",
-"ooooooo........ooooooooo",
-"ooooooooo.....oooooooooo",
-"oooooooooooooooooooooooo"};
Index: gnus/etc/gnus/describe-group.pbm
Index: gnus/etc/gnus/describe-group.xpm
diff -u gnus/etc/gnus/describe-group.xpm:7.1 gnus/etc/gnus/describe-group.xpm:removed
--- gnus/etc/gnus/describe-group.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/describe-group.xpm	Sun May  1 19:04:56 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char * describe_group_xpm[] = {
-"24 24 5 1",
-".	c None",
-" 	c #000000000000",
-"o	c #FFFFF5F5ACAC",
-"+	c #E1E1E0E0E0E0",
-"@	c #C7C7C6C6C6C6",
-"........................",
-"........................",
-".................oooo...",
-" .. .. .. .. .. oo oo o.",
-"..............oooooooooo",
-".............ooooooooooo",
-" .. .. .. .. oo oo oo oo",
-"............oooooooooooo",
-"............oooooooooooo",
-" .. .. .. .. oo oo oo oo",
-"............oooooooooooo",
-"............oooooooooooo",
-" .. .. .. .. oo oo oo oo",
-"............oooooooooooo",
-".....    ...oooooooooooo",
-" ..   ++  .. .o oo oo oo",
-"...  @@@+  ....ooooooooo",
-"...     @  ....oooooooo.",
-" .         . .. .. .. ..",
-".         ..............",
-"        ................",
-"       .. .. .. .. .. ..",
-"      ..................",
-"    ...................."};
Index: gnus/etc/gnus/exit-gnus.pbm
Index: gnus/etc/gnus/exit-gnus.xpm
diff -u gnus/etc/gnus/exit-gnus.xpm:7.1 gnus/etc/gnus/exit-gnus.xpm:removed
--- gnus/etc/gnus/exit-gnus.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/exit-gnus.xpm	Sun May  1 19:04:56 2005
@@ -1,33 +0,0 @@
-/* XPM */
-static char * exit_gnus_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #8686ADAD7D7D",
-"X	c #919187876969",
-"o	c #C2C2B9B99C9C",
-"O	c #A8A8F0F0ECEC",
-"+	c #EFEFEFEFEFEF",
-"                        ",
-"     ....  .            ",
-"        .. .. .         ",
-"  .............         ",
-"   . . . ....           ",
-"     .............      ",
-"  .............. ..     ",
-"  . . ..........  .     ",
-"      .XXXX... ..       ",
-"       o.XXX. . ..      ",
-"      oo.X. ..  ...     ",
-"     ooX. . ...         ",
-"     oXo.     ..        ",
-"    ooX      . .        ",
-"    ooX                 ",
-"OOOOoXXOOOOOOOOOOOOOOOOO",
-"OOOoXoXOOOOOOOOOOOOOOOOO",
-"OOOooXXOOOO+OOOOOOOOOOOO",
-"O+OoooXOO+OOO+OO+OOO+OOO",
-"OXXoXoXoXOO++O++OO++OO+O",
-"XXXXXXXXXXXX+OOOOOOOOOOO",
-"XXXXXXXXXXXXXX+O++OO++OO",
-"XXXXXXXXXXXXXXXXOOOOOOOO",
-"O++O++++O+OO++OOOO++OOO+"};
Index: gnus/etc/gnus/exit-summ.pbm
Index: gnus/etc/gnus/exit-summ.xpm
diff -u gnus/etc/gnus/exit-summ.xpm:7.1 gnus/etc/gnus/exit-summ.xpm:removed
--- gnus/etc/gnus/exit-summ.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/exit-summ.xpm	Sun May  1 19:04:56 2005
@@ -1,30 +0,0 @@
-/* XPM */
-static char * exit_summ_xpm[] = {
-"24 24 3 1",
-".	c None",
-" 	c #000000000000",
-"X	c #E1E1E0E0E0E0",
-" .. .. .. .. .. .. .. ..",
-"........................",
-"........................",
-" .. ..             .. ..",
-"......  XXXX       .....",
-"......  XXXXXXX    .....",
-" .. .. XX XX XX    .. ..",
-"...... XXXXXXXX    .....",
-"......  XXXXXXX    .....",
-" .. ..  X XX       .. ..",
-"......  XXXX       .....",
-"......  XXXX       .....",
-" .. ..  X XXXXX    .. ..",
-"......  XXXXXXX    .....",
-"...... XXXXX XX    .....",
-" .. ..  X XXXXX    .. ..",
-"......  XXXXX      .....",
-"......  X          .....",
-" .. . .            .. ..",
-"........................",
-"........................",
-" .. .. .. .. .. .. .. ..",
-"........................",
-"........................"};
Index: gnus/etc/gnus/followup.pbm
Index: gnus/etc/gnus/followup.xpm
diff -u gnus/etc/gnus/followup.xpm:7.1 gnus/etc/gnus/followup.xpm:removed
--- gnus/etc/gnus/followup.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/followup.xpm	Sun May  1 19:04:56 2005
@@ -1,31 +0,0 @@
-/* XPM */
-static char * followup_xpm[] = {
-"24 24 4 1",
-" 	c None",
-".	c #A5A5A5A59595",
-"X	c #C7C7C6C6C6C6",
-"o	c #E1E1E0E0E0E0",
-"                        ",
-"          .             ",
-"        ..X.            ",
-"      ..XXX.            ",
-"    ..XXXXXo.           ",
-" ...XXXXXXooo.  .       ",
-" .o.XXXXXooooo..X.      ",
-" .oo.XXXoooo..XXX.      ",
-" .oo..Xooo..XXXXXo.     ",
-" .oo.XX...XXXXXXooo.    ",
-" .o.Xoo.o.XXXXXoooo.    ",
-"  .XXoo.oo.XXXoooooo.   ",
-"  .Xooo.oo..XXooooooo.  ",
-"   .ooo.oo.XXooooooooo. ",
-"   .ooo.o.XoooooooooooX.",
-"    .ooo.XXoooooooooooo.",
-"    .ooo.Xoooooooooooo. ",
-"     .ooo.ooooooooooo.  ",
-"     .oo..oooooooooo.   ",
-"      ..  .ooooooo..    ",
-"          .oooooo.      ",
-"           .ooo..       ",
-"           .oo.         ",
-"            ..          "};
Index: gnus/etc/gnus/fuwo.pbm
Index: gnus/etc/gnus/fuwo.xpm
diff -u gnus/etc/gnus/fuwo.xpm:7.1 gnus/etc/gnus/fuwo.xpm:removed
--- gnus/etc/gnus/fuwo.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/fuwo.xpm	Sun May  1 19:04:56 2005
@@ -1,31 +0,0 @@
-/* XPM */
-static char * fuwo_xpm[] = {
-"24 24 4 1",
-" 	c None",
-".	c #A5A5A5A59595",
-"X	c #C7C7C6C6C6C6",
-"o	c #E1E1E0E0E0E0",
-"                        ",
-"          .             ",
-"        .. .            ",
-"      ..   .            ",
-"    ..      .           ",
-" ...         .  .       ",
-" . .          ..X.      ",
-" .  .       ..XXX.      ",
-" .  ..    ..XXXXXo.     ",
-" .  .  ...XXXXXXooo.    ",
-" . .X  .o.XXXXXoooo.    ",
-"  .XX  .oo.XXXoooooo.   ",
-"  .X   .oo..XXooooooo.  ",
-"   .   .oo.XXooooooooo. ",
-"   .   .o.XoooooooooooX.",
-"    .   .XXoooooooooooo.",
-"    .   .Xoooooooooooo. ",
-"     .   .ooooooooooo.  ",
-"     .  ..oooooooooo.   ",
-"      ..  .ooooooo..    ",
-"          .oooooo.      ",
-"           .ooo..       ",
-"           .oo.         ",
-"            ..          "};
Index: gnus/etc/gnus/get-news.pbm
Index: gnus/etc/gnus/get-news.xpm
diff -u gnus/etc/gnus/get-news.xpm:7.1 gnus/etc/gnus/get-news.xpm:removed
--- gnus/etc/gnus/get-news.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/get-news.xpm	Sun May  1 19:04:56 2005
@@ -1,31 +0,0 @@
-/* XPM */
-static char * get_news_xpm[] = {
-"24 24 4 1",
-".	c None",
-"X	c #A5A5A5A59595",
-"o	c #E1E1E0E0E0E0",
-"O	c #C7C7C6C6C6C6",
-"........................",
-"........................",
-"........................",
-".....XXX................",
-"...XXoooXXXXX...........",
-"XXXoooooXXoooX.XXX......",
-"XoXooXXXooooXXXoooX.....",
-"XooXoXoXooXXXoooooX.....",
-"XooXXXooXoXoXooooooX....",
-"XooXOXooXXXooXooooooX...",
-"XoXOOXooXOXooXXooooooX..",
-"OXOOOXoXOOXooXoooooooX..",
-"OXOooOXOOOXoXOooooooooX.",
-".OXooOXOooOXOOooooooooX.",
-".OXoooOXooOXOooooooooooX",
-"..OXooOXoooOXooooooooooX",
-"..OXooOOXooOXooooooooooX",
-"...OXooOXoooOXoooooooXXX",
-"...OXooXOXooOXooooooXOO.",
-"....OXXOOXooXOXoooXXO...",
-".....OO..OXXOOXooXOO....",
-"..........OO..OXXO......",
-"...............OO.......",
-"........................"};
Index: gnus/etc/gnus/gnntg.pbm
Index: gnus/etc/gnus/gnntg.xpm
diff -u gnus/etc/gnus/gnntg.xpm:7.1 gnus/etc/gnus/gnntg.xpm:removed
--- gnus/etc/gnus/gnntg.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnntg.xpm	Sun May  1 19:04:56 2005
@@ -1,31 +0,0 @@
-/* XPM */
-static char * gnntg_xpm[] = {
-"24 24 4 1",
-" 	c None",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #C7C7C6C6C6C6",
-"                        ",
-" .......                ",
-" .XXXXX.                ",
-" .XXXXX.       ...      ",
-" .XXXXX...    .ooo.     ",
-" .XXXXX....  ..ooo..    ",
-" .XXXXX..o.. ..ooo..    ",
-" .XXXXX...o.. ..o..     ",
-" .XXXXX. ..o........    ",
-" .XXXXX.  ..oooooooo.   ",
-" .......   .oooooooo..  ",
-"            .ooooo..o.  ",
-"             .oooo..o.  ",
-"             .oooo..o.  ",
-"             .oooo..o.  ",
-"             .oooo..o.  ",
-"             .........  ",
-"            ......oo.   ",
-"            .ooooo...   ",
-"            .oo..o...   ",
-"            .oo..o..    ",
-"            ........    ",
-"            .... ...    ",
-"            ...  ...    "};
Index: gnus/etc/gnus/gnus-group-catchup-current-up.xbm
diff -u gnus/etc/gnus/gnus-group-catchup-current-up.xbm:7.1 gnus/etc/gnus/gnus-group-catchup-current-up.xbm:removed
--- gnus/etc/gnus/gnus-group-catchup-current-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-catchup-current-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x20,0x40,0x10,0x20,0x0a,0x15,0x85,0x0a,0x20,0x20,0x28,0x50,0x8a,0x8a,0x02,
- 0x05,0x10,0x5e,0x54,0xa8,0xa5,0x35,0x01,0x7a,0x00,0x33,0x54,0x95,0xaa,0xaa,
- 0x02,0xcc,0xfe,0x17,0xa8,0xd8,0x01,0xac,0xfa,0x4f,0x3d,0xf8,0x05,0x30,0x22,
- 0x80,0xf6,0x60,0x2b,0xfc,0x8f,0x20,0x11,0x82,0xca,0x60,0x1a,0x2a,0x6e,0x28,
- 0x08,0x85,0x42,0x68,0xfa,0x11,0x28,0xc8,0x04,0x8b,0xe2,0xb7,0x06,0x21,0x14,
- 0xd4,0x1a,0x11,0x31,0x04,0x31,0x56,0x6d,0xdc,0x58,0xea,0xc7,0x28,0x64,0x66,
- 0x60,0xa9,0x57,0x72,0x90,0x49,0xc8,0xec,0x5f,0x99,0xa6,0x7f,0x95,0x52,0xaa,
- 0x64,0x22,0xbf,0x49,0x2a,0xa9,0x7e,0x92,0x52,0x55,0x55,0x54,0x49,0x4a,0xa4,
- 0x49,0xaa,0xa4,0x4a,0x2a,0x49,0x2a,0x25};
Index: gnus/etc/gnus/gnus-group-catchup-current-up.xpm
diff -u gnus/etc/gnus/gnus-group-catchup-current-up.xpm:7.1 gnus/etc/gnus/gnus-group-catchup-current-up.xpm:removed
--- gnus/etc/gnus/gnus-group-catchup-current-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-catchup-current-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-catchup_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #999999999999",
-"o	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"         ....                   ",
-"        .XXXX.             .... ",
-"        .XXXX.            .XXXX.",
-"         .XXX.            .XXXX.",
-" .........XX.              .XXX.",
-".ooooooooo..       .........XX. ",
-".o....ooooo...... .ooooooooo..  ",
-"X.   .ooooooooo.X..o....ooooo.  ",
-"X.   .oooo........X.   .ooooo.  ",
-".   .oooo.       .X.   .ooooo.  ",
-"    .oooo.       ..   .oooo.o.  ",
-"   .oooo.             .oooo.o.  ",
-"   ......            .ooooo.oo..",
-"  .ooooo.            ...... ..X.",
-"  .ooooo.           .ooooo.   ..",
-" .o..ooo.           ..oooo.     ",
-".ooo..ooo.XXXXXXXXX.o..ooo.XXXXX",
-"ooo.XX.oo.XXX......ooo..ooo.XXXX",
-"oo.XXX.oo.XXX..oooooo.XX.oo.XXXX",
-"..XXXX.oo.XXX..ooooo.XXX.oo.XXXX",
-"XXXXXXX.oo.XX.......XXX .oo.XXXX",
-"XXXXXXX.....X..XXXXXXXXXX.oo.XXX",
-"XXXXXXXXXXXXX.XXXXXXXXXXX.....XX",
-"XXXXXXXXXXXXXXXXXXXXXXXXX......X",
-"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"};
Index: gnus/etc/gnus/gnus-group-catchup-current.xbm
diff -u gnus/etc/gnus/gnus-group-catchup-current.xbm:7.1 gnus/etc/gnus/gnus-group-catchup-current.xbm:removed
--- gnus/etc/gnus/gnus-group-catchup-current.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-catchup-current.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x84,0x20,0x00,0x04,0x21,0x88,0x54,0x51,0x84,0x22,0x02,0x04,0x51,0x88,0xa0,
- 0x42,0x04,0x1f,0x0a,0x28,0x51,0x75,0xa1,0x7a,0x04,0x23,0x04,0xcc,0xa1,0x76,
- 0xa9,0xa6,0xfe,0x1b,0x00,0xd8,0x01,0x0c,0xfd,0x5f,0x3d,0xf8,0x05,0x30,0x26,
- 0x80,0xf7,0x60,0x33,0xfc,0xdb,0x20,0x11,0x22,0x8e,0x20,0x14,0x8a,0x66,0x68,
- 0x09,0x45,0x48,0x28,0xfc,0x11,0x21,0xc8,0x04,0x45,0xf4,0xf7,0x06,0x89,0x10,
- 0xc4,0x1a,0x23,0x35,0x2c,0x31,0xaa,0x6c,0x54,0x58,0xea,0xc7,0x48,0x64,0x66,
- 0xa0,0x99,0x57,0x72,0x50,0x59,0xc8,0xec,0x2f,0x49,0xa6,0x7f,0xaa,0x52,0xaa,
- 0x64,0x49,0xbf,0x49,0x2a,0xa5,0x7e,0x92,0xa4,0x14,0x55,0xa9,0x52,0xaa,0x92,
- 0x4a,0xa5,0x24,0x25,0xa5,0x94,0xaa,0xa8};
Index: gnus/etc/gnus/gnus-group-catchup-current.xpm
diff -u gnus/etc/gnus/gnus-group-catchup-current.xpm:7.1 gnus/etc/gnus/gnus-group-catchup-current.xpm:removed
--- gnus/etc/gnus/gnus-group-catchup-current.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-catchup-current.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-catchup_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF",
-".	c #000000000000",
-"X	c #999999999999",
-"o	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"         ....                   ",
-"        .XXXX.             .... ",
-"        .XXXX.            .XXXX.",
-"         .XXX.            .XXXX.",
-" .........XX.              .XXX.",
-".ooooooooo..       .........XX. ",
-".o....ooooo...... .ooooooooo..  ",
-"X.   .ooooooooo.X..o....ooooo.  ",
-"X.   .oooo........X.   .ooooo.  ",
-".   .oooo.       .X.   .ooooo.  ",
-"    .oooo.       ..   .oooo.o.  ",
-"   .oooo.             .oooo.o.  ",
-"   ......            .ooooo.oo..",
-"  .ooooo.            ...... ..X.",
-"  .ooooo.           .ooooo.   ..",
-" .o..ooo.           ..oooo.     ",
-".ooo..ooo.XXXXXXXXX.o..ooo.XXXXX",
-"ooo.XX.oo.XXX......ooo..ooo.XXXX",
-"oo.XXX.oo.XXX..oooooo.XX.oo.XXXX",
-"..XXXX.oo.XXX..ooooo.XXX.oo.XXXX",
-"XXXXXXX.oo.XX.......XXX .oo.XXXX",
-"XXXXXXX.....X..XXXXXXXXXX.oo.XXX",
-"XXXXXXXXXXXXX.XXXXXXXXXXX.....XX",
-"XXXXXXXXXXXXXXXXXXXXXXXXX......X",
-"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
-"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"};
Index: gnus/etc/gnus/gnus-group-describe-group-up.xbm
diff -u gnus/etc/gnus/gnus-group-describe-group-up.xbm:7.1 gnus/etc/gnus/gnus-group-describe-group-up.xbm:removed
--- gnus/etc/gnus/gnus-group-describe-group-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-describe-group-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x55,0xb5,0x55,0xb5,0xaa,0x12,0xa9,0x12,0x12,0x55,0x12,0x65,0xa9,0xa4,0x4a,
- 0x10,0x55,0x9b,0x15,0xc1,0x55,0x51,0x09,0x00,0x92,0x4a,0x02,0x00,0xa9,0x24,
- 0x01,0x00,0x55,0x5b,0x11,0x11,0x92,0xa4,0x00,0x00,0x2a,0x49,0x00,0x00,0x49,
- 0x55,0x00,0x00,0x35,0x55,0x11,0x11,0xaa,0xaa,0x00,0x00,0x92,0x44,0x00,0x00,
- 0xa5,0x32,0x00,0x00,0x55,0x55,0x11,0x11,0x29,0x55,0x01,0x00,0xaa,0x24,0x01,
- 0x00,0x92,0x97,0x00,0x00,0x75,0xba,0x13,0x11,0x2a,0x51,0x04,0x00,0xb2,0xaa,
- 0x0a,0x40,0x59,0x75,0x25,0x40,0xb5,0x3d,0x59,0xb5,0xfa,0x77,0xa5,0x2a,0xae,
- 0x9a,0x2a,0x49,0xd6,0x5f,0x49,0xa5,0xf7,0x57,0x35,0x55,0x7d,0x29,0x95,0x2a,
- 0x7e,0x55,0xa9,0x54,0x5f,0x92,0x94,0x92};
Index: gnus/etc/gnus/gnus-group-describe-group-up.xpm
diff -u gnus/etc/gnus/gnus-group-describe-group-up.xpm:7.1 gnus/etc/gnus/gnus-group-describe-group-up.xpm:removed
--- gnus/etc/gnus/gnus-group-describe-group-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-describe-group-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-describe-group_xpm[] = {
-"32 32 4 1",
-" 	c #000000000000",
-".	c #999999999999 s backgroundToolBarColor",
-"X	c #FFFFFFFFFFFF",
-"o	c #BFBFBFBFBFBF",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-".......................XXXXX....",
-" ... ... ... ... ... XXX XXXXX..",
-"....................XXXXXXXXXXX.",
-"...................XXXXXXXXXXXXX",
-"..................XXXXXXXXXXXXXX",
-" ... ... ... ... XXX XXX XXX XXX",
-"................XXXXXXXXXXXXXXXX",
-"................XXXXXXXXXXXXXXXX",
-"................XXXXXXXXXXXXXXXX",
-" ... ... ... ... XXX XXX XXX XXX",
-"................XXXXXXXXXXXXXXXX",
-"................XXXXXXXXXXXXXXXX",
-"................XXXXXXXXXXXXXXXX",
-" ... ... ... ... XXX XXX XXX XXX",
-".................XXXXXXXXXXXXXXX",
-".................XXXXXXXXXXXXXXX",
-".......    .......XXXXXXXXXXXXXX",
-" ... . oooo  ... ..X XXX XXX XXX",
-"..... o...oo .......XXXXXXXXXXX.",
-".... .o....o. .......XXXXXXXXX..",
-".... o . ...  .........XXXXX....",
-" ...  o .. .  .. ... ... ... ...",
-"...  o   . .  ..................",
-"..  X . . .  ...................",
-".  o .   .  ....................",
-"   o       . ... ... ... ... ...",
-" o     .........................",
-"o .   ...o......................",
-"     ..........................."};
Index: gnus/etc/gnus/gnus-group-exit-up.xbm
diff -u gnus/etc/gnus/gnus-group-exit-up.xbm:7.1 gnus/etc/gnus/gnus-group-exit-up.xbm:removed
--- gnus/etc/gnus/gnus-group-exit-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-exit-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x00,0x40,0x00,0x00,0x30,0x30,0x00,0x00,0x68,0x38,0x00,0x38,0x60,0x48,
- 0x00,0xd4,0x91,0xde,0x07,0x68,0xcf,0xb7,0x1a,0x80,0xb4,0x6e,0x05,0x00,0xe2,
- 0x07,0x00,0x00,0xde,0x1d,0x00,0xe0,0xfd,0x77,0x00,0xb0,0x6a,0xf3,0x00,0x20,
- 0x9c,0xa5,0x03,0x00,0xaa,0x86,0x02,0x00,0x65,0x06,0x02,0xab,0x6f,0xaf,0x59,
- 0x80,0x62,0x0c,0x00,0xaa,0xab,0xba,0x4a,0x40,0x21,0x10,0x10,0xea,0x45,0x4a,
- 0x42,0x40,0x89,0x90,0x28,0xd2,0x21,0x02,0x82,0xa4,0x8a,0x44,0x20,0xf0,0x10,
- 0x10,0x85,0xa4,0x04,0x4a,0x20,0xe2,0x22,0x80,0x80,0xbc,0x4b,0x09,0x2a,0xee,
- 0x8e,0x32,0x80,0xeb,0x73,0x85,0x28,0x56,0xaa,0xb5,0x02,0xff,0xff,0x85,0x48,
- 0x08,0x94,0x11,0x01,0x42,0x02,0x48,0x54};
Index: gnus/etc/gnus/gnus-group-exit-up.xpm
diff -u gnus/etc/gnus/gnus-group-exit-up.xpm:7.1 gnus/etc/gnus/gnus-group-exit-up.xpm:removed
--- gnus/etc/gnus/gnus-group-exit-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-exit-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-exit-gnus_xpm[] = {
-"32 32 4 1",
-" 	c #FFFFFFFFFFFF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #999999999999",
-"o	c #BFBFBFBFBFBF",
-"                      .         ",
-"            ..      ..          ",
-"           . ..    ...          ",
-"   ...       ..    .  .         ",
-"  . . ...   .  . .... .....     ",
-"   . .. ....  ..... .. . . ..   ",
-"       .  . .. . ... .. . .     ",
-"         .   ......             ",
-"         .... ... ...           ",
-"     .... ......... ...         ",
-"    .. . . .X.. ..  ....        ",
-"     .    .X.  .. .  . ...      ",
-"         .X. . . ..    . .      ",
-"        .X.  ..  ..      .      ",
-".. . . ..X.. .. .... . ..  .. . ",
-"ooooooo.X.ooo..ooo..oo ooooooooo",
-"oooo oo.X.ooo.ooooo..oooooooo oo",
-"o oooo.X.ooooooo ooo.ooooooooooo",
-"oooooo.X.ooooooooooooooo ooooooo",
-"ooo oo.X.ooo ooooooooooooooooooo",
-"oooooo.X.oooooooooo  oooooo  ooo",
-"ooooo.X.ooooooooooooooo  ooooooo",
-"o ooo.X.oooooo ooooooooooooooooo",
-"ooooo.X.oooo  o  ooooooooo ooooo",
-"ooooo.X.ooooooooooo oooo  o  ooo",
-"oo....X...ooooooo  o  oooooooooo",
-"o..XX...XX..ooo.o.oo.oo oooooooo",
-".XX.XX..X.XX...ooo.oo  o  oooooo",
-"X.XX.XXXXXXXXXX..oooo.o.oooooo o",
-".................o.o oo.oooo  o ",
-"oooooo ooo.oo oo.o  .  ooooooooo",
-"oooo  o  oo  o  oooooooooooooooo"};
Index: gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xbm
diff -u gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xbm:7.1 gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xbm:removed
--- gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x20,0x00,0x40,0x88,0xff,0x57,0x15,0x22,0x02,0x0c,0xa0,0x88,0x02,0xa4,0x0a,
- 0x22,0x02,0x04,0xf0,0x84,0x03,0x54,0xdd,0x21,0x02,0x1e,0x14,0x97,0x02,0x66,
- 0xcd,0x02,0x02,0x7c,0x14,0x2b,0x03,0x9c,0xad,0x41,0x02,0x54,0xb1,0x0a,0x02,
- 0x2c,0xff,0x47,0x02,0xe4,0x14,0x2d,0xff,0x4f,0xa5,0x0a,0x48,0xa0,0x4a,0xb4,
- 0x12,0x0a,0x51,0x1b,0x40,0xa1,0x96,0x36,0x2a,0x10,0x4a,0x56,0x80,0x4a,0x57,
- 0x1b,0x55,0x00,0x92,0x52,0x00,0x55,0x26,0x17,0xa9,0x00,0xab,0x5a,0x04,0x2a,
- 0xfe,0x1f,0x41,0x41,0xcb,0x48,0x14,0x14,0x95,0x2f,0x82,0x42,0x53,0x09,0x28,
- 0x08,0xa5,0xaf,0x84,0xa2,0x75,0x06,0x12,0x04,0xd3,0x54,0x40,0x51,0xdf,0x0f,
- 0x0a,0x82,0xae,0x23,0xa0,0x28,0x8a,0x4a};
Index: gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xpm
diff -u gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xpm:7.1 gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xpm:removed
--- gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-get-new-news-this-group-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-get-new-news-this-group_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"                                ",
-" ..........                     ",
-" .XXXXXXXX.                     ",
-" .XXXXXXXX.                     ",
-" .XXXXXXXX.         ....        ",
-" .XXXXXXXX.        .oooo.       ",
-" .XXXXXXX....     .oooooo.      ",
-" .XXXXXXX..  .    .oooooo.      ",
-" .XXXXXXXX...o.   .oooooo.      ",
-" .XXXXXXXX..ooo.   .oooo.       ",
-" .XXXXXXXX. .ooo.   .oo.        ",
-" .XXXXXXXX.  .ooo.....o....     ",
-" .XXXXXXXX.   .oooooooooooo.    ",
-" ..........   .oooooooooooo.    ",
-"               .oooooooooooo.   ",
-"                .oooooooo.oo.   ",
-"                 .ooooooo.oo.   ",
-"                 .ooooooo.oo.   ",
-"                 .ooooooo.oo.   ",
-"                 .ooooooo.oo.   ",
-"                 .ooooooo.oo.   ",
-"                 .ooooooo.oo.   ",
-"                 ............   ",
-"                .oooooo.   .    ",
-"                .ooooooo.. .    ",
-"                .ooooooo.  .    ",
-"                .oooo.oo...     ",
-"                .oooo.oooo.     ",
-"                .ooo. .ooo.     ",
-"                ..... .....     ",
-"                 .o.   .o.      ",
-"                 .o.   .o.      "};
Index: gnus/etc/gnus/gnus-group-get-new-news-up.xbm
diff -u gnus/etc/gnus/gnus-group-get-new-news-up.xbm:7.1 gnus/etc/gnus/gnus-group-get-new-news-up.xbm:removed
--- gnus/etc/gnus/gnus-group-get-new-news-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-get-new-news-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x81,0x00,0x08,0xff,0x2b,0xa8,0x42,0x01,0x42,0x05,0x14,0x01,0x16,0x50,
- 0x41,0x01,0xa2,0x7a,0x0a,0x01,0x0a,0xcc,0x40,0x01,0xaf,0x92,0x15,0x01,0x13,
- 0x56,0x43,0x01,0xbe,0x2a,0x09,0x01,0x6e,0xcc,0x52,0x01,0xca,0x69,0x80,0x01,
- 0x32,0xdf,0x2b,0x01,0x66,0x55,0x85,0xff,0x33,0xa9,0x2e,0x24,0xc9,0x92,0x88,
- 0x09,0x82,0x4a,0x2e,0xa0,0x28,0xfd,0xf9,0x14,0x42,0x07,0x8d,0x42,0x08,0x85,
- 0x8d,0x20,0x52,0x87,0x85,0x8a,0x80,0x45,0x86,0x20,0x2a,0xc7,0x82,0x8a,0x00,
- 0xe7,0x82,0x41,0xd4,0x15,0x81,0x14,0x81,0xe6,0x81,0x81,0xa8,0x3d,0xff,0x14,
- 0x82,0xfa,0x02,0x42,0xd1,0x52,0x57,0x08,0x8a,0xad,0x82,0xa2,0xa0,0xef,0x2b,
- 0x04,0x05,0x55,0x81,0x51,0x50,0xc7,0x2b};
Index: gnus/etc/gnus/gnus-group-get-new-news-up.xpm
diff -u gnus/etc/gnus/gnus-group-get-new-news-up.xpm:7.1 gnus/etc/gnus/gnus-group-get-new-news-up.xpm:removed
--- gnus/etc/gnus/gnus-group-get-new-news-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-get-new-news-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-get-new-news_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"                                ",
-"..........                      ",
-".XXXXXXXX.                      ",
-".XXXXXXXX.                      ",
-".XXXXXXXX.         ....         ",
-".XXXXXXXX.        .oooo.        ",
-".XXXXXXX....     .oooooo.       ",
-".XXXXXXX..  .    .oooooo.       ",
-".XXXXXXXX...o.   .oooooo.       ",
-".XXXXXXXX..ooo.   .oooo.        ",
-".XXXXXXXX. .ooo.   .oo.         ",
-".XXXXXXXX.  .ooo.....o....      ",
-".XXXXXXXX.   .oooooooooooo.     ",
-"..........   .oooooooooooo.     ",
-"              .oooooooooooo.    ",
-"               .ooooooooooo.    ",
-"                .o.......oo.....",
-"                .o.XXXXX.oo.XXX.",
-"                .o.XXXX.ooo.XXX.",
-"                .o.XXXX.oo.XXXX.",
-"                .o.XXX.ooo.XXXX.",
-"                .o.XXX.oo.XXXXX.",
-"                ...XX...o.XXXXX.",
-"               .oo.X.   .XXXXXX.",
-"               .oo.XX.. .XXXXXX.",
-"               .oo....  ........",
-"               .oooo.o..o.      ",
-"               .oooo.oooo.      ",
-"               .ooo. .ooo.      ",
-"               ..... .....      ",
-"                .o.   .o.       ",
-"                .o.   .o.       "};
Index: gnus/etc/gnus/gnus-group-kill-group-up.xbm
diff -u gnus/etc/gnus/gnus-group-kill-group-up.xbm:7.1 gnus/etc/gnus/gnus-group-kill-group-up.xbm:removed
--- gnus/etc/gnus/gnus-group-kill-group-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-kill-group-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x04,0x20,0x20,0x54,0xa1,0x0a,0x4a,0x02,0x0a,0x50,0x01,0xa0,0x40,0x05,
- 0x54,0xca,0xff,0x7f,0x00,0x50,0x00,0x60,0x55,0x42,0x00,0xa0,0x80,0x68,0xc0,
- 0x21,0x2b,0x42,0xe0,0xe3,0x83,0x50,0xb0,0x06,0x2a,0x4a,0xf0,0x07,0x42,0x60,
- 0x70,0x07,0x16,0x42,0xe0,0x03,0x42,0x68,0x40,0x01,0x2a,0x42,0x40,0x01,0x82,
- 0x50,0xc8,0x05,0x2a,0x4a,0x0c,0x0c,0x82,0x60,0x30,0x03,0x2a,0x4a,0xc0,0x00,
- 0x82,0x40,0xc0,0x00,0x2a,0x6a,0x30,0x03,0x42,0x41,0x0c,0x0c,0x16,0x54,0x08,
- 0x04,0x22,0x41,0x00,0x00,0x4a,0x54,0x00,0x00,0x02,0x41,0x00,0x00,0x56,0x54,
- 0x00,0x00,0x02,0x42,0x00,0x00,0x52,0xe8,0xff,0xff,0x0b,0x04,0x84,0x00,0x42,
- 0x52,0x11,0xaa,0x28,0x00,0xa4,0x04,0x04};
Index: gnus/etc/gnus/gnus-group-kill-group-up.xpm
diff -u gnus/etc/gnus/gnus-group-kill-group-up.xpm:7.1 gnus/etc/gnus/gnus-group-kill-group-up.xpm:removed
--- gnus/etc/gnus/gnus-group-kill-group-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-kill-group-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-killfile_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"      ................          ",
-"      .XXXXXXXXXXXXXX..         ",
-"      .XXXXXXXXXXXXXX.X.        ",
-"      .XXXXXXX...XXXX.XX.       ",
-"      .XXXXXX.....XXX.....      ",
-"      .XXXXX..X.X..XXXXXX.      ",
-"      .XXXXX.......XXXXXX.      ",
-"      .XXXXX...X...XXXXXX.      ",
-"      .XXXXXX.....XXXXXXX.      ",
-"      .XXXXXXX.X.XXXXXXXX.      ",
-"      .XXXXXXX.X.XXXXXXXX.      ",
-"      .XXXX.XX...X.XXXXXX.      ",
-"      .XXX..XXXXXX..XXXXX.      ",
-"      .XXXXX..XX..XXXXXXX.      ",
-"      .XXXXXXX..XXXXXXXXX.      ",
-"      .XXXXXXX..XXXXXXXXX.      ",
-"      .XXXXX..XX..XXXXXXX.      ",
-"      .XXX..XXXXXX..XXXXX.      ",
-"      .XXXX.XXXXXX.XXXXXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      ....................      ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-group-subscribe-up.xbm
diff -u gnus/etc/gnus/gnus-group-subscribe-up.xbm:7.1 gnus/etc/gnus/gnus-group-subscribe-up.xbm:removed
--- gnus/etc/gnus/gnus-group-subscribe-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-subscribe-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x08,0x04,0x00,0x40,0x22,0x51,0x55,0x15,0x88,0x04,0x00,0x20,0x22,0xa0,0xaa,
- 0x4a,0xc4,0xff,0x3f,0x00,0x61,0x80,0x60,0x55,0x54,0x8a,0xa0,0x80,0x42,0x84,
- 0x20,0x2b,0x68,0x8a,0xe0,0x83,0x42,0x80,0x00,0x2a,0xd4,0xff,0x00,0x42,0x41,
- 0x80,0x00,0x16,0x54,0x8a,0x00,0x42,0x41,0x84,0x00,0x2a,0x54,0x8a,0x00,0x82,
- 0x41,0x80,0x00,0x2a,0xd4,0xff,0x00,0x82,0x42,0x80,0x00,0x2a,0x68,0x8a,0x00,
- 0x82,0x44,0x84,0x00,0x2a,0x52,0x8a,0x00,0x42,0x40,0x80,0x00,0x16,0xea,0xff,
- 0x00,0x22,0x40,0x80,0x00,0x4a,0x4a,0x80,0x00,0x02,0x61,0x80,0x00,0x56,0x44,
- 0x80,0x00,0x02,0x51,0x80,0x00,0x52,0xc4,0xff,0xff,0x0b,0xa1,0x04,0x00,0x42,
- 0x14,0xa8,0xaa,0x88,0x82,0x02,0x00,0x22};
Index: gnus/etc/gnus/gnus-group-subscribe-up.xpm
diff -u gnus/etc/gnus/gnus-group-subscribe-up.xpm:7.1 gnus/etc/gnus/gnus-group-subscribe-up.xpm:removed
--- gnus/etc/gnus/gnus-group-subscribe-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-subscribe-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-unsubscribe_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"      ................          ",
-"      .XXXXXXXX.XXXXX..         ",
-"      .XX.X.XXX.XXXXX.X.        ",
-"      .XXX.XXXX.XXXXX.XX.       ",
-"      .XX.X.XXX.XXXXX.....      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      ..........XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XX.X.XXX.XXXXXXXXX.      ",
-"      .XXX.XXXX.XXXXXXXXX.      ",
-"      .XX.X.XXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      ..........XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XX.X.XXX.XXXXXXXXX.      ",
-"      .XXX.XXXX.XXXXXXXXX.      ",
-"      .XX.X.XXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      ..........XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      ....................      ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-group-unsubscribe-up.xbm
diff -u gnus/etc/gnus/gnus-group-unsubscribe-up.xbm:7.1 gnus/etc/gnus/gnus-group-unsubscribe-up.xbm:removed
--- gnus/etc/gnus/gnus-group-unsubscribe-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-unsubscribe-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x08,0x04,0x00,0x40,0x22,0x51,0x55,0x15,0x88,0x04,0x00,0x20,0x22,0xa0,0xaa,
- 0x4a,0xc4,0xff,0x3f,0x00,0x61,0x80,0x60,0x55,0x54,0xa0,0xa0,0x80,0x42,0x90,
- 0x20,0x2b,0x68,0x8a,0xe0,0x83,0x42,0x84,0x00,0x2a,0xd4,0xff,0x00,0x42,0x41,
- 0x80,0x00,0x16,0x54,0xa0,0x00,0x42,0x41,0x90,0x00,0x2a,0x54,0x8a,0x00,0x82,
- 0x41,0x84,0x00,0x2a,0xd4,0xff,0x00,0x82,0x42,0x80,0x00,0x2a,0x68,0xa0,0x00,
- 0x82,0x44,0x90,0x00,0x2a,0x52,0x8a,0x00,0x42,0x40,0x84,0x00,0x16,0xea,0xff,
- 0x00,0x22,0x40,0x80,0x00,0x4a,0x4a,0x80,0x00,0x02,0x61,0x80,0x00,0x56,0x44,
- 0x80,0x00,0x02,0x51,0x80,0x00,0x52,0xc4,0xff,0xff,0x0b,0xa1,0x04,0x00,0x42,
- 0x14,0xa8,0xaa,0x88,0x82,0x02,0x00,0x22};
Index: gnus/etc/gnus/gnus-group-unsubscribe-up.xpm
diff -u gnus/etc/gnus/gnus-group-unsubscribe-up.xpm:7.1 gnus/etc/gnus/gnus-group-unsubscribe-up.xpm:removed
--- gnus/etc/gnus/gnus-group-unsubscribe-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-group-unsubscribe-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-subscribe_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"      ................          ",
-"      .XXXXXXXX.XXXXX..         ",
-"      .XXXXXX.X.XXXXX.X.        ",
-"      .XXXXX.XX.XXXXX.XX.       ",
-"      .XX.X.XXX.XXXXX.....      ",
-"      .XXX.XXXX.XXXXXXXXX.      ",
-"      ..........XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXX.X.XXXXXXXXX.      ",
-"      .XXXXX.XX.XXXXXXXXX.      ",
-"      .XX.X.XXX.XXXXXXXXX.      ",
-"      .XXX.XXXX.XXXXXXXXX.      ",
-"      ..........XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXX.X.XXXXXXXXX.      ",
-"      .XXXXX.XX.XXXXXXXXX.      ",
-"      .XX.X.XXX.XXXXXXXXX.      ",
-"      .XXX.XXXX.XXXXXXXXX.      ",
-"      ..........XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      .XXXXXXXX.XXXXXXXXX.      ",
-"      ....................      ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-pointer.xbm
diff -u gnus/etc/gnus/gnus-pointer.xbm:7.1 gnus/etc/gnus/gnus-pointer.xbm:removed
--- gnus/etc/gnus/gnus-pointer.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-pointer.xbm	Sun May  1 19:04:56 2005
@@ -1,6 +0,0 @@
-#define noname_width 18
-#define noname_height 13
-static char noname_bits[] = {
- 0x00,0x00,0x00,0xc0,0x0c,0x00,0xe0,0x1f,0x00,0x92,0x39,0x00,0x0e,0x71,0x02,
- 0x46,0xe0,0x03,0x20,0xc0,0x01,0x00,0x08,0x00,0x10,0x0d,0x00,0xc4,0x08,0x00,
- 0x78,0x08,0x00,0x18,0x89,0x00,0x00,0x08,0x00};
Index: gnus/etc/gnus/gnus-pointer.xpm
diff -u gnus/etc/gnus/gnus-pointer.xpm:7.1 gnus/etc/gnus/gnus-pointer.xpm:removed
--- gnus/etc/gnus/gnus-pointer.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-pointer.xpm	Sun May  1 19:04:56 2005
@@ -1,22 +0,0 @@
-/* XPM */
-static char *gnus-pointer[] = {
-/* width height num_colors chars_per_pixel */
-"    18    13        2            1",
-/* colors */
-". c #0000ff",
-"# c None s None",
-/* pixels */
-"##################",
-"######..##..######",
-"#####........#####",
-"#.##.##..##...####",
-"#...####.###...##.",
-"#..###.######.....",
-"#####.########...#",
-"###########.######",
-"####.###.#..######",
-"######..###.######",
-"###....####.######",
-"###..######.######",
-"###########.######"
-};
\ No newline at end of file
Index: gnus/etc/gnus/gnus-setup.ast
diff -u /dev/null gnus/etc/gnus/gnus-setup.ast:1.4
--- /dev/null	Sun May  1 19:04:56 2005
+++ gnus/etc/gnus/gnus-setup.ast	Thu Jun  3 21:37:05 2004
@@ -0,0 +1,43 @@
+@title Configuring Gnus for the first time
+
+@node What do you want to do with Gnus?
+@variable outbound (:radio ((item :tag "Send mail via sendmail" "sendmail") (item :tag "Send mail via SMTP" "smtp"))) "sendmail"
+@variable backends (:set ((item :tag "Read news via NNTP" "nntp") (item :tag"Sacrifice a goat" "goat") (item :tag "Read mail, store it locally" "nnml") (item :tag "Read mail and store it on an IMAP server" "nnimap"))) (list "nnml")
+@result primary-mail-selections (list backends outbound)
+
+@text
+Welcome to Gnus.  You need to tell us what you want to do with Gnus
+before we go on to specific configurations.
+
+Choose the tasks you want to set up: 
+@variable{backends}
+
+Choose the method Gnus will use to send mail: 
+@variable{outbound}
+
+@end text
+
+@next (member "nnml" backends) "Setting up local mail storage (nnml)"
+@next (member "nntp" backends) "Setting up a NNTP server"
+
+@node Setting up local mail storage (nnml)
+@variable mechanism (:radio ((item :tag "Get mail from your Unix mbox" "mbox") (item :tag "Use POP3 to retrieve mail" "pop3"))) "mbox"
+@result nnml-mechanism (list mechanism)
+@text
+You are setting up local mail storage, using the nnml backend in Gnus terms.
+
+Your mail can be downloaded into Gnus in several ways, choose one:
+@variable{mechanism}
+
+@end text
+
+@node Setting up a NNTP server
+
+@text
+TODO: this will be a real link.
+Run M-x assistant and use the news-server.ast file as input.
+@end text
+
+@ignore
+   arch-tag: 6b7b200b-9169-4b44-8b32-b73773fa71af
+@end ignore
Index: gnus/etc/gnus/gnus-summary-caesar-message-up.xbm
diff -u gnus/etc/gnus/gnus-summary-caesar-message-up.xbm:7.1 gnus/etc/gnus/gnus-summary-caesar-message-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-caesar-message-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-caesar-message-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x40,0x40,0x10,0x01,0x15,0x15,0x45,0x50,0x40,0x40,0x08,0x05,0x14,0x14,0xa2,
- 0x50,0xe2,0xff,0x3f,0x82,0x48,0x00,0xe0,0x28,0x62,0xe6,0xb8,0x82,0x48,0x29,
- 0x25,0x29,0x62,0xa9,0xe4,0x83,0x48,0x2f,0x05,0x2a,0x42,0xe9,0x38,0x42,0x60,
- 0x00,0x00,0x16,0x4a,0x82,0x10,0x22,0x50,0x00,0x00,0x4a,0x42,0xcb,0x1c,0x02,
- 0x68,0x2b,0x25,0x56,0x42,0x2d,0x1d,0x02,0x50,0x2d,0x05,0x52,0x4a,0xc9,0x04,
- 0x0a,0x40,0x00,0x00,0x42,0x6a,0x18,0x00,0x16,0x41,0x3c,0x00,0x42,0x54,0xe6,
- 0x3f,0x0a,0x41,0xe6,0x3f,0x52,0x54,0x3c,0x2a,0x06,0x42,0x18,0x2a,0x42,0x68,
- 0x00,0x08,0x2a,0x44,0x00,0x00,0x06,0xd2,0xff,0xff,0x53,0x20,0x84,0x20,0x04,
- 0x8a,0x10,0x8a,0xa8,0x20,0x4a,0x21,0x02};
Index: gnus/etc/gnus/gnus-summary-caesar-message-up.xpm
diff -u gnus/etc/gnus/gnus-summary-caesar-message-up.xpm:7.1 gnus/etc/gnus/gnus-summary-caesar-message-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-caesar-message-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-caesar-message-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-rot13_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"      ................          ",
-"      .XXXXXXXXXXXXXX..         ",
-"      .XX..XX...XXX...X.        ",
-"      .X.XX.X.XX.X.XX.XX.       ",
-"      .X.XX.X.X.XX.XX.....      ",
-"      .X....X.XX.X.XXXXXX.      ",
-"      .X.XX.X...XXX...XXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      .XX.XXXXX.XXXX.XXXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      .X..X.XX..XX...XXXX.      ",
-"      .X..X.X.XX.X.XX.XXX.      ",
-"      .X.X..X.XX.X...XXXX.      ",
-"      .X.X..X.XX.X.XXXXXX.      ",
-"      .X.XX.XX..XX.XXXXXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      .XXXX..XXXXXXXXXXXX.      ",
-"      .XXX....XXXXXXXXXXX.      ",
-"      .XX..XX.........XXX.      ",
-"      .XX..XX.........XXX.      ",
-"      .XXX....XXX.X.X.XXX.      ",
-"      .XXXX..XXXX.X.X.XXX.      ",
-"      .XXXXXXXXXXXX.XXXXX.      ",
-"      .XXXXXXXXXXXXXXXXXX.      ",
-"      ....................      ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-cancel-article-up.xbm
diff -u gnus/etc/gnus/gnus-summary-cancel-article-up.xbm:7.1 gnus/etc/gnus/gnus-summary-cancel-article-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-cancel-article-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-cancel-article-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x11,0x11,0x01,0x11,0x54,0x4a,0xa9,0x52,0x82,0x10,0x04,0x08,0x28,0x24,0xa1,
- 0x42,0x91,0x91,0x0f,0x19,0x25,0xaa,0xa9,0x44,0x88,0x60,0x18,0x11,0x42,0x1c,
- 0x56,0x44,0x19,0x07,0x97,0x31,0x44,0x01,0x23,0x0a,0x12,0x81,0x60,0x50,0x80,
- 0x02,0x42,0x05,0x3b,0x05,0x78,0x59,0x00,0x0a,0x56,0x12,0xaa,0xf4,0x05,0x41,
- 0x00,0x54,0x51,0x10,0x5b,0x51,0x95,0x55,0x10,0x15,0x00,0x11,0x42,0x40,0x55,
- 0x44,0x10,0x2a,0x00,0x21,0x5b,0x91,0x5b,0x95,0x80,0x24,0x00,0x21,0x12,0x92,
- 0x2a,0x14,0x44,0x01,0x80,0x42,0x11,0xb5,0x35,0x19,0x54,0x11,0x08,0x42,0x02,
- 0x44,0xa1,0x08,0xa8,0x22,0x14,0x52,0x11,0x99,0x51,0x11,0x4a,0x22,0x14,0x4a,
- 0x20,0x89,0x42,0x10,0x15,0x40,0x20,0x45};
Index: gnus/etc/gnus/gnus-summary-cancel-article-up.xpm
diff -u gnus/etc/gnus/gnus-summary-cancel-article-up.xpm:7.1 gnus/etc/gnus/gnus-summary-cancel-article-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-cancel-article-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-cancel-article-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-cancel-post_xpm[] = {
-"32 32 4 1",
-" 	c #000000000000",
-".	c #BFBFBFBFBFBF s backgroundToolBarColor",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-" ... ... ... ... ....... ... ...",
-"................................",
-"................................",
-"................................",
-" ... ... ... ...    .... ... ...",
-"...............  XX ............",
-".............  XXXX  ...........",
-"...........  XXXX  X ...........",
-" ... ....  XXXXX   X ... ... ...",
-"........ XXXXXXX  XXX ..........",
-"........ XXXXXX oXXXX ..........",
-"........o XXXXXXXoXXXX .........",
-" ... ...oo XXXXXXXX    . ... ...",
-".........oo XXXXX  oooo.........",
-"..........oo     o..............",
-"..........ooooooo...............",
-" ... ... ... oo. ... ... ... ...",
-"................................",
-"................................",
-"................................",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-"................................",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-"................................",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-"................................"};
Index: gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xbm
diff -u gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xbm:7.1 gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x08,0x81,0x00,0x04,0x42,0x28,0x52,0x51,0x14,0x85,0x08,0x04,0x81,0x20,0x42,
- 0x49,0x14,0x8a,0x08,0x20,0x41,0x21,0x52,0x15,0x14,0x44,0x00,0x40,0x41,0x91,
- 0xbf,0x2a,0x14,0xda,0x10,0x80,0x81,0x94,0x90,0x2a,0x14,0x73,0xf0,0x80,0xe1,
- 0x60,0x90,0x2b,0xc4,0x60,0x08,0x43,0xa2,0xf0,0x0f,0x15,0x88,0x11,0xfc,0x21,
- 0xd2,0x11,0x8c,0x4a,0x80,0x12,0x84,0x00,0xd5,0x13,0x84,0x55,0x00,0x17,0x74,
- 0x80,0x54,0xfb,0xcf,0x2a,0x02,0x9a,0x24,0x40,0x54,0x9f,0xbc,0x36,0xa9,0xf4,
- 0x77,0x49,0x94,0x96,0x94,0xa4,0x25,0x95,0x35,0x15,0xa9,0xfe,0xbf,0xa4,0x92,
- 0xdc,0x5c,0x29,0x4a,0x9e,0x3d,0x95,0xaa,0xfe,0x4f,0x52,0x24,0xf9,0xaf,0x4a,
- 0xa9,0x52,0x91,0x94,0x25,0x29,0x55,0x52};
Index: gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xpm
diff -u gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xpm:7.1 gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-catchup-and-exit-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-catchup_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"               ......           ",
-"           ..  .XXXX.           ",
-"          .X.  .XXXX.           ",
-"        ..XX...XXXXX....        ",
-"      ..XXXXX..XXXXX.XX...      ",
-"      ..XXXXX..XXXX.XXXX..      ",
-"       .XXXX........XXXX.       ",
-"       ..XXX.XXXXX.......       ",
-"       ..XXX.XXXXX..XXX.        ",
-"       .X.XX.XXXXX.XXXX.        ",
-"       ...XX.XXXXX.XXXX.        ",
-"        ...X.XXXXX.X...         ",
-"         .X.........XX.         ",
-"         .  .XX.XX.XX.          ",
-"ooooooooo....XX.XX....oooooooooo",
-"oooooooooo. .......  .oooooooooo",
-"oooooooooo.X.XX.X .X.ooooooooooo",
-"oooooooooo. .X .  . .ooooooooooo",
-"oooooooooo...........ooooooooooo",
-"oooooooooo...X..XX...ooooooooooo",
-"oooooooooo...X ..X...ooooooooooo",
-"oooooooooo..........oooooooooooo",
-"oooooooooooo.......ooooooooooooo",
-"oooooooooooooooooooooooooooooooo",
-"oooooooooooooooooooooooooooooooo"};
Index: gnus/etc/gnus/gnus-summary-catchup-up.xbm
diff -u gnus/etc/gnus/gnus-summary-catchup-up.xbm:7.1 gnus/etc/gnus/gnus-summary-catchup-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-catchup-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-catchup-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x11,0x91,0x11,0x95,0x54,0x25,0x54,0x21,0x02,0x90,0x00,0x84,0xa0,0x0a,0x54,
- 0x29,0x1b,0xb1,0x11,0x91,0x40,0x0a,0x4a,0x25,0x8a,0xa0,0x20,0x88,0x20,0x14,
- 0x0e,0x22,0x9b,0x51,0xb7,0x99,0x20,0x14,0x0b,0x02,0x42,0xc1,0x22,0x28,0x14,
- 0x92,0x48,0x45,0x51,0x19,0x11,0x11,0x14,0x42,0xaa,0x54,0x42,0x88,0x00,0x02,
- 0x90,0x72,0xaa,0x56,0x15,0x71,0x11,0x17,0x42,0x3a,0x49,0x4b,0x28,0x49,0xa4,
- 0x22,0x04,0x30,0x02,0x09,0xb1,0xdb,0x59,0xb5,0x15,0xa0,0xd3,0xff,0x40,0x05,
- 0xbf,0x02,0x2a,0xd3,0x08,0x54,0x91,0x53,0x77,0x7f,0xc8,0xa9,0xd4,0x8a,0x62,
- 0x22,0x86,0x35,0xc8,0x5b,0x4b,0x67,0x93,0xfd,0x91,0x39,0x24,0x18,0xff,0x7a,
- 0x90,0x46,0xc5,0xcf,0x25,0x94,0x21,0xf1};
Index: gnus/etc/gnus/gnus-summary-catchup-up.xpm
diff -u gnus/etc/gnus/gnus-summary-catchup-up.xpm:7.1 gnus/etc/gnus/gnus-summary-catchup-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-catchup-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-catchup-up.xpm	Sun May  1 19:04:56 2005
@@ -1,37 +0,0 @@
-/* XPM */
-static char * icon-catchup2_xpm[] = {
-"32 32 2 1",
-" 	c #000000000000",
-".	c #BFBFBFBFBFBF s backgroundToolBarColor",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-"................................",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-".................  .............",
-" ... ... ... ...   . ... ... ...",
-"................  ..............",
-"............... ................",
-"................................",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-".............  ..........  .....",
-" ... ... ...   . ... ...   . ...",
-"............  ..........  ......",
-"........... ........... ........",
-"............  .......... .......",
-" ... ... ... . . ... ... ... ...",
-"...............  .....          ",
-"................      ... ......",
-"........  ..... ... ...... .....",
-" ... ..   .. . . . .  .. .     .",
-".......  .... .... ... .. . ... ",
-"...... ...... ... .....  ... ...",
-"......    .. .... ......   .. ..",
-" ... ... .       ... ..  ..   ..",
-"........... ....      . ....   .",
-".......... ..... .....      .. .",
-".......... ..... ....... ...    "};
Index: gnus/etc/gnus/gnus-summary-exit-up.xbm
diff -u gnus/etc/gnus/gnus-summary-exit-up.xbm:7.1 gnus/etc/gnus/gnus-summary-exit-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-exit-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-exit-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x19,0x51,0x91,0x11,0x82,0x14,0x2a,0x48,0x28,0x42,0x40,0x25,0x82,0x10,0x15,
- 0x00,0x59,0xfa,0xff,0x5b,0x12,0x4b,0xfe,0x21,0x40,0x21,0xf1,0x93,0x2a,0x0b,
- 0xf8,0x05,0x91,0xb5,0xf2,0x31,0x24,0x01,0xf1,0x4b,0x12,0x54,0xfa,0x01,0x80,
- 0x83,0xf0,0x55,0x5b,0x35,0xf2,0x11,0x00,0x8b,0xfe,0x4b,0x2a,0x21,0xf7,0x21,
- 0x80,0x0b,0xf6,0x13,0x5b,0xb5,0xf4,0x59,0x10,0x03,0xf1,0x01,0x42,0x2b,0xf4,
- 0x55,0x90,0x40,0xf3,0x03,0x13,0x1a,0xf8,0x59,0xa8,0x83,0xf2,0x11,0x02,0x2b,
- 0x5c,0x43,0x50,0xe3,0xee,0x10,0x93,0xfc,0x55,0x5b,0x48,0x92,0x92,0x00,0x22,
- 0x49,0x48,0xaa,0x08,0x00,0x84,0x00,0xb5,0xbb,0x31,0x5b,0x01,0x00,0x0a,0x00,
- 0x54,0x25,0x51,0x55,0x01,0x48,0x04,0x00};
Index: gnus/etc/gnus/gnus-summary-exit-up.xpm
diff -u gnus/etc/gnus/gnus-summary-exit-up.xpm:7.1 gnus/etc/gnus/gnus-summary-exit-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-exit-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-exit-up.xpm	Sun May  1 19:04:56 2005
@@ -1,37 +0,0 @@
-/* XPM */
-static char * icon-exit-summary_xpm[] = {
-"32 32 2 1",
-" 	c #000000000000",
-".	c #BFBFBFBFBFBF s backgroundToolBarColor",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-"................................",
-" ... ......              ... ...",
-"........  .......        .......",
-"........ ...........     .......",
-"........  ..........     .......",
-" ... ... ... .......     ... ...",
-"................ ...     .......",
-"....................     .......",
-"........  ..........     .......",
-" ... ... ... .......     ... ...",
-"........  .......  .     .......",
-"........ .......   .     .......",
-"........  .......  .     .......",
-" ... ... ... .......     ... ...",
-"........  ..........     .......",
-"........ ...........     .......",
-"................ ...     .......",
-" ... ....... .......     ... ...",
-"........  ..........     .......",
-"........  ........   . . .......",
-"........ ....   . . . . ........",
-" ... .. ..       . . . . ... ...",
-"................................",
-"................................",
-"................................",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................................",
-"................................"};
Index: gnus/etc/gnus/gnus-summary-followup-up.xbm
diff -u gnus/etc/gnus/gnus-summary-followup-up.xbm:7.1 gnus/etc/gnus/gnus-summary-followup-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-followup-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-followup-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x00,0x40,0x08,0xb6,0x76,0x37,0x63,0x20,0x02,0x00,0x04,0x8a,0x48,0x55,
- 0x51,0x10,0x22,0x0e,0x82,0xa6,0xaa,0xa9,0x36,0x12,0x62,0x38,0x20,0xa0,0x18,
- 0x96,0x4a,0x0a,0x07,0x17,0x00,0xa2,0x01,0xa3,0x76,0x6a,0x80,0x60,0x00,0x60,
- 0x00,0x40,0x55,0x52,0x00,0x40,0x00,0xa6,0x00,0x80,0x6b,0x90,0xe1,0x80,0x04,
- 0x24,0x9a,0x00,0x51,0x82,0x86,0x01,0x85,0xaa,0x61,0x01,0x32,0x60,0x70,0x01,
- 0x42,0x1d,0x30,0x02,0x14,0x04,0x08,0x02,0x4c,0x06,0x00,0x02,0x28,0x06,0x00,
- 0x04,0xac,0x08,0x00,0x08,0x0b,0x0a,0x00,0xc8,0x22,0x12,0x00,0x70,0x6a,0x1a,
- 0x00,0x10,0x01,0x20,0x00,0x60,0x52,0x32,0x00,0x20,0x08,0x46,0x00,0x40,0x63,
- 0x50,0x00,0x40,0x04,0x85,0x00,0x80,0x52};
Index: gnus/etc/gnus/gnus-summary-followup-up.xpm
diff -u gnus/etc/gnus/gnus-summary-followup-up.xpm:7.1 gnus/etc/gnus/gnus-summary-followup-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-followup-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-followup-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-followup_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-" .   .   .   .   .   .   .   .  ",
-"                                ",
-"                                ",
-"                 ...            ",
-" .   .   .   . ..XX. .   .   .  ",
-"             ..XXXX..           ",
-"           ..XXXX..X.           ",
-"         ..XXXXX...X.           ",
-" .   . ..XXXXXXX..XXX.   .   .  ",
-"     ..XXXXXXXX.XXXXX.          ",
-"      .XXXXXXXXXXXXXXX.         ",
-"      .XXXXXXXXXXXXXXX.         ",
-" .   . .XXXXXXXXXXXXXXX. .   .  ",
-"        .XXXX...XXXXXXX.        ",
-"         .X..XX.XXXXXXXX.       ",
-"         ..XXXX..XXXXXXX.       ",
-" .     ..XXXX..X.XXXXXXXX.   .  ",
-"     ..XXXXX...X.XXXXXXXX.      ",
-"   ..XXXXXXX..XXX.XXXXXXXX.     ",
-"  .XXXXXXXX.XXXXX.XXXXXXXX.     ",
-" ..XXXXXXXXXXXXXX.XXXXXXXXX. .  ",
-"  .XXXXXXXXXXXXXXX.XXXXXXX..    ",
-"   .XXXXXXXXXXXXXXX.XXXX..      ",
-"   .XXXXXXXXXXXXXXX.XX..        ",
-" .  .XXXXXXXXXXXXXXX..   .   .  ",
-"    .XXXXXXXXXXXXXXX.           ",
-"     .XXXXXXXXXXXXXXX.          ",
-"     .XXXXXXXXXXXXXXX.          ",
-" .    .XXXXXXXXXXXXXXX.  .   .  ",
-"      .XXXXXXXXXXXXXXX.         ",
-"       .XXXXXXXXXXXXXXX.        "};
Index: gnus/etc/gnus/gnus-summary-followup-with-original-up.xbm
diff -u gnus/etc/gnus/gnus-summary-followup-with-original-up.xbm:7.1 gnus/etc/gnus/gnus-summary-followup-with-original-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-followup-with-original-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-followup-with-original-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x04,0x40,0x10,0x00,0xa3,0x36,0xa6,0x76,0x54,0x40,0x11,0x02,0x01,0x2a,0x88,
- 0x48,0x54,0x81,0x22,0x22,0x22,0x6a,0xaa,0x2a,0x4a,0x02,0x21,0xa0,0x90,0x50,
- 0x8e,0x0a,0x02,0x0a,0x27,0x50,0xb2,0xa2,0xab,0x26,0x42,0xaa,0x00,0x92,0x94,
- 0x00,0xaa,0x20,0x00,0xaa,0x00,0x85,0xb6,0x22,0x76,0x32,0x20,0xea,0x80,0x44,
- 0x8a,0x98,0x2a,0x11,0x10,0x87,0x00,0x44,0xa6,0x71,0x6b,0x33,0x60,0xcc,0x22,
- 0x44,0x1d,0xe3,0x0a,0x11,0xc8,0xe0,0x24,0x44,0x3e,0x90,0x6c,0x2b,0x08,0x00,
- 0x09,0xa0,0x06,0x00,0x49,0x0a,0x04,0x00,0x92,0x50,0x0b,0x00,0x32,0x26,0x0c,
- 0x00,0xa4,0x90,0x11,0x00,0x24,0x24,0x14,0x00,0xc8,0x82,0x22,0x00,0x48,0x32,
- 0x2a,0x00,0x90,0x42,0x50,0x00,0x90,0x28};
Index: gnus/etc/gnus/gnus-summary-followup-with-original-up.xpm
diff -u gnus/etc/gnus/gnus-summary-followup-with-original-up.xpm:7.1 gnus/etc/gnus/gnus-summary-followup-with-original-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-followup-with-original-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-followup-with-original-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-followup-w-orig_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-" .   .   .   .   .   .   .   .  ",
-"                                ",
-"                                ",
-"                                ",
-" .   .   .   .   .   .   .   .  ",
-"                                ",
-"                 ..             ",
-"                ...             ",
-" .   .   .   .  ..   .   .   .  ",
-"               .                ",
-"                                ",
-"                                ",
-" .   .   .   .   .   .   .   .  ",
-"             ..                 ",
-"           ..XX.                ",
-"         ..XXXX.                ",
-" .     ..XXX...X.    .   .   .  ",
-"     ..XXX..XX..X.              ",
-"   ..XXX..XXX...X.              ",
-"   .XX..XXXXX...XX.             ",
-" . ...XXXXXX.XX.XX.  .   .   .  ",
-"   .XXXXXXXXXXXX.XX.            ",
-"  .XXXXXXXXXXXXX.XX.            ",
-"  .XXXXXXXXXXXXXX.XX.           ",
-" . .XXXXXXXXXXXXX.XX.    .   .  ",
-"   .XXXXXXXXXXXXXX.XX.          ",
-"    .XXXXXXXXXXXXX.XX.          ",
-"    .XXXXXXXXXXXXXX.XX.         ",
-" .   .XXXXXXXXXXXXX.XX.  .   .  ",
-"     .XXXXXXXXXXXXXX.XX.        ",
-"      .XXXXXXXXXXXXX.XX.        "};
Index: gnus/etc/gnus/gnus-summary-mail-copy-up.xbm
diff -u gnus/etc/gnus/gnus-summary-mail-copy-up.xbm:7.1 gnus/etc/gnus/gnus-summary-mail-copy-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-mail-copy-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-copy-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x20,0x20,0x40,0xaa,0x8a,0x0a,0x15,0xfe,0xff,0xff,0x27,0x0e,0x00,0x80,
- 0x4d,0x32,0x00,0x60,0x04,0xc2,0x00,0x18,0x54,0x02,0x03,0x06,0x04,0x03,0x8c,
- 0x01,0x54,0x02,0x74,0x02,0x04,0x02,0x03,0x0c,0x54,0x82,0x00,0x10,0x84,0xf2,
- 0xff,0xff,0x3f,0x52,0x00,0x00,0x6c,0x9b,0x01,0x00,0x23,0x16,0x06,0xc0,0x60,
- 0x1e,0x18,0x30,0x20,0x14,0x60,0x0c,0xa0,0x11,0xa0,0x0b,0x20,0x14,0x10,0x30,
- 0x60,0x11,0x0c,0x40,0x20,0x14,0x02,0x80,0xa0,0x12,0x01,0x00,0x23,0xd8,0x00,
- 0x00,0x64,0x32,0x00,0x00,0x38,0xf8,0xff,0xff,0xbf,0x02,0x00,0x40,0x24,0x54,
- 0x55,0x15,0x11,0x01,0x00,0x40,0x44,0x54,0x55,0x15,0x11,0x01,0x00,0x40,0x44,
- 0x54,0x55,0x05,0x11,0x02,0x00,0x50,0x44};
Index: gnus/etc/gnus/gnus-summary-mail-copy-up.xpm
diff -u gnus/etc/gnus/gnus-summary-mail-copy-up.xpm:7.1 gnus/etc/gnus/gnus-summary-mail-copy-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-mail-copy-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-copy-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-mail-copy_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-" ..........................     ",
-" ...XXXXXXXXXXXXXXXXXXX..X.     ",
-" .XX..XXXXXXXXXXXXXXX..XXX.     ",
-" .XXXX..XXXXXXXXXXX..XXXXX.     ",
-" .XXXXXX..XXXXXXX..XXXXXXX.     ",
-" .XXXXXXXX..XXX..XXXXXXXXX.     ",
-" .XXXXXXXX.X...XX.XXXXXXXX.     ",
-" .XXXXXX..XXXXXXXX..XXXXXX.     ",
-" .XXXXX.XXXXXXXXXXXX.XXXXX.     ",
-" .XX..........................  ",
-" .XX.X.XXXXXXXXXXXXXXXXXXX..X.  ",
-" .X..XX..XXXXXXXXXXXXXXX..XXX.  ",
-" ..X.XXXX..XXXXXXXXXXX..XXXXX.  ",
-" ....XXXXXX..XXXXXXX..XXXXXXX.  ",
-"    .XXXXXXXX..XXX..XXXXXXXXX.  ",
-"    .XXXXXXXX.X...X.XXXXXXXXX.  ",
-"    .XXXXXXX.XXXXXXX..XXXXXXX.  ",
-"    .XXXXX..XXXXXXXXXX.XXXXXX.  ",
-"    .XXXX.XXXXXXXXXXXXX.XXXXX.  ",
-"    .XXX.XXXXXXXXXXXXXXX..XXX.  ",
-"    .X..XXXXXXXXXXXXXXXXXX.XX.  ",
-"    ..XXXXXXXXXXXXXXXXXXXXX...  ",
-"    ..........................  ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-mail-delete-up.xbm
diff -u gnus/etc/gnus/gnus-summary-mail-delete-up.xbm:7.1 gnus/etc/gnus/gnus-summary-mail-delete-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-mail-delete-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-delete-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x08,0x00,0x80,0x00,0xa2,0xaa,0x2a,0x54,0x08,0x00,0x40,0x81,0xf2,0xab,0x2a,
- 0x28,0x5c,0x03,0x80,0x82,0x2d,0x56,0xf5,0x28,0x84,0x06,0x98,0x8b,0x5d,0x5e,
- 0xe7,0x2c,0x1c,0x1f,0x1f,0xba,0xf1,0xf3,0xa7,0xc9,0x44,0xa8,0x90,0x88,0xf1,
- 0xf3,0x8b,0x08,0x1c,0x5f,0x7f,0x09,0xad,0x1e,0xff,0x08,0x04,0x46,0x08,0x04,
- 0xae,0x26,0x06,0x04,0x18,0x8b,0x02,0x06,0xfa,0x23,0xc1,0x01,0x20,0x88,0x38,
- 0x00,0x95,0x62,0x07,0x80,0x40,0xe4,0x00,0x40,0x14,0xd1,0x00,0x20,0x42,0x44,
- 0x03,0x60,0x10,0x11,0x05,0x10,0x4a,0x44,0x1c,0xa8,0x00,0x11,0x61,0x0c,0x2a,
- 0x42,0xa4,0x25,0x81,0x14,0x09,0x42,0x14,0x20,0x50,0x15,0xa1,0x4a,0x05,0x40,
- 0x04,0x00,0xa8,0x0a,0x51,0x55,0x05,0x50};
Index: gnus/etc/gnus/gnus-summary-mail-delete-up.xpm
diff -u gnus/etc/gnus/gnus-summary-mail-delete-up.xpm:7.1 gnus/etc/gnus/gnus-summary-mail-delete-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-mail-delete-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-delete-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-mail-delete_xpm[] = {
-"32 32 4 1",
-" 	c #BEBEBEBEBEBE s backgroundToolBarColor",
-"X	c #000000000000",
-"o	c #E7E7E7E7E7E7",
-"O	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"    XXXXX                       ",
-"   XX   XX                      ",
-"  XX     XX          XXX        ",
-"  X       X        XXooXX  X    ",
-"  XX     XXX     XXooXX   XX    ",
-"   XX   XXXXX   XXXXX    XOXXX  ",
-"    XXXXX   XXXXXX      XOOXOOXX",
-"             XOX       XOOOXOOOX",
-"    XXXXX   XXXXXX     XOOOXOOOO",
-"   XX   XXXXX   XXXXXX  XOOXOOOO",
-"  XX     XXX     XXXXXXXOOOXOOOO",
-"  X       X        XOOOOOOXOOOOO",
-"  XX     XX       XOOOOOOOXOOOOO",
-"   XX   XX       XOOOOOOOXXOOOOO",
-"    XXXXX       XOOOOOXXXOOOOOOO",
-"               XOOOXXXOOOOOOOOOO",
-"              XOXXXOOOOOOOOOOOOX",
-"             XXXOOOOOOOOOOOOOOX ",
-"              XXOOOOOOOOOOOOOX  ",
-"                XXOOOOOOOOOOOX  ",
-"                  XOOOOOOOOOX   ",
-"                   XXOOOOOOX    ",
-"                     XXOOOX     ",
-"                       XXOX     ",
-"                         X      ",
-"                                ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-mail-forward-up.xbm
diff -u gnus/etc/gnus/gnus-summary-mail-forward-up.xbm:7.1 gnus/etc/gnus/gnus-summary-mail-forward-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-mail-forward-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-forward-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x10,0x42,0x80,0x20,0x84,0x10,0x2a,0x14,0x3a,0xa5,0x40,0x41,0x64,0x08,0x14,
- 0x28,0xd6,0xa0,0x62,0x85,0x80,0x15,0xe8,0x20,0xca,0x41,0x39,0x8b,0xb0,0x2a,
- 0x24,0x22,0xd2,0x86,0x12,0x86,0x58,0x24,0x11,0x2c,0xd2,0x8c,0x08,0x98,0x34,
- 0x75,0x08,0x10,0x30,0x14,0x08,0x60,0x8a,0x0e,0x04,0x20,0x10,0x05,0xfc,0x7f,
- 0x45,0x02,0x02,0x60,0x10,0x01,0x03,0x18,0xca,0xe0,0x01,0x44,0x20,0x3e,0x00,
- 0x0a,0xf4,0x21,0x00,0x53,0x32,0x20,0x80,0x80,0x10,0x10,0x40,0x2a,0x2a,0x10,
- 0xb0,0x80,0x60,0x10,0x28,0x2a,0xea,0x10,0x84,0x40,0x81,0x10,0x2a,0x14,0x94,
- 0x11,0x41,0x21,0x21,0xca,0x2a,0x48,0x84,0xac,0x80,0x02,0x21,0x3d,0x54,0x50,
- 0x14,0x84,0x00,0x05,0x42,0x21,0xaa,0x50};
Index: gnus/etc/gnus/gnus-summary-mail-forward-up.xpm
diff -u gnus/etc/gnus/gnus-summary-mail-forward-up.xpm:7.1 gnus/etc/gnus/gnus-summary-mail-forward-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-mail-forward-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-forward-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-mail-forward_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"   ...                          ",
-"  .   .                         ",
-"  .   .               .         ",
-"       .             ...        ",
-"      ...          ...XX.       ",
-"     . . .        .XX.XXX.      ",
-"    .  .  .      .XX.XXXX..     ",
-"    . .   .     .XXX.XXXXX..    ",
-"    . .   .    .XXX.XXXXXXX.    ",
-"    ..    .  ..XXXX.XXXXXXXX.   ",
-"    .     . .XXXXXX.XXXXXXXXX.  ",
-"         . .XXXXXX.XXXXXXXXXX.  ",
-"          .XXXXXXX............. ",
-"         .XXXXXXX.XXXXXXXXXXX.  ",
-"        .XXXXXXX..XXXXXXXXX..   ",
-"      ..XXXXX....XXXXXXXXX.     ",
-"     .XXX.....XXXXXXXXXXX.      ",
-"     ....XXXX.XXXXXXXXXX.       ",
-"    ..XXXXXXX.XXXXXXXXX.        ",
-"    .XXXXXXX.XXXXXXXXX.         ",
-"     .XXXXXX.XXXXXXX..          ",
-"     ..XXXXX.XXXXXX.            ",
-"      ..XXXX.XXXXX.             ",
-"       .XXXX.XXXX.              ",
-"        .XXX.XXX.               ",
-"         .X.XX..                ",
-"          ..X.                  ",
-"          ...                   ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-mail-get-up.xbm
diff -u gnus/etc/gnus/gnus-summary-mail-get-up.xbm:7.1 gnus/etc/gnus/gnus-summary-mail-get-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-mail-get-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-get-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x48,0x00,0x11,0x02,0x12,0x54,0x84,0x50,0x40,0x81,0x50,0x82,0x2a,0x28,0x0a,
- 0x28,0x80,0x42,0xa0,0x82,0xaa,0x13,0x3d,0x28,0x40,0x46,0xd4,0x42,0xb5,0x28,
- 0x86,0x10,0x50,0xda,0x51,0x47,0x99,0xb0,0x09,0x13,0x14,0x50,0x01,0x45,0x21,
- 0x18,0x82,0x21,0x74,0x4c,0xc7,0x94,0x81,0x13,0x78,0x02,0x94,0x44,0x05,0x29,
- 0xf1,0xff,0xff,0x7f,0x74,0x00,0x00,0x2c,0x91,0x01,0x00,0x23,0x14,0x06,0xc0,
- 0xa0,0x11,0x18,0x30,0x20,0x14,0x60,0x0c,0x60,0x12,0x90,0x0b,0x20,0x18,0x0c,
- 0x30,0xa0,0x12,0x02,0x40,0x20,0x18,0x01,0x80,0xa0,0xd2,0x00,0x00,0x23,0x38,
- 0x00,0x00,0x64,0x12,0x00,0x00,0x38,0xf8,0xff,0xff,0xbf,0x02,0x00,0x00,0x20,
- 0xa8,0xaa,0xaa,0x8a,0x05,0x00,0x40,0x20};
Index: gnus/etc/gnus/gnus-summary-mail-get-up.xpm
diff -u gnus/etc/gnus/gnus-summary-mail-get-up.xpm:7.1 gnus/etc/gnus/gnus-summary-mail-get-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-mail-get-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-get-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-mail-get_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"       ...         ...          ",
-"      .   .       .   .         ",
-"     .     .     .     .        ",
-"    .       . . .       ..      ",
-"    .       .. ..       ..      ",
-"    .XXXXXXX.   .XXXXXXX.       ",
-"     .XXXXX.     .XXXXX.        ",
-"     ..XXX..     ..XXX..        ",
-"       ...         ...          ",
-"                                ",
-"    ..........................  ",
-"    ...XXXXXXXXXXXXXXXXXXX..X.  ",
-"    .XX..XXXXXXXXXXXXXXX..XXX.  ",
-"    .XXXX..XXXXXXXXXXX..XXXXX.  ",
-"    .XXXXXX..XXXXXXX..XXXXXXX.  ",
-"    .XXXXXXXX..XXX..XXXXXXXXX.  ",
-"    .XXXXXXX.XX...X.XXXXXXXXX.  ",
-"    .XXXXX..XXXXXXXX..XXXXXXX.  ",
-"    .XXXX.XXXXXXXXXXXX.XXXXXX.  ",
-"    .XXX.XXXXXXXXXXXXXX.XXXXX.  ",
-"    .X..XXXXXXXXXXXXXXXX..XXX.  ",
-"    ..XXXXXXXXXXXXXXXXXXXX.XX.  ",
-"    .XXXXXXXXXXXXXXXXXXXXXX...  ",
-"    ..........................  ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-mail-originate-up.xbm
diff -u gnus/etc/gnus/gnus-summary-mail-originate-up.xbm:7.1 gnus/etc/gnus/gnus-summary-mail-originate-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-mail-originate-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-originate-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x04,0x42,0x08,0x10,0xa1,0x10,0x42,0x05,0x14,0xa2,0xff,0xaf,0x01,0x89,0x00,
- 0x14,0x54,0xa4,0x00,0x64,0x02,0xc1,0x00,0x3c,0xf8,0xff,0x1f,0xa0,0x6d,0x10,
- 0x68,0x20,0xf8,0xff,0x1f,0x60,0x12,0x84,0x00,0x20,0x48,0xd1,0x00,0xa0,0x02,
- 0x88,0xfc,0x21,0xfc,0xff,0x00,0x60,0x1e,0x80,0x6c,0x21,0x64,0x80,0x00,0xa0,
- 0x86,0x81,0x00,0x20,0x04,0x86,0x00,0x60,0x05,0x98,0x00,0x20,0x04,0xe4,0x00,
- 0xa0,0x06,0x83,0x80,0x25,0x84,0x80,0x00,0x60,0x46,0x80,0x00,0x20,0x34,0x80,
- 0x00,0xa0,0x0d,0x80,0xff,0x3f,0x04,0x00,0x00,0x2e,0xfe,0xff,0xff,0x4f,0x48,
- 0x92,0x44,0x12,0x92,0x08,0x11,0x44,0x00,0x21,0x44,0x11,0x55,0x48,0x21,0x44,
- 0x80,0x02,0x8a,0x10,0x2a,0xa8,0x40,0x44};
Index: gnus/etc/gnus/gnus-summary-mail-originate-up.xpm
diff -u gnus/etc/gnus/gnus-summary-mail-originate-up.xpm:7.1 gnus/etc/gnus/gnus-summary-mail-originate-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-mail-originate-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-originate-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-mail-originate_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"               .............    ",
-"               .XXXXXXXXXX.X.   ",
-"               .XXXXXXXXXX.XX.  ",
-"               .XXXXXXXXXX....  ",
-"   ..................XXXXXXXX.  ",
-"   .X. X X X X X X .X..XXXXXX.  ",
-"   ..................XXXXXXXX.  ",
-"               .XXXXXXXXXXXXX.  ",
-"               .XXXXXXXXXXXXX.  ",
-"               .XX.......XXXX.  ",
-"  ..............XXXXXXXXXXXXX.  ",
-"  ...XXXXXXXXXX.XX..X..X.XXXX.  ",
-"  .XX..XXXXXXXX.XXXXXXXXXXXXX.  ",
-"  .XXXX..XXXXXX.XXXXXXXXXXXXX.  ",
-"  .XXXXXX..XXXX.XXXXXXXXXXXXX.  ",
-"  .XXXXXXXX..XX.XXXXXXXXXXXXX.  ",
-"  .XXXXXXX.XX...XXXXXXXXXXXXX.  ",
-"  .XXXXX..XXXXX.XXXXXXX..X.XX.  ",
-"  .XXXX.XXXXXXX.XXXXXXXXXXXXX.  ",
-"  .XXX.XXXXXXXX.XXXXXXXXXXXXX.  ",
-"  .X..XXXXXXXXX.XXXXXXXXXXXXX.  ",
-"  ..XXXXXXXXXXX...............  ",
-"  .XXXXXXXXXXXXXXXXXXXXXX...    ",
-"  ..........................    ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-mail-reply-up.xbm
diff -u gnus/etc/gnus/gnus-summary-mail-reply-up.xbm:7.1 gnus/etc/gnus/gnus-summary-mail-reply-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-mail-reply-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-reply-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x40,0x40,0x20,0xaa,0x2a,0x7a,0x0a,0x00,0x80,0x88,0x51,0xaa,0x2a,0x06,
- 0x06,0x00,0xc0,0x05,0x58,0xaa,0x3a,0x12,0x08,0x00,0x0c,0x11,0x2c,0xaa,0x03,
- 0x09,0x42,0xc0,0x80,0x04,0x06,0x35,0x40,0x04,0x57,0x98,0x49,0x80,0x18,0x3a,
- 0x20,0x41,0x56,0xc8,0x10,0xc1,0x11,0x0c,0x93,0x60,0x50,0x0a,0x1c,0x18,0x90,
- 0x08,0x30,0x06,0x30,0x0a,0xc8,0x05,0x90,0x08,0x06,0x18,0x30,0x0a,0x01,0x20,
- 0x10,0x88,0x00,0x40,0x50,0x6a,0x00,0x80,0x11,0x19,0x00,0x00,0x52,0x0c,0x00,
- 0x00,0x1c,0xf9,0xff,0xff,0x5f,0x44,0x44,0x44,0x24,0x11,0x11,0x11,0x09,0x44,
- 0x44,0x44,0xa0,0x11,0x11,0x11,0x15,0x44,0x44,0x44,0x40,0x11,0x11,0x91,0x14,
- 0x44,0x44,0x04,0xa2,0x11,0x22,0xa2,0x08};
Index: gnus/etc/gnus/gnus-summary-mail-reply-up.xpm
diff -u gnus/etc/gnus/gnus-summary-mail-reply-up.xpm:7.1 gnus/etc/gnus/gnus-summary-mail-reply-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-mail-reply-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-reply-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-mail-reply_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-"                    ...         ",
-"                   .XXX..       ",
-"                  .XXXXXX..     ",
-"              ... .XXXXXXXX.    ",
-"            ..XXX.XX.XXXXXX.    ",
-"          ..XXXX.XXX.XXXXX.     ",
-"        ..XXXXXX.XX.XXXXX.      ",
-"      ..XXXXXXX.XX.XXXXXX.      ",
-"     .XXXXXXXX.XXX.XXXXX...     ",
-"   ..XX..XX.XX.XXXXXXXX.XXX..   ",
-"   ...XXXXXXX.XX.XXXXX.XX..X.   ",
-"   .XX..XXXX.XXX.XXXXX...XXX.   ",
-"   .XXXX..XX.XX.XXXXX..XXXXX.   ",
-"   .XXXXXX...XXXXXX..XXXXXXX.   ",
-"   .XXXXXXXX..XXX..XXXXXXXXX.   ",
-"   .XXXXXXX.XX...X.XXXXXXXXX.   ",
-"   .XXXXX..XXXXXXXX..XXXXXXX.   ",
-"   .XXXX.XXXXXXXXXXXX.XXXXXX.   ",
-"   .XXX.XXXXXXXXXXXXXX.XXXXX.   ",
-"   .X..XXXXXXXXXXXXXXXX..XXX.   ",
-"   ..XXXXXXXXXXXXXXXXXXXX.XX.   ",
-"   .XXXXXXXXXXXXXXXXXXXXXX...   ",
-"   ..........................   ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-mail-save-up.xbm
diff -u gnus/etc/gnus/gnus-summary-mail-save-up.xbm:7.1 gnus/etc/gnus/gnus-summary-mail-save-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-mail-save-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-save-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x10,0x10,0x00,0x55,0x45,0x45,0x55,0x00,0x10,0x08,0x00,0xd4,0xff,0xff,
- 0x7f,0x82,0x03,0x00,0xf0,0xd0,0x0c,0x00,0x4c,0x82,0x30,0x00,0x43,0xd4,0xc0,
- 0xc0,0x40,0x80,0x80,0x33,0xc0,0xaa,0x60,0xcc,0x40,0xc0,0x10,0x00,0x41,0x95,
- 0x08,0x00,0x46,0xc0,0x06,0x00,0xd8,0xfe,0xff,0x0f,0x60,0x2c,0x00,0x0b,0x40,
- 0x35,0x10,0xfd,0x7f,0x2c,0x02,0x2b,0x49,0x35,0x40,0x4d,0x12,0xac,0x00,0x0b,
- 0xa0,0x35,0x00,0xad,0x0a,0x2c,0x24,0x09,0x90,0x2d,0x00,0x5d,0x25,0xf4,0xff,
- 0x0b,0x80,0xa6,0x55,0xad,0x2a,0x4c,0xaa,0x08,0x40,0xf5,0xff,0x5d,0x15,0x6c,
- 0x35,0x0b,0x20,0x66,0x37,0xab,0x4a,0x6c,0x2d,0x0d,0x00,0xb9,0x35,0x4b,0x55,
- 0xf4,0xff,0x1f,0x80,0x01,0x40,0x80,0x2a};
Index: gnus/etc/gnus/gnus-summary-mail-save-up.xpm
diff -u gnus/etc/gnus/gnus-summary-mail-save-up.xpm:7.1 gnus/etc/gnus/gnus-summary-mail-save-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-mail-save-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-mail-save-up.xpm	Sun May  1 19:04:56 2005
@@ -1,41 +0,0 @@
-/* XPM */
-static char * icon-save-mail_xpm[] = {
-"32 32 6 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"O	c #E5E5E5E5E5E5",
-"+	c #666666666666",
-"                                ",
-"                                ",
-"                                ",
-"       ........................ ",
-"       ...XXXXXXXXXXXXXXXXXX... ",
-"       .XX..XXXXXXXXXXXXXX..XX. ",
-"       .XXXX..XXXXXXXXXX..XXXX. ",
-"       .XXXXXX..XXXXXX..XXXXXX. ",
-"       .XXXXXXX...XX..XXXXXXXX. ",
-"       .XXXXX..XXX..XX..XXXXXX. ",
-"       .XXXX.XXXXXXXXXXX.XXXXX. ",
-"       .XXX.XXXXXXXXXXXXX..XXX. ",
-"       .X..XXXXXXXXXXXXXXXX..X. ",
-"  ..................XXXXXXXXX.. ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXXXX. ",
-"  .oo.OOOOOOOOOO.oo............ ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo............oo.            ",
-"  .oooooooooooooooo.            ",
-"  .oooooooooooooooo.            ",
-"  .oo............oo.            ",
-"  .oo.+++++++.OO.oo.            ",
-"  .oo.+++++++.OO.oo.            ",
-"  .oo.+++++++.OO.oo.            ",
-"   .o.+++++++.OO.oo.            ",
-"    ................            ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-next-unread-up.xbm
diff -u gnus/etc/gnus/gnus-summary-next-unread-up.xbm:7.1 gnus/etc/gnus/gnus-summary-next-unread-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-next-unread-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-next-unread-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x08,0x10,0x20,0x00,0xa3,0x66,0xab,0x76,0x14,0x11,0x04,0x02,0x41,0x04,0xa1,
- 0x48,0x14,0x51,0x1e,0x22,0x62,0xa6,0xa9,0x2a,0x0a,0x71,0x18,0xa0,0x40,0x18,
- 0xb6,0x0a,0x8a,0x06,0x17,0x50,0xb2,0x01,0x63,0x27,0x62,0x80,0x20,0x90,0x50,
- 0x00,0x40,0x25,0x4a,0x00,0x40,0x80,0xe2,0x00,0x80,0x36,0x12,0xe1,0x80,0x41,
- 0x84,0x9a,0x00,0x29,0x10,0x87,0x01,0x85,0xa6,0x61,0x01,0x32,0x62,0x70,0x01,
- 0x42,0x18,0x30,0x02,0x14,0x06,0x08,0x02,0x4c,0x06,0x00,0x02,0x28,0x04,0x00,
- 0x04,0xac,0xca,0x07,0x7c,0x0b,0x68,0x0d,0xea,0x20,0x1b,0x12,0x93,0x6b,0xb4,
- 0x54,0x29,0x03,0x91,0xba,0x95,0x51,0x74,0x19,0x53,0x0b,0x6a,0x0a,0xd6,0x62,
- 0xe0,0x07,0x7c,0x09,0x8a,0x00,0x80,0x42};
Index: gnus/etc/gnus/gnus-summary-next-unread-up.xpm
diff -u gnus/etc/gnus/gnus-summary-next-unread-up.xpm:7.1 gnus/etc/gnus/gnus-summary-next-unread-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-next-unread-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-next-unread-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-next-unread_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"                                ",
-" .   .   .   .   .   .   .   .  ",
-"                                ",
-"                                ",
-"                 ...            ",
-" .   .   .   . ..XX. .   .   .  ",
-"             ..XXXX..           ",
-"           ..XXXX..X.           ",
-"         ..XXXXX...X.           ",
-" .   . ..XXXXXXX..XXX.   .   .  ",
-"     ..XXXXXXXX.XXXXX.          ",
-"      .XXXXXXXXXXXXXXX.         ",
-"      .XXXXXXXXXXXXXXX.         ",
-" .   . .XXXXXXXXXXXXXXX. .   .  ",
-"        .XXXX...XXXXXXX.        ",
-"         .X..XX.XXXXXXXX.       ",
-"         ..XXXX..XXXXXXX.       ",
-" .     ..XXXX..X.XXXXXXXX.   .  ",
-"     ..XXXXX...X.XXXXXXXX.      ",
-"   ..XXXXXXX..XXX.XXXXXXXX.     ",
-"  .XXXXXXXX.XXXXX.XXXXXXXX.     ",
-" ..XXXXXXXXXXXXXX.XXXXXXXXX. .  ",
-"  .XXXXXXXXXXXXXXX.XXXXXXX..    ",
-"   .XX.....XXXXXXX.....X..      ",
-"   .X.ooooo.XXXXX.oooo..        ",
-" .  .oXooooo.XXX.oXooooo..   .  ",
-"    .ooooooo.X.X.ooooooo.       ",
-"    .ooooooo..X..ooooooo.       ",
-"    ..oooooo.XXX.ooooooo.       ",
-" .   ..oooo.XXXXX.oooo.. .   .  ",
-"      .....XXXXXXX.....         ",
-"       .XXXXXXXXXXXXXXX.        "};
Index: gnus/etc/gnus/gnus-summary-post-news-up.xbm
diff -u gnus/etc/gnus/gnus-summary-post-news-up.xbm:7.1 gnus/etc/gnus/gnus-summary-post-news-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-post-news-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-post-news-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x10,0x10,0x01,0x6b,0xa7,0x66,0x72,0x04,0x10,0x02,0x05,0xa1,0x8a,0x50,
- 0x48,0x04,0x20,0x8f,0x20,0x72,0xab,0x39,0x2b,0x02,0x64,0x58,0xa4,0x50,0x19,
- 0x16,0x01,0x0a,0x06,0x57,0x54,0xe2,0x01,0x23,0x23,0x72,0x80,0x20,0x94,0x44,
- 0x00,0x40,0x01,0x50,0x00,0xc0,0x54,0xa6,0x00,0x80,0x22,0x92,0x00,0x80,0x4a,
- 0x40,0x01,0x00,0x11,0x8a,0x01,0x00,0x45,0x32,0x02,0x00,0x2a,0x42,0x02,0x00,
- 0xa2,0x10,0x05,0x00,0x0c,0x4a,0x06,0x00,0x24,0x22,0x0a,0x00,0x68,0xaa,0x0c,
- 0x00,0x0c,0x00,0x11,0x80,0x53,0x2a,0x14,0x40,0x05,0x22,0x23,0x70,0x62,0x92,
- 0x34,0x0e,0x09,0x24,0xc0,0x4b,0x52,0x80,0x0a,0x21,0x80,0x6b,0x62,0xaa,0x36,
- 0x04,0x15,0x01,0x42,0x51,0x80,0xa8,0x28};
Index: gnus/etc/gnus/gnus-summary-post-news-up.xpm
diff -u gnus/etc/gnus/gnus-summary-post-news-up.xpm:7.1 gnus/etc/gnus/gnus-summary-post-news-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-post-news-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-post-news-up.xpm	Sun May  1 19:04:56 2005
@@ -1,38 +0,0 @@
-/* XPM */
-static char * icon-post_xpm[] = {
-"32 32 3 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"                                ",
-" .   .   .   .   .   .   .   .  ",
-"                                ",
-"                                ",
-"                 ...            ",
-" .   .   .   . ..XX. .   .   .  ",
-"             ..XXXX..           ",
-"           ..XXXX..X.           ",
-"         ..XXXXX...X.           ",
-" .   . ..XXXXXXX..XXX.   .   .  ",
-"     ..XXXXXXXX.XXXXX.          ",
-"      .XXXXXXXXXXXXXXX.         ",
-"      .XXXXXXXXXXXXXXX.         ",
-" .   . .XXXXXXXXXXXXXXX. .   .  ",
-"       .XXXXXXXXXXXXXXX.        ",
-"        .XXXXXXXXXXXXXXX.       ",
-"        .XXXXXXXXXXXXXXX.       ",
-" .   .   .XXXXXXXXXXXXXXX.   .  ",
-"         .XXXXXXXXXXXXXXX.      ",
-"          .XXXXXXXXXXXXXXX.     ",
-"          .XXXXXXXXXXXXXXX.     ",
-" .   .   . .XXXXXXXXXXXXXXX. .  ",
-"           .XXXXXXXXXXXXXX..    ",
-"            .XXXXXXXXXX...      ",
-"            .XXXXXXXXX.         ",
-" .   .   .   .XXXXXX..   .   .  ",
-"             .XXX...            ",
-"              ....              ",
-"                                ",
-" .   .   .   .   .   .   .   .  ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-prev-unread-up.xbm
diff -u gnus/etc/gnus/gnus-summary-prev-unread-up.xbm:7.1 gnus/etc/gnus/gnus-summary-prev-unread-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-prev-unread-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-prev-unread-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x08,0x08,0x40,0x20,0x23,0x63,0x2b,0x2b,0x54,0x14,0x24,0xa4,0x01,0x02,0x09,
- 0x01,0x54,0xa9,0x2e,0x2a,0x22,0xa2,0xa9,0x62,0x4a,0x6a,0x18,0x12,0x90,0x18,
- 0xb6,0x04,0x02,0x06,0x17,0x50,0xea,0x01,0x63,0x2b,0x64,0x80,0x20,0x44,0x51,
- 0x00,0x40,0x21,0x44,0x00,0x40,0x8a,0xe2,0x00,0xc0,0x22,0x0a,0xe1,0xc0,0x2f,
- 0xd0,0x9f,0x20,0x4d,0x42,0x87,0xb1,0x1a,0xea,0x61,0x15,0x72,0x60,0x70,0xbb,
- 0x14,0x1d,0x30,0xb1,0x5a,0x04,0x08,0x22,0x0d,0x06,0x00,0xc2,0x6f,0x06,0x00,
- 0x84,0x20,0x08,0x00,0x64,0x0a,0x0a,0x00,0x58,0x50,0x12,0x00,0x10,0x27,0x1a,
- 0x00,0x50,0x90,0x20,0x00,0xa0,0x24,0x32,0x00,0x20,0x82,0x26,0x00,0xc0,0x32,
- 0x40,0x00,0x40,0x44,0xaa,0x00,0x80,0x11};
Index: gnus/etc/gnus/gnus-summary-prev-unread-up.xpm
diff -u gnus/etc/gnus/gnus-summary-prev-unread-up.xpm:7.1 gnus/etc/gnus/gnus-summary-prev-unread-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-prev-unread-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-prev-unread-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-prev-unread_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"                                ",
-" .   .   .   .   .   .   .   .  ",
-"                                ",
-"                                ",
-"                 ...            ",
-" .   .   .   . ..XX. .   .   .  ",
-"             ..XXXX..           ",
-"           ..XXXX..X.           ",
-"         ..XXXXX...X.           ",
-" .   . ..XXXXXXX..XXX.   .   .  ",
-"     ..XXXXXXXX.XXXXX.          ",
-"      .XXXXXXXXXXXXXXX.         ",
-"      .XXXXXXXXXXXXXXX.         ",
-" .   . .XXXXXXXXXXXXXX.  .   .  ",
-"        .XXXX...XXXXXX.....     ",
-"       ...o..XX.XXXXX.oooo..    ",
-"      .oo..XXXX..XXX.oXooooo.   ",
-" .   .o..XXXX..X.X.X.ooooooo..  ",
-"     ..XXXXX...X..X..ooooooo.   ",
-"   ..XXXXXXX..XX.XXX.ooooooo.   ",
-"  .XXXXXXXX.XXXXX.XXX.oooo..    ",
-" ..XXXXXXXXXXXXXX.XXXX.....  .  ",
-"  .XXXXXXXXXXXXXXX.XXXX.        ",
-"   .XXXXXXXXXXXXXX.XX..         ",
-"   .XXXXXXXXXXXXXXX..           ",
-" .  .XXXXXXXXXXXXXXX.    .   .  ",
-"    .XXXXXXXXXXXXXXX.           ",
-"     .XXXXXXXXXXXXXXX.          ",
-"     .XXXXXXXXXXXXXXX.          ",
-" .   .XXXXXXXXXXXXXXXX.  .   .  ",
-"      .XXXXXXXXXXXXXXX.         ",
-"       .XXXXXXXXXXXXXXX.        "};
Index: gnus/etc/gnus/gnus-summary-reply-up.xbm
diff -u gnus/etc/gnus/gnus-summary-reply-up.xbm:7.1 gnus/etc/gnus/gnus-summary-reply-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-reply-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-reply-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x10,0x00,0x11,0x88,0x45,0x55,0x84,0x22,0x08,0x80,0x10,0x88,0x42,0x55,0xa4,
- 0x22,0x28,0x00,0x01,0x84,0x05,0x55,0x5a,0x21,0x50,0x00,0x35,0x8a,0x09,0xf5,
- 0xc2,0x20,0x24,0x18,0x81,0x85,0x01,0x87,0x00,0x2a,0xd4,0x41,0x00,0x43,0x61,
- 0x40,0x80,0x17,0x1c,0x20,0x80,0x58,0xb5,0x1a,0xc0,0x3f,0x0c,0x08,0x60,0xb0,
- 0x75,0x08,0xb0,0x2e,0x84,0x04,0xb8,0xa1,0x06,0x03,0x4c,0x20,0x04,0x0c,0x36,
- 0x60,0x06,0x10,0x0f,0x20,0x06,0x70,0x07,0x60,0x05,0xc8,0x09,0xa0,0x04,0x04,
- 0x10,0xa0,0x06,0x02,0x20,0x60,0x85,0x01,0xc0,0xa0,0x44,0x00,0x00,0x61,0x25,
- 0x00,0x00,0x22,0x1e,0x00,0x00,0xbc,0x0e,0x00,0x00,0x70,0xfd,0xff,0xff,0x3f,
- 0x94,0x52,0x55,0x55,0x4a,0x29,0x22,0xa2};
Index: gnus/etc/gnus/gnus-summary-reply-up.xpm
diff -u gnus/etc/gnus/gnus-summary-reply-up.xpm:7.1 gnus/etc/gnus/gnus-summary-reply-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-reply-up.xpm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-reply-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-follow-up_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                   .            ",
-"                  .X..          ",
-"             ... .XXXX.         ",
-"           ..XXX.XXXXXX..       ",
-"         ..XXXX.XXXXXXXXX.      ",
-"       ..XXXXX.XXXXXXXXX..      ",
-"     ..XXXXXXX.XXXXXXXX....     ",
-"   ..XXXXXXXX.XXXXXXXXX.oXX..   ",
-"  .X..X.X.X..XXXXXXXXX..o...o.  ",
-"  ..XXXXXXX.XXXXXXXXX..ooXXX..  ",
-"  .X...XXXX.XXXXXXXX..ooX...X.  ",
-"  .XXXX.XX.XXXXXXXX..oX..XXXX.  ",
-"  .XXXXX..XXXXXXXX..oX.XXXXXX.  ",
-"  .XXXXXXX..XXXXX..X..XXXXXXX.  ",
-"oo.XXXXXXXXX.XXX....XXXXXXXXX.oo",
-"oo.XXXXXXXXX...X...XXXXXXXXXX.oo",
-"oo.XXXXXXXX.XX...XX.XXXXXXXXX.oo",
-"oo.XXXXXXX.XXXXXXXXX.XXXXXXXX.oo",
-"oo.XXXXXX.XXXXXXXXXXX.XXXXXXX.oo",
-"oo.XXXX..XXXXXXXXXXXXX..XXXXX.oo",
-"oo.XXX.XXXXXXXXXXXXXXXXX.XXXX.oo",
-"oo.XX.XXXXXXXXXXXXXXXXXXX.XXX.oo",
-"oo...XXXXXXXXXXXXXXXXXXXXX....oo",
-"oo..XXXXXXXXXXXXXXXXXXXXXXXX..oo",
-"oo............................oo",
-"oooooooooooooooooooooooooooooooo",
-"oooooooooooooooooooooooooooooooo"};
Index: gnus/etc/gnus/gnus-summary-reply-with-original-up.xbm
diff -u gnus/etc/gnus/gnus-summary-reply-with-original-up.xbm:7.1 gnus/etc/gnus/gnus-summary-reply-with-original-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-reply-with-original-up.xbm:7.1	Sun Jan  4 22:50:52 2004
+++ gnus/etc/gnus/gnus-summary-reply-with-original-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x08,0x00,0x20,0xaa,0x82,0xaa,0x4a,0x00,0x54,0x00,0x00,0xaa,0x02,0x54,
- 0x55,0x00,0xa8,0x07,0x00,0x54,0x85,0x5a,0x55,0x02,0x50,0x32,0x80,0x50,0x25,
- 0xc2,0x2a,0x02,0x18,0x81,0x41,0x54,0x17,0x01,0x17,0x80,0x09,0xc1,0x23,0x75,
- 0x04,0x3d,0x4f,0x18,0xc3,0x83,0x18,0x85,0x40,0xc0,0x61,0x4c,0x7c,0x60,0x30,
- 0xf6,0x23,0xb0,0x6e,0x84,0x20,0x98,0x21,0x05,0x13,0x5c,0x20,0x04,0x1c,0x36,
- 0x60,0x06,0x30,0x0f,0x60,0x06,0x70,0x07,0xa0,0x05,0xc8,0x09,0x20,0x06,0x04,
- 0x10,0x60,0x04,0x02,0x20,0xa0,0x85,0x01,0xc0,0x20,0x46,0x00,0x00,0xa1,0x24,
- 0x00,0x00,0x62,0x1e,0x00,0x00,0x7c,0x0d,0x00,0x00,0xb0,0xfc,0xff,0xff,0x3f,
- 0x55,0x55,0x4a,0x55,0x24,0x89,0x52,0xa2};
Index: gnus/etc/gnus/gnus-summary-reply-with-original-up.xpm
diff -u gnus/etc/gnus/gnus-summary-reply-with-original-up.xpm:7.1 gnus/etc/gnus/gnus-summary-reply-with-original-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-reply-with-original-up.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-summary-reply-with-original-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-follow-up-incl_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                ...             ",
-"               .X.X.            ",
-"              .XX.XX..          ",
-"             .XXX.XXXX.         ",
-"           ..XXX.XXXXXX..       ",
-"         ..X.XXX.XXXXXXX..      ",
-"       ..XX.XXXX.XXXXX....      ",
-"     ..XXX.XXXXX.X....XX...     ",
-"   ..XXX..XXXX....XXXXX.oXX..   ",
-"  .XXXX.XXXXXX.XXXXXXX..oXXXo.  ",
-"  ..XX.XXX.....XXXXXX..ooXXX..  ",
-"  .X......XXX.XXXXXX..ooX...X.  ",
-"  .XXXX.XXXXX.XXXXX..oX..XXXX.  ",
-"  .XXXXX..XX.XXXXX..oX.XXXXXX.  ",
-"  .XXXXXXX...XXXX..X..XXXXXXX.  ",
-"oo.XXXXXXXXX..XX....XXXXXXXXX.oo",
-"oo.XXXXXXXXX...X...XXXXXXXXXX.oo",
-"oo.XXXXXXXX.XX...XX.XXXXXXXXX.oo",
-"oo.XXXXXXX.XXXXXXXXX.XXXXXXXX.oo",
-"oo.XXXXXX.XXXXXXXXXXX.XXXXXXX.oo",
-"oo.XXXX..XXXXXXXXXXXXX..XXXXX.oo",
-"oo.XXX.XXXXXXXXXXXXXXXXX.XXXX.oo",
-"oo.XX.XXXXXXXXXXXXXXXXXXX.XXX.oo",
-"oo...XXXXXXXXXXXXXXXXXXXXX....oo",
-"oo..XXXXXXXXXXXXXXXXXXXXXXXX..oo",
-"oo............................oo",
-"oooooooooooooooooooooooooooooooo",
-"oooooooooooooooooooooooooooooooo"};
Index: gnus/etc/gnus/gnus-summary-save-article-file-up.xbm
diff -u gnus/etc/gnus/gnus-summary-save-article-file-up.xbm:7.1 gnus/etc/gnus/gnus-summary-save-article-file-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-save-article-file-up.xbm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-summary-save-article-file-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x20,0x08,0x08,0x82,0x8a,0x82,0xa2,0x20,0x20,0x14,0x04,0x15,0x14,0xfd,0xff,
- 0x43,0x42,0x04,0x00,0x0d,0x10,0x05,0x00,0x49,0x22,0x06,0x00,0x31,0x88,0x04,
- 0x00,0x1f,0x22,0x06,0x00,0x50,0x88,0x04,0x00,0x10,0x22,0x04,0x00,0xb0,0x88,
- 0x06,0x00,0x10,0x22,0x04,0x00,0x50,0xfc,0xff,0x0f,0x10,0x36,0x00,0x0b,0xb0,
- 0x2c,0x02,0x0d,0x10,0x34,0x10,0x0b,0x50,0x2d,0x00,0x0b,0x10,0x34,0x41,0x0d,
- 0xb0,0x2d,0x08,0x09,0x10,0x34,0x00,0x0b,0x50,0x2d,0x01,0x0d,0x10,0xf4,0xff,
- 0x0b,0xb0,0xad,0xda,0x0a,0x10,0x44,0x22,0x0d,0x50,0xf6,0xff,0xf9,0x1f,0x6c,
- 0x3b,0x4b,0x52,0xb5,0x2d,0x1d,0x08,0x6c,0x35,0x4b,0xa1,0x6a,0x3b,0x29,0x14,
- 0xf8,0xff,0x8f,0x40,0x02,0x40,0x2a,0x15};
Index: gnus/etc/gnus/gnus-summary-save-article-file-up.xpm
diff -u gnus/etc/gnus/gnus-summary-save-article-file-up.xpm:7.1 gnus/etc/gnus/gnus-summary-save-article-file-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-save-article-file-up.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-summary-save-article-file-up.xpm	Sun May  1 19:04:56 2005
@@ -1,41 +0,0 @@
-/* XPM */
-static char * icon-save-text_xpm[] = {
-"32 32 6 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"O	c #E5E5E5E5E5E5",
-"+	c #666666666666",
-"                                ",
-"                                ",
-"                                ",
-"          ................      ",
-"          .XXXXXXXXXXXXX.X.     ",
-"          .XXXXXXXXXXXXX.XX.    ",
-"          .XXXXXXXXXXXXX.XXX.   ",
-"          .XXXXXXXXXXXXX.....   ",
-"          .XXXXXXXXXXXXXXXXX.   ",
-"          .XXXXXXXXXXXXXXXXX.   ",
-"          .XXXXXXXXXXXXXXXXX.   ",
-"          .XXXXXXXXXXXXXXXXX.   ",
-"          .XXXXXXXXXXXXXXXXX.   ",
-"  ..................XXXXXXXX.   ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
-"  .oo............oo.XXXXXXXX.   ",
-"  .oooooooooooooooo.XXXXXXXX.   ",
-"  .oooooooooooooooo.XXXXXXXX.   ",
-"  .oo............oo..........   ",
-"  .oo.+++++++.OO.oo.            ",
-"  .oo.+++++++.OO.oo.            ",
-"  .oo.+++++++.OO.oo.            ",
-"   .o.+++++++.OO.oo.            ",
-"    ................            ",
-"                                "};
Index: gnus/etc/gnus/gnus-summary-save-article-up.xbm
diff -u gnus/etc/gnus/gnus-summary-save-article-up.xbm:7.1 gnus/etc/gnus/gnus-summary-save-article-up.xbm:removed
--- gnus/etc/gnus/gnus-summary-save-article-up.xbm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-summary-save-article-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x10,0x81,0x04,0x01,0x45,0x28,0x40,0x50,0x88,0x42,0x15,0x05,0xa2,0xff,0xff,
- 0x7f,0x88,0x03,0x00,0xf0,0xa2,0x0c,0x00,0x4c,0x88,0x30,0x00,0x43,0xc5,0xc0,
- 0xc0,0x40,0x90,0x80,0x33,0xc0,0xa4,0x60,0xcc,0x40,0x82,0x10,0x00,0x41,0xd0,
- 0x08,0x00,0x46,0x82,0x06,0x00,0xd8,0xfc,0xff,0x0f,0x60,0x2e,0x00,0x0d,0x40,
- 0x34,0x02,0xfb,0x7f,0x36,0x10,0x0d,0x91,0xac,0x00,0x4b,0x24,0x34,0x00,0x2d,
- 0x81,0x2d,0x48,0x4b,0x28,0x34,0x02,0x0d,0x85,0x2d,0x00,0xab,0x20,0xf4,0xff,
- 0x0d,0x8a,0xa6,0xaa,0xaa,0x20,0x4c,0x55,0x0a,0x85,0xf5,0xff,0x5b,0x20,0x6c,
- 0x35,0x8d,0x8a,0xad,0x36,0x2b,0x20,0xf4,0x2a,0x89,0x8a,0x6a,0x3b,0x5d,0x20,
- 0xf8,0xff,0x0f,0x85,0x02,0x40,0xa2,0x20};
Index: gnus/etc/gnus/gnus-summary-save-article-up.xpm
diff -u gnus/etc/gnus/gnus-summary-save-article-up.xpm:7.1 gnus/etc/gnus/gnus-summary-save-article-up.xpm:removed
--- gnus/etc/gnus/gnus-summary-save-article-up.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-summary-save-article-up.xpm	Sun May  1 19:04:56 2005
@@ -1,41 +0,0 @@
-/* XPM */
-static char * icon-save-mail_xpm[] = {
-"32 32 6 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"O	c #E5E5E5E5E5E5",
-"+	c #666666666666",
-"                                ",
-"                                ",
-"                                ",
-"       ........................ ",
-"       ...XXXXXXXXXXXXXXXXXX... ",
-"       .XX..XXXXXXXXXXXXXX..XX. ",
-"       .XXXX..XXXXXXXXXX..XXXX. ",
-"       .XXXXXX..XXXXXX..XXXXXX. ",
-"       .XXXXXXX...XX..XXXXXXXX. ",
-"       .XXXXX..XXX..XX..XXXXXX. ",
-"       .XXXX.XXXXXXXXXXX.XXXXX. ",
-"       .XXX.XXXXXXXXXXXXX..XXX. ",
-"       .X..XXXXXXXXXXXXXXXX..X. ",
-"  ..................XXXXXXXXX.. ",
-"  .oo.OOOOOOOOOO.oo.XXXXXXXXXX. ",
-"  .oo.OOOOOOOOOO.oo............ ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo.OOOOOOOOOO.oo.            ",
-"  .oo............oo.            ",
-"  .oooooooooooooooo.            ",
-"  .oooooooooooooooo.            ",
-"  .oo............oo.            ",
-"  .oo.+++++++.OO.oo.            ",
-"  .oo.+++++++.OO.oo.            ",
-"  .oo.+++++++.OO.oo.            ",
-"   .o.+++++++.OO.oo.            ",
-"    ................            ",
-"                                "};
Index: gnus/etc/gnus/gnus-uu-decode-uu-up.xbm
diff -u gnus/etc/gnus/gnus-uu-decode-uu-up.xbm:7.1 gnus/etc/gnus/gnus-uu-decode-uu-up.xbm:removed
--- gnus/etc/gnus/gnus-uu-decode-uu-up.xbm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-uu-decode-uu-up.xbm	Sun May  1 19:04:56 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x00,0x08,0x10,0x01,0xaa,0x42,0x45,0x54,0x00,0x14,0x10,0x01,0x55,0x41,0x45,
- 0x50,0x00,0x0a,0x88,0x0a,0xaa,0xa0,0x22,0x40,0x80,0xff,0xff,0x17,0xaa,0x95,
- 0x54,0x43,0x80,0x2a,0xa5,0x0a,0xaa,0xfd,0x7f,0x53,0xc0,0x06,0x40,0x06,0x94,
- 0x04,0x40,0x43,0xc2,0x05,0xc0,0x2a,0x90,0x86,0xc0,0x06,0xa2,0x64,0x4b,0x53,
- 0x88,0x96,0x44,0x06,0xd2,0x45,0xc0,0x52,0x84,0x25,0xc1,0x06,0x90,0xe6,0x41,
- 0x53,0x8a,0x05,0x42,0x06,0xa0,0x06,0xc4,0x52,0x95,0x04,0xc0,0x06,0xc0,0x05,
- 0x40,0x53,0x94,0x06,0x40,0x06,0xa2,0x05,0xc0,0x52,0x88,0xfc,0xff,0x06,0xa2,
- 0x95,0x12,0x53,0x88,0x4a,0xa9,0x06,0xa2,0xff,0xff,0x53,0x90,0x10,0x00,0x04,
- 0x42,0x42,0x55,0x50,0x14,0x28,0x80,0x0a};
Index: gnus/etc/gnus/gnus-uu-decode-uu-up.xpm
diff -u gnus/etc/gnus/gnus-uu-decode-uu-up.xpm:7.1 gnus/etc/gnus/gnus-uu-decode-uu-up.xpm:removed
--- gnus/etc/gnus/gnus-uu-decode-uu-up.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-uu-decode-uu-up.xpm	Sun May  1 19:04:56 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-decode-view_xpm[] = {
-"32 32 4 1",
-" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
-".	c #000000000000",
-"X	c #999999999999",
-"o	c #FFFFFFFFFFFF",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"                                ",
-"       ...................      ",
-"       .XXXXXXXXXXXXXXXXX.      ",
-"       .XXXXXXXXXXXXXXXXX.      ",
-"       .XX.............XX.      ",
-"       .XX.ooooooooooo.XX.      ",
-"       .XX.ooooooooooo.XX.      ",
-"       .XX.ooooooooooo.XX.      ",
-"       .XX.oooo.oooooo.XX.      ",
-"       .XX.oo..o..o.oo.XX.      ",
-"       .XX.o.oo.oo.ooo.XX.      ",
-"       .XX.ooo.ooooooo.XX.      ",
-"       .XX.oo.oo.ooooo.XX.      ",
-"       .XX.oo....ooooo.XX.      ",
-"       .XX.oooooo.oooo.XX.      ",
-"       .XX.ooooooo.ooo.XX.      ",
-"       .XX.ooooooooooo.XX.      ",
-"       .XX.ooooooooooo.XX.      ",
-"       .XX.ooooooooooo.XX.      ",
-"       .XX.ooooooooooo.XX.      ",
-"       .XX.............XX.      ",
-"       .XXXXXXXXXXXXXXXXX.      ",
-"       .XXXXXXXXXXXXXXXXX.      ",
-"       ...................      ",
-"                                ",
-"                                ",
-"                                "};
Index: gnus/etc/gnus/gnus-uu-post-news-up.xbm
diff -u gnus/etc/gnus/gnus-uu-post-news-up.xbm:7.1 gnus/etc/gnus/gnus-uu-post-news-up.xbm:removed
--- gnus/etc/gnus/gnus-uu-post-news-up.xbm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-uu-post-news-up.xbm	Sun May  1 19:04:57 2005
@@ -1,12 +0,0 @@
-#define noname_width 32
-#define noname_height 32
-static char noname_bits[] = {
- 0x11,0x11,0x19,0x51,0x4a,0x95,0x82,0x14,0x20,0x40,0x29,0x42,0x0a,0xd5,0x86,
- 0x10,0x31,0x31,0x3b,0x53,0x08,0x9d,0xe8,0x10,0xa2,0x43,0x82,0x4b,0x88,0xff,
- 0xff,0x03,0xb3,0xaa,0x54,0xbb,0x88,0x55,0xaa,0x02,0xa2,0xfc,0x7f,0x4b,0x88,
- 0x06,0xc0,0x12,0xb1,0x05,0x40,0x56,0x8a,0x05,0x40,0x03,0xd0,0x86,0xc0,0xaa,
- 0x85,0x64,0x4b,0x06,0xb1,0x95,0xc4,0x32,0x8a,0x46,0x40,0x4b,0xd0,0x24,0x41,
- 0x03,0x84,0xe6,0xc1,0x56,0xd9,0x05,0x42,0x12,0x82,0x04,0x44,0x4b,0x94,0x07,
- 0xc0,0x22,0xc1,0x04,0x40,0x16,0x95,0x05,0xc0,0x52,0xa0,0x06,0x40,0x13,0x8a,
- 0xfd,0xff,0x46,0xd0,0x94,0x52,0x12,0x93,0x29,0xa5,0x5a,0xa4,0xff,0xff,0x03,
- 0x10,0x02,0x08,0x55,0x85,0xa8,0xa2,0x00};
Index: gnus/etc/gnus/gnus-uu-post-news-up.xpm
diff -u gnus/etc/gnus/gnus-uu-post-news-up.xpm:7.1 gnus/etc/gnus/gnus-uu-post-news-up.xpm:removed
--- gnus/etc/gnus/gnus-uu-post-news-up.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus-uu-post-news-up.xpm	Sun May  1 19:04:57 2005
@@ -1,39 +0,0 @@
-/* XPM */
-static char * icon-post-pic_xpm[] = {
-"32 32 4 1",
-" 	c #000000000000",
-".	c #BFBFBFBFBFBF s backgroundToolBarColor",
-"X	c #999999999999",
-"o	c #FFFFFFFFFFFF",
-" ... ... ... ... ... ... ... ...",
-"................................",
-"................ ...............",
-"..............  .  .............",
-" ... ... ...  .. ..  ... ... ...",
-"..........  .........  .........",
-"........  .............  .......",
-".......                   ......",
-" ... .. XXXXXXXXXXXXXXXXX .. ...",
-"....... XXXXXXXXXXXXXXXXX ......",
-"....... XX             XX ......",
-"....... XX ooooooooooo XX ......",
-" ... .. XX ooooooooooo XX .. ...",
-"....... XX ooooooooooo XX ......",
-"....... XX oooo oooooo XX ......",
-"....... XX oo  o  o oo XX ......",
-" ... .. XX o oo oo ooo XX .. ...",
-"....... XX ooo ooooooo XX ......",
-"....... XX oo oo ooooo XX ......",
-"....... XX oo    ooooo XX ......",
-" ... .. XX oooooo oooo XX .. ...",
-"....... XX ooooooo ooo XX ......",
-"....... XX ooooooooooo XX ......",
-"....... XX ooooooooooo XX ......",
-" ... .. XX ooooooooooo XX .. ...",
-"....... XX ooooooooooo XX ......",
-"....... XX             XX ......",
-"....... XXXXXXXXXXXXXXXXX ......",
-" ... .. XXXXXXXXXXXXXXXXX .. ...",
-".......                   ......",
-"................................",
-"................................"};
Index: gnus/etc/gnus/gnus.xbm
diff -u gnus/etc/gnus/gnus.xbm:7.1 gnus/etc/gnus/gnus.xbm:removed
--- gnus/etc/gnus/gnus.xbm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus.xbm	Sun May  1 19:04:57 2005
@@ -1,622 +0,0 @@
-#define noname_width 271
-#define noname_height 273
-static char noname_bits[] = {
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x49,0xe0,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x97,0xaa,0x8a,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x57,0x2a,0x41,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa9,0x52,0x16,0xfe,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4a,0x49,0x05,
- 0xf9,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0x95,0xaa,0x58,0xf4,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xa5,0x54,0x26,0xe1,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x54,0x49,0x49,0xe4,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x2a,0xa5,
- 0x2a,0xd1,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xd5,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xaf,0x52,0x95,0x54,0xc4,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,
- 0x24,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x57,0x29,0xa9,0x92,0x11,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x57,0xd5,0xfa,0xff,0xff,0xab,0xea,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x4a,0x55,0x2a,0x41,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x25,0x29,0xe5,0xff,0xff,0x95,0xa4,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0xa4,
- 0x24,0xa5,0x14,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4a,0xa5,0xd4,0xff,
- 0x3f,0x52,0xa9,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x29,0x55,0x55,0x55,0x41,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xa9,0x54,0xea,0xff,0xdf,0x2a,0x55,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x55,0x55,0x4a,0x49,0x12,0x7e,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0x55,0xa5,0x92,0xff,0x23,0xa5,0x4a,0xd6,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa5,0xa4,0x94,0xaa,0x42,
- 0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0x4a,0x2a,0xa9,0xff,0xad,0x92,0x24,
- 0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a,
- 0x95,0x52,0x52,0x29,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x52,0x49,0x55,
- 0xfe,0x91,0x54,0x55,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0x49,0x29,0x55,0x25,0x85,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x4f,0x95,0xaa,0x92,0x7e,0x55,0x55,0xa9,0x4a,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a,0x50,0x95,0xaa,0x24,0x7e,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x57,0x2a,0x95,0x54,0x79,0x95,0x92,0x92,0x94,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xb9,0x62,0x29,0x49,
- 0x85,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x49,0x49,0x95,0xba,0xa4,0x54,
- 0xaa,0x52,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,
- 0x1a,0xf8,0xa7,0xaa,0x22,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0x55,0x52,
- 0x2a,0x75,0x55,0xa5,0x24,0xa5,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xbf,0x5a,0xfd,0x57,0x92,0x94,0x7e,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x4a,0x4a,0x55,0x49,0x89,0x92,0x94,0xaa,0x94,0xf4,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x1a,0xfc,0x2f,0x55,0x05,0x7c,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x55,0xa9,0x4a,0x55,0x2a,0x55,0x55,0x55,0x55,0xe5,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x4e,0xfd,0x5f,
- 0x29,0xa5,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0xa4,0x54,0x52,0x4a,0x55,0xa9,
- 0xa4,0x24,0xa5,0x94,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x2f,0x1d,0xfe,0x3f,0x95,0x04,0x7c,0xff,0xfd,0xff,0xff,0xff,0x3f,0x49,0xa5,
- 0x54,0xa9,0xa4,0x92,0x4a,0x49,0x4a,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xaf,0x44,0xfe,0x5f,0xa9,0x52,0x7d,0xff,0xe5,0xff,0xff,
- 0xff,0x5f,0x55,0x92,0x2a,0x95,0x52,0x4a,0x52,0xaa,0x52,0x4a,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x16,0xff,0xbf,0x4a,0x05,0x7c,
- 0xff,0xd9,0xff,0xff,0xff,0x5f,0x95,0x42,0xa5,0x52,0x95,0xaa,0xaa,0xaa,0x94,
- 0x54,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x43,0xfe,
- 0xbf,0x54,0x52,0x7d,0x7f,0x25,0xff,0xff,0xff,0xa7,0xa4,0x28,0x92,0x54,0x4a,
- 0xa5,0x4a,0x92,0xaa,0x4a,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xab,0x12,0xfe,0x7f,0xa5,0x02,0x7c,0x7f,0x55,0xfd,0xff,0xff,0x95,0x2a,
- 0x82,0x54,0xa5,0x54,0x2a,0xa9,0x2a,0xa5,0x52,0xf5,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x27,0x4b,0xff,0xff,0x4a,0x29,0x7d,0xff,0x92,0xfe,
- 0xff,0xff,0x55,0x92,0x20,0xa8,0x94,0x2a,0xa5,0x94,0x52,0x29,0xa9,0xf4,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x01,0xff,0x7f,0x52,0x42,
- 0x7c,0xff,0x25,0xf9,0xff,0x7f,0xaa,0x02,0x8a,0x40,0x29,0x49,0x09,0x41,0x4a,
- 0x55,0x25,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x57,
- 0xff,0xff,0x95,0x12,0x7d,0xff,0xa9,0xfa,0xff,0x7f,0x25,0xa9,0x20,0x2a,0xa5,
- 0xaa,0x42,0x92,0x54,0x92,0x54,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xaf,0x83,0xff,0xff,0xa9,0x42,0x7e,0xff,0xaa,0xf4,0xff,0xaf,0x54,
- 0x01,0x82,0x80,0xaa,0x54,0x14,0x08,0xa2,0xaa,0x4a,0xd2,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xef,0xcf,0xd7,0xff,0xff,0x52,0x12,0x7f,0xff,0x4a,
- 0xea,0xff,0x57,0x92,0xaa,0x28,0x24,0x29,0x25,0x81,0x82,0x08,0x49,0x52,0x55,
- 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xdf,0xef,0xe7,0xff,0xff,0x2a,
- 0x05,0x7e,0xff,0x55,0xd5,0xff,0xa5,0x2a,0x00,0x8e,0x10,0x4a,0x89,0x24,0x28,
- 0xa0,0xaa,0x2a,0x49,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xe7,0xff,
- 0xef,0xff,0xff,0xa5,0x50,0x7e,0xff,0x25,0xe5,0xff,0x2a,0xa5,0x52,0x7f,0x85,
- 0x54,0x35,0x08,0x82,0x0a,0x55,0x95,0xaa,0xfc,0xff,0xff,0xff,0xcf,0xff,0xff,
- 0xff,0xff,0xd7,0xff,0xff,0xff,0x7f,0x52,0x85,0x7e,0xff,0xab,0x94,0x1e,0x55,
- 0x2a,0xc8,0xff,0x10,0x90,0x92,0xa0,0x08,0x20,0x24,0x52,0x25,0xfd,0xff,0xff,
- 0xff,0xef,0xff,0xff,0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0x94,0x10,0x7e,0xff,
- 0x93,0xaa,0x6a,0x49,0x49,0xf2,0xff,0x85,0x52,0x09,0x0a,0xa2,0x4a,0x92,0x29,
- 0xa9,0xf2,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0x7f,
- 0x55,0x25,0x7f,0xff,0x55,0x49,0x49,0x95,0x0a,0xf9,0xff,0x17,0x48,0x26,0x50,
- 0x08,0x00,0xa9,0x4a,0x95,0xfa,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xf2,
- 0xff,0xff,0xff,0xff,0x92,0x80,0x7e,0xff,0xa7,0x54,0xaa,0xa4,0x52,0xfc,0xff,
- 0xaf,0x42,0x89,0xfa,0xbf,0x54,0x20,0xa9,0xa4,0xd4,0xff,0xff,0xff,0xcb,0xff,
- 0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,0x54,0x29,0x7f,0xff,0x4b,0xa5,0x92,
- 0x2a,0x01,0xff,0xff,0x1f,0xa8,0x22,0xff,0xff,0x01,0xa5,0x2a,0x55,0xa9,0xff,
- 0xff,0xff,0xd4,0xff,0xff,0xff,0x7f,0xfa,0xff,0xff,0xff,0x7f,0xa5,0x04,0x7f,
- 0xff,0x57,0x2a,0x55,0xa9,0x54,0xfe,0xff,0x3f,0x05,0x89,0xff,0xff,0x5f,0x48,
- 0x92,0x2a,0x95,0xff,0xff,0xff,0xea,0xff,0xff,0xff,0xff,0xd2,0xff,0xff,0xff,
- 0x7f,0x2a,0x91,0x7f,0xff,0xa9,0x54,0x4a,0x52,0x02,0xff,0xff,0xff,0x50,0xd1,
- 0xff,0xff,0x1f,0x81,0xaa,0xa4,0x52,0xfe,0xff,0x3f,0xe9,0xff,0xff,0xff,0x7f,
- 0x1d,0xff,0xff,0xff,0xff,0x54,0x41,0x7f,0xff,0x93,0x92,0x52,0x95,0xc8,0xff,
- 0xff,0xff,0x8b,0xc4,0xff,0xff,0x7f,0x24,0xa5,0x2a,0x49,0xf9,0xff,0x7f,0xd5,
- 0xff,0xff,0xff,0xbf,0x4a,0xff,0xff,0xff,0xff,0x4a,0x14,0x7f,0xff,0x28,0xa5,
- 0x94,0x2a,0xa0,0xff,0xff,0x7f,0x22,0xf0,0xff,0xff,0x7f,0x12,0x94,0xa4,0xaa,
- 0xea,0xff,0xaf,0xea,0xff,0xff,0xff,0x5f,0x8e,0xff,0xff,0xff,0x7f,0xa9,0x40,
- 0x7f,0xff,0x48,0x55,0x55,0x12,0xca,0xff,0xff,0xff,0x0a,0xf5,0xff,0xff,0xff,
- 0x80,0x52,0x95,0x54,0xaa,0xfe,0x55,0xc4,0xff,0xff,0xff,0x5f,0xa5,0xff,0xff,
- 0xff,0xff,0x94,0x14,0x7f,0xff,0x52,0x2a,0xa9,0x4a,0xe1,0xff,0xff,0xbf,0x24,
- 0xf0,0xff,0xff,0xff,0x0b,0x28,0xa9,0x92,0x24,0x55,0x49,0xe5,0xd7,0xff,0xff,
- 0xa7,0x8a,0xff,0xff,0xff,0x7f,0xa5,0xc0,0x7f,0xff,0x50,0x49,0x95,0x04,0xf8,
- 0xff,0xff,0x5f,0x1f,0xfd,0xff,0xff,0xff,0x47,0x45,0x55,0xaa,0xaa,0x4a,0xaa,
- 0xea,0xaf,0xff,0xff,0x2b,0xc3,0xff,0xff,0xff,0x7f,0x55,0x94,0x7f,0x7f,0x4a,
- 0x55,0x52,0x51,0xfe,0xff,0xff,0x5f,0x4e,0xf8,0xff,0xff,0xff,0x1f,0x50,0x92,
- 0x52,0x49,0xa9,0x92,0xe4,0xd3,0xff,0xff,0x4b,0xd5,0xff,0xff,0xff,0xff,0x94,
- 0xc0,0x7f,0x3f,0xa0,0xa4,0xaa,0x04,0xfe,0xff,0xff,0xa7,0x1d,0xfd,0xff,0xff,
- 0xff,0x9f,0x84,0xaa,0x4a,0xaa,0x24,0x55,0xf2,0x2b,0xff,0x7f,0xa9,0xc1,0xff,
- 0xff,0xff,0x7f,0x4a,0x95,0x7f,0xbf,0x2a,0x95,0x24,0x50,0xff,0xff,0xff,0x97,
- 0x5e,0xfe,0xff,0xff,0xff,0x3f,0x92,0x24,0x95,0x92,0xaa,0xa4,0xf2,0xcb,0xff,
- 0x5f,0xd5,0xe5,0xff,0xff,0xff,0xff,0x52,0x80,0x7f,0x3f,0xa0,0x52,0x15,0x85,
- 0xff,0xff,0xff,0xd7,0x38,0xfe,0xff,0xff,0xff,0xff,0x20,0xaa,0x52,0x55,0x55,
- 0x55,0xf9,0x29,0xfd,0xab,0xa4,0xf0,0xff,0xff,0xff,0x7f,0x29,0xa9,0x7f,0xff,
- 0x42,0x25,0x49,0xe8,0xff,0xff,0xff,0x69,0x7a,0xff,0xff,0xff,0xff,0xff,0x82,
- 0x52,0xaa,0x24,0x89,0x4a,0xf8,0x55,0x2a,0x49,0x95,0xf5,0xff,0xff,0xff,0xbf,
- 0x2a,0xc4,0x7f,0x7f,0x90,0x54,0x15,0xe2,0xff,0xff,0xff,0x25,0xbc,0xff,0xff,
- 0xff,0xff,0xff,0x29,0x48,0x49,0xaa,0xaa,0xa4,0xfa,0x95,0x92,0x54,0x52,0xf0,
- 0xff,0xff,0xff,0xbf,0x4a,0xd1,0x7f,0xff,0x05,0xaa,0x40,0xf8,0xff,0xff,0x7f,
- 0xaa,0xfc,0xff,0xff,0xff,0xff,0xff,0x43,0xa9,0xaa,0x4a,0x52,0xa9,0xf8,0xa4,
- 0xaa,0x52,0x95,0xfc,0xff,0xff,0xff,0x7f,0x52,0xc0,0x7f,0xff,0xa1,0x00,0x24,
- 0xfa,0xff,0xff,0xff,0x0a,0xfe,0xff,0xff,0xff,0xff,0xff,0x17,0x92,0x24,0xa5,
- 0x2a,0x55,0xfe,0xaa,0xa4,0x2a,0x29,0xf9,0xff,0xff,0xff,0xbf,0x2a,0xea,0x7f,
- 0xff,0x05,0x92,0x90,0xfc,0xff,0xff,0xbf,0xa4,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x4f,0xa0,0xaa,0x54,0x49,0x25,0x7c,0x49,0x95,0xa4,0x12,0xfc,0xff,0xff,0xff,
- 0x7f,0x8a,0xe0,0x7f,0xff,0xa3,0x04,0x05,0xfe,0xff,0xff,0xbf,0x06,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x1f,0x49,0x95,0x52,0xaa,0x12,0x7f,0x55,0x52,0x55,0x0a,
- 0xfd,0xff,0xff,0xff,0x3f,0x29,0xe8,0x7f,0xff,0x0f,0x50,0x50,0xff,0xff,0xff,
- 0x5f,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x04,0xa9,0x4a,0x25,0x45,0x3e,
- 0xa9,0x2a,0xa9,0xa2,0xfc,0xff,0xff,0xff,0x7f,0x55,0xe1,0x7f,0xff,0x27,0x05,
- 0xc4,0xff,0xff,0xff,0x9f,0x91,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x41,0x4a,
- 0x29,0xa9,0x12,0x5e,0x95,0x94,0x4a,0x0a,0xfe,0xff,0xff,0xff,0xbf,0x12,0xf4,
- 0x7f,0xff,0x8f,0x50,0xf1,0xff,0xff,0xff,0xa7,0xc2,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x14,0x92,0xaa,0x4a,0xa2,0xbf,0xa4,0x52,0x95,0x22,0xff,0xff,0xff,
- 0xff,0x3f,0x45,0xf2,0x7f,0xff,0x3f,0x04,0xf4,0xff,0xff,0xff,0xd7,0xe8,0xff,
- 0xff,0xff,0xff,0x5f,0xff,0xff,0x83,0xa8,0x94,0x54,0x09,0x2f,0x55,0x4a,0x52,
- 0x49,0xff,0xff,0xff,0xff,0x5f,0x99,0xf0,0x7f,0xff,0x7f,0x51,0xfc,0xff,0xff,
- 0xff,0x6b,0xf1,0xff,0xff,0xff,0xff,0x5f,0xfd,0xff,0x2b,0x2a,0xa9,0x12,0x20,
- 0x5f,0xa9,0xaa,0x54,0x00,0xff,0xff,0xff,0xff,0x5f,0x15,0xf2,0x7f,0xff,0xff,
- 0x8f,0xff,0xff,0xff,0xff,0x2b,0xfc,0xff,0xff,0xff,0xff,0x2f,0xfd,0xff,0x87,
- 0xa0,0x4a,0xaa,0x8a,0x9f,0x4a,0x52,0x15,0xa9,0xff,0xff,0xff,0xff,0x5f,0x8a,
- 0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x94,0xf8,0xff,0xff,0xff,0xff,
- 0x57,0xf2,0xff,0x2f,0x82,0x52,0x05,0xd0,0x2f,0x95,0x4a,0x49,0x84,0xff,0xff,
- 0xff,0xff,0xbf,0x24,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x12,0xfd,
- 0xff,0xff,0xff,0xff,0x4b,0xd5,0xff,0x9f,0x28,0x54,0x48,0xc5,0xbf,0x52,0x55,
- 0x0a,0xe1,0xff,0xff,0xff,0xff,0x9f,0x4a,0xfa,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x1a,0xfe,0xff,0xff,0xff,0xff,0x57,0xa9,0xff,0x3f,0x82,0x00,0x21,
- 0xf0,0x5f,0x2a,0x49,0x21,0xc4,0xff,0xff,0xff,0xff,0xaf,0x1a,0xfd,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x3f,0x85,0xff,0xff,0xff,0xff,0xff,0x29,0xa5,0xff,
- 0xff,0x24,0x52,0x88,0xfc,0xbf,0x92,0x2a,0x09,0xf1,0xff,0xff,0xff,0xff,0x9f,
- 0x4c,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x15,0xff,0xff,0xff,0x7f,
- 0xff,0xa5,0x4a,0xff,0xff,0x90,0x08,0x01,0xfe,0x3f,0x55,0x52,0x24,0xf4,0xff,
- 0xff,0xff,0xff,0xaf,0x02,0xfd,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xc6,
- 0xff,0xff,0xff,0xbf,0xfe,0x95,0x54,0xff,0xff,0x05,0x42,0xa8,0xfe,0xbf,0xa4,
- 0x2a,0x41,0xf9,0xff,0xff,0xff,0xff,0x5f,0x55,0xfc,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x4f,0xd0,0xff,0xff,0xff,0xbf,0x7c,0xaa,0x92,0xfc,0xff,0x53,0x08,
- 0x01,0xff,0x1f,0x4a,0x01,0x04,0xfc,0xff,0xff,0xff,0xff,0x27,0x05,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xc5,0xff,0xff,0xff,0x4f,0xbf,0x52,0xaa,
- 0xfe,0xff,0x07,0x42,0xea,0xff,0xbf,0x50,0x54,0x51,0xff,0xff,0xff,0xff,0xff,
- 0x97,0x56,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xf0,0xff,0xff,0xff,
- 0x2f,0x7f,0xa5,0x54,0xfd,0xff,0x3f,0x09,0xe0,0xff,0x1f,0x02,0x01,0x04,0xff,
- 0xff,0xff,0xff,0xff,0xaf,0x02,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,
- 0xf5,0xff,0xff,0xff,0xab,0x9f,0x94,0x92,0xfc,0xff,0xff,0x40,0xfd,0xff,0x9f,
- 0x48,0x48,0xa1,0xff,0xff,0xff,0xff,0xff,0xa7,0x56,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x6b,0xf8,0xff,0xff,0xff,0xa4,0x5f,0xa9,0x2a,0xfd,0xff,0xff,
- 0xff,0xff,0xff,0x3f,0x22,0x21,0xc4,0xff,0xff,0xff,0xff,0xff,0x2f,0x03,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0xfa,0xff,0xff,0x7f,0xd5,0x2f,0xa5,
- 0xa4,0xfa,0xff,0xff,0xff,0xff,0xff,0xbf,0x08,0x08,0xf9,0xff,0xff,0xff,0xff,
- 0xff,0x97,0x4a,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x94,0xfc,0xff,0xff,
- 0x7f,0x69,0xac,0x2a,0x55,0xf9,0xff,0xff,0xff,0xff,0xff,0x7f,0xa2,0x22,0xf8,
- 0xff,0xff,0xff,0xff,0xff,0x53,0x21,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x15,0xfe,0xff,0xff,0x9f,0x2a,0x95,0x94,0x92,0xf4,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x08,0x88,0xfe,0xff,0xff,0xff,0xff,0xff,0x57,0x8b,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xa9,0xfe,0xff,0xff,0x5f,0x52,0xbc,0x52,0x55,0xf5,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x21,0x21,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xa1,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x7f,0x0d,0xff,0xff,0xff,0x57,0x15,0x3f,
- 0x55,0x49,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xc8,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xd7,0x89,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xbf,0xd6,0xff,0xff,
- 0xff,0x4b,0x45,0x3f,0x49,0xaa,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf9,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xc9,0xe2,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0x81,0xff,0xff,0xff,0x29,0x11,0x5f,0x28,0x55,0xf5,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0xc8,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0x5f,0xd6,0xff,0xff,0x7f,0xaa,0xc2,0x0f,0x55,0x49,0xea,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa5,
- 0xe2,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x9f,0xe1,0xff,0xff,0xbf,0x4a,0xd1,
- 0x5f,0x48,0xa5,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xe9,0xe0,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x27,0xf4,0xff,
- 0xff,0xbf,0x94,0xc4,0x07,0x91,0x2a,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xca,0xea,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xaf,0xf1,0xff,0xff,0x9f,0x52,0xe0,0x4b,0x44,0x52,0xe9,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6a,0xe0,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0x4b,0xfc,0xff,0xff,0xab,0x2a,0xf5,0x0f,0x51,0xa5,
- 0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x69,0xe5,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x55,0xf8,0xff,0xff,0x95,0x14,
- 0xf0,0x5f,0x84,0x54,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0x75,0xf0,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x13,0xfd,
- 0xff,0xff,0xa5,0x42,0xf9,0x7f,0x91,0x4a,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb2,0xfa,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0x54,0xfe,0xff,0x7f,0x52,0x12,0xfa,0xff,0x20,0xa5,0xe4,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x34,0xf8,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0x25,0xff,0xff,0xaf,0xaa,0x48,0xfc,0xff,0x0b,
- 0x29,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xb5,0xf8,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x52,0xff,0xff,0x2f,0x49,
- 0x02,0xfe,0xff,0x43,0xaa,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x3f,0x3a,0xfa,0xff,0x7f,0xff,0xff,0xff,0xff,0x7f,0x4a,
- 0xff,0xff,0xa5,0x2a,0xa9,0xff,0xff,0x17,0x25,0xe9,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x9a,0xfc,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0x2a,0xff,0x7f,0x95,0x54,0x80,0xff,0xff,0x07,0xa9,0xea,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x1d,0xfc,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0x3f,0xa9,0xfe,0x7f,0xa9,0x12,0xe5,0xff,0xff,
- 0x5f,0x4a,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x5f,0xad,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0x7f,0x95,0xea,0x97,0x54,
- 0x4a,0xf0,0xff,0xff,0x1f,0xa8,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x5f,0x0e,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f,
- 0x52,0x55,0xa9,0x92,0x02,0xfd,0xff,0xff,0x5f,0x53,0xf5,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x5e,0xfe,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xbf,0x2a,0x49,0x4a,0x55,0x49,0xfc,0xff,0xff,0x3f,0x94,0xf8,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x0f,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4f,0xa5,0xaa,0x92,0xa4,0x20,0xff,0xff,
- 0xff,0xbf,0xa4,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x5f,0x57,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f,0x52,0x52,0xaa,
- 0x2a,0x0a,0xff,0xff,0xff,0x7f,0x54,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0x07,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xa7,0x94,0x4a,0x55,0x4a,0xa0,0xff,0xff,0xff,0xff,0xa8,0xfa,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x57,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0x2f,0x55,0xa9,0x92,0x12,0xe9,0xff,0xff,0xff,0x7f,0x24,
- 0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,
- 0x87,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0xa5,0x4a,0xaa,0x44,0xf4,0xff,
- 0xff,0xff,0xff,0x55,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xa7,0xab,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xab,0x94,0xa4,
- 0x92,0x12,0xf9,0xff,0xff,0xff,0xff,0xa8,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xab,0x83,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0x47,0xa9,0x2a,0x55,0x40,0xfc,0xff,0xff,0xff,0xff,0x25,0xf5,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xd7,0x97,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0x33,0x55,0xa9,0x24,0x15,0xfe,0xff,0xff,0xff,0xff,
- 0x95,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,
- 0x93,0xc3,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0x25,0xa5,0x2a,0x40,0xff,
- 0xff,0xff,0xff,0xff,0xa9,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,
- 0xff,0xff,0xff,0xff,0xe7,0xd5,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4b,0x92,
- 0x54,0x92,0xd4,0xff,0xff,0xff,0xff,0xff,0x55,0xf5,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0xff,0xd5,0xc1,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0x97,0xaa,0x4a,0x05,0xe2,0xff,0xff,0xff,0xff,0xff,0x25,0xf1,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xfd,0xff,0xff,0xff,0xff,0xd5,0xea,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0x55,0x25,0xa1,0xf0,0xff,0xff,0xff,0xff,
- 0xff,0x95,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe8,0xfa,0xff,0xff,0xff,
- 0xff,0xea,0xe0,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xa7,0x24,0x59,0x04,0xfa,
- 0xff,0xff,0xff,0xff,0xff,0xa9,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe2,
- 0xfd,0xff,0xff,0xff,0xff,0xc9,0xe9,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4f,
- 0x52,0x05,0xa1,0xfc,0xff,0xff,0xff,0xff,0xff,0xa5,0xfa,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x70,0xf9,0xff,0xff,0xff,0xff,0x74,0xe2,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0x47,0x95,0x92,0x04,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0xf8,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe2,0xfa,0xff,0xff,0xff,0xff,0x72,0xe8,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x97,0xaa,0x20,0xd0,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x55,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xb8,0xfc,0xff,0xff,
- 0xff,0xff,0xea,0xe2,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x07,0x04,0x82,0xc2,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x29,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x71,0xfd,0xff,0xff,0xff,0x7f,0x2a,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0x4f,0x91,0x28,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xfc,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x1f,0x54,0xfe,0xff,0xff,0xff,0x7f,0x75,0xf2,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0x27,0x44,0x82,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0x29,
- 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xb8,0xfc,0xff,0xff,0xff,0xbf,0x14,
- 0xf1,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x0f,0x11,0x20,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x55,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x9a,0xfe,0xff,
- 0xff,0xff,0x7f,0x5a,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f,0x40,0x85,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x09,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x4f,0x2d,0xfd,0xff,0xff,0xff,0x9f,0x12,0xf9,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0x3f,0x14,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xfe,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x07,0xa6,0xfe,0xff,0xff,0xff,0x5f,0x4d,0xfa,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0x40,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x09,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0x4b,0xfe,0xff,0xff,0xff,0xbf,
- 0x2c,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x43,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x57,0xff,
- 0xff,0xff,0xff,0x5f,0x0a,0xfe,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x89,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xd5,0xa9,0xff,0xff,0xff,0xff,0xaf,0x5a,0xfc,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa3,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x81,0x95,0xff,0xff,0xff,0xff,0x9f,0x06,0xfd,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xca,0xa5,0xff,0xff,0xff,0xff,
- 0x2f,0x95,0xfc,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xea,
- 0xff,0xff,0xff,0xff,0xaf,0x26,0xfe,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xf5,0xf4,0xff,0xff,0xff,0xff,0xaf,0x86,0xfe,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0x70,0xe5,0xff,0xff,0xff,0xff,0x4f,0x2e,0xfe,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xb2,0xfa,0xff,0xff,0xff,
- 0xff,0x57,0x83,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x78,
- 0xf2,0xff,0xff,0xff,0xff,0xa7,0x22,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x5f,0x5d,0xfd,0xff,0xff,0xff,0xff,0x97,0x87,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x3c,0xfd,0xff,0xff,0xff,0xff,0x53,0xa3,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xac,0xfe,0xff,0xff,
- 0xff,0xff,0x57,0x95,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
- 0x9e,0xfe,0xff,0xff,0xff,0xff,0x97,0x81,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xa7,0x57,0xfe,0xff,0xff,0xff,0xff,0xa9,0xa5,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xaf,0xff,0xff,0xff,0xff,0xff,0x4b,
- 0x89,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0x93,0xff,0xff,
- 0xff,0xff,0xff,0x95,0xa2,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x83,0xab,0xff,0xff,0xff,0xff,0xff,0xd3,0xc8,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,
- 0xff,0xff,0xff,0xff,0xe9,0xa5,0xff,0xff,0xff,0xff,0xff,0xa5,0xe1,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xd5,0xff,0xff,0xff,0xff,0xff,
- 0xd5,0xc8,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xea,0xea,0xff,
- 0xff,0xff,0xff,0xff,0x14,0xc1,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,
- 0xff,0xe0,0xe4,0xff,0xff,0xff,0xff,0xff,0x65,0xe8,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,
- 0xff,0xff,0xff,0xff,0x3f,0x72,0xe9,0xff,0xff,0xff,0xff,0xff,0x6a,0xe1,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xbf,0xb8,0xfa,0xff,0xff,0xff,0xff,
- 0xff,0x52,0xea,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xff,0x1f,0x7a,0xf5,
- 0xff,0xff,0xff,0xff,0x7f,0x2a,0xe0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,
- 0xff,0x8f,0x58,0xfa,0xff,0xff,0xff,0xff,0x7f,0x25,0xf5,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xb5,0xff,0xff,0xdf,0xff,0x57,0x5e,0xfd,0xff,0xff,0xff,0xff,0xff,0x34,0xe0,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xca,0xff,0xff,0x8f,0xff,0x07,0xac,0xfc,0xff,0xff,0xff,
- 0xff,0x7f,0x2a,0xf5,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd4,0xff,0xff,0x57,0xff,0x2b,0x2d,
- 0xfd,0xff,0xff,0xff,0xff,0xff,0xb2,0xf0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd2,0xff,0xff,
- 0x07,0xff,0x43,0x4a,0xff,0xff,0xff,0xff,0xff,0xbf,0x2a,0xf8,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0xc5,0xff,0xff,0x2b,0xfe,0x08,0xab,0xfe,0xff,0xff,0xff,0xff,0x7f,0xaa,
- 0xf2,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xbf,0xea,0xff,0xff,0x83,0x36,0x20,0x55,0xff,0xff,0xff,
- 0xff,0xff,0x3f,0x15,0xf0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xc2,0xff,0xff,0x48,0x4a,0x85,
- 0x49,0xff,0xff,0xff,0xff,0xff,0x7f,0x59,0xfa,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xf5,0xff,
- 0x7f,0x10,0x29,0x50,0xa5,0xff,0xff,0xff,0xff,0xff,0x3f,0x15,0xf9,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x97,0xe4,0xff,0x7f,0x05,0x95,0x42,0xd5,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x35,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xab,0xea,0xff,0xbf,0xa0,0x24,0xa8,0xd4,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0x19,0xf9,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x27,0xe5,0xff,0x3f,0x92,0xaa,
- 0x50,0xe9,0xff,0xff,0xff,0xff,0xff,0x9f,0x4a,0xfc,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa9,0xe2,
- 0xff,0x9f,0xa0,0xaa,0x2a,0xf5,0xff,0xff,0xff,0xff,0xff,0x5f,0x1a,0xf9,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x95,0xf8,0xff,0x5f,0x4a,0x92,0x4a,0xf5,0xff,0xff,0xff,0xff,0xff,
- 0xbf,0x4a,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0x52,0xf2,0xff,0x1f,0x20,0x49,0xa5,0xfa,0xff,
- 0xff,0xff,0xff,0xff,0x5f,0x1a,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaa,0xf8,0xff,0x47,0xa9,
- 0x2a,0x29,0xf9,0xff,0xff,0xff,0xff,0xff,0xbf,0x0a,0xfc,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x49,
- 0xf2,0xff,0x17,0x92,0xaa,0xaa,0xfe,0xff,0xff,0xff,0xff,0xff,0x9f,0xac,0xfe,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x9f,0x2a,0xf8,0xff,0x43,0xa8,0x24,0x25,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xaf,0x0a,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x94,0xfa,0xff,0x91,0x54,0xaa,0x52,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x2f,0x4d,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x45,0xfc,0xff,0x03,
- 0x92,0x52,0xaa,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x06,0xfc,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,
- 0x12,0xfe,0xff,0x50,0xaa,0x2a,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xa5,
- 0xfe,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xa7,0x44,0xff,0xff,0x0a,0x25,0xa5,0xa4,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x97,0x06,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0x15,0xff,0xff,0x40,0xa9,0x92,0xea,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x55,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xa1,0xff,0x7f,
- 0x92,0x4a,0xaa,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x06,0xfc,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x95,0x8a,0xff,0x3f,0x84,0x54,0xa9,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,
- 0x25,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x52,0xe0,0xff,0xbf,0x50,0xa9,0x4a,0xf2,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xa7,0x8e,0xfe,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa9,0xea,0xff,0x3f,0x24,0x95,0x54,
- 0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x23,0xfe,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x4a,0xf0,0xff,
- 0x9f,0x50,0x69,0x49,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x8b,0xff,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xa5,0xf4,0xff,0x0f,0x2d,0x75,0xaa,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xaf,0x03,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x9f,0x14,0xfa,0xff,0x2f,0xa8,0xfa,0x25,0xfd,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x97,0xd7,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xaa,0xfc,0xff,0x0f,0x4d,0xfd,
- 0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0x83,0xff,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x12,0xfc,
- 0xff,0x27,0x92,0xfe,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xd7,0xff,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x97,0x0a,0xff,0xff,0x83,0x56,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xef,0xc7,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xab,0x24,0xff,0xff,0x2b,0xaa,0xfe,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xe7,0xef,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x45,0xff,0xff,0x05,0x95,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0x82,
- 0xff,0xff,0x51,0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,
- 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xa9,0xe8,0xff,0xff,0x85,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0x52,0xc1,0xff,0xff,0x90,0xd5,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x4d,0xe8,0xff,0xff,0xa5,
- 0xe4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x51,
- 0xf2,0xff,0x7f,0x40,0xd5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x3f,0x95,0xf8,0xff,0x7f,0xa9,0xea,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x15,0xfa,0xff,0x3f,0xa4,0xf4,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xa4,0xfc,0xff,0x7f,
- 0x71,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,
- 0x15,0xfe,0xff,0x3f,0x94,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xa7,0x0a,0xff,0xff,0x1f,0x79,0xf2,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0xa4,0xff,0xff,0x5f,0x8c,0xfa,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0x82,0xff,0xff,
- 0x1f,0x5c,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xa4,0x92,0xff,0xff,0xbf,0x56,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x9a,0xc4,0xff,0xff,0x0f,0x2e,0xfd,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa2,0xf0,0xff,0xff,0xaf,0xa7,0xfe,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x55,0xe4,0xff,
- 0xff,0x0f,0x57,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xbf,0x54,0xf2,0xff,0xff,0x9f,0x4b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x9f,0x92,0xf8,0xff,0xff,0xc7,0xab,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x15,0xfe,0xff,0xff,0x97,0xd7,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0x94,0xfc,
- 0xff,0xff,0xc7,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x2f,0x05,0xfe,0xff,0xff,0xcf,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x53,0xa9,0xff,0xff,0xff,0xd3,0xeb,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x05,0xff,0xff,0xff,0xe3,
- 0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x54,0xc2,
- 0xff,0xff,0xff,0xeb,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x95,0xc8,0xff,0xff,0xff,0xf3,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xa5,0xd2,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xaa,0xe0,0xff,0xff,0xff,
- 0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x49,
- 0xf8,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x9f,0x2a,0xf5,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x4a,0xf8,0xff,0xff,0xff,0xff,0xfc,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x14,0xfd,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,
- 0x4a,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xab,0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0x52,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0x85,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x54,0xa2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x4a,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa5,0xe0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x94,0xe4,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x5f,0x55,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xbf,0x12,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x54,0xfa,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x0a,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x53,0x45,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x97,0x14,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x45,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x54,0x82,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x4a,0xe9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x52,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x55,0xe8,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x24,
- 0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0x55,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x24,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x15,0xfe,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,
- 0x49,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x2f,0x95,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x01,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xd5,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x57,0x81,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x97,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xe0,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x93,0xf4,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x57,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x2b,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x89,0xfc,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xfc,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x05,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x49,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x22,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x89,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xe9,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x9f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x6f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
- 0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f};
Index: gnus/etc/gnus/gnus.xpm
diff -u gnus/etc/gnus/gnus.xpm:7.1 gnus/etc/gnus/gnus.xpm:removed
--- gnus/etc/gnus/gnus.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/gnus.xpm	Sun May  1 19:04:57 2005
@@ -1,284 +0,0 @@
-/* XPM */
-static char *gnus[] = {
-/* width height num_colors chars_per_pixel */
-"   271   273        3            1",
-/* colors */
-". s thing c #bf9900",
-"# s shadow c #ffcc00",
-"a s None c None",
-/* pixels */
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........######aaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............#######aaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................######aaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................######aaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................#######aaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......................#######aaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........................#######aaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........................######aaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........................######aaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa............................#######aaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..............................#######aaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................aaaaaaaaaaaaaaaaaaaaaa...........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............................#######aaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................aaaaaaaaaaaaaaaaaaa...............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............................#######aaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......................aaaaaaaaaaaaaaaa....................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................########aaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......................aaaaaaaaaaaaaa........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.................................#######aaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........................aaaaaaaaaaa............................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................................########aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........................aaaaaaaaa..............................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...................................#######aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............................aaaaaaa................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................................#######aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............................aaaaa..................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......######.......................#######aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................aaaa...................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#######aa....................#######aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................................aa.....................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaa.................#######aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................................a......................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaa................#######aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaa...............#######aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..............................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaa...............#######aaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaa..............#######aaaaa",
-"aaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaa..............#######aaaaa",
-"aaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaa.............#######aaaaa",
-"aaaaaaaa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaa..............####....................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaa............########aaaaa",
-"aaaaaaa.........aaaaaaaaaaaaaaaaaaaaaaaaaaa.............########...................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaa...........########aaaaa",
-"aaaaaaa...........aaaaaaaaaaaaaaaaaaaaaaa.............############..................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaa...........########aaaaa",
-"aaaaaaaa..........aaaaaaaaaaaaaaaaaaaaaa.............##############..................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaa...........########aaaaa",
-"aaaaaaaa...........aaaaaaaaaaaaaaaaaaaa............##################.......................##########................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaa..........########aaaaa",
-"aaaaaaaa............aaaaaaaaaaaaaaaaaa............####################....................###############..............................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaa..........#######aaaaaa",
-"aaaaaaaa............aaaaaaaaaaaaaaaa..............#####################.................#####################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaa..aaaaa###aaaaaaaaaaaaaaaaaa..........#######aaaaaa",
-"aaaaaaaa.............aaaaaaaaaaaaaa..............#######################...............#######################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaa..aaaaa##aaaaaaaaaaaaaaaaaaa..........#######aaaaaa",
-"aaaaaaaaa.............aaaaaaaaaaa...............##########aa#############.............#########################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaa..........#######aaaaaa",
-"aaaaaaaaa.............aaaaaaaaa................#########aaaaaaa###########............##########################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........########aaaaaa",
-"aaaaaaaaa................aaaa..................#######aaaaaaaaaa###########..........############################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........########aaaaaa",
-"aaaaaaaaa.....................................######aaaaaaaaaaaaa###########.........#############################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........########aaaaaa",
-"aaaaaaaaa....................................######aaaaaaaaaaaaaaaa#########........###############################.........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........########aaaaaa",
-"aaaaaaaaaa.................................#######aaaaaaaaaaaaaaaaaa#########.......#######aaaaaaaaaaa##############..........................aaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#######aaaaaaa",
-"aaaaaaaaaa................................#######aaaaaaaaaaaaaaaaaaaa########......#####aaaaaaaaaaaaaaaaa############..........................aaaaaaaaaaaaaaaaaaaaaaaaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#######aaaaaaa",
-"aaaaaaaaaa...............................########aaaaaaaaaaaaaaaaaaaaa########....#####aaaaaaaaaaaaaaaaaaaaa##########..........................aaaaaaaaaaaaaaaaaaaaaaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#######aaaaaaa",
-"aaaaaaaaa#..............................########aaaaaaaaaaaaaaaaaaaaaaaa#.####...#####aaaaaaaaaaaaaaaaaaaaaaa##########...........................aaaaaaaaaaaaaaaaaaaa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#######aaaaaaa",
-"aaaaaaaaa#.............................########aaaaaaaaaaaaaaaaaaaaaaaaa...###..######aaaaaaaaaaaaaaaaaaaaaaaa##########...........................aaaaaaaaaaaaaaaaaaa......a#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........########aaaaaaa",
-"aaaaaaaa###...........................#########aaaaaaaaaaaaaaaaaaaaaaaa....##########aaaaaaaaaaaaaaaaaaaaaaaaaa##########............................aaaaaaaaaaaaaaa........##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........########aaaaaaa",
-"aaaaaaaa###..........................#########aaaaaaaaaaaaaaaaaaaaaaaaa....#########aaaaaaaaaaaaaaaaaaaaaaaaaaaa##########...............................aaaaaaaa...........##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........########aaaaaaa",
-"aaaaaaaa###.........................#########aaaaaaaaaaaaaaaaaaaaaaaaa....a#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaa##########................................................##aaaaaa...aaaaaaaaaaaaaaaaaaaaa......a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
-"aaaaaaa####........................#########aaaaaaaaaaaaaaaaaaaaaaaaa....aaa#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########...............................................##aaaaaa....aaaaaaaaaaaaaaaaaaa.......a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
-"aaaaaaa####.......................########aaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########..............................................##aaaaa.....aaaaaaaaaaaaaaaaaa.......a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
-"aaaaaa######....................#########aaaaaaaaaaaaaaaaaaaaaaaaaa.....a#aaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########............................................##aaaaaa......aaaaaaaaaaaaaaa.........a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
-"aaaaaa######...................#########aaaaaaaaaaaaaaaaaaaaaaaaaa......##aaa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########...........................................##aaaaa.......aaaaaaaaaaaaa..........aa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
-"aaaaaa#######.................#########aaaaaaaaaaaaaaaaaaaaaaaaaaa.....a###aaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.........................................###aaaaa.........aaaaaaa..............a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........########aaaaaaaa",
-"aaaaaaa#######...............#########aaaaaaaaaaaaaaaaaaaaaaaaaaa.....a####aaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########........................................##aaaaa...............................a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaaa",
-"aaaaaaa########............##########aaaaaaaaaaaaaaaaaaaaaaaaaaa.....a####aaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.......................................##aaaaa...............................#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaaa",
-"aaaaaaaa##########.......###########aaaaaaaaaaaaaaaaaaaaaaaaaaa......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.....................................###aaaaa..............................#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaaa",
-"aaaaaaaaa##########################aaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########....................................##aaaaa...............................#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........########aaaaaaaaa",
-"aaaaaaaaa#########################aaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########..................................###aaaaa..............................#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaa",
-"aaaaaaaaaa#######################aaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########...............................####aaaaa..............................######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaa",
-"aaaaaaaaaaa#####################aaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.............................#####aaaaa.............................#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaa",
-"aaaaaaaaaaa###################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########...........................######aaaa..............................######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......########aaaaaaaaaa",
-"aaaaaaaaaaaa#################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.........................######aaaaa.............................#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaaa",
-"aaaaaaaaaaaaa###############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaa#########.......................#######aaaa.............................#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaaa",
-"aaaaaaaaaaaaaaa###########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aaaaaaaaaaaaaaaa#########....................#########aaaa............................########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......aaaaaaaaaaaaaaaa#########..................#########aaaaa..........................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........aaaaaaaaaaaaaaa###########.............###########aaaaa.........................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa............aaaaaaaaaaaaaaa##############....###############aaaaaaa.......................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............aaaaaaaaaaaaaaa##############################aaaaaaaaa.....................############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............aaaaaaaaaaaaaaa############################aaaaaaaaaaa...................############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaa................aaaaaaaaaaaaaaaa##########################aaaaaaaaaaaa#................#############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaa.................aaaaaaaaaaaaaaaa########################aaaaaaaaaaaaa##..............#############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaa...................aaaaaaaaaaaaaaaa######################aaaaaaaaaaaaa#####.........###############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaa....................aaaaaaaaaaaaaaaaa###################aaaaaaaaaaaaaaa########..##################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaa....................aaaaaaaaaaaaaaaaaaa################aaaaaaaaaaaaaaaa###########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......aaaaa......................aaaaaaaaaaaaaaaaaaaaa###########aaaaaaaaaaaaaaaaaa##########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......aaaaa.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaa.......aaaaaa.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaa........a###a.........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a####aaaaaaaaaaaaaaaaaaaaaaaaaaaa........a####a.........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaa........a#####aaa.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a####aaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaa#.....................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a####aaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaa##....................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaa..........######aaaaa#####..................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a####aaaaaaaaaaaaaaaaaaaaaaaaa...........#####aaaaa#######..................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaaaaa...........#####aaaaaa#######..................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaaaaa...........######aaaaa#########.................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaaaa...........######aaaaa###########................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaaa............#######aaaaaaa##########...............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......####aaaaaaaaaaaaaaaaaaaaaa............#######aaaaaaaaa#########...............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaa............#######aaaaaaaaaaaa########..............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......###aaaaaaaaaaaaaaaaaaaaa............#########aaaaaaaaaaaaa#######..............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......###aaaaaaaaaaaaaaaaaaa.............#########aaaaaaaaaaaaaaa#######.............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#aaaaaaaaaaaaaaaaaaa.............#########aaaaaaaaaaaaaaaaa######.............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#aaaaaaaaaaaaaaaaa..............#########aaaaaaaaaaaaaaaaaaa#####.............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#aaaaaaaaaaaaaaa...............#########aaaaaaaaaaaaaaaaaaaa#####.............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........aaaaaaaaaaaaa...............#########aaaaaaaaaaaaaaaaaaaaaa#####............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............aaaaa..................########aaaaaaaaaaaaaaaaaaaaaaaaa####............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......................................########aaaaaaaaaaaaaaaaaaaaaaaaaa####...........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....................................########aaaaaaaaaaaaaaaaaaaaaaaaaaaa###...........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa####aaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaa####..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa####aaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..............................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.........#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa####aaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa............................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.........#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.........#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#........##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####aaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......................###########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#........##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#...................############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#........#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##................#############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.......##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###............##############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#......###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####.........###############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#......###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######..###################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.....###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.....###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######a.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.....###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#....####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######a......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#....###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#...####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##..####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#aaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaa#######aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#aaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaa#######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......#aaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaa########a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......#aaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaa########a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#aaaaaaaaaaaaaaaaaaaa#######aaaaaaa#########a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......##aaaaaaaaaaaaaaaaaaa########a..aa##########a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........##aaaaaaaaaaaaaaaaaa#########....##########a........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#aaaaaaaaaaaaaaaaaa#########......#########........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#aaaaaaaaaaaaaaaaaa#########......########a........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........##aaaaaaaaaaaaaaaaa#########.......#######.........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........##aaaaaaaaaaaaaaaaa########.........#####.........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........###aaaaaaaaaaaaaaaa########........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........###aaaaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........###aaaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........####aaaaaaaaaaaaaaa#########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaa#########......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaa#########......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa#########......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaa#######........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaa#######.........a..............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaa#######a........aaa............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaa#######........aaaaa..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaa#######a.......aaaaaaa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaa######a........aaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaa#######........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaa#######.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaa######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaa#######a......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaa#######.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaa#######.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaa######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaa######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaa#####aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaa####aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaa#####aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaa####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaa####aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaa###aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaa####aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaa####aaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaa###aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaa###aaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaa####aaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaa###aaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaa###aaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
-"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-};
-
Index: gnus/etc/gnus/important.xpm
diff -u gnus/etc/gnus/important.xpm:7.1 gnus/etc/gnus/important.xpm:removed
--- gnus/etc/gnus/important.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/important.xpm	Sun May  1 19:04:57 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 2  1",
-"! c red",
-"w c Gray75",
-/* pixels */
-"wwwwwwwwwwwwwwwwwwwwwwww",
-"wwwwwwwwwwwwwwwwwwwwwwww",
-"wwwwwwwww!!!wwwwwwwwwwww",
-"wwwwwwwww!!!wwwwwwwwwwww",
-"wwwwwwww!!!!!wwwwwwwwwww",
-"wwwwwwww!!!!!wwwwwwwwwww",
-"wwwwwww!!!!!!!wwwwwwwwww",
-"wwwwwww!!!!!!!wwwwwwwwww",
-"wwwwwww!!!!!!!wwwwwwwwww",
-"wwwwwww!!!!!!!wwwwwwwwww",
-"wwwwwww!!!!!!!wwwwwwwwww",
-"wwwwwww!!!!!!!wwwwwwwwww",
-"wwwwwww!!!!!!!wwwwwwwwww",
-"wwwwwwww!!!!!wwwwwwwwwww",
-"wwwwwwww!!!!!wwwwwwwwwww",
-"wwwwwwww!!!!!wwwwwwwwwww",
-"wwwwwwwww!!!wwwwwwwwwwww",
-"wwwwwwwwwwwwwwwwwwwwwwww",
-"wwwwwwwww!!!wwwwwwwwwwww",
-"wwwwwwww!!!!!wwwwwwwwwww",
-"wwwwwwww!!!!!wwwwwwwwwww",
-"wwwwwwwww!!!wwwwwwwwwwww",
-"wwwwwwwwwwwwwwwwwwwwwwww",
-"wwwwwwwwwwwwwwwwwwwwwwww"
-};
Index: gnus/etc/gnus/kill-group.pbm
Index: gnus/etc/gnus/kill-group.xpm
diff -u gnus/etc/gnus/kill-group.xpm:7.1 gnus/etc/gnus/kill-group.xpm:removed
--- gnus/etc/gnus/kill-group.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/kill-group.xpm	Sun May  1 19:04:57 2005
@@ -1,30 +0,0 @@
-/* XPM */
-static char * kill_group_xpm[] = {
-"24 24 3 1",
-".	c None",
-"o	c #000000000000",
-"+	c #9A9A6C6C4E4E",
-"o..o..o..o..o..o..o..o..",
-"........................",
-"........................",
-"o..o..o..o..o..o..o..o..",
-"........................",
-"........................",
-"o..o..o..o..++.o..o..o..",
-".......++..++++.........",
-"........++.+++..........",
-"o..o..o.+++++..o..o..o..",
-".........+++............",
-".........++++...........",
-"o..o..o.++++++.o..o..o..",
-"........++.++++.........",
-".......++...++++........",
-"o..o...+.o...++o..o..o..",
-"........................",
-"........................",
-"o..o..o..o..o..o..o..o..",
-"........................",
-"........................",
-"o..o..o..o..o..o..o..o..",
-"........................",
-"........................"};
Index: gnus/etc/gnus/mail-reply.pbm
Index: gnus/etc/gnus/mail-reply.xpm
diff -u gnus/etc/gnus/mail-reply.xpm:7.1 gnus/etc/gnus/mail-reply.xpm:removed
--- gnus/etc/gnus/mail-reply.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/mail-reply.xpm	Sun May  1 19:04:57 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char * mail_reply_xpm[] = {
-"24 24 5 1",
-" 	c None",
-".	c #000000000000",
-"X	c #E1E1E0E0E0E0",
-"O	c #FFFFFFFFFFFF",
-"o	c #C7C7C6C6C6C6",
-"               ..       ",
-"               .X.      ",
-"              ..XX.     ",
-"         ......XoXX..   ",
-"       ...OOO.XooXXX.   ",
-"      ..OOOO.XooXXX.    ",
-"   ...OOOOO.XooXXX...   ",
-"  ..OOOOOO.XXooXX.OO..  ",
-"  ...OOOO.oooXXX......  ",
-"  .O...O.oXooXXX...OO.  ",
-"  .OOO...oXoXX...OOOO.  ",
-"  .OOOOO...X...OOOOOO.  ",
-"  .OOOOO.O...OO.OOOOO.  ",
-"  .OOO..OOOOOOOO..OOO.  ",
-"  .OO.OOOOOOOOOOOO.OO.  ",
-"  .O.OOOOOOOOOOOOOO.O.  ",
-"  ..OOOOOOOOOOOOOOOO..  ",
-"  ....................  ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Index: gnus/etc/gnus/news-server.ast
diff -u /dev/null gnus/etc/gnus/news-server.ast:1.5
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/gnus/news-server.ast	Mon May 24 00:18:49 2004
@@ -0,0 +1,58 @@
+@title Configuring Gnus for reading news
+
+
+@node Setting up the news server name and port number
+@variable server :string (gnus-getenv-nntpserver)
+@variable port :number 119
+@validate (assistant-validate-connect-to-server server port)
+@result gnus-select-method (list 'nntp server (list 'nntp-server port))
+@text
+Usenet news is usually read from your Internet service prodider's news
+server.  If you don't know the name of this server, contact your ISP.
+
+As a guess, the name of the server might be news.yourisp.com.
+
+Server name: @variable{server}
+Port number: @variable{port}
+@end text
+@next t "User name and password"
+
+
+@node User name and password
+@type interstitial
+@next 
+(if (assistant-password-required-p)
+    "Enter user name and password"
+  "Want user name and password?")
+@end next
+
+
+@node Want user name and password?
+@variable passwordp (:radio ((item "Yes") (item "No"))) "No"
+@text
+Some news servers require that you enter a user name and a password.
+It doesn't look like your news server is one of them.
+
+Do you want to enter user name and password anyway?
+
+@variable{passwordp}
+
+@end text
+
+@next (equal passwordp "No") finish
+@next (not (equal passwordp "No")) "Enter user name and password"
+
+
+@node Enter user name and password
+@variable user-name :string (user-login-name)
+@variable password :password (or (assistant-authinfo-data server port 'password) "")
+@text
+
+It looks like your news server requires you to enter a user name
+and a password:
+
+User name: @variable{user-name}
+Password: @variable{user-name}
+
+@end text
+
Index: gnus/etc/gnus/next-ur.pbm
Index: gnus/etc/gnus/next-ur.xpm
diff -u gnus/etc/gnus/next-ur.xpm:7.1 gnus/etc/gnus/next-ur.xpm:removed
--- gnus/etc/gnus/next-ur.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/next-ur.xpm	Sun May  1 19:04:57 2005
@@ -1,35 +0,0 @@
-/* XPM */
-static char * next_ur_xpm[] = {
-"24 24 8 1",
-".	c None",
-" 	c #000000000000",
-"X	c #A5A5A5A59595",
-"o	c #C7C7C6C6C6C6",
-"O	c #FFFF00000000",
-"+	c #9A9A6C6C4E4E",
-"@	c #E1E1E0E0E0E0",
-"#	c #FFFFFFFFFFFF",
-" .. .. .. .. .. .. .. ..",
-"........................",
-"............X...........",
-" .. .. .. .XXX. .. .. ..",
-".........XXooOX.........",
-".......XXooo+O@X........",
-" .. XXXoooo++@@@X. .. ..",
-"....X@Xoooooo@@@X.......",
-"....X@@Xooo@@@@@@X......",
-" .. X@@XXoo@@@@@@@X.. ..",
-"....X@@Xoo@@@@@@@@@X....",
-"....X@Xo@@@XX@@@@@@oX...",
-" .. oXoo@XXooO@@@@@@X ..",
-"....oXoXXooo+OX@@@@Xo...",
-"....XXXoooo++@@X@@Xo....",
-" .. X@Xoooooo@@@XX .. ..",
-"....X@@Xooo@@@@@@X......",
-"....X@@XXoo@@@@@@@X.....",
-" .. X@@Xoo@@@@@@@@@X. ..",
-"....X@Xo@  @@@@@@@  X...",
-"... oXoo ## @@ @@ ## ...",
-" .. oXo ####  @  #### ..",
-".....oX #### @@@ #### ..",
-".....oX@ ## @@@@X ## ..."};
Index: gnus/etc/gnus/oort.xface
diff -u gnus/etc/gnus/oort.xface:7.1 gnus/etc/gnus/oort.xface:removed
--- gnus/etc/gnus/oort.xface:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/oort.xface	Sun May  1 19:04:57 2005
@@ -1,3 +0,0 @@
-X-Face: $BP*2z+\?fNM."!*~JsIgw(Y]n?WG!KMc;^jL$SLrt@X4%uMguO/$3HO<5@43P@[~'kE'fG
- #YdP[sb6IJ5|Sm[z#9sI|)iJ})U5;Rt-?jI3i24zoJmonTV}kTVOm/5wMCnc3P~d#+BF1c&N6mdF{u
- CE+<;lN!v~JRyR"q0d5<\y]faXpTC4,wpQ{=<==?LRA`}3qqIgr
Index: gnus/etc/gnus/post.pbm
Index: gnus/etc/gnus/post.xpm
diff -u gnus/etc/gnus/post.xpm:7.1 gnus/etc/gnus/post.xpm:removed
--- gnus/etc/gnus/post.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/post.xpm	Sun May  1 19:04:57 2005
@@ -1,35 +0,0 @@
-/* XPM */
-static char * post_xpm[] = {
-"24 24 8 1",
-".	c None",
-" 	c #434343434343",
-"X	c #A5A5A5A59595",
-"O	c #000000000000",
-"+	c #C7C7C6C6C6C6",
-"@	c #FFFF00000000",
-"#	c #9A9A6C6C4E4E",
-"$	c #E1E1E0E0E0E0",
-"O..O..O..O..O..O..O..O..",
-"........................",
-"............X...........",
-"O..O..O..O.XXX.O..O..O..",
-".........XX++@X.........",
-".......XX+++#@$X........",
-"O..OXXX++++##$$$X.O..O..",
-"....X$X++++++$$$X.......",
-"....X$$X+++$$$$$$X......",
-"O..OX$$XX++$$$$$$$X..O..",
-"....X$$X++$$$$$$$$$X....",
-"....X$X+$$$$$$$$$$$+X...",
-"O..O+X++$$$$$$$$$$$$XO..",
-"....+X+$$$$$$$$$$$$X+...",
-".....+X$$$$$$$$$$$X+....",
-"O..O.+X$$$$$$$$$XXO..O..",
-"......+X$$$$$$$X++......",
-"......+X$$$$$XX+........",
-"O..O..O+X$$$X++O..O..O..",
-".......+X$$X++..........",
-"........+XX+............",
-"O..O..O..O+.O..O..O..O..",
-"........................",
-"........................"};
Index: gnus/etc/gnus/prev-ur.pbm
Index: gnus/etc/gnus/prev-ur.xpm
diff -u gnus/etc/gnus/prev-ur.xpm:7.1 gnus/etc/gnus/prev-ur.xpm:removed
--- gnus/etc/gnus/prev-ur.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/prev-ur.xpm	Sun May  1 19:04:57 2005
@@ -1,35 +0,0 @@
-/* XPM */
-static char * prev_ur_xpm[] = {
-"24 24 8 1",
-".	c None",
-" 	c #000000000000",
-"X	c #A5A5A5A59595",
-"o	c #C7C7C6C6C6C6",
-"O	c #FFFF00000000",
-"+	c #9A9A6C6C4E4E",
-"@	c #E1E1E0E0E0E0",
-"#	c #FFFFFFFFFFFF",
-" .. .. .. .. .. .. .. ..",
-"........................",
-"............X...........",
-" .. .. .. .XXX. .. .. ..",
-".........XXooOX.........",
-".......XXooo+O@X........",
-" .. XXXoooo++@@@X. .. ..",
-"....X@Xoooooo@@@X.......",
-"....X@@Xooo@@@@@@X......",
-" .. X@@XXoo@@@@@@@X.. ..",
-"....X@@Xo  @@@@@@  X....",
-"....X@Xo ## X  @ ## X...",
-" .. oXo #XXXoO@ ####  ..",
-"....oXoXXooo+OX #### ...",
-"....XXXoooo++@@X ## ....",
-" .. X@Xoooooo@@@X  .. ..",
-"....X@@Xooo@@@@@@X......",
-"....X@@XXoo@@@@@@@X.....",
-" .. X@@Xoo@@@@@@@@@X. ..",
-"....X@Xo@@@@@@@@@@@@X...",
-"... oXoo@@@@@@@@@@@@X...",
-" .. oXo@@@@@@@@@@@@X....",
-".....oX@@@@@@@@@@@X.....",
-".....oX@@@@@@@@@@X......"};
Index: gnus/etc/gnus/preview.xbm
diff -u gnus/etc/gnus/preview.xbm:7.1 gnus/etc/gnus/preview.xbm:removed
--- gnus/etc/gnus/preview.xbm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/preview.xbm	Sun May  1 19:04:57 2005
@@ -1,10 +0,0 @@
-#define preview_width 24
-#define preview_height 24
-static char preview_bits[] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xc0,0x03,0x00,0x3e,0x06,0xf0,0x03,0x04,0x08,0x00,0x0a,0x78,0x00,0x09,
- 0x88,0xf9,0x08,0x10,0xc6,0x10,0x10,0x3a,0x13,0x10,0x06,0x15,0x20,0x02,0x29,
- 0x20,0x02,0x31,0x20,0xad,0x0f,0x40,0xf9,0x03,0xc0,0xb8,0x07,0x80,0x07,0x0e,
- 0x80,0x01,0x1c,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x00,
- 0x00,0x00,0x39,0x00,0x00,0x00,0x08,0xc0,0x12,0x42,0x00,0x00,0x00,0x00,0x38,
- 0x82,0x18,0x08,0x00,0x00,0x00 };
Index: gnus/etc/gnus/preview.xpm
diff -u gnus/etc/gnus/preview.xpm:7.1 gnus/etc/gnus/preview.xpm:removed
--- gnus/etc/gnus/preview.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/preview.xpm	Sun May  1 19:04:57 2005
@@ -1,33 +0,0 @@
-/* XPM */
-static char *prev1[]={
-"24 24 6 1",
-". c None",
-"# c #000000",
-"d c #46463e",
-"a c #676663",
-"c c #a8a7a3",
-"b c #ebeae4",
-"........................",
-"........................",
-"........................",
-"........................",
-"........................",
-"..............####......",
-".........#####abbc#.....",
-"....#####acbbbbbbc#.....",
-"...#acbbbbbbbbbbacc#....",
-"...#baabbbbbbbbcacb#....",
-"...#cbcaabbd##dacbb#....",
-"....#bbbccdcbbcdabbc#...",
-"....#bbbbdccaaccdacb#...",
-"....#cbbb#abbbbb#bac#...",
-".....#bbb#cbbbbc#bbac#..",
-".....#bbbdcbbbbddbbc##..",
-".....#cbccdcbbd#####....",
-"......#babbd##dd##......",
-"......#acbc###.####.....",
-"......#aa##......###....",
-".......##.........###...",
-"...................##...",
-"........................",
-"........................"};
Index: gnus/etc/gnus/receipt.xpm
diff -u gnus/etc/gnus/receipt.xpm:7.1 gnus/etc/gnus/receipt.xpm:removed
--- gnus/etc/gnus/receipt.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/receipt.xpm	Sun May  1 19:04:57 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char * receipt_xpm[] = {
-"24 24 5 1",
-" 	c None",
-".	c #FFFFFFFFFFFF",
-"X	c #676766666363",
-"o	c #FFFF00000000",
-"O	c #AEAE3E3E4848",
-"                        ",
-"                        ",
-"                   ..   ",
-"                    .   ",
-"                     .  ",
-"                     .  ",
-"                   ..   ",
-"           Xooo  ..     ",
-"      Xoooooooo..       ",
-" Xoooooooooooooo  ...   ",
-" oooooooooooOOoo .      ",
-" ooooooooooOOOOo.       ",
-"  oooooooooOO...o       ",
-"  ooooooooooOOooo       ",
-"  ooooooooooooooo       ",
-"   ooooooooooooooo      ",
-"   oooooooooooooo       ",
-"   ooooooooooo          ",
-"    ooooooo             ",
-"    oooo                ",
-"    oo                  ",
-"                        ",
-"                        ",
-"                        "};
Index: gnus/etc/gnus/reply-wo.pbm
Index: gnus/etc/gnus/reply-wo.xpm
diff -u gnus/etc/gnus/reply-wo.xpm:7.1 gnus/etc/gnus/reply-wo.xpm:removed
--- gnus/etc/gnus/reply-wo.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/reply-wo.xpm	Sun May  1 19:04:57 2005
@@ -1,31 +0,0 @@
-/* XPM */
-static char * reply_wo_xpm[] = {
-"24 24 4 1",
-" 	c None",
-".	c #000000000000",
-"X	c #E1E1E0E0E0E0",
-"O	c #FFFFFFFFFFFF",
-"                        ",
-"                        ",
-"                        ",
-"           ....         ",
-"          ..X....       ",
-"         ..XX.XX..      ",
-"       .O.XX.XXXX..     ",
-"     ..O.XXX.XXXX...    ",
-"    .OO.XXXX.X.......   ",
-"   .OO.XXXX...XXX.OO..  ",
-" ..OO.XX....XXXX.OOOO.. ",
-" .......XX.XXXX.OOO.... ",
-" .OOO.XXX.XXXX.OO..OOO. ",
-" .OOOO....XXX....OOOOO. ",
-" .OOOOOOO..XX..OOOOOOO. ",
-" .OOOOOOO......OOOOOOO. ",
-" .OOOOOO.OO..O..OOOOOO. ",
-" .OOOOO.OOOOOOOO.OOOOO. ",
-" .OOOO.OOOOOOOOOO.OOOO. ",
-" .OOO.OOOOOOOOOOOO.OOO. ",
-" .O..OOOOOOOOOOOOOO..O. ",
-" ..OOOOOOOOOOOOOOOOOO.. ",
-" ...................... ",
-"                        "};
Index: gnus/etc/gnus/reply.pbm
Index: gnus/etc/gnus/reply.xpm
diff -u gnus/etc/gnus/reply.xpm:7.1 gnus/etc/gnus/reply.xpm:removed
--- gnus/etc/gnus/reply.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/reply.xpm	Sun May  1 19:04:57 2005
@@ -1,31 +0,0 @@
-/* XPM */
-static char * reply_xpm[] = {
-"24 24 4 1",
-" 	c None",
-".	c #000000000000",
-"X	c #E1E1E0E0E0E0",
-"O	c #FFFFFFFFFFFF",
-"                        ",
-"                        ",
-"                        ",
-"           ....         ",
-"          ..XXX..       ",
-"         ..XXXXX..      ",
-"       .O.XXXXXXX..     ",
-"     ..O.XXXXXXXXX..    ",
-"    .OO.XXXXXXXXXX...   ",
-"   .OO.XXXXXXXXXX.OO..  ",
-" ..OO.XXXXXXXXXX.OOOO.. ",
-" .....XXXXXXXXX.OOO.... ",
-" .OOO.XXXXXXXX.OO..OOO. ",
-" .OOOO...XXXXX...OOOOO. ",
-" .OOOOOOO..XX..OOOOOOO. ",
-" .OOOOOOO......OOOOOOO. ",
-" .OOOOOO.OO..O..OOOOOO. ",
-" .OOOOO.OOOOOOOO.OOOOO. ",
-" .OOOO.OOOOOOOOOO.OOOO. ",
-" .OOO.OOOOOOOOOOOO.OOO. ",
-" .O..OOOOOOOOOOOOOO..O. ",
-" ..OOOOOOOOOOOOOOOOOO.. ",
-" ...................... ",
-"                        "};
Index: gnus/etc/gnus/rot13.pbm
Index: gnus/etc/gnus/rot13.xpm
diff -u gnus/etc/gnus/rot13.xpm:7.1 gnus/etc/gnus/rot13.xpm:removed
--- gnus/etc/gnus/rot13.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/rot13.xpm	Sun May  1 19:04:57 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char * rot13_xpm[] = {
-"24 24 5 1",
-" 	c None",
-".	c #A5A5A5A59595",
-"X	c #C7C7C6C6C6C6",
-"o	c #E1E1E0E0E0E0",
-"O	c #919187876969",
-"                        ",
-"                        ",
-"                        ",
-"             .          ",
-"           ..X.         ",
-"         ..XXX.         ",
-"       ..XXXXXo.        ",
-"    ...XXXXXXooo.       ",
-"    .o.XXXXXoooo.       ",
-"    .oo.XXXooOooo.      ",
-"    .oo..XXoOXOOoo.     ",
-"    .oo.XXoOXooOXoo.    ",
-"    .o.XoooOOXXOXooX.   ",
-"     .XXooOOXOOXoooo.   ",
-"     .XooOOOooooooo.    ",
-"      .oOOXOXooooo.     ",
-"      .oOOXoooooo.      ",
-"       .oOOXooo..       ",
-"       .oooooo.         ",
-"        .ooo..          ",
-"        .oo.            ",
-"         ..             ",
-"                        ",
-"                        "};
Index: gnus/etc/gnus/save-aif.pbm
Index: gnus/etc/gnus/save-aif.xpm
diff -u gnus/etc/gnus/save-aif.xpm:7.1 gnus/etc/gnus/save-aif.xpm:removed
--- gnus/etc/gnus/save-aif.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/save-aif.xpm	Sun May  1 19:04:57 2005
@@ -1,33 +0,0 @@
-/* XPM */
-static char * save_aif_xpm[] = {
-"24 24 6 1",
-" 	c None",
-".	c #999999999999",
-"X	c #E1E1E0E0E0E0",
-"o	c #C7C7C6C6C6C6",
-"O	c #000000000000",
-"+	c #FFFFFFFFFFFF",
-"                        ",
-"                        ",
-"       .............    ",
-"       .XXXXXXXXXX.X..  ",
-"       .XXXXXXXXXX.XX.  ",
-"       .XXXXXXXXXX....  ",
-"       .XXXXXXXXXXooo.  ",
-"       .XXXXXXXXXXXXX.  ",
-"       .XXXXXXXXXXXXX.  ",
-"       .XXXXXXXXXXXXX.  ",
-" OOOOOOOOOOOOOOXXXXXX.  ",
-" O..O+++++++O.OXXXXXX.  ",
-" O..O+++++++O.OXXXXXX.  ",
-" O..O+++++++O.OXXXXXX.  ",
-" O..O+++++++O.OXXXXXX.  ",
-" O..O+++++++O.OXXXXXX.  ",
-" O..OOOOOOOOO.OXXXXXX.  ",
-" O............OXXXXXX.  ",
-" O............OXXXXXX.  ",
-" O..OOOOOOOOO.O.......  ",
-" O..OoooooO++.O         ",
-" O..OoooooO++.O         ",
-"  O.OoooooO++.O         ",
-"   OOOOOOOOOOOO         "};
Index: gnus/etc/gnus/save-art.pbm
Index: gnus/etc/gnus/save-art.xpm
diff -u gnus/etc/gnus/save-art.xpm:7.1 gnus/etc/gnus/save-art.xpm:removed
--- gnus/etc/gnus/save-art.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/save-art.xpm	Sun May  1 19:04:57 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char * save_art_xpm[] = {
-"24 24 5 1",
-" 	c None",
-".	c #000000000000",
-"X	c #FFFFFFFFFFFF",
-"o	c #999999999999",
-"O	c #C7C7C6C6C6C6",
-"                        ",
-"                        ",
-"     .................. ",
-"     ...XXXXXXXXXXXXX.. ",
-"     .XX..XXXXXXXXX..X. ",
-"     .XXXX..XXXXX..XXX. ",
-"     .XXXXX......XXXXX. ",
-"     .XXX..XX..XX..XXX. ",
-"     .XX..XXXXXXXX..XX. ",
-"     ...XXXXXXXXXXXX... ",
-" ..............XXXXXXX. ",
-" .oo.XXXXXXX.o......... ",
-" .oo.XXXXXXX.o.         ",
-" .oo.XXXXXXX.o.         ",
-" .oo.XXXXXXX.o.         ",
-" .oo.XXXXXXX.o.         ",
-" .oo.........o.         ",
-" .oooooooooooo.         ",
-" .oooooooooooo.         ",
-" .oo.........o.         ",
-" .oo.OOOOO.XXo.         ",
-" .oo.OOOOO.XXo.         ",
-"  .o.OOOOO.XXo.         ",
-"   ............         "};
Index: gnus/etc/gnus/subscribe.pbm
Index: gnus/etc/gnus/subscribe.xpm
diff -u gnus/etc/gnus/subscribe.xpm:7.1 gnus/etc/gnus/subscribe.xpm:removed
--- gnus/etc/gnus/subscribe.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/subscribe.xpm	Sun May  1 19:04:57 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char * subscribe_xpm[] = {
-"24 24 5 1",
-" 	c None",
-".	c #A5A5A5A59595",
-"X	c #E1E1E0E0E0E0",
-"o	c #C7C7C6C6C6C6",
-"O	c #8686ADAD7D7D",
-"                        ",
-"                        ",
-"                        ",
-"     ...                ",
-"   ..XXX.....           ",
-"...XXXXX..XXX. ...      ",
-".X.XX...XXXX...XXX.     ",
-".XX.X.X.XX...XXXXX.     ",
-".XX...XX.X.X.XXXXXX.    ",
-".XX.o.XX...XX.XXXXXX.   ",
-".X.oo.XX.o.XX..XXXXXX.  ",
-"o.ooo.X.oo.XX.XXXOXXX.  ",
-"o.oXXo.ooo.X.oXXOXXXXX. ",
-" o.XXo.oXXo.ooXXOXXXXX. ",
-" o.XXXo.XXo.oXXXOXXXXXX.",
-"  o.XXo.XXXo.XOOOOXXXXX.",
-"  o.XXoo.XXo.XXXOOXXXXX.",
-"   o.XXo.XXXo.XXXXXXX...",
-"   o.XX.o.XXo.XXXXXX.oo ",
-"    o..oo.XX.o.XXX..o   ",
-"     oo  o..oo.XX.oo    ",
-"          oo  o..o      ",
-"               oo       ",
-"                        "};
Index: gnus/etc/gnus/unimportant.xpm
diff -u gnus/etc/gnus/unimportant.xpm:7.1 gnus/etc/gnus/unimportant.xpm:removed
--- gnus/etc/gnus/unimportant.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/unimportant.xpm	Sun May  1 19:04:57 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char *magick[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 2  1",
-"! c blue",
-"w c Gray75",
-/* pixels */
-"wwwwwwwwwwwwwwwwwwwwwwww",
-"wwwwwwwwwwwwwwwwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"ww!!!wwwwww!!!wwwwww!!!w",
-"www!!!wwwww!!!wwwww!!!ww",
-"wwww!!!wwww!!!wwww!!!www",
-"wwwww!!!www!!!www!!!wwww",
-"wwwwww!!!ww!!!ww!!!wwwww",
-"wwwwwww!!!w!!!w!!!wwwwww",
-"wwwwwwww!!!!!!!!!wwwwwww",
-"wwwwwwwww!!!!!!!wwwwwwww",
-"wwwwwwwwww!!!!!wwwwwwwww",
-"wwwwwwwwwww!!!wwwwwwwwww",
-"wwwwwwwwwwwwwwwwwwwwwwww",
-"wwwwwwwwwwwwwwwwwwwwwwww"
-};
Index: gnus/etc/gnus/unsubscribe.pbm
Index: gnus/etc/gnus/unsubscribe.xpm
diff -u gnus/etc/gnus/unsubscribe.xpm:7.1 gnus/etc/gnus/unsubscribe.xpm:removed
--- gnus/etc/gnus/unsubscribe.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/unsubscribe.xpm	Sun May  1 19:04:57 2005
@@ -1,32 +0,0 @@
-/* XPM */
-static char * unsubscribe_xpm[] = {
-"24 24 5 1",
-" 	c None",
-".	c #A5A5A5A59595",
-"X	c #E1E1E0E0E0E0",
-"o	c #C7C7C6C6C6C6",
-"O	c #FFFF00000000",
-"                        ",
-"                        ",
-"                        ",
-"     ...                ",
-"   ..XXX.....           ",
-"...XXXXX..XXX. ...      ",
-".X.XX...XXXX...XXX.     ",
-".XX.X.X.XX...XXXXX.     ",
-".XX...XX.X.X.XXXXXX.    ",
-".XX.o.XX...XX.XXXXXX.   ",
-".X.oo.XX.o.XX..XXXXXX.  ",
-"o.ooo.X.oo.XX.XXXXXXX.  ",
-"o.oXXo.ooo.X.oXXXXXXXX. ",
-" o.XXo.oXXo.ooXXOXXXXX. ",
-" o.XXXo.XXo.oXXXOXXXXXX.",
-"  o.XXo.XXXo.XOOOXXXXXX.",
-"  o.XXoo.XXo.XoOOOXXXXX.",
-"   o.XXo.XXXo.XOoOXXX...",
-"   o.XX.o.XXo.XOXoXX.oo ",
-"    o..oo.XX.o.oXX..o   ",
-"     oo  o..oo.XX.oo    ",
-"          oo  o..o      ",
-"               oo       ",
-"                        "};
Index: gnus/etc/gnus/uu-decode.pbm
Index: gnus/etc/gnus/uu-decode.xpm
diff -u gnus/etc/gnus/uu-decode.xpm:7.1 gnus/etc/gnus/uu-decode.xpm:removed
--- gnus/etc/gnus/uu-decode.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/uu-decode.xpm	Sun May  1 19:04:57 2005
@@ -1,36 +0,0 @@
-/* XPM */
-static char * uu_decode_xpm[] = {
-"24 24 9 1",
-" 	c None",
-".	c #919187876969",
-"X	c #C2C2B9B99C9C",
-"o	c #868686868686",
-"O	c #8F8F8F8F8F8F",
-"+	c #000000000000",
-"@	c #4C4C4C4C4C4C",
-"#	c #E9E9EFEFE8E8",
-"$	c #8686ADAD7D7D",
-"                        ",
-"                        ",
-"                        ",
-"    ..............      ",
-"    X.o.........O.++    ",
-"    XX++++++++++..++    ",
-"    XX@########+..++    ",
-"    XX@########+..++    ",
-"    XX@$#$$$#$#+..++    ",
-"    XX@#$$$$$$#+..++    ",
-"    XX@##$#####+..++    ",
-"    XX@##$#$$##+..++    ",
-"    XX@##$#$$##+..++    ",
-"    XX@##$$#$$#+..++    ",
-"    XX@######$#+..++    ",
-"    XX@########+..++    ",
-"    XX@########+..++    ",
-"    XX.@@@@@@@@@..++    ",
-"    X.XXXXXXXXXX..++    ",
-"    .XXXXXXXXXXXX.++    ",
-"     +++++++++++++++    ",
-"     +++++++++++++++    ",
-"                        ",
-"                        "};
Index: gnus/etc/gnus/uu-post.pbm
Index: gnus/etc/gnus/uu-post.xpm
diff -u gnus/etc/gnus/uu-post.xpm:7.1 gnus/etc/gnus/uu-post.xpm:removed
--- gnus/etc/gnus/uu-post.xpm:7.1	Sun Jan  4 22:50:53 2004
+++ gnus/etc/gnus/uu-post.xpm	Sun May  1 19:04:57 2005
@@ -1,35 +0,0 @@
-/* XPM */
-static char * uu_post_xpm[] = {
-"24 24 8 1",
-".	c None",
-"X	c #000000000000",
-"+	c #C2C2B9B99C9C",
-"@	c #919187876969",
-"#	c #868686868686",
-"%	c #4C4C4C4C4C4C",
-"&	c #E9E9EFEFE8E8",
-"*	c #8686ADAD7D7D",
-"X..X..X..X.XX..X..X..X..",
-"..........X.X...........",
-".........X...X..........",
-"X..X..X.XX..X.XX..X..X..",
-".......X.......X........",
-"......X.........X.......",
-"X..X+X@@@@@@@@@@@XX..X..",
-"....+@@@@@@@@@@@@@......",
-"....++XXXXXXXXXX@@......",
-"X..X++%&&&&&&&&X@@X..X..",
-"....++%&&&&&&&&X@@......",
-"....++%*&***&*&X@@......",
-"X..X++%&******&X@@X..X..",
-"....++%&&*&&&&&X@@......",
-"....++%&&*&**&&X@@......",
-"X..X++%&&*&**&&X@@X..X..",
-"....++%&&**&**&X@@......",
-"....++%&&&&&&*&X@@......",
-"X..X++%&&&&&&&&X@@X..X..",
-"....++%&&&&&&&&X@@......",
-"....++@%%%%%%%%%@@......",
-"X..X+@++++++++++@@X..X..",
-"....+++++++++++++@......",
-"........................"};
Index: gnus/etc/gnus/x-splash
Index: gnus/etc/images/gnus/bar.xbm
diff -u /dev/null gnus/etc/images/gnus/bar.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/bar.xbm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,7 @@
+#define noname_width 6
+#define noname_height 48
+static char noname_bits[] = {
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,
+ 0x0c,0x0c,0x0c};
Index: gnus/etc/images/gnus/bar.xpm
diff -u /dev/null gnus/etc/images/gnus/bar.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/bar.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,54 @@
+/* XPM */
+static char * picon-bar_xpm[] = {
+"6 48 2 1",
+" 	c white s background",
+".	c black",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  ",
+"  ..  "};
Index: gnus/etc/images/gnus/catchup.pbm
Index: gnus/etc/images/gnus/catchup.xpm
diff -u /dev/null gnus/etc/images/gnus/catchup.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/catchup.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,33 @@
+/* XPM */
+static char * catchup_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #FFFFFFFFFFFF",
+"X	c #E1E1E0E0E0E0",
+"o	c #A5A5A5A59595",
+"O	c #999999999999",
+"+	c #000000000000",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"            .           ",
+"         .  .X          ",
+"       ...  .oX  .      ",
+"     ..oooX.oXo  .X     ",
+"    .oooXXXX..oXXoXX    ",
+"    .oXXXX.XoX.oXooX    ",
+"     X...X.X.XX.XoXX    ",
+"     Xo..X.XXX.XXXX     ",
+"   . Xo.oXX..XXXXXX     ",
+"OOOOXoXXXXXo.XXXXX++OOOO",
+"OOOOOX..X.XXXXXXXX++OOOO",
+"OOOOOX..XXXXXXXXX++OOOOO",
+"OOOOOOXXXXXXXXX+++OOOOOO",
+"OOOOOOOOOXXXX++++OOOOOOO",
+"OOOOOOOOO+++++OOOOOOOOOO",
+"OOOOOOOOOO+OOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO"};
Index: gnus/etc/images/gnus/cu-exit.pbm
Index: gnus/etc/images/gnus/cu-exit.xpm
diff -u /dev/null gnus/etc/images/gnus/cu-exit.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/cu-exit.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,31 @@
+/* XPM */
+static char * cu_exit_xpm[] = {
+"24 24 4 1",
+" 	c None",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"           .....        ",
+"        .. .XXX.        ",
+"      ..X..XXXX...      ",
+"     .XXXX.XXXX.X...    ",
+"    ..XXXX.XXX.XXX..    ",
+"     .XXX..........     ",
+"     .XXX.XXX.XXX..     ",
+"      .XX.XXX.XXX.      ",
+"      .XX.XXX.XX..      ",
+"      ............      ",
+"       .X.X.X.X..       ",
+"ooooooo..........ooooooo",
+"ooooooo.X.X.X.X.oooooooo",
+"ooooooo.........oooooooo",
+"ooooooo..X...X..oooooooo",
+"ooooooo...X.X...oooooooo",
+"ooooooo........ooooooooo",
+"ooooooooo.....oooooooooo",
+"oooooooooooooooooooooooo"};
Index: gnus/etc/images/gnus/describe-group.pbm
Index: gnus/etc/images/gnus/describe-group.xpm
diff -u /dev/null gnus/etc/images/gnus/describe-group.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/describe-group.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char * describe_group_xpm[] = {
+"24 24 5 1",
+".	c None",
+" 	c #000000000000",
+"o	c #FFFFF5F5ACAC",
+"+	c #E1E1E0E0E0E0",
+"@	c #C7C7C6C6C6C6",
+"........................",
+"........................",
+".................oooo...",
+" .. .. .. .. .. oo oo o.",
+"..............oooooooooo",
+".............ooooooooooo",
+" .. .. .. .. oo oo oo oo",
+"............oooooooooooo",
+"............oooooooooooo",
+" .. .. .. .. oo oo oo oo",
+"............oooooooooooo",
+"............oooooooooooo",
+" .. .. .. .. oo oo oo oo",
+"............oooooooooooo",
+".....    ...oooooooooooo",
+" ..   ++  .. .o oo oo oo",
+"...  @@@+  ....ooooooooo",
+"...     @  ....oooooooo.",
+" .         . .. .. .. ..",
+".         ..............",
+"        ................",
+"       .. .. .. .. .. ..",
+"      ..................",
+"    ...................."};
Index: gnus/etc/images/gnus/exit-gnus.pbm
Index: gnus/etc/images/gnus/exit-gnus.xpm
diff -u /dev/null gnus/etc/images/gnus/exit-gnus.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/exit-gnus.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,33 @@
+/* XPM */
+static char * exit_gnus_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #8686ADAD7D7D",
+"X	c #919187876969",
+"o	c #C2C2B9B99C9C",
+"O	c #A8A8F0F0ECEC",
+"+	c #EFEFEFEFEFEF",
+"                        ",
+"     ....  .            ",
+"        .. .. .         ",
+"  .............         ",
+"   . . . ....           ",
+"     .............      ",
+"  .............. ..     ",
+"  . . ..........  .     ",
+"      .XXXX... ..       ",
+"       o.XXX. . ..      ",
+"      oo.X. ..  ...     ",
+"     ooX. . ...         ",
+"     oXo.     ..        ",
+"    ooX      . .        ",
+"    ooX                 ",
+"OOOOoXXOOOOOOOOOOOOOOOOO",
+"OOOoXoXOOOOOOOOOOOOOOOOO",
+"OOOooXXOOOO+OOOOOOOOOOOO",
+"O+OoooXOO+OOO+OO+OOO+OOO",
+"OXXoXoXoXOO++O++OO++OO+O",
+"XXXXXXXXXXXX+OOOOOOOOOOO",
+"XXXXXXXXXXXXXX+O++OO++OO",
+"XXXXXXXXXXXXXXXXOOOOOOOO",
+"O++O++++O+OO++OOOO++OOO+"};
Index: gnus/etc/images/gnus/exit-summ.pbm
Index: gnus/etc/images/gnus/exit-summ.xpm
diff -u /dev/null gnus/etc/images/gnus/exit-summ.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/exit-summ.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,30 @@
+/* XPM */
+static char * exit_summ_xpm[] = {
+"24 24 3 1",
+".	c None",
+" 	c #000000000000",
+"X	c #E1E1E0E0E0E0",
+" .. .. .. .. .. .. .. ..",
+"........................",
+"........................",
+" .. ..             .. ..",
+"......  XXXX       .....",
+"......  XXXXXXX    .....",
+" .. .. XX XX XX    .. ..",
+"...... XXXXXXXX    .....",
+"......  XXXXXXX    .....",
+" .. ..  X XX       .. ..",
+"......  XXXX       .....",
+"......  XXXX       .....",
+" .. ..  X XXXXX    .. ..",
+"......  XXXXXXX    .....",
+"...... XXXXX XX    .....",
+" .. ..  X XXXXX    .. ..",
+"......  XXXXX      .....",
+"......  X          .....",
+" .. . .            .. ..",
+"........................",
+"........................",
+" .. .. .. .. .. .. .. ..",
+"........................",
+"........................"};
Index: gnus/etc/images/gnus/followup.pbm
Index: gnus/etc/images/gnus/followup.xpm
diff -u /dev/null gnus/etc/images/gnus/followup.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/followup.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,31 @@
+/* XPM */
+static char * followup_xpm[] = {
+"24 24 4 1",
+" 	c None",
+".	c #A5A5A5A59595",
+"X	c #C7C7C6C6C6C6",
+"o	c #E1E1E0E0E0E0",
+"                        ",
+"          .             ",
+"        ..X.            ",
+"      ..XXX.            ",
+"    ..XXXXXo.           ",
+" ...XXXXXXooo.  .       ",
+" .o.XXXXXooooo..X.      ",
+" .oo.XXXoooo..XXX.      ",
+" .oo..Xooo..XXXXXo.     ",
+" .oo.XX...XXXXXXooo.    ",
+" .o.Xoo.o.XXXXXoooo.    ",
+"  .XXoo.oo.XXXoooooo.   ",
+"  .Xooo.oo..XXooooooo.  ",
+"   .ooo.oo.XXooooooooo. ",
+"   .ooo.o.XoooooooooooX.",
+"    .ooo.XXoooooooooooo.",
+"    .ooo.Xoooooooooooo. ",
+"     .ooo.ooooooooooo.  ",
+"     .oo..oooooooooo.   ",
+"      ..  .ooooooo..    ",
+"          .oooooo.      ",
+"           .ooo..       ",
+"           .oo.         ",
+"            ..          "};
Index: gnus/etc/images/gnus/fuwo.pbm
Index: gnus/etc/images/gnus/fuwo.xpm
diff -u /dev/null gnus/etc/images/gnus/fuwo.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/fuwo.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,31 @@
+/* XPM */
+static char * fuwo_xpm[] = {
+"24 24 4 1",
+" 	c None",
+".	c #A5A5A5A59595",
+"X	c #C7C7C6C6C6C6",
+"o	c #E1E1E0E0E0E0",
+"                        ",
+"          .             ",
+"        .. .            ",
+"      ..   .            ",
+"    ..      .           ",
+" ...         .  .       ",
+" . .          ..X.      ",
+" .  .       ..XXX.      ",
+" .  ..    ..XXXXXo.     ",
+" .  .  ...XXXXXXooo.    ",
+" . .X  .o.XXXXXoooo.    ",
+"  .XX  .oo.XXXoooooo.   ",
+"  .X   .oo..XXooooooo.  ",
+"   .   .oo.XXooooooooo. ",
+"   .   .o.XoooooooooooX.",
+"    .   .XXoooooooooooo.",
+"    .   .Xoooooooooooo. ",
+"     .   .ooooooooooo.  ",
+"     .  ..oooooooooo.   ",
+"      ..  .ooooooo..    ",
+"          .oooooo.      ",
+"           .ooo..       ",
+"           .oo.         ",
+"            ..          "};
Index: gnus/etc/images/gnus/get-news.pbm
Index: gnus/etc/images/gnus/get-news.xpm
diff -u /dev/null gnus/etc/images/gnus/get-news.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/get-news.xpm	Sat Feb 19 06:08:40 2005
@@ -0,0 +1,31 @@
+/* XPM */
+static char * get_news_xpm[] = {
+"24 24 4 1",
+".	c None",
+"X	c #A5A5A5A59595",
+"o	c #E1E1E0E0E0E0",
+"O	c #C7C7C6C6C6C6",
+"........................",
+"........................",
+"........................",
+".....XXX................",
+"...XXoooXXXXX...........",
+"XXXoooooXXoooX.XXX......",
+"XoXooXXXooooXXXoooX.....",
+"XooXoXoXooXXXoooooX.....",
+"XooXXXooXoXoXooooooX....",
+"XooXOXooXXXooXooooooX...",
+"XoXOOXooXOXooXXooooooX..",
+"OXOOOXoXOOXooXoooooooX..",
+"OXOooOXOOOXoXOooooooooX.",
+".OXooOXOooOXOOooooooooX.",
+".OXoooOXooOXOooooooooooX",
+"..OXooOXoooOXooooooooooX",
+"..OXooOOXooOXooooooooooX",
+"...OXooOXoooOXoooooooXXX",
+"...OXooXOXooOXooooooXOO.",
+"....OXXOOXooXOXoooXXO...",
+".....OO..OXXOOXooXOO....",
+"..........OO..OXXO......",
+"...............OO.......",
+"........................"};
Index: gnus/etc/images/gnus/gnntg.pbm
Index: gnus/etc/images/gnus/gnntg.xpm
diff -u /dev/null gnus/etc/images/gnus/gnntg.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnntg.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,31 @@
+/* XPM */
+static char * gnntg_xpm[] = {
+"24 24 4 1",
+" 	c None",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #C7C7C6C6C6C6",
+"                        ",
+" .......                ",
+" .XXXXX.                ",
+" .XXXXX.       ...      ",
+" .XXXXX...    .ooo.     ",
+" .XXXXX....  ..ooo..    ",
+" .XXXXX..o.. ..ooo..    ",
+" .XXXXX...o.. ..o..     ",
+" .XXXXX. ..o........    ",
+" .XXXXX.  ..oooooooo.   ",
+" .......   .oooooooo..  ",
+"            .ooooo..o.  ",
+"             .oooo..o.  ",
+"             .oooo..o.  ",
+"             .oooo..o.  ",
+"             .oooo..o.  ",
+"             .........  ",
+"            ......oo.   ",
+"            .ooooo...   ",
+"            .oo..o...   ",
+"            .oo..o..    ",
+"            ........    ",
+"            .... ...    ",
+"            ...  ...    "};
Index: gnus/etc/images/gnus/gnus-group-catchup-current-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-catchup-current-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-catchup-current-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x20,0x40,0x10,0x20,0x0a,0x15,0x85,0x0a,0x20,0x20,0x28,0x50,0x8a,0x8a,0x02,
+ 0x05,0x10,0x5e,0x54,0xa8,0xa5,0x35,0x01,0x7a,0x00,0x33,0x54,0x95,0xaa,0xaa,
+ 0x02,0xcc,0xfe,0x17,0xa8,0xd8,0x01,0xac,0xfa,0x4f,0x3d,0xf8,0x05,0x30,0x22,
+ 0x80,0xf6,0x60,0x2b,0xfc,0x8f,0x20,0x11,0x82,0xca,0x60,0x1a,0x2a,0x6e,0x28,
+ 0x08,0x85,0x42,0x68,0xfa,0x11,0x28,0xc8,0x04,0x8b,0xe2,0xb7,0x06,0x21,0x14,
+ 0xd4,0x1a,0x11,0x31,0x04,0x31,0x56,0x6d,0xdc,0x58,0xea,0xc7,0x28,0x64,0x66,
+ 0x60,0xa9,0x57,0x72,0x90,0x49,0xc8,0xec,0x5f,0x99,0xa6,0x7f,0x95,0x52,0xaa,
+ 0x64,0x22,0xbf,0x49,0x2a,0xa9,0x7e,0x92,0x52,0x55,0x55,0x54,0x49,0x4a,0xa4,
+ 0x49,0xaa,0xa4,0x4a,0x2a,0x49,0x2a,0x25};
Index: gnus/etc/images/gnus/gnus-group-catchup-current-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-catchup-current-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-catchup-current-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-catchup_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #999999999999",
+"o	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"         ....                   ",
+"        .XXXX.             .... ",
+"        .XXXX.            .XXXX.",
+"         .XXX.            .XXXX.",
+" .........XX.              .XXX.",
+".ooooooooo..       .........XX. ",
+".o....ooooo...... .ooooooooo..  ",
+"X.   .ooooooooo.X..o....ooooo.  ",
+"X.   .oooo........X.   .ooooo.  ",
+".   .oooo.       .X.   .ooooo.  ",
+"    .oooo.       ..   .oooo.o.  ",
+"   .oooo.             .oooo.o.  ",
+"   ......            .ooooo.oo..",
+"  .ooooo.            ...... ..X.",
+"  .ooooo.           .ooooo.   ..",
+" .o..ooo.           ..oooo.     ",
+".ooo..ooo.XXXXXXXXX.o..ooo.XXXXX",
+"ooo.XX.oo.XXX......ooo..ooo.XXXX",
+"oo.XXX.oo.XXX..oooooo.XX.oo.XXXX",
+"..XXXX.oo.XXX..ooooo.XXX.oo.XXXX",
+"XXXXXXX.oo.XX.......XXX .oo.XXXX",
+"XXXXXXX.....X..XXXXXXXXXX.oo.XXX",
+"XXXXXXXXXXXXX.XXXXXXXXXXX.....XX",
+"XXXXXXXXXXXXXXXXXXXXXXXXX......X",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"};
Index: gnus/etc/images/gnus/gnus-group-catchup-current.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-catchup-current.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-catchup-current.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x84,0x20,0x00,0x04,0x21,0x88,0x54,0x51,0x84,0x22,0x02,0x04,0x51,0x88,0xa0,
+ 0x42,0x04,0x1f,0x0a,0x28,0x51,0x75,0xa1,0x7a,0x04,0x23,0x04,0xcc,0xa1,0x76,
+ 0xa9,0xa6,0xfe,0x1b,0x00,0xd8,0x01,0x0c,0xfd,0x5f,0x3d,0xf8,0x05,0x30,0x26,
+ 0x80,0xf7,0x60,0x33,0xfc,0xdb,0x20,0x11,0x22,0x8e,0x20,0x14,0x8a,0x66,0x68,
+ 0x09,0x45,0x48,0x28,0xfc,0x11,0x21,0xc8,0x04,0x45,0xf4,0xf7,0x06,0x89,0x10,
+ 0xc4,0x1a,0x23,0x35,0x2c,0x31,0xaa,0x6c,0x54,0x58,0xea,0xc7,0x48,0x64,0x66,
+ 0xa0,0x99,0x57,0x72,0x50,0x59,0xc8,0xec,0x2f,0x49,0xa6,0x7f,0xaa,0x52,0xaa,
+ 0x64,0x49,0xbf,0x49,0x2a,0xa5,0x7e,0x92,0xa4,0x14,0x55,0xa9,0x52,0xaa,0x92,
+ 0x4a,0xa5,0x24,0x25,0xa5,0x94,0xaa,0xa8};
Index: gnus/etc/images/gnus/gnus-group-catchup-current.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-catchup-current.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-catchup-current.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-catchup_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF",
+".	c #000000000000",
+"X	c #999999999999",
+"o	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"         ....                   ",
+"        .XXXX.             .... ",
+"        .XXXX.            .XXXX.",
+"         .XXX.            .XXXX.",
+" .........XX.              .XXX.",
+".ooooooooo..       .........XX. ",
+".o....ooooo...... .ooooooooo..  ",
+"X.   .ooooooooo.X..o....ooooo.  ",
+"X.   .oooo........X.   .ooooo.  ",
+".   .oooo.       .X.   .ooooo.  ",
+"    .oooo.       ..   .oooo.o.  ",
+"   .oooo.             .oooo.o.  ",
+"   ......            .ooooo.oo..",
+"  .ooooo.            ...... ..X.",
+"  .ooooo.           .ooooo.   ..",
+" .o..ooo.           ..oooo.     ",
+".ooo..ooo.XXXXXXXXX.o..ooo.XXXXX",
+"ooo.XX.oo.XXX......ooo..ooo.XXXX",
+"oo.XXX.oo.XXX..oooooo.XX.oo.XXXX",
+"..XXXX.oo.XXX..ooooo.XXX.oo.XXXX",
+"XXXXXXX.oo.XX.......XXX .oo.XXXX",
+"XXXXXXX.....X..XXXXXXXXXX.oo.XXX",
+"XXXXXXXXXXXXX.XXXXXXXXXXX.....XX",
+"XXXXXXXXXXXXXXXXXXXXXXXXX......X",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"};
Index: gnus/etc/images/gnus/gnus-group-describe-group-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-describe-group-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-describe-group-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x55,0xb5,0x55,0xb5,0xaa,0x12,0xa9,0x12,0x12,0x55,0x12,0x65,0xa9,0xa4,0x4a,
+ 0x10,0x55,0x9b,0x15,0xc1,0x55,0x51,0x09,0x00,0x92,0x4a,0x02,0x00,0xa9,0x24,
+ 0x01,0x00,0x55,0x5b,0x11,0x11,0x92,0xa4,0x00,0x00,0x2a,0x49,0x00,0x00,0x49,
+ 0x55,0x00,0x00,0x35,0x55,0x11,0x11,0xaa,0xaa,0x00,0x00,0x92,0x44,0x00,0x00,
+ 0xa5,0x32,0x00,0x00,0x55,0x55,0x11,0x11,0x29,0x55,0x01,0x00,0xaa,0x24,0x01,
+ 0x00,0x92,0x97,0x00,0x00,0x75,0xba,0x13,0x11,0x2a,0x51,0x04,0x00,0xb2,0xaa,
+ 0x0a,0x40,0x59,0x75,0x25,0x40,0xb5,0x3d,0x59,0xb5,0xfa,0x77,0xa5,0x2a,0xae,
+ 0x9a,0x2a,0x49,0xd6,0x5f,0x49,0xa5,0xf7,0x57,0x35,0x55,0x7d,0x29,0x95,0x2a,
+ 0x7e,0x55,0xa9,0x54,0x5f,0x92,0x94,0x92};
Index: gnus/etc/images/gnus/gnus-group-describe-group-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-describe-group-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-describe-group-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-describe-group_xpm[] = {
+"32 32 4 1",
+" 	c #000000000000",
+".	c #999999999999 s backgroundToolBarColor",
+"X	c #FFFFFFFFFFFF",
+"o	c #BFBFBFBFBFBF",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+".......................XXXXX....",
+" ... ... ... ... ... XXX XXXXX..",
+"....................XXXXXXXXXXX.",
+"...................XXXXXXXXXXXXX",
+"..................XXXXXXXXXXXXXX",
+" ... ... ... ... XXX XXX XXX XXX",
+"................XXXXXXXXXXXXXXXX",
+"................XXXXXXXXXXXXXXXX",
+"................XXXXXXXXXXXXXXXX",
+" ... ... ... ... XXX XXX XXX XXX",
+"................XXXXXXXXXXXXXXXX",
+"................XXXXXXXXXXXXXXXX",
+"................XXXXXXXXXXXXXXXX",
+" ... ... ... ... XXX XXX XXX XXX",
+".................XXXXXXXXXXXXXXX",
+".................XXXXXXXXXXXXXXX",
+".......    .......XXXXXXXXXXXXXX",
+" ... . oooo  ... ..X XXX XXX XXX",
+"..... o...oo .......XXXXXXXXXXX.",
+".... .o....o. .......XXXXXXXXX..",
+".... o . ...  .........XXXXX....",
+" ...  o .. .  .. ... ... ... ...",
+"...  o   . .  ..................",
+"..  X . . .  ...................",
+".  o .   .  ....................",
+"   o       . ... ... ... ... ...",
+" o     .........................",
+"o .   ...o......................",
+"     ..........................."};
Index: gnus/etc/images/gnus/gnus-group-exit-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-exit-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-exit-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x00,0x40,0x00,0x00,0x30,0x30,0x00,0x00,0x68,0x38,0x00,0x38,0x60,0x48,
+ 0x00,0xd4,0x91,0xde,0x07,0x68,0xcf,0xb7,0x1a,0x80,0xb4,0x6e,0x05,0x00,0xe2,
+ 0x07,0x00,0x00,0xde,0x1d,0x00,0xe0,0xfd,0x77,0x00,0xb0,0x6a,0xf3,0x00,0x20,
+ 0x9c,0xa5,0x03,0x00,0xaa,0x86,0x02,0x00,0x65,0x06,0x02,0xab,0x6f,0xaf,0x59,
+ 0x80,0x62,0x0c,0x00,0xaa,0xab,0xba,0x4a,0x40,0x21,0x10,0x10,0xea,0x45,0x4a,
+ 0x42,0x40,0x89,0x90,0x28,0xd2,0x21,0x02,0x82,0xa4,0x8a,0x44,0x20,0xf0,0x10,
+ 0x10,0x85,0xa4,0x04,0x4a,0x20,0xe2,0x22,0x80,0x80,0xbc,0x4b,0x09,0x2a,0xee,
+ 0x8e,0x32,0x80,0xeb,0x73,0x85,0x28,0x56,0xaa,0xb5,0x02,0xff,0xff,0x85,0x48,
+ 0x08,0x94,0x11,0x01,0x42,0x02,0x48,0x54};
Index: gnus/etc/images/gnus/gnus-group-exit-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-exit-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-exit-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-exit-gnus_xpm[] = {
+"32 32 4 1",
+" 	c #FFFFFFFFFFFF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #999999999999",
+"o	c #BFBFBFBFBFBF",
+"                      .         ",
+"            ..      ..          ",
+"           . ..    ...          ",
+"   ...       ..    .  .         ",
+"  . . ...   .  . .... .....     ",
+"   . .. ....  ..... .. . . ..   ",
+"       .  . .. . ... .. . .     ",
+"         .   ......             ",
+"         .... ... ...           ",
+"     .... ......... ...         ",
+"    .. . . .X.. ..  ....        ",
+"     .    .X.  .. .  . ...      ",
+"         .X. . . ..    . .      ",
+"        .X.  ..  ..      .      ",
+".. . . ..X.. .. .... . ..  .. . ",
+"ooooooo.X.ooo..ooo..oo ooooooooo",
+"oooo oo.X.ooo.ooooo..oooooooo oo",
+"o oooo.X.ooooooo ooo.ooooooooooo",
+"oooooo.X.ooooooooooooooo ooooooo",
+"ooo oo.X.ooo ooooooooooooooooooo",
+"oooooo.X.oooooooooo  oooooo  ooo",
+"ooooo.X.ooooooooooooooo  ooooooo",
+"o ooo.X.oooooo ooooooooooooooooo",
+"ooooo.X.oooo  o  ooooooooo ooooo",
+"ooooo.X.ooooooooooo oooo  o  ooo",
+"oo....X...ooooooo  o  oooooooooo",
+"o..XX...XX..ooo.o.oo.oo oooooooo",
+".XX.XX..X.XX...ooo.oo  o  oooooo",
+"X.XX.XXXXXXXXXX..oooo.o.oooooo o",
+".................o.o oo.oooo  o ",
+"oooooo ooo.oo oo.o  .  ooooooooo",
+"oooo  o  oo  o  oooooooooooooooo"};
Index: gnus/etc/images/gnus/gnus-group-get-new-news-this-group-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-get-new-news-this-group-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-get-new-news-this-group-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x20,0x00,0x40,0x88,0xff,0x57,0x15,0x22,0x02,0x0c,0xa0,0x88,0x02,0xa4,0x0a,
+ 0x22,0x02,0x04,0xf0,0x84,0x03,0x54,0xdd,0x21,0x02,0x1e,0x14,0x97,0x02,0x66,
+ 0xcd,0x02,0x02,0x7c,0x14,0x2b,0x03,0x9c,0xad,0x41,0x02,0x54,0xb1,0x0a,0x02,
+ 0x2c,0xff,0x47,0x02,0xe4,0x14,0x2d,0xff,0x4f,0xa5,0x0a,0x48,0xa0,0x4a,0xb4,
+ 0x12,0x0a,0x51,0x1b,0x40,0xa1,0x96,0x36,0x2a,0x10,0x4a,0x56,0x80,0x4a,0x57,
+ 0x1b,0x55,0x00,0x92,0x52,0x00,0x55,0x26,0x17,0xa9,0x00,0xab,0x5a,0x04,0x2a,
+ 0xfe,0x1f,0x41,0x41,0xcb,0x48,0x14,0x14,0x95,0x2f,0x82,0x42,0x53,0x09,0x28,
+ 0x08,0xa5,0xaf,0x84,0xa2,0x75,0x06,0x12,0x04,0xd3,0x54,0x40,0x51,0xdf,0x0f,
+ 0x0a,0x82,0xae,0x23,0xa0,0x28,0x8a,0x4a};
Index: gnus/etc/images/gnus/gnus-group-get-new-news-this-group-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-get-new-news-this-group-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-get-new-news-this-group-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-get-new-news-this-group_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"                                ",
+" ..........                     ",
+" .XXXXXXXX.                     ",
+" .XXXXXXXX.                     ",
+" .XXXXXXXX.         ....        ",
+" .XXXXXXXX.        .oooo.       ",
+" .XXXXXXX....     .oooooo.      ",
+" .XXXXXXX..  .    .oooooo.      ",
+" .XXXXXXXX...o.   .oooooo.      ",
+" .XXXXXXXX..ooo.   .oooo.       ",
+" .XXXXXXXX. .ooo.   .oo.        ",
+" .XXXXXXXX.  .ooo.....o....     ",
+" .XXXXXXXX.   .oooooooooooo.    ",
+" ..........   .oooooooooooo.    ",
+"               .oooooooooooo.   ",
+"                .oooooooo.oo.   ",
+"                 .ooooooo.oo.   ",
+"                 .ooooooo.oo.   ",
+"                 .ooooooo.oo.   ",
+"                 .ooooooo.oo.   ",
+"                 .ooooooo.oo.   ",
+"                 .ooooooo.oo.   ",
+"                 ............   ",
+"                .oooooo.   .    ",
+"                .ooooooo.. .    ",
+"                .ooooooo.  .    ",
+"                .oooo.oo...     ",
+"                .oooo.oooo.     ",
+"                .ooo. .ooo.     ",
+"                ..... .....     ",
+"                 .o.   .o.      ",
+"                 .o.   .o.      "};
Index: gnus/etc/images/gnus/gnus-group-get-new-news-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-get-new-news-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-get-new-news-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x81,0x00,0x08,0xff,0x2b,0xa8,0x42,0x01,0x42,0x05,0x14,0x01,0x16,0x50,
+ 0x41,0x01,0xa2,0x7a,0x0a,0x01,0x0a,0xcc,0x40,0x01,0xaf,0x92,0x15,0x01,0x13,
+ 0x56,0x43,0x01,0xbe,0x2a,0x09,0x01,0x6e,0xcc,0x52,0x01,0xca,0x69,0x80,0x01,
+ 0x32,0xdf,0x2b,0x01,0x66,0x55,0x85,0xff,0x33,0xa9,0x2e,0x24,0xc9,0x92,0x88,
+ 0x09,0x82,0x4a,0x2e,0xa0,0x28,0xfd,0xf9,0x14,0x42,0x07,0x8d,0x42,0x08,0x85,
+ 0x8d,0x20,0x52,0x87,0x85,0x8a,0x80,0x45,0x86,0x20,0x2a,0xc7,0x82,0x8a,0x00,
+ 0xe7,0x82,0x41,0xd4,0x15,0x81,0x14,0x81,0xe6,0x81,0x81,0xa8,0x3d,0xff,0x14,
+ 0x82,0xfa,0x02,0x42,0xd1,0x52,0x57,0x08,0x8a,0xad,0x82,0xa2,0xa0,0xef,0x2b,
+ 0x04,0x05,0x55,0x81,0x51,0x50,0xc7,0x2b};
Index: gnus/etc/images/gnus/gnus-group-get-new-news-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-get-new-news-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-get-new-news-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-get-new-news_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"                                ",
+"..........                      ",
+".XXXXXXXX.                      ",
+".XXXXXXXX.                      ",
+".XXXXXXXX.         ....         ",
+".XXXXXXXX.        .oooo.        ",
+".XXXXXXX....     .oooooo.       ",
+".XXXXXXX..  .    .oooooo.       ",
+".XXXXXXXX...o.   .oooooo.       ",
+".XXXXXXXX..ooo.   .oooo.        ",
+".XXXXXXXX. .ooo.   .oo.         ",
+".XXXXXXXX.  .ooo.....o....      ",
+".XXXXXXXX.   .oooooooooooo.     ",
+"..........   .oooooooooooo.     ",
+"              .oooooooooooo.    ",
+"               .ooooooooooo.    ",
+"                .o.......oo.....",
+"                .o.XXXXX.oo.XXX.",
+"                .o.XXXX.ooo.XXX.",
+"                .o.XXXX.oo.XXXX.",
+"                .o.XXX.ooo.XXXX.",
+"                .o.XXX.oo.XXXXX.",
+"                ...XX...o.XXXXX.",
+"               .oo.X.   .XXXXXX.",
+"               .oo.XX.. .XXXXXX.",
+"               .oo....  ........",
+"               .oooo.o..o.      ",
+"               .oooo.oooo.      ",
+"               .ooo. .ooo.      ",
+"               ..... .....      ",
+"                .o.   .o.       ",
+"                .o.   .o.       "};
Index: gnus/etc/images/gnus/gnus-group-kill-group-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-kill-group-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-kill-group-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x04,0x20,0x20,0x54,0xa1,0x0a,0x4a,0x02,0x0a,0x50,0x01,0xa0,0x40,0x05,
+ 0x54,0xca,0xff,0x7f,0x00,0x50,0x00,0x60,0x55,0x42,0x00,0xa0,0x80,0x68,0xc0,
+ 0x21,0x2b,0x42,0xe0,0xe3,0x83,0x50,0xb0,0x06,0x2a,0x4a,0xf0,0x07,0x42,0x60,
+ 0x70,0x07,0x16,0x42,0xe0,0x03,0x42,0x68,0x40,0x01,0x2a,0x42,0x40,0x01,0x82,
+ 0x50,0xc8,0x05,0x2a,0x4a,0x0c,0x0c,0x82,0x60,0x30,0x03,0x2a,0x4a,0xc0,0x00,
+ 0x82,0x40,0xc0,0x00,0x2a,0x6a,0x30,0x03,0x42,0x41,0x0c,0x0c,0x16,0x54,0x08,
+ 0x04,0x22,0x41,0x00,0x00,0x4a,0x54,0x00,0x00,0x02,0x41,0x00,0x00,0x56,0x54,
+ 0x00,0x00,0x02,0x42,0x00,0x00,0x52,0xe8,0xff,0xff,0x0b,0x04,0x84,0x00,0x42,
+ 0x52,0x11,0xaa,0x28,0x00,0xa4,0x04,0x04};
Index: gnus/etc/images/gnus/gnus-group-kill-group-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-kill-group-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-kill-group-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-killfile_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"      ................          ",
+"      .XXXXXXXXXXXXXX..         ",
+"      .XXXXXXXXXXXXXX.X.        ",
+"      .XXXXXXX...XXXX.XX.       ",
+"      .XXXXXX.....XXX.....      ",
+"      .XXXXX..X.X..XXXXXX.      ",
+"      .XXXXX.......XXXXXX.      ",
+"      .XXXXX...X...XXXXXX.      ",
+"      .XXXXXX.....XXXXXXX.      ",
+"      .XXXXXXX.X.XXXXXXXX.      ",
+"      .XXXXXXX.X.XXXXXXXX.      ",
+"      .XXXX.XX...X.XXXXXX.      ",
+"      .XXX..XXXXXX..XXXXX.      ",
+"      .XXXXX..XX..XXXXXXX.      ",
+"      .XXXXXXX..XXXXXXXXX.      ",
+"      .XXXXXXX..XXXXXXXXX.      ",
+"      .XXXXX..XX..XXXXXXX.      ",
+"      .XXX..XXXXXX..XXXXX.      ",
+"      .XXXX.XXXXXX.XXXXXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      ....................      ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-group-subscribe-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-subscribe-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-subscribe-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x08,0x04,0x00,0x40,0x22,0x51,0x55,0x15,0x88,0x04,0x00,0x20,0x22,0xa0,0xaa,
+ 0x4a,0xc4,0xff,0x3f,0x00,0x61,0x80,0x60,0x55,0x54,0x8a,0xa0,0x80,0x42,0x84,
+ 0x20,0x2b,0x68,0x8a,0xe0,0x83,0x42,0x80,0x00,0x2a,0xd4,0xff,0x00,0x42,0x41,
+ 0x80,0x00,0x16,0x54,0x8a,0x00,0x42,0x41,0x84,0x00,0x2a,0x54,0x8a,0x00,0x82,
+ 0x41,0x80,0x00,0x2a,0xd4,0xff,0x00,0x82,0x42,0x80,0x00,0x2a,0x68,0x8a,0x00,
+ 0x82,0x44,0x84,0x00,0x2a,0x52,0x8a,0x00,0x42,0x40,0x80,0x00,0x16,0xea,0xff,
+ 0x00,0x22,0x40,0x80,0x00,0x4a,0x4a,0x80,0x00,0x02,0x61,0x80,0x00,0x56,0x44,
+ 0x80,0x00,0x02,0x51,0x80,0x00,0x52,0xc4,0xff,0xff,0x0b,0xa1,0x04,0x00,0x42,
+ 0x14,0xa8,0xaa,0x88,0x82,0x02,0x00,0x22};
Index: gnus/etc/images/gnus/gnus-group-subscribe-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-subscribe-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-subscribe-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-unsubscribe_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"      ................          ",
+"      .XXXXXXXX.XXXXX..         ",
+"      .XX.X.XXX.XXXXX.X.        ",
+"      .XXX.XXXX.XXXXX.XX.       ",
+"      .XX.X.XXX.XXXXX.....      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      ..........XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XX.X.XXX.XXXXXXXXX.      ",
+"      .XXX.XXXX.XXXXXXXXX.      ",
+"      .XX.X.XXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      ..........XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XX.X.XXX.XXXXXXXXX.      ",
+"      .XXX.XXXX.XXXXXXXXX.      ",
+"      .XX.X.XXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      ..........XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      ....................      ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-group-unsubscribe-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-unsubscribe-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-unsubscribe-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x08,0x04,0x00,0x40,0x22,0x51,0x55,0x15,0x88,0x04,0x00,0x20,0x22,0xa0,0xaa,
+ 0x4a,0xc4,0xff,0x3f,0x00,0x61,0x80,0x60,0x55,0x54,0xa0,0xa0,0x80,0x42,0x90,
+ 0x20,0x2b,0x68,0x8a,0xe0,0x83,0x42,0x84,0x00,0x2a,0xd4,0xff,0x00,0x42,0x41,
+ 0x80,0x00,0x16,0x54,0xa0,0x00,0x42,0x41,0x90,0x00,0x2a,0x54,0x8a,0x00,0x82,
+ 0x41,0x84,0x00,0x2a,0xd4,0xff,0x00,0x82,0x42,0x80,0x00,0x2a,0x68,0xa0,0x00,
+ 0x82,0x44,0x90,0x00,0x2a,0x52,0x8a,0x00,0x42,0x40,0x84,0x00,0x16,0xea,0xff,
+ 0x00,0x22,0x40,0x80,0x00,0x4a,0x4a,0x80,0x00,0x02,0x61,0x80,0x00,0x56,0x44,
+ 0x80,0x00,0x02,0x51,0x80,0x00,0x52,0xc4,0xff,0xff,0x0b,0xa1,0x04,0x00,0x42,
+ 0x14,0xa8,0xaa,0x88,0x82,0x02,0x00,0x22};
Index: gnus/etc/images/gnus/gnus-group-unsubscribe-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-group-unsubscribe-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-group-unsubscribe-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-subscribe_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"      ................          ",
+"      .XXXXXXXX.XXXXX..         ",
+"      .XXXXXX.X.XXXXX.X.        ",
+"      .XXXXX.XX.XXXXX.XX.       ",
+"      .XX.X.XXX.XXXXX.....      ",
+"      .XXX.XXXX.XXXXXXXXX.      ",
+"      ..........XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXX.X.XXXXXXXXX.      ",
+"      .XXXXX.XX.XXXXXXXXX.      ",
+"      .XX.X.XXX.XXXXXXXXX.      ",
+"      .XXX.XXXX.XXXXXXXXX.      ",
+"      ..........XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXX.X.XXXXXXXXX.      ",
+"      .XXXXX.XX.XXXXXXXXX.      ",
+"      .XX.X.XXX.XXXXXXXXX.      ",
+"      .XXX.XXXX.XXXXXXXXX.      ",
+"      ..........XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      .XXXXXXXX.XXXXXXXXX.      ",
+"      ....................      ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-pointer.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-pointer.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-pointer.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,6 @@
+#define noname_width 18
+#define noname_height 13
+static char noname_bits[] = {
+ 0x00,0x00,0x00,0xc0,0x0c,0x00,0xe0,0x1f,0x00,0x92,0x39,0x00,0x0e,0x71,0x02,
+ 0x46,0xe0,0x03,0x20,0xc0,0x01,0x00,0x08,0x00,0x10,0x0d,0x00,0xc4,0x08,0x00,
+ 0x78,0x08,0x00,0x18,0x89,0x00,0x00,0x08,0x00};
Index: gnus/etc/images/gnus/gnus-pointer.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-pointer.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-pointer.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,22 @@
+/* XPM */
+static char *gnus-pointer[] = {
+/* width height num_colors chars_per_pixel */
+"    18    13        2            1",
+/* colors */
+". c #0000ff",
+"# c None s None",
+/* pixels */
+"##################",
+"######..##..######",
+"#####........#####",
+"#.##.##..##...####",
+"#...####.###...##.",
+"#..###.######.....",
+"#####.########...#",
+"###########.######",
+"####.###.#..######",
+"######..###.######",
+"###....####.######",
+"###..######.######",
+"###########.######"
+};
\ No newline at end of file
Index: gnus/etc/images/gnus/gnus-summary-caesar-message-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-caesar-message-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-caesar-message-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x40,0x40,0x10,0x01,0x15,0x15,0x45,0x50,0x40,0x40,0x08,0x05,0x14,0x14,0xa2,
+ 0x50,0xe2,0xff,0x3f,0x82,0x48,0x00,0xe0,0x28,0x62,0xe6,0xb8,0x82,0x48,0x29,
+ 0x25,0x29,0x62,0xa9,0xe4,0x83,0x48,0x2f,0x05,0x2a,0x42,0xe9,0x38,0x42,0x60,
+ 0x00,0x00,0x16,0x4a,0x82,0x10,0x22,0x50,0x00,0x00,0x4a,0x42,0xcb,0x1c,0x02,
+ 0x68,0x2b,0x25,0x56,0x42,0x2d,0x1d,0x02,0x50,0x2d,0x05,0x52,0x4a,0xc9,0x04,
+ 0x0a,0x40,0x00,0x00,0x42,0x6a,0x18,0x00,0x16,0x41,0x3c,0x00,0x42,0x54,0xe6,
+ 0x3f,0x0a,0x41,0xe6,0x3f,0x52,0x54,0x3c,0x2a,0x06,0x42,0x18,0x2a,0x42,0x68,
+ 0x00,0x08,0x2a,0x44,0x00,0x00,0x06,0xd2,0xff,0xff,0x53,0x20,0x84,0x20,0x04,
+ 0x8a,0x10,0x8a,0xa8,0x20,0x4a,0x21,0x02};
Index: gnus/etc/images/gnus/gnus-summary-caesar-message-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-caesar-message-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-caesar-message-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-rot13_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"      ................          ",
+"      .XXXXXXXXXXXXXX..         ",
+"      .XX..XX...XXX...X.        ",
+"      .X.XX.X.XX.X.XX.XX.       ",
+"      .X.XX.X.X.XX.XX.....      ",
+"      .X....X.XX.X.XXXXXX.      ",
+"      .X.XX.X...XXX...XXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      .XX.XXXXX.XXXX.XXXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      .X..X.XX..XX...XXXX.      ",
+"      .X..X.X.XX.X.XX.XXX.      ",
+"      .X.X..X.XX.X...XXXX.      ",
+"      .X.X..X.XX.X.XXXXXX.      ",
+"      .X.XX.XX..XX.XXXXXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      .XXXX..XXXXXXXXXXXX.      ",
+"      .XXX....XXXXXXXXXXX.      ",
+"      .XX..XX.........XXX.      ",
+"      .XX..XX.........XXX.      ",
+"      .XXX....XXX.X.X.XXX.      ",
+"      .XXXX..XXXX.X.X.XXX.      ",
+"      .XXXXXXXXXXXX.XXXXX.      ",
+"      .XXXXXXXXXXXXXXXXXX.      ",
+"      ....................      ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-cancel-article-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-cancel-article-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-cancel-article-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x11,0x11,0x01,0x11,0x54,0x4a,0xa9,0x52,0x82,0x10,0x04,0x08,0x28,0x24,0xa1,
+ 0x42,0x91,0x91,0x0f,0x19,0x25,0xaa,0xa9,0x44,0x88,0x60,0x18,0x11,0x42,0x1c,
+ 0x56,0x44,0x19,0x07,0x97,0x31,0x44,0x01,0x23,0x0a,0x12,0x81,0x60,0x50,0x80,
+ 0x02,0x42,0x05,0x3b,0x05,0x78,0x59,0x00,0x0a,0x56,0x12,0xaa,0xf4,0x05,0x41,
+ 0x00,0x54,0x51,0x10,0x5b,0x51,0x95,0x55,0x10,0x15,0x00,0x11,0x42,0x40,0x55,
+ 0x44,0x10,0x2a,0x00,0x21,0x5b,0x91,0x5b,0x95,0x80,0x24,0x00,0x21,0x12,0x92,
+ 0x2a,0x14,0x44,0x01,0x80,0x42,0x11,0xb5,0x35,0x19,0x54,0x11,0x08,0x42,0x02,
+ 0x44,0xa1,0x08,0xa8,0x22,0x14,0x52,0x11,0x99,0x51,0x11,0x4a,0x22,0x14,0x4a,
+ 0x20,0x89,0x42,0x10,0x15,0x40,0x20,0x45};
Index: gnus/etc/images/gnus/gnus-summary-cancel-article-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-cancel-article-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-cancel-article-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-cancel-post_xpm[] = {
+"32 32 4 1",
+" 	c #000000000000",
+".	c #BFBFBFBFBFBF s backgroundToolBarColor",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+" ... ... ... ... ....... ... ...",
+"................................",
+"................................",
+"................................",
+" ... ... ... ...    .... ... ...",
+"...............  XX ............",
+".............  XXXX  ...........",
+"...........  XXXX  X ...........",
+" ... ....  XXXXX   X ... ... ...",
+"........ XXXXXXX  XXX ..........",
+"........ XXXXXX oXXXX ..........",
+"........o XXXXXXXoXXXX .........",
+" ... ...oo XXXXXXXX    . ... ...",
+".........oo XXXXX  oooo.........",
+"..........oo     o..............",
+"..........ooooooo...............",
+" ... ... ... oo. ... ... ... ...",
+"................................",
+"................................",
+"................................",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+"................................",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+"................................",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+"................................"};
Index: gnus/etc/images/gnus/gnus-summary-catchup-and-exit-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-catchup-and-exit-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-catchup-and-exit-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x08,0x81,0x00,0x04,0x42,0x28,0x52,0x51,0x14,0x85,0x08,0x04,0x81,0x20,0x42,
+ 0x49,0x14,0x8a,0x08,0x20,0x41,0x21,0x52,0x15,0x14,0x44,0x00,0x40,0x41,0x91,
+ 0xbf,0x2a,0x14,0xda,0x10,0x80,0x81,0x94,0x90,0x2a,0x14,0x73,0xf0,0x80,0xe1,
+ 0x60,0x90,0x2b,0xc4,0x60,0x08,0x43,0xa2,0xf0,0x0f,0x15,0x88,0x11,0xfc,0x21,
+ 0xd2,0x11,0x8c,0x4a,0x80,0x12,0x84,0x00,0xd5,0x13,0x84,0x55,0x00,0x17,0x74,
+ 0x80,0x54,0xfb,0xcf,0x2a,0x02,0x9a,0x24,0x40,0x54,0x9f,0xbc,0x36,0xa9,0xf4,
+ 0x77,0x49,0x94,0x96,0x94,0xa4,0x25,0x95,0x35,0x15,0xa9,0xfe,0xbf,0xa4,0x92,
+ 0xdc,0x5c,0x29,0x4a,0x9e,0x3d,0x95,0xaa,0xfe,0x4f,0x52,0x24,0xf9,0xaf,0x4a,
+ 0xa9,0x52,0x91,0x94,0x25,0x29,0x55,0x52};
Index: gnus/etc/images/gnus/gnus-summary-catchup-and-exit-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-catchup-and-exit-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-catchup-and-exit-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-catchup_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"               ......           ",
+"           ..  .XXXX.           ",
+"          .X.  .XXXX.           ",
+"        ..XX...XXXXX....        ",
+"      ..XXXXX..XXXXX.XX...      ",
+"      ..XXXXX..XXXX.XXXX..      ",
+"       .XXXX........XXXX.       ",
+"       ..XXX.XXXXX.......       ",
+"       ..XXX.XXXXX..XXX.        ",
+"       .X.XX.XXXXX.XXXX.        ",
+"       ...XX.XXXXX.XXXX.        ",
+"        ...X.XXXXX.X...         ",
+"         .X.........XX.         ",
+"         .  .XX.XX.XX.          ",
+"ooooooooo....XX.XX....oooooooooo",
+"oooooooooo. .......  .oooooooooo",
+"oooooooooo.X.XX.X .X.ooooooooooo",
+"oooooooooo. .X .  . .ooooooooooo",
+"oooooooooo...........ooooooooooo",
+"oooooooooo...X..XX...ooooooooooo",
+"oooooooooo...X ..X...ooooooooooo",
+"oooooooooo..........oooooooooooo",
+"oooooooooooo.......ooooooooooooo",
+"oooooooooooooooooooooooooooooooo",
+"oooooooooooooooooooooooooooooooo"};
Index: gnus/etc/images/gnus/gnus-summary-catchup-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-catchup-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-catchup-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x11,0x91,0x11,0x95,0x54,0x25,0x54,0x21,0x02,0x90,0x00,0x84,0xa0,0x0a,0x54,
+ 0x29,0x1b,0xb1,0x11,0x91,0x40,0x0a,0x4a,0x25,0x8a,0xa0,0x20,0x88,0x20,0x14,
+ 0x0e,0x22,0x9b,0x51,0xb7,0x99,0x20,0x14,0x0b,0x02,0x42,0xc1,0x22,0x28,0x14,
+ 0x92,0x48,0x45,0x51,0x19,0x11,0x11,0x14,0x42,0xaa,0x54,0x42,0x88,0x00,0x02,
+ 0x90,0x72,0xaa,0x56,0x15,0x71,0x11,0x17,0x42,0x3a,0x49,0x4b,0x28,0x49,0xa4,
+ 0x22,0x04,0x30,0x02,0x09,0xb1,0xdb,0x59,0xb5,0x15,0xa0,0xd3,0xff,0x40,0x05,
+ 0xbf,0x02,0x2a,0xd3,0x08,0x54,0x91,0x53,0x77,0x7f,0xc8,0xa9,0xd4,0x8a,0x62,
+ 0x22,0x86,0x35,0xc8,0x5b,0x4b,0x67,0x93,0xfd,0x91,0x39,0x24,0x18,0xff,0x7a,
+ 0x90,0x46,0xc5,0xcf,0x25,0x94,0x21,0xf1};
Index: gnus/etc/images/gnus/gnus-summary-catchup-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-catchup-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-catchup-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,37 @@
+/* XPM */
+static char * icon-catchup2_xpm[] = {
+"32 32 2 1",
+" 	c #000000000000",
+".	c #BFBFBFBFBFBF s backgroundToolBarColor",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+"................................",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+".................  .............",
+" ... ... ... ...   . ... ... ...",
+"................  ..............",
+"............... ................",
+"................................",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+".............  ..........  .....",
+" ... ... ...   . ... ...   . ...",
+"............  ..........  ......",
+"........... ........... ........",
+"............  .......... .......",
+" ... ... ... . . ... ... ... ...",
+"...............  .....          ",
+"................      ... ......",
+"........  ..... ... ...... .....",
+" ... ..   .. . . . .  .. .     .",
+".......  .... .... ... .. . ... ",
+"...... ...... ... .....  ... ...",
+"......    .. .... ......   .. ..",
+" ... ... .       ... ..  ..   ..",
+"........... ....      . ....   .",
+".......... ..... .....      .. .",
+".......... ..... ....... ...    "};
Index: gnus/etc/images/gnus/gnus-summary-exit-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-exit-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-exit-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x19,0x51,0x91,0x11,0x82,0x14,0x2a,0x48,0x28,0x42,0x40,0x25,0x82,0x10,0x15,
+ 0x00,0x59,0xfa,0xff,0x5b,0x12,0x4b,0xfe,0x21,0x40,0x21,0xf1,0x93,0x2a,0x0b,
+ 0xf8,0x05,0x91,0xb5,0xf2,0x31,0x24,0x01,0xf1,0x4b,0x12,0x54,0xfa,0x01,0x80,
+ 0x83,0xf0,0x55,0x5b,0x35,0xf2,0x11,0x00,0x8b,0xfe,0x4b,0x2a,0x21,0xf7,0x21,
+ 0x80,0x0b,0xf6,0x13,0x5b,0xb5,0xf4,0x59,0x10,0x03,0xf1,0x01,0x42,0x2b,0xf4,
+ 0x55,0x90,0x40,0xf3,0x03,0x13,0x1a,0xf8,0x59,0xa8,0x83,0xf2,0x11,0x02,0x2b,
+ 0x5c,0x43,0x50,0xe3,0xee,0x10,0x93,0xfc,0x55,0x5b,0x48,0x92,0x92,0x00,0x22,
+ 0x49,0x48,0xaa,0x08,0x00,0x84,0x00,0xb5,0xbb,0x31,0x5b,0x01,0x00,0x0a,0x00,
+ 0x54,0x25,0x51,0x55,0x01,0x48,0x04,0x00};
Index: gnus/etc/images/gnus/gnus-summary-exit-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-exit-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-exit-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,37 @@
+/* XPM */
+static char * icon-exit-summary_xpm[] = {
+"32 32 2 1",
+" 	c #000000000000",
+".	c #BFBFBFBFBFBF s backgroundToolBarColor",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+"................................",
+" ... ......              ... ...",
+"........  .......        .......",
+"........ ...........     .......",
+"........  ..........     .......",
+" ... ... ... .......     ... ...",
+"................ ...     .......",
+"....................     .......",
+"........  ..........     .......",
+" ... ... ... .......     ... ...",
+"........  .......  .     .......",
+"........ .......   .     .......",
+"........  .......  .     .......",
+" ... ... ... .......     ... ...",
+"........  ..........     .......",
+"........ ...........     .......",
+"................ ...     .......",
+" ... ....... .......     ... ...",
+"........  ..........     .......",
+"........  ........   . . .......",
+"........ ....   . . . . ........",
+" ... .. ..       . . . . ... ...",
+"................................",
+"................................",
+"................................",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................................",
+"................................"};
Index: gnus/etc/images/gnus/gnus-summary-followup-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-followup-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-followup-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x00,0x40,0x08,0xb6,0x76,0x37,0x63,0x20,0x02,0x00,0x04,0x8a,0x48,0x55,
+ 0x51,0x10,0x22,0x0e,0x82,0xa6,0xaa,0xa9,0x36,0x12,0x62,0x38,0x20,0xa0,0x18,
+ 0x96,0x4a,0x0a,0x07,0x17,0x00,0xa2,0x01,0xa3,0x76,0x6a,0x80,0x60,0x00,0x60,
+ 0x00,0x40,0x55,0x52,0x00,0x40,0x00,0xa6,0x00,0x80,0x6b,0x90,0xe1,0x80,0x04,
+ 0x24,0x9a,0x00,0x51,0x82,0x86,0x01,0x85,0xaa,0x61,0x01,0x32,0x60,0x70,0x01,
+ 0x42,0x1d,0x30,0x02,0x14,0x04,0x08,0x02,0x4c,0x06,0x00,0x02,0x28,0x06,0x00,
+ 0x04,0xac,0x08,0x00,0x08,0x0b,0x0a,0x00,0xc8,0x22,0x12,0x00,0x70,0x6a,0x1a,
+ 0x00,0x10,0x01,0x20,0x00,0x60,0x52,0x32,0x00,0x20,0x08,0x46,0x00,0x40,0x63,
+ 0x50,0x00,0x40,0x04,0x85,0x00,0x80,0x52};
Index: gnus/etc/images/gnus/gnus-summary-followup-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-followup-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-followup-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-followup_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+" .   .   .   .   .   .   .   .  ",
+"                                ",
+"                                ",
+"                 ...            ",
+" .   .   .   . ..XX. .   .   .  ",
+"             ..XXXX..           ",
+"           ..XXXX..X.           ",
+"         ..XXXXX...X.           ",
+" .   . ..XXXXXXX..XXX.   .   .  ",
+"     ..XXXXXXXX.XXXXX.          ",
+"      .XXXXXXXXXXXXXXX.         ",
+"      .XXXXXXXXXXXXXXX.         ",
+" .   . .XXXXXXXXXXXXXXX. .   .  ",
+"        .XXXX...XXXXXXX.        ",
+"         .X..XX.XXXXXXXX.       ",
+"         ..XXXX..XXXXXXX.       ",
+" .     ..XXXX..X.XXXXXXXX.   .  ",
+"     ..XXXXX...X.XXXXXXXX.      ",
+"   ..XXXXXXX..XXX.XXXXXXXX.     ",
+"  .XXXXXXXX.XXXXX.XXXXXXXX.     ",
+" ..XXXXXXXXXXXXXX.XXXXXXXXX. .  ",
+"  .XXXXXXXXXXXXXXX.XXXXXXX..    ",
+"   .XXXXXXXXXXXXXXX.XXXX..      ",
+"   .XXXXXXXXXXXXXXX.XX..        ",
+" .  .XXXXXXXXXXXXXXX..   .   .  ",
+"    .XXXXXXXXXXXXXXX.           ",
+"     .XXXXXXXXXXXXXXX.          ",
+"     .XXXXXXXXXXXXXXX.          ",
+" .    .XXXXXXXXXXXXXXX.  .   .  ",
+"      .XXXXXXXXXXXXXXX.         ",
+"       .XXXXXXXXXXXXXXX.        "};
Index: gnus/etc/images/gnus/gnus-summary-followup-with-original-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-followup-with-original-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-followup-with-original-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x04,0x40,0x10,0x00,0xa3,0x36,0xa6,0x76,0x54,0x40,0x11,0x02,0x01,0x2a,0x88,
+ 0x48,0x54,0x81,0x22,0x22,0x22,0x6a,0xaa,0x2a,0x4a,0x02,0x21,0xa0,0x90,0x50,
+ 0x8e,0x0a,0x02,0x0a,0x27,0x50,0xb2,0xa2,0xab,0x26,0x42,0xaa,0x00,0x92,0x94,
+ 0x00,0xaa,0x20,0x00,0xaa,0x00,0x85,0xb6,0x22,0x76,0x32,0x20,0xea,0x80,0x44,
+ 0x8a,0x98,0x2a,0x11,0x10,0x87,0x00,0x44,0xa6,0x71,0x6b,0x33,0x60,0xcc,0x22,
+ 0x44,0x1d,0xe3,0x0a,0x11,0xc8,0xe0,0x24,0x44,0x3e,0x90,0x6c,0x2b,0x08,0x00,
+ 0x09,0xa0,0x06,0x00,0x49,0x0a,0x04,0x00,0x92,0x50,0x0b,0x00,0x32,0x26,0x0c,
+ 0x00,0xa4,0x90,0x11,0x00,0x24,0x24,0x14,0x00,0xc8,0x82,0x22,0x00,0x48,0x32,
+ 0x2a,0x00,0x90,0x42,0x50,0x00,0x90,0x28};
Index: gnus/etc/images/gnus/gnus-summary-followup-with-original-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-followup-with-original-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-followup-with-original-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-followup-w-orig_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+" .   .   .   .   .   .   .   .  ",
+"                                ",
+"                                ",
+"                                ",
+" .   .   .   .   .   .   .   .  ",
+"                                ",
+"                 ..             ",
+"                ...             ",
+" .   .   .   .  ..   .   .   .  ",
+"               .                ",
+"                                ",
+"                                ",
+" .   .   .   .   .   .   .   .  ",
+"             ..                 ",
+"           ..XX.                ",
+"         ..XXXX.                ",
+" .     ..XXX...X.    .   .   .  ",
+"     ..XXX..XX..X.              ",
+"   ..XXX..XXX...X.              ",
+"   .XX..XXXXX...XX.             ",
+" . ...XXXXXX.XX.XX.  .   .   .  ",
+"   .XXXXXXXXXXXX.XX.            ",
+"  .XXXXXXXXXXXXX.XX.            ",
+"  .XXXXXXXXXXXXXX.XX.           ",
+" . .XXXXXXXXXXXXX.XX.    .   .  ",
+"   .XXXXXXXXXXXXXX.XX.          ",
+"    .XXXXXXXXXXXXX.XX.          ",
+"    .XXXXXXXXXXXXXX.XX.         ",
+" .   .XXXXXXXXXXXXX.XX.  .   .  ",
+"     .XXXXXXXXXXXXXX.XX.        ",
+"      .XXXXXXXXXXXXX.XX.        "};
Index: gnus/etc/images/gnus/gnus-summary-mail-copy-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-copy-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-copy-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x20,0x20,0x40,0xaa,0x8a,0x0a,0x15,0xfe,0xff,0xff,0x27,0x0e,0x00,0x80,
+ 0x4d,0x32,0x00,0x60,0x04,0xc2,0x00,0x18,0x54,0x02,0x03,0x06,0x04,0x03,0x8c,
+ 0x01,0x54,0x02,0x74,0x02,0x04,0x02,0x03,0x0c,0x54,0x82,0x00,0x10,0x84,0xf2,
+ 0xff,0xff,0x3f,0x52,0x00,0x00,0x6c,0x9b,0x01,0x00,0x23,0x16,0x06,0xc0,0x60,
+ 0x1e,0x18,0x30,0x20,0x14,0x60,0x0c,0xa0,0x11,0xa0,0x0b,0x20,0x14,0x10,0x30,
+ 0x60,0x11,0x0c,0x40,0x20,0x14,0x02,0x80,0xa0,0x12,0x01,0x00,0x23,0xd8,0x00,
+ 0x00,0x64,0x32,0x00,0x00,0x38,0xf8,0xff,0xff,0xbf,0x02,0x00,0x40,0x24,0x54,
+ 0x55,0x15,0x11,0x01,0x00,0x40,0x44,0x54,0x55,0x15,0x11,0x01,0x00,0x40,0x44,
+ 0x54,0x55,0x05,0x11,0x02,0x00,0x50,0x44};
Index: gnus/etc/images/gnus/gnus-summary-mail-copy-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-copy-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-copy-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-mail-copy_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+" ..........................     ",
+" ...XXXXXXXXXXXXXXXXXXX..X.     ",
+" .XX..XXXXXXXXXXXXXXX..XXX.     ",
+" .XXXX..XXXXXXXXXXX..XXXXX.     ",
+" .XXXXXX..XXXXXXX..XXXXXXX.     ",
+" .XXXXXXXX..XXX..XXXXXXXXX.     ",
+" .XXXXXXXX.X...XX.XXXXXXXX.     ",
+" .XXXXXX..XXXXXXXX..XXXXXX.     ",
+" .XXXXX.XXXXXXXXXXXX.XXXXX.     ",
+" .XX..........................  ",
+" .XX.X.XXXXXXXXXXXXXXXXXXX..X.  ",
+" .X..XX..XXXXXXXXXXXXXXX..XXX.  ",
+" ..X.XXXX..XXXXXXXXXXX..XXXXX.  ",
+" ....XXXXXX..XXXXXXX..XXXXXXX.  ",
+"    .XXXXXXXX..XXX..XXXXXXXXX.  ",
+"    .XXXXXXXX.X...X.XXXXXXXXX.  ",
+"    .XXXXXXX.XXXXXXX..XXXXXXX.  ",
+"    .XXXXX..XXXXXXXXXX.XXXXXX.  ",
+"    .XXXX.XXXXXXXXXXXXX.XXXXX.  ",
+"    .XXX.XXXXXXXXXXXXXXX..XXX.  ",
+"    .X..XXXXXXXXXXXXXXXXXX.XX.  ",
+"    ..XXXXXXXXXXXXXXXXXXXXX...  ",
+"    ..........................  ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-mail-delete-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-delete-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-delete-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x08,0x00,0x80,0x00,0xa2,0xaa,0x2a,0x54,0x08,0x00,0x40,0x81,0xf2,0xab,0x2a,
+ 0x28,0x5c,0x03,0x80,0x82,0x2d,0x56,0xf5,0x28,0x84,0x06,0x98,0x8b,0x5d,0x5e,
+ 0xe7,0x2c,0x1c,0x1f,0x1f,0xba,0xf1,0xf3,0xa7,0xc9,0x44,0xa8,0x90,0x88,0xf1,
+ 0xf3,0x8b,0x08,0x1c,0x5f,0x7f,0x09,0xad,0x1e,0xff,0x08,0x04,0x46,0x08,0x04,
+ 0xae,0x26,0x06,0x04,0x18,0x8b,0x02,0x06,0xfa,0x23,0xc1,0x01,0x20,0x88,0x38,
+ 0x00,0x95,0x62,0x07,0x80,0x40,0xe4,0x00,0x40,0x14,0xd1,0x00,0x20,0x42,0x44,
+ 0x03,0x60,0x10,0x11,0x05,0x10,0x4a,0x44,0x1c,0xa8,0x00,0x11,0x61,0x0c,0x2a,
+ 0x42,0xa4,0x25,0x81,0x14,0x09,0x42,0x14,0x20,0x50,0x15,0xa1,0x4a,0x05,0x40,
+ 0x04,0x00,0xa8,0x0a,0x51,0x55,0x05,0x50};
Index: gnus/etc/images/gnus/gnus-summary-mail-delete-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-delete-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-delete-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-mail-delete_xpm[] = {
+"32 32 4 1",
+" 	c #BEBEBEBEBEBE s backgroundToolBarColor",
+"X	c #000000000000",
+"o	c #E7E7E7E7E7E7",
+"O	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"    XXXXX                       ",
+"   XX   XX                      ",
+"  XX     XX          XXX        ",
+"  X       X        XXooXX  X    ",
+"  XX     XXX     XXooXX   XX    ",
+"   XX   XXXXX   XXXXX    XOXXX  ",
+"    XXXXX   XXXXXX      XOOXOOXX",
+"             XOX       XOOOXOOOX",
+"    XXXXX   XXXXXX     XOOOXOOOO",
+"   XX   XXXXX   XXXXXX  XOOXOOOO",
+"  XX     XXX     XXXXXXXOOOXOOOO",
+"  X       X        XOOOOOOXOOOOO",
+"  XX     XX       XOOOOOOOXOOOOO",
+"   XX   XX       XOOOOOOOXXOOOOO",
+"    XXXXX       XOOOOOXXXOOOOOOO",
+"               XOOOXXXOOOOOOOOOO",
+"              XOXXXOOOOOOOOOOOOX",
+"             XXXOOOOOOOOOOOOOOX ",
+"              XXOOOOOOOOOOOOOX  ",
+"                XXOOOOOOOOOOOX  ",
+"                  XOOOOOOOOOX   ",
+"                   XXOOOOOOX    ",
+"                     XXOOOX     ",
+"                       XXOX     ",
+"                         X      ",
+"                                ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-mail-forward-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-forward-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-forward-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x10,0x42,0x80,0x20,0x84,0x10,0x2a,0x14,0x3a,0xa5,0x40,0x41,0x64,0x08,0x14,
+ 0x28,0xd6,0xa0,0x62,0x85,0x80,0x15,0xe8,0x20,0xca,0x41,0x39,0x8b,0xb0,0x2a,
+ 0x24,0x22,0xd2,0x86,0x12,0x86,0x58,0x24,0x11,0x2c,0xd2,0x8c,0x08,0x98,0x34,
+ 0x75,0x08,0x10,0x30,0x14,0x08,0x60,0x8a,0x0e,0x04,0x20,0x10,0x05,0xfc,0x7f,
+ 0x45,0x02,0x02,0x60,0x10,0x01,0x03,0x18,0xca,0xe0,0x01,0x44,0x20,0x3e,0x00,
+ 0x0a,0xf4,0x21,0x00,0x53,0x32,0x20,0x80,0x80,0x10,0x10,0x40,0x2a,0x2a,0x10,
+ 0xb0,0x80,0x60,0x10,0x28,0x2a,0xea,0x10,0x84,0x40,0x81,0x10,0x2a,0x14,0x94,
+ 0x11,0x41,0x21,0x21,0xca,0x2a,0x48,0x84,0xac,0x80,0x02,0x21,0x3d,0x54,0x50,
+ 0x14,0x84,0x00,0x05,0x42,0x21,0xaa,0x50};
Index: gnus/etc/images/gnus/gnus-summary-mail-forward-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-forward-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-forward-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-mail-forward_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"   ...                          ",
+"  .   .                         ",
+"  .   .               .         ",
+"       .             ...        ",
+"      ...          ...XX.       ",
+"     . . .        .XX.XXX.      ",
+"    .  .  .      .XX.XXXX..     ",
+"    . .   .     .XXX.XXXXX..    ",
+"    . .   .    .XXX.XXXXXXX.    ",
+"    ..    .  ..XXXX.XXXXXXXX.   ",
+"    .     . .XXXXXX.XXXXXXXXX.  ",
+"         . .XXXXXX.XXXXXXXXXX.  ",
+"          .XXXXXXX............. ",
+"         .XXXXXXX.XXXXXXXXXXX.  ",
+"        .XXXXXXX..XXXXXXXXX..   ",
+"      ..XXXXX....XXXXXXXXX.     ",
+"     .XXX.....XXXXXXXXXXX.      ",
+"     ....XXXX.XXXXXXXXXX.       ",
+"    ..XXXXXXX.XXXXXXXXX.        ",
+"    .XXXXXXX.XXXXXXXXX.         ",
+"     .XXXXXX.XXXXXXX..          ",
+"     ..XXXXX.XXXXXX.            ",
+"      ..XXXX.XXXXX.             ",
+"       .XXXX.XXXX.              ",
+"        .XXX.XXX.               ",
+"         .X.XX..                ",
+"          ..X.                  ",
+"          ...                   ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-mail-get-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-get-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-get-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x48,0x00,0x11,0x02,0x12,0x54,0x84,0x50,0x40,0x81,0x50,0x82,0x2a,0x28,0x0a,
+ 0x28,0x80,0x42,0xa0,0x82,0xaa,0x13,0x3d,0x28,0x40,0x46,0xd4,0x42,0xb5,0x28,
+ 0x86,0x10,0x50,0xda,0x51,0x47,0x99,0xb0,0x09,0x13,0x14,0x50,0x01,0x45,0x21,
+ 0x18,0x82,0x21,0x74,0x4c,0xc7,0x94,0x81,0x13,0x78,0x02,0x94,0x44,0x05,0x29,
+ 0xf1,0xff,0xff,0x7f,0x74,0x00,0x00,0x2c,0x91,0x01,0x00,0x23,0x14,0x06,0xc0,
+ 0xa0,0x11,0x18,0x30,0x20,0x14,0x60,0x0c,0x60,0x12,0x90,0x0b,0x20,0x18,0x0c,
+ 0x30,0xa0,0x12,0x02,0x40,0x20,0x18,0x01,0x80,0xa0,0xd2,0x00,0x00,0x23,0x38,
+ 0x00,0x00,0x64,0x12,0x00,0x00,0x38,0xf8,0xff,0xff,0xbf,0x02,0x00,0x00,0x20,
+ 0xa8,0xaa,0xaa,0x8a,0x05,0x00,0x40,0x20};
Index: gnus/etc/images/gnus/gnus-summary-mail-get-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-get-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-get-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-mail-get_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"       ...         ...          ",
+"      .   .       .   .         ",
+"     .     .     .     .        ",
+"    .       . . .       ..      ",
+"    .       .. ..       ..      ",
+"    .XXXXXXX.   .XXXXXXX.       ",
+"     .XXXXX.     .XXXXX.        ",
+"     ..XXX..     ..XXX..        ",
+"       ...         ...          ",
+"                                ",
+"    ..........................  ",
+"    ...XXXXXXXXXXXXXXXXXXX..X.  ",
+"    .XX..XXXXXXXXXXXXXXX..XXX.  ",
+"    .XXXX..XXXXXXXXXXX..XXXXX.  ",
+"    .XXXXXX..XXXXXXX..XXXXXXX.  ",
+"    .XXXXXXXX..XXX..XXXXXXXXX.  ",
+"    .XXXXXXX.XX...X.XXXXXXXXX.  ",
+"    .XXXXX..XXXXXXXX..XXXXXXX.  ",
+"    .XXXX.XXXXXXXXXXXX.XXXXXX.  ",
+"    .XXX.XXXXXXXXXXXXXX.XXXXX.  ",
+"    .X..XXXXXXXXXXXXXXXX..XXX.  ",
+"    ..XXXXXXXXXXXXXXXXXXXX.XX.  ",
+"    .XXXXXXXXXXXXXXXXXXXXXX...  ",
+"    ..........................  ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-mail-originate-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-originate-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-originate-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x04,0x42,0x08,0x10,0xa1,0x10,0x42,0x05,0x14,0xa2,0xff,0xaf,0x01,0x89,0x00,
+ 0x14,0x54,0xa4,0x00,0x64,0x02,0xc1,0x00,0x3c,0xf8,0xff,0x1f,0xa0,0x6d,0x10,
+ 0x68,0x20,0xf8,0xff,0x1f,0x60,0x12,0x84,0x00,0x20,0x48,0xd1,0x00,0xa0,0x02,
+ 0x88,0xfc,0x21,0xfc,0xff,0x00,0x60,0x1e,0x80,0x6c,0x21,0x64,0x80,0x00,0xa0,
+ 0x86,0x81,0x00,0x20,0x04,0x86,0x00,0x60,0x05,0x98,0x00,0x20,0x04,0xe4,0x00,
+ 0xa0,0x06,0x83,0x80,0x25,0x84,0x80,0x00,0x60,0x46,0x80,0x00,0x20,0x34,0x80,
+ 0x00,0xa0,0x0d,0x80,0xff,0x3f,0x04,0x00,0x00,0x2e,0xfe,0xff,0xff,0x4f,0x48,
+ 0x92,0x44,0x12,0x92,0x08,0x11,0x44,0x00,0x21,0x44,0x11,0x55,0x48,0x21,0x44,
+ 0x80,0x02,0x8a,0x10,0x2a,0xa8,0x40,0x44};
Index: gnus/etc/images/gnus/gnus-summary-mail-originate-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-originate-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-originate-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-mail-originate_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"               .............    ",
+"               .XXXXXXXXXX.X.   ",
+"               .XXXXXXXXXX.XX.  ",
+"               .XXXXXXXXXX....  ",
+"   ..................XXXXXXXX.  ",
+"   .X. X X X X X X .X..XXXXXX.  ",
+"   ..................XXXXXXXX.  ",
+"               .XXXXXXXXXXXXX.  ",
+"               .XXXXXXXXXXXXX.  ",
+"               .XX.......XXXX.  ",
+"  ..............XXXXXXXXXXXXX.  ",
+"  ...XXXXXXXXXX.XX..X..X.XXXX.  ",
+"  .XX..XXXXXXXX.XXXXXXXXXXXXX.  ",
+"  .XXXX..XXXXXX.XXXXXXXXXXXXX.  ",
+"  .XXXXXX..XXXX.XXXXXXXXXXXXX.  ",
+"  .XXXXXXXX..XX.XXXXXXXXXXXXX.  ",
+"  .XXXXXXX.XX...XXXXXXXXXXXXX.  ",
+"  .XXXXX..XXXXX.XXXXXXX..X.XX.  ",
+"  .XXXX.XXXXXXX.XXXXXXXXXXXXX.  ",
+"  .XXX.XXXXXXXX.XXXXXXXXXXXXX.  ",
+"  .X..XXXXXXXXX.XXXXXXXXXXXXX.  ",
+"  ..XXXXXXXXXXX...............  ",
+"  .XXXXXXXXXXXXXXXXXXXXXX...    ",
+"  ..........................    ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-mail-reply-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-reply-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-reply-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x40,0x40,0x20,0xaa,0x2a,0x7a,0x0a,0x00,0x80,0x88,0x51,0xaa,0x2a,0x06,
+ 0x06,0x00,0xc0,0x05,0x58,0xaa,0x3a,0x12,0x08,0x00,0x0c,0x11,0x2c,0xaa,0x03,
+ 0x09,0x42,0xc0,0x80,0x04,0x06,0x35,0x40,0x04,0x57,0x98,0x49,0x80,0x18,0x3a,
+ 0x20,0x41,0x56,0xc8,0x10,0xc1,0x11,0x0c,0x93,0x60,0x50,0x0a,0x1c,0x18,0x90,
+ 0x08,0x30,0x06,0x30,0x0a,0xc8,0x05,0x90,0x08,0x06,0x18,0x30,0x0a,0x01,0x20,
+ 0x10,0x88,0x00,0x40,0x50,0x6a,0x00,0x80,0x11,0x19,0x00,0x00,0x52,0x0c,0x00,
+ 0x00,0x1c,0xf9,0xff,0xff,0x5f,0x44,0x44,0x44,0x24,0x11,0x11,0x11,0x09,0x44,
+ 0x44,0x44,0xa0,0x11,0x11,0x11,0x15,0x44,0x44,0x44,0x40,0x11,0x11,0x91,0x14,
+ 0x44,0x44,0x04,0xa2,0x11,0x22,0xa2,0x08};
Index: gnus/etc/images/gnus/gnus-summary-mail-reply-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-reply-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-reply-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-mail-reply_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+"                    ...         ",
+"                   .XXX..       ",
+"                  .XXXXXX..     ",
+"              ... .XXXXXXXX.    ",
+"            ..XXX.XX.XXXXXX.    ",
+"          ..XXXX.XXX.XXXXX.     ",
+"        ..XXXXXX.XX.XXXXX.      ",
+"      ..XXXXXXX.XX.XXXXXX.      ",
+"     .XXXXXXXX.XXX.XXXXX...     ",
+"   ..XX..XX.XX.XXXXXXXX.XXX..   ",
+"   ...XXXXXXX.XX.XXXXX.XX..X.   ",
+"   .XX..XXXX.XXX.XXXXX...XXX.   ",
+"   .XXXX..XX.XX.XXXXX..XXXXX.   ",
+"   .XXXXXX...XXXXXX..XXXXXXX.   ",
+"   .XXXXXXXX..XXX..XXXXXXXXX.   ",
+"   .XXXXXXX.XX...X.XXXXXXXXX.   ",
+"   .XXXXX..XXXXXXXX..XXXXXXX.   ",
+"   .XXXX.XXXXXXXXXXXX.XXXXXX.   ",
+"   .XXX.XXXXXXXXXXXXXX.XXXXX.   ",
+"   .X..XXXXXXXXXXXXXXXX..XXX.   ",
+"   ..XXXXXXXXXXXXXXXXXXXX.XX.   ",
+"   .XXXXXXXXXXXXXXXXXXXXXX...   ",
+"   ..........................   ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-mail-save-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-save-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-save-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x10,0x10,0x00,0x55,0x45,0x45,0x55,0x00,0x10,0x08,0x00,0xd4,0xff,0xff,
+ 0x7f,0x82,0x03,0x00,0xf0,0xd0,0x0c,0x00,0x4c,0x82,0x30,0x00,0x43,0xd4,0xc0,
+ 0xc0,0x40,0x80,0x80,0x33,0xc0,0xaa,0x60,0xcc,0x40,0xc0,0x10,0x00,0x41,0x95,
+ 0x08,0x00,0x46,0xc0,0x06,0x00,0xd8,0xfe,0xff,0x0f,0x60,0x2c,0x00,0x0b,0x40,
+ 0x35,0x10,0xfd,0x7f,0x2c,0x02,0x2b,0x49,0x35,0x40,0x4d,0x12,0xac,0x00,0x0b,
+ 0xa0,0x35,0x00,0xad,0x0a,0x2c,0x24,0x09,0x90,0x2d,0x00,0x5d,0x25,0xf4,0xff,
+ 0x0b,0x80,0xa6,0x55,0xad,0x2a,0x4c,0xaa,0x08,0x40,0xf5,0xff,0x5d,0x15,0x6c,
+ 0x35,0x0b,0x20,0x66,0x37,0xab,0x4a,0x6c,0x2d,0x0d,0x00,0xb9,0x35,0x4b,0x55,
+ 0xf4,0xff,0x1f,0x80,0x01,0x40,0x80,0x2a};
Index: gnus/etc/images/gnus/gnus-summary-mail-save-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-mail-save-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-mail-save-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,41 @@
+/* XPM */
+static char * icon-save-mail_xpm[] = {
+"32 32 6 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"O	c #E5E5E5E5E5E5",
+"+	c #666666666666",
+"                                ",
+"                                ",
+"                                ",
+"       ........................ ",
+"       ...XXXXXXXXXXXXXXXXXX... ",
+"       .XX..XXXXXXXXXXXXXX..XX. ",
+"       .XXXX..XXXXXXXXXX..XXXX. ",
+"       .XXXXXX..XXXXXX..XXXXXX. ",
+"       .XXXXXXX...XX..XXXXXXXX. ",
+"       .XXXXX..XXX..XX..XXXXXX. ",
+"       .XXXX.XXXXXXXXXXX.XXXXX. ",
+"       .XXX.XXXXXXXXXXXXX..XXX. ",
+"       .X..XXXXXXXXXXXXXXXX..X. ",
+"  ..................XXXXXXXXX.. ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXXXX. ",
+"  .oo.OOOOOOOOOO.oo............ ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo............oo.            ",
+"  .oooooooooooooooo.            ",
+"  .oooooooooooooooo.            ",
+"  .oo............oo.            ",
+"  .oo.+++++++.OO.oo.            ",
+"  .oo.+++++++.OO.oo.            ",
+"  .oo.+++++++.OO.oo.            ",
+"   .o.+++++++.OO.oo.            ",
+"    ................            ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-next-unread-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-next-unread-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-next-unread-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x08,0x10,0x20,0x00,0xa3,0x66,0xab,0x76,0x14,0x11,0x04,0x02,0x41,0x04,0xa1,
+ 0x48,0x14,0x51,0x1e,0x22,0x62,0xa6,0xa9,0x2a,0x0a,0x71,0x18,0xa0,0x40,0x18,
+ 0xb6,0x0a,0x8a,0x06,0x17,0x50,0xb2,0x01,0x63,0x27,0x62,0x80,0x20,0x90,0x50,
+ 0x00,0x40,0x25,0x4a,0x00,0x40,0x80,0xe2,0x00,0x80,0x36,0x12,0xe1,0x80,0x41,
+ 0x84,0x9a,0x00,0x29,0x10,0x87,0x01,0x85,0xa6,0x61,0x01,0x32,0x62,0x70,0x01,
+ 0x42,0x18,0x30,0x02,0x14,0x06,0x08,0x02,0x4c,0x06,0x00,0x02,0x28,0x04,0x00,
+ 0x04,0xac,0xca,0x07,0x7c,0x0b,0x68,0x0d,0xea,0x20,0x1b,0x12,0x93,0x6b,0xb4,
+ 0x54,0x29,0x03,0x91,0xba,0x95,0x51,0x74,0x19,0x53,0x0b,0x6a,0x0a,0xd6,0x62,
+ 0xe0,0x07,0x7c,0x09,0x8a,0x00,0x80,0x42};
Index: gnus/etc/images/gnus/gnus-summary-next-unread-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-next-unread-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-next-unread-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-next-unread_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"                                ",
+" .   .   .   .   .   .   .   .  ",
+"                                ",
+"                                ",
+"                 ...            ",
+" .   .   .   . ..XX. .   .   .  ",
+"             ..XXXX..           ",
+"           ..XXXX..X.           ",
+"         ..XXXXX...X.           ",
+" .   . ..XXXXXXX..XXX.   .   .  ",
+"     ..XXXXXXXX.XXXXX.          ",
+"      .XXXXXXXXXXXXXXX.         ",
+"      .XXXXXXXXXXXXXXX.         ",
+" .   . .XXXXXXXXXXXXXXX. .   .  ",
+"        .XXXX...XXXXXXX.        ",
+"         .X..XX.XXXXXXXX.       ",
+"         ..XXXX..XXXXXXX.       ",
+" .     ..XXXX..X.XXXXXXXX.   .  ",
+"     ..XXXXX...X.XXXXXXXX.      ",
+"   ..XXXXXXX..XXX.XXXXXXXX.     ",
+"  .XXXXXXXX.XXXXX.XXXXXXXX.     ",
+" ..XXXXXXXXXXXXXX.XXXXXXXXX. .  ",
+"  .XXXXXXXXXXXXXXX.XXXXXXX..    ",
+"   .XX.....XXXXXXX.....X..      ",
+"   .X.ooooo.XXXXX.oooo..        ",
+" .  .oXooooo.XXX.oXooooo..   .  ",
+"    .ooooooo.X.X.ooooooo.       ",
+"    .ooooooo..X..ooooooo.       ",
+"    ..oooooo.XXX.ooooooo.       ",
+" .   ..oooo.XXXXX.oooo.. .   .  ",
+"      .....XXXXXXX.....         ",
+"       .XXXXXXXXXXXXXXX.        "};
Index: gnus/etc/images/gnus/gnus-summary-post-news-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-post-news-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-post-news-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x10,0x10,0x01,0x6b,0xa7,0x66,0x72,0x04,0x10,0x02,0x05,0xa1,0x8a,0x50,
+ 0x48,0x04,0x20,0x8f,0x20,0x72,0xab,0x39,0x2b,0x02,0x64,0x58,0xa4,0x50,0x19,
+ 0x16,0x01,0x0a,0x06,0x57,0x54,0xe2,0x01,0x23,0x23,0x72,0x80,0x20,0x94,0x44,
+ 0x00,0x40,0x01,0x50,0x00,0xc0,0x54,0xa6,0x00,0x80,0x22,0x92,0x00,0x80,0x4a,
+ 0x40,0x01,0x00,0x11,0x8a,0x01,0x00,0x45,0x32,0x02,0x00,0x2a,0x42,0x02,0x00,
+ 0xa2,0x10,0x05,0x00,0x0c,0x4a,0x06,0x00,0x24,0x22,0x0a,0x00,0x68,0xaa,0x0c,
+ 0x00,0x0c,0x00,0x11,0x80,0x53,0x2a,0x14,0x40,0x05,0x22,0x23,0x70,0x62,0x92,
+ 0x34,0x0e,0x09,0x24,0xc0,0x4b,0x52,0x80,0x0a,0x21,0x80,0x6b,0x62,0xaa,0x36,
+ 0x04,0x15,0x01,0x42,0x51,0x80,0xa8,0x28};
Index: gnus/etc/images/gnus/gnus-summary-post-news-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-post-news-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-post-news-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,38 @@
+/* XPM */
+static char * icon-post_xpm[] = {
+"32 32 3 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"                                ",
+" .   .   .   .   .   .   .   .  ",
+"                                ",
+"                                ",
+"                 ...            ",
+" .   .   .   . ..XX. .   .   .  ",
+"             ..XXXX..           ",
+"           ..XXXX..X.           ",
+"         ..XXXXX...X.           ",
+" .   . ..XXXXXXX..XXX.   .   .  ",
+"     ..XXXXXXXX.XXXXX.          ",
+"      .XXXXXXXXXXXXXXX.         ",
+"      .XXXXXXXXXXXXXXX.         ",
+" .   . .XXXXXXXXXXXXXXX. .   .  ",
+"       .XXXXXXXXXXXXXXX.        ",
+"        .XXXXXXXXXXXXXXX.       ",
+"        .XXXXXXXXXXXXXXX.       ",
+" .   .   .XXXXXXXXXXXXXXX.   .  ",
+"         .XXXXXXXXXXXXXXX.      ",
+"          .XXXXXXXXXXXXXXX.     ",
+"          .XXXXXXXXXXXXXXX.     ",
+" .   .   . .XXXXXXXXXXXXXXX. .  ",
+"           .XXXXXXXXXXXXXX..    ",
+"            .XXXXXXXXXX...      ",
+"            .XXXXXXXXX.         ",
+" .   .   .   .XXXXXX..   .   .  ",
+"             .XXX...            ",
+"              ....              ",
+"                                ",
+" .   .   .   .   .   .   .   .  ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-prev-unread-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-prev-unread-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-prev-unread-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x08,0x08,0x40,0x20,0x23,0x63,0x2b,0x2b,0x54,0x14,0x24,0xa4,0x01,0x02,0x09,
+ 0x01,0x54,0xa9,0x2e,0x2a,0x22,0xa2,0xa9,0x62,0x4a,0x6a,0x18,0x12,0x90,0x18,
+ 0xb6,0x04,0x02,0x06,0x17,0x50,0xea,0x01,0x63,0x2b,0x64,0x80,0x20,0x44,0x51,
+ 0x00,0x40,0x21,0x44,0x00,0x40,0x8a,0xe2,0x00,0xc0,0x22,0x0a,0xe1,0xc0,0x2f,
+ 0xd0,0x9f,0x20,0x4d,0x42,0x87,0xb1,0x1a,0xea,0x61,0x15,0x72,0x60,0x70,0xbb,
+ 0x14,0x1d,0x30,0xb1,0x5a,0x04,0x08,0x22,0x0d,0x06,0x00,0xc2,0x6f,0x06,0x00,
+ 0x84,0x20,0x08,0x00,0x64,0x0a,0x0a,0x00,0x58,0x50,0x12,0x00,0x10,0x27,0x1a,
+ 0x00,0x50,0x90,0x20,0x00,0xa0,0x24,0x32,0x00,0x20,0x82,0x26,0x00,0xc0,0x32,
+ 0x40,0x00,0x40,0x44,0xaa,0x00,0x80,0x11};
Index: gnus/etc/images/gnus/gnus-summary-prev-unread-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-prev-unread-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-prev-unread-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-prev-unread_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"                                ",
+" .   .   .   .   .   .   .   .  ",
+"                                ",
+"                                ",
+"                 ...            ",
+" .   .   .   . ..XX. .   .   .  ",
+"             ..XXXX..           ",
+"           ..XXXX..X.           ",
+"         ..XXXXX...X.           ",
+" .   . ..XXXXXXX..XXX.   .   .  ",
+"     ..XXXXXXXX.XXXXX.          ",
+"      .XXXXXXXXXXXXXXX.         ",
+"      .XXXXXXXXXXXXXXX.         ",
+" .   . .XXXXXXXXXXXXXX.  .   .  ",
+"        .XXXX...XXXXXX.....     ",
+"       ...o..XX.XXXXX.oooo..    ",
+"      .oo..XXXX..XXX.oXooooo.   ",
+" .   .o..XXXX..X.X.X.ooooooo..  ",
+"     ..XXXXX...X..X..ooooooo.   ",
+"   ..XXXXXXX..XX.XXX.ooooooo.   ",
+"  .XXXXXXXX.XXXXX.XXX.oooo..    ",
+" ..XXXXXXXXXXXXXX.XXXX.....  .  ",
+"  .XXXXXXXXXXXXXXX.XXXX.        ",
+"   .XXXXXXXXXXXXXX.XX..         ",
+"   .XXXXXXXXXXXXXXX..           ",
+" .  .XXXXXXXXXXXXXXX.    .   .  ",
+"    .XXXXXXXXXXXXXXX.           ",
+"     .XXXXXXXXXXXXXXX.          ",
+"     .XXXXXXXXXXXXXXX.          ",
+" .   .XXXXXXXXXXXXXXXX.  .   .  ",
+"      .XXXXXXXXXXXXXXX.         ",
+"       .XXXXXXXXXXXXXXX.        "};
Index: gnus/etc/images/gnus/gnus-summary-reply-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-reply-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-reply-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x10,0x00,0x11,0x88,0x45,0x55,0x84,0x22,0x08,0x80,0x10,0x88,0x42,0x55,0xa4,
+ 0x22,0x28,0x00,0x01,0x84,0x05,0x55,0x5a,0x21,0x50,0x00,0x35,0x8a,0x09,0xf5,
+ 0xc2,0x20,0x24,0x18,0x81,0x85,0x01,0x87,0x00,0x2a,0xd4,0x41,0x00,0x43,0x61,
+ 0x40,0x80,0x17,0x1c,0x20,0x80,0x58,0xb5,0x1a,0xc0,0x3f,0x0c,0x08,0x60,0xb0,
+ 0x75,0x08,0xb0,0x2e,0x84,0x04,0xb8,0xa1,0x06,0x03,0x4c,0x20,0x04,0x0c,0x36,
+ 0x60,0x06,0x10,0x0f,0x20,0x06,0x70,0x07,0x60,0x05,0xc8,0x09,0xa0,0x04,0x04,
+ 0x10,0xa0,0x06,0x02,0x20,0x60,0x85,0x01,0xc0,0xa0,0x44,0x00,0x00,0x61,0x25,
+ 0x00,0x00,0x22,0x1e,0x00,0x00,0xbc,0x0e,0x00,0x00,0x70,0xfd,0xff,0xff,0x3f,
+ 0x94,0x52,0x55,0x55,0x4a,0x29,0x22,0xa2};
Index: gnus/etc/images/gnus/gnus-summary-reply-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-reply-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-reply-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-follow-up_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                   .            ",
+"                  .X..          ",
+"             ... .XXXX.         ",
+"           ..XXX.XXXXXX..       ",
+"         ..XXXX.XXXXXXXXX.      ",
+"       ..XXXXX.XXXXXXXXX..      ",
+"     ..XXXXXXX.XXXXXXXX....     ",
+"   ..XXXXXXXX.XXXXXXXXX.oXX..   ",
+"  .X..X.X.X..XXXXXXXXX..o...o.  ",
+"  ..XXXXXXX.XXXXXXXXX..ooXXX..  ",
+"  .X...XXXX.XXXXXXXX..ooX...X.  ",
+"  .XXXX.XX.XXXXXXXX..oX..XXXX.  ",
+"  .XXXXX..XXXXXXXX..oX.XXXXXX.  ",
+"  .XXXXXXX..XXXXX..X..XXXXXXX.  ",
+"oo.XXXXXXXXX.XXX....XXXXXXXXX.oo",
+"oo.XXXXXXXXX...X...XXXXXXXXXX.oo",
+"oo.XXXXXXXX.XX...XX.XXXXXXXXX.oo",
+"oo.XXXXXXX.XXXXXXXXX.XXXXXXXX.oo",
+"oo.XXXXXX.XXXXXXXXXXX.XXXXXXX.oo",
+"oo.XXXX..XXXXXXXXXXXXX..XXXXX.oo",
+"oo.XXX.XXXXXXXXXXXXXXXXX.XXXX.oo",
+"oo.XX.XXXXXXXXXXXXXXXXXXX.XXX.oo",
+"oo...XXXXXXXXXXXXXXXXXXXXX....oo",
+"oo..XXXXXXXXXXXXXXXXXXXXXXXX..oo",
+"oo............................oo",
+"oooooooooooooooooooooooooooooooo",
+"oooooooooooooooooooooooooooooooo"};
Index: gnus/etc/images/gnus/gnus-summary-reply-with-original-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-reply-with-original-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-reply-with-original-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x08,0x00,0x20,0xaa,0x82,0xaa,0x4a,0x00,0x54,0x00,0x00,0xaa,0x02,0x54,
+ 0x55,0x00,0xa8,0x07,0x00,0x54,0x85,0x5a,0x55,0x02,0x50,0x32,0x80,0x50,0x25,
+ 0xc2,0x2a,0x02,0x18,0x81,0x41,0x54,0x17,0x01,0x17,0x80,0x09,0xc1,0x23,0x75,
+ 0x04,0x3d,0x4f,0x18,0xc3,0x83,0x18,0x85,0x40,0xc0,0x61,0x4c,0x7c,0x60,0x30,
+ 0xf6,0x23,0xb0,0x6e,0x84,0x20,0x98,0x21,0x05,0x13,0x5c,0x20,0x04,0x1c,0x36,
+ 0x60,0x06,0x30,0x0f,0x60,0x06,0x70,0x07,0xa0,0x05,0xc8,0x09,0x20,0x06,0x04,
+ 0x10,0x60,0x04,0x02,0x20,0xa0,0x85,0x01,0xc0,0x20,0x46,0x00,0x00,0xa1,0x24,
+ 0x00,0x00,0x62,0x1e,0x00,0x00,0x7c,0x0d,0x00,0x00,0xb0,0xfc,0xff,0xff,0x3f,
+ 0x55,0x55,0x4a,0x55,0x24,0x89,0x52,0xa2};
Index: gnus/etc/images/gnus/gnus-summary-reply-with-original-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-reply-with-original-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-reply-with-original-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-follow-up-incl_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                ...             ",
+"               .X.X.            ",
+"              .XX.XX..          ",
+"             .XXX.XXXX.         ",
+"           ..XXX.XXXXXX..       ",
+"         ..X.XXX.XXXXXXX..      ",
+"       ..XX.XXXX.XXXXX....      ",
+"     ..XXX.XXXXX.X....XX...     ",
+"   ..XXX..XXXX....XXXXX.oXX..   ",
+"  .XXXX.XXXXXX.XXXXXXX..oXXXo.  ",
+"  ..XX.XXX.....XXXXXX..ooXXX..  ",
+"  .X......XXX.XXXXXX..ooX...X.  ",
+"  .XXXX.XXXXX.XXXXX..oX..XXXX.  ",
+"  .XXXXX..XX.XXXXX..oX.XXXXXX.  ",
+"  .XXXXXXX...XXXX..X..XXXXXXX.  ",
+"oo.XXXXXXXXX..XX....XXXXXXXXX.oo",
+"oo.XXXXXXXXX...X...XXXXXXXXXX.oo",
+"oo.XXXXXXXX.XX...XX.XXXXXXXXX.oo",
+"oo.XXXXXXX.XXXXXXXXX.XXXXXXXX.oo",
+"oo.XXXXXX.XXXXXXXXXXX.XXXXXXX.oo",
+"oo.XXXX..XXXXXXXXXXXXX..XXXXX.oo",
+"oo.XXX.XXXXXXXXXXXXXXXXX.XXXX.oo",
+"oo.XX.XXXXXXXXXXXXXXXXXXX.XXX.oo",
+"oo...XXXXXXXXXXXXXXXXXXXXX....oo",
+"oo..XXXXXXXXXXXXXXXXXXXXXXXX..oo",
+"oo............................oo",
+"oooooooooooooooooooooooooooooooo",
+"oooooooooooooooooooooooooooooooo"};
Index: gnus/etc/images/gnus/gnus-summary-save-article-file-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-save-article-file-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-save-article-file-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x20,0x08,0x08,0x82,0x8a,0x82,0xa2,0x20,0x20,0x14,0x04,0x15,0x14,0xfd,0xff,
+ 0x43,0x42,0x04,0x00,0x0d,0x10,0x05,0x00,0x49,0x22,0x06,0x00,0x31,0x88,0x04,
+ 0x00,0x1f,0x22,0x06,0x00,0x50,0x88,0x04,0x00,0x10,0x22,0x04,0x00,0xb0,0x88,
+ 0x06,0x00,0x10,0x22,0x04,0x00,0x50,0xfc,0xff,0x0f,0x10,0x36,0x00,0x0b,0xb0,
+ 0x2c,0x02,0x0d,0x10,0x34,0x10,0x0b,0x50,0x2d,0x00,0x0b,0x10,0x34,0x41,0x0d,
+ 0xb0,0x2d,0x08,0x09,0x10,0x34,0x00,0x0b,0x50,0x2d,0x01,0x0d,0x10,0xf4,0xff,
+ 0x0b,0xb0,0xad,0xda,0x0a,0x10,0x44,0x22,0x0d,0x50,0xf6,0xff,0xf9,0x1f,0x6c,
+ 0x3b,0x4b,0x52,0xb5,0x2d,0x1d,0x08,0x6c,0x35,0x4b,0xa1,0x6a,0x3b,0x29,0x14,
+ 0xf8,0xff,0x8f,0x40,0x02,0x40,0x2a,0x15};
Index: gnus/etc/images/gnus/gnus-summary-save-article-file-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-save-article-file-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-save-article-file-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,41 @@
+/* XPM */
+static char * icon-save-text_xpm[] = {
+"32 32 6 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"O	c #E5E5E5E5E5E5",
+"+	c #666666666666",
+"                                ",
+"                                ",
+"                                ",
+"          ................      ",
+"          .XXXXXXXXXXXXX.X.     ",
+"          .XXXXXXXXXXXXX.XX.    ",
+"          .XXXXXXXXXXXXX.XXX.   ",
+"          .XXXXXXXXXXXXX.....   ",
+"          .XXXXXXXXXXXXXXXXX.   ",
+"          .XXXXXXXXXXXXXXXXX.   ",
+"          .XXXXXXXXXXXXXXXXX.   ",
+"          .XXXXXXXXXXXXXXXXX.   ",
+"          .XXXXXXXXXXXXXXXXX.   ",
+"  ..................XXXXXXXX.   ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXX.   ",
+"  .oo............oo.XXXXXXXX.   ",
+"  .oooooooooooooooo.XXXXXXXX.   ",
+"  .oooooooooooooooo.XXXXXXXX.   ",
+"  .oo............oo..........   ",
+"  .oo.+++++++.OO.oo.            ",
+"  .oo.+++++++.OO.oo.            ",
+"  .oo.+++++++.OO.oo.            ",
+"   .o.+++++++.OO.oo.            ",
+"    ................            ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-summary-save-article-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-save-article-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-save-article-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x10,0x81,0x04,0x01,0x45,0x28,0x40,0x50,0x88,0x42,0x15,0x05,0xa2,0xff,0xff,
+ 0x7f,0x88,0x03,0x00,0xf0,0xa2,0x0c,0x00,0x4c,0x88,0x30,0x00,0x43,0xc5,0xc0,
+ 0xc0,0x40,0x90,0x80,0x33,0xc0,0xa4,0x60,0xcc,0x40,0x82,0x10,0x00,0x41,0xd0,
+ 0x08,0x00,0x46,0x82,0x06,0x00,0xd8,0xfc,0xff,0x0f,0x60,0x2e,0x00,0x0d,0x40,
+ 0x34,0x02,0xfb,0x7f,0x36,0x10,0x0d,0x91,0xac,0x00,0x4b,0x24,0x34,0x00,0x2d,
+ 0x81,0x2d,0x48,0x4b,0x28,0x34,0x02,0x0d,0x85,0x2d,0x00,0xab,0x20,0xf4,0xff,
+ 0x0d,0x8a,0xa6,0xaa,0xaa,0x20,0x4c,0x55,0x0a,0x85,0xf5,0xff,0x5b,0x20,0x6c,
+ 0x35,0x8d,0x8a,0xad,0x36,0x2b,0x20,0xf4,0x2a,0x89,0x8a,0x6a,0x3b,0x5d,0x20,
+ 0xf8,0xff,0x0f,0x85,0x02,0x40,0xa2,0x20};
Index: gnus/etc/images/gnus/gnus-summary-save-article-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-summary-save-article-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-summary-save-article-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,41 @@
+/* XPM */
+static char * icon-save-mail_xpm[] = {
+"32 32 6 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"O	c #E5E5E5E5E5E5",
+"+	c #666666666666",
+"                                ",
+"                                ",
+"                                ",
+"       ........................ ",
+"       ...XXXXXXXXXXXXXXXXXX... ",
+"       .XX..XXXXXXXXXXXXXX..XX. ",
+"       .XXXX..XXXXXXXXXX..XXXX. ",
+"       .XXXXXX..XXXXXX..XXXXXX. ",
+"       .XXXXXXX...XX..XXXXXXXX. ",
+"       .XXXXX..XXX..XX..XXXXXX. ",
+"       .XXXX.XXXXXXXXXXX.XXXXX. ",
+"       .XXX.XXXXXXXXXXXXX..XXX. ",
+"       .X..XXXXXXXXXXXXXXXX..X. ",
+"  ..................XXXXXXXXX.. ",
+"  .oo.OOOOOOOOOO.oo.XXXXXXXXXX. ",
+"  .oo.OOOOOOOOOO.oo............ ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo.OOOOOOOOOO.oo.            ",
+"  .oo............oo.            ",
+"  .oooooooooooooooo.            ",
+"  .oooooooooooooooo.            ",
+"  .oo............oo.            ",
+"  .oo.+++++++.OO.oo.            ",
+"  .oo.+++++++.OO.oo.            ",
+"  .oo.+++++++.OO.oo.            ",
+"   .o.+++++++.OO.oo.            ",
+"    ................            ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-uu-decode-uu-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-uu-decode-uu-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-uu-decode-uu-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x00,0x08,0x10,0x01,0xaa,0x42,0x45,0x54,0x00,0x14,0x10,0x01,0x55,0x41,0x45,
+ 0x50,0x00,0x0a,0x88,0x0a,0xaa,0xa0,0x22,0x40,0x80,0xff,0xff,0x17,0xaa,0x95,
+ 0x54,0x43,0x80,0x2a,0xa5,0x0a,0xaa,0xfd,0x7f,0x53,0xc0,0x06,0x40,0x06,0x94,
+ 0x04,0x40,0x43,0xc2,0x05,0xc0,0x2a,0x90,0x86,0xc0,0x06,0xa2,0x64,0x4b,0x53,
+ 0x88,0x96,0x44,0x06,0xd2,0x45,0xc0,0x52,0x84,0x25,0xc1,0x06,0x90,0xe6,0x41,
+ 0x53,0x8a,0x05,0x42,0x06,0xa0,0x06,0xc4,0x52,0x95,0x04,0xc0,0x06,0xc0,0x05,
+ 0x40,0x53,0x94,0x06,0x40,0x06,0xa2,0x05,0xc0,0x52,0x88,0xfc,0xff,0x06,0xa2,
+ 0x95,0x12,0x53,0x88,0x4a,0xa9,0x06,0xa2,0xff,0xff,0x53,0x90,0x10,0x00,0x04,
+ 0x42,0x42,0x55,0x50,0x14,0x28,0x80,0x0a};
Index: gnus/etc/images/gnus/gnus-uu-decode-uu-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-uu-decode-uu-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-uu-decode-uu-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-decode-view_xpm[] = {
+"32 32 4 1",
+" 	c #BFBFBFBFBFBF s backgroundToolBarColor",
+".	c #000000000000",
+"X	c #999999999999",
+"o	c #FFFFFFFFFFFF",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"       ...................      ",
+"       .XXXXXXXXXXXXXXXXX.      ",
+"       .XXXXXXXXXXXXXXXXX.      ",
+"       .XX.............XX.      ",
+"       .XX.ooooooooooo.XX.      ",
+"       .XX.ooooooooooo.XX.      ",
+"       .XX.ooooooooooo.XX.      ",
+"       .XX.oooo.oooooo.XX.      ",
+"       .XX.oo..o..o.oo.XX.      ",
+"       .XX.o.oo.oo.ooo.XX.      ",
+"       .XX.ooo.ooooooo.XX.      ",
+"       .XX.oo.oo.ooooo.XX.      ",
+"       .XX.oo....ooooo.XX.      ",
+"       .XX.oooooo.oooo.XX.      ",
+"       .XX.ooooooo.ooo.XX.      ",
+"       .XX.ooooooooooo.XX.      ",
+"       .XX.ooooooooooo.XX.      ",
+"       .XX.ooooooooooo.XX.      ",
+"       .XX.ooooooooooo.XX.      ",
+"       .XX.............XX.      ",
+"       .XXXXXXXXXXXXXXXXX.      ",
+"       .XXXXXXXXXXXXXXXXX.      ",
+"       ...................      ",
+"                                ",
+"                                ",
+"                                "};
Index: gnus/etc/images/gnus/gnus-uu-post-news-up.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus-uu-post-news-up.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-uu-post-news-up.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,12 @@
+#define noname_width 32
+#define noname_height 32
+static char noname_bits[] = {
+ 0x11,0x11,0x19,0x51,0x4a,0x95,0x82,0x14,0x20,0x40,0x29,0x42,0x0a,0xd5,0x86,
+ 0x10,0x31,0x31,0x3b,0x53,0x08,0x9d,0xe8,0x10,0xa2,0x43,0x82,0x4b,0x88,0xff,
+ 0xff,0x03,0xb3,0xaa,0x54,0xbb,0x88,0x55,0xaa,0x02,0xa2,0xfc,0x7f,0x4b,0x88,
+ 0x06,0xc0,0x12,0xb1,0x05,0x40,0x56,0x8a,0x05,0x40,0x03,0xd0,0x86,0xc0,0xaa,
+ 0x85,0x64,0x4b,0x06,0xb1,0x95,0xc4,0x32,0x8a,0x46,0x40,0x4b,0xd0,0x24,0x41,
+ 0x03,0x84,0xe6,0xc1,0x56,0xd9,0x05,0x42,0x12,0x82,0x04,0x44,0x4b,0x94,0x07,
+ 0xc0,0x22,0xc1,0x04,0x40,0x16,0x95,0x05,0xc0,0x52,0xa0,0x06,0x40,0x13,0x8a,
+ 0xfd,0xff,0x46,0xd0,0x94,0x52,0x12,0x93,0x29,0xa5,0x5a,0xa4,0xff,0xff,0x03,
+ 0x10,0x02,0x08,0x55,0x85,0xa8,0xa2,0x00};
Index: gnus/etc/images/gnus/gnus-uu-post-news-up.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus-uu-post-news-up.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus-uu-post-news-up.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,39 @@
+/* XPM */
+static char * icon-post-pic_xpm[] = {
+"32 32 4 1",
+" 	c #000000000000",
+".	c #BFBFBFBFBFBF s backgroundToolBarColor",
+"X	c #999999999999",
+"o	c #FFFFFFFFFFFF",
+" ... ... ... ... ... ... ... ...",
+"................................",
+"................ ...............",
+"..............  .  .............",
+" ... ... ...  .. ..  ... ... ...",
+"..........  .........  .........",
+"........  .............  .......",
+".......                   ......",
+" ... .. XXXXXXXXXXXXXXXXX .. ...",
+"....... XXXXXXXXXXXXXXXXX ......",
+"....... XX             XX ......",
+"....... XX ooooooooooo XX ......",
+" ... .. XX ooooooooooo XX .. ...",
+"....... XX ooooooooooo XX ......",
+"....... XX oooo oooooo XX ......",
+"....... XX oo  o  o oo XX ......",
+" ... .. XX o oo oo ooo XX .. ...",
+"....... XX ooo ooooooo XX ......",
+"....... XX oo oo ooooo XX ......",
+"....... XX oo    ooooo XX ......",
+" ... .. XX oooooo oooo XX .. ...",
+"....... XX ooooooo ooo XX ......",
+"....... XX ooooooooooo XX ......",
+"....... XX ooooooooooo XX ......",
+" ... .. XX ooooooooooo XX .. ...",
+"....... XX ooooooooooo XX ......",
+"....... XX             XX ......",
+"....... XXXXXXXXXXXXXXXXX ......",
+" ... .. XXXXXXXXXXXXXXXXX .. ...",
+".......                   ......",
+"................................",
+"................................"};
Index: gnus/etc/images/gnus/gnus.xbm
diff -u /dev/null gnus/etc/images/gnus/gnus.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,622 @@
+#define noname_width 271
+#define noname_height 273
+static char noname_bits[] = {
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x49,0xe0,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x97,0xaa,0x8a,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x57,0x2a,0x41,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa9,0x52,0x16,0xfe,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4a,0x49,0x05,
+ 0xf9,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x7f,0x95,0xaa,0x58,0xf4,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xa5,0x54,0x26,0xe1,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x54,0x49,0x49,0xe4,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x2a,0xa5,
+ 0x2a,0xd1,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xd5,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xaf,0x52,0x95,0x54,0xc4,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,
+ 0x24,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x57,0x29,0xa9,0x92,0x11,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x57,0xd5,0xfa,0xff,0xff,0xab,0xea,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x4a,0x55,0x2a,0x41,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x25,0x29,0xe5,0xff,0xff,0x95,0xa4,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0xa4,
+ 0x24,0xa5,0x14,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4a,0xa5,0xd4,0xff,
+ 0x3f,0x52,0xa9,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x29,0x55,0x55,0x55,0x41,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xa9,0x54,0xea,0xff,0xdf,0x2a,0x55,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x55,0x55,0x4a,0x49,0x12,0x7e,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0x55,0xa5,0x92,0xff,0x23,0xa5,0x4a,0xd6,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa5,0xa4,0x94,0xaa,0x42,
+ 0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0x4a,0x2a,0xa9,0xff,0xad,0x92,0x24,
+ 0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a,
+ 0x95,0x52,0x52,0x29,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x52,0x49,0x55,
+ 0xfe,0x91,0x54,0x55,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0x49,0x29,0x55,0x25,0x85,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x4f,0x95,0xaa,0x92,0x7e,0x55,0x55,0xa9,0x4a,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a,0x50,0x95,0xaa,0x24,0x7e,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x57,0x2a,0x95,0x54,0x79,0x95,0x92,0x92,0x94,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xb9,0x62,0x29,0x49,
+ 0x85,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x49,0x49,0x95,0xba,0xa4,0x54,
+ 0xaa,0x52,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,
+ 0x1a,0xf8,0xa7,0xaa,0x22,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0x55,0x52,
+ 0x2a,0x75,0x55,0xa5,0x24,0xa5,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xbf,0x5a,0xfd,0x57,0x92,0x94,0x7e,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x4a,0x4a,0x55,0x49,0x89,0x92,0x94,0xaa,0x94,0xf4,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x1a,0xfc,0x2f,0x55,0x05,0x7c,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x55,0xa9,0x4a,0x55,0x2a,0x55,0x55,0x55,0x55,0xe5,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x4e,0xfd,0x5f,
+ 0x29,0xa5,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0xa4,0x54,0x52,0x4a,0x55,0xa9,
+ 0xa4,0x24,0xa5,0x94,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x2f,0x1d,0xfe,0x3f,0x95,0x04,0x7c,0xff,0xfd,0xff,0xff,0xff,0x3f,0x49,0xa5,
+ 0x54,0xa9,0xa4,0x92,0x4a,0x49,0x4a,0x55,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0x44,0xfe,0x5f,0xa9,0x52,0x7d,0xff,0xe5,0xff,0xff,
+ 0xff,0x5f,0x55,0x92,0x2a,0x95,0x52,0x4a,0x52,0xaa,0x52,0x4a,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x16,0xff,0xbf,0x4a,0x05,0x7c,
+ 0xff,0xd9,0xff,0xff,0xff,0x5f,0x95,0x42,0xa5,0x52,0x95,0xaa,0xaa,0xaa,0x94,
+ 0x54,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x43,0xfe,
+ 0xbf,0x54,0x52,0x7d,0x7f,0x25,0xff,0xff,0xff,0xa7,0xa4,0x28,0x92,0x54,0x4a,
+ 0xa5,0x4a,0x92,0xaa,0x4a,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xab,0x12,0xfe,0x7f,0xa5,0x02,0x7c,0x7f,0x55,0xfd,0xff,0xff,0x95,0x2a,
+ 0x82,0x54,0xa5,0x54,0x2a,0xa9,0x2a,0xa5,0x52,0xf5,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x27,0x4b,0xff,0xff,0x4a,0x29,0x7d,0xff,0x92,0xfe,
+ 0xff,0xff,0x55,0x92,0x20,0xa8,0x94,0x2a,0xa5,0x94,0x52,0x29,0xa9,0xf4,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0x01,0xff,0x7f,0x52,0x42,
+ 0x7c,0xff,0x25,0xf9,0xff,0x7f,0xaa,0x02,0x8a,0x40,0x29,0x49,0x09,0x41,0x4a,
+ 0x55,0x25,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x57,
+ 0xff,0xff,0x95,0x12,0x7d,0xff,0xa9,0xfa,0xff,0x7f,0x25,0xa9,0x20,0x2a,0xa5,
+ 0xaa,0x42,0x92,0x54,0x92,0x54,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xaf,0x83,0xff,0xff,0xa9,0x42,0x7e,0xff,0xaa,0xf4,0xff,0xaf,0x54,
+ 0x01,0x82,0x80,0xaa,0x54,0x14,0x08,0xa2,0xaa,0x4a,0xd2,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xef,0xcf,0xd7,0xff,0xff,0x52,0x12,0x7f,0xff,0x4a,
+ 0xea,0xff,0x57,0x92,0xaa,0x28,0x24,0x29,0x25,0x81,0x82,0x08,0x49,0x52,0x55,
+ 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xdf,0xef,0xe7,0xff,0xff,0x2a,
+ 0x05,0x7e,0xff,0x55,0xd5,0xff,0xa5,0x2a,0x00,0x8e,0x10,0x4a,0x89,0x24,0x28,
+ 0xa0,0xaa,0x2a,0x49,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xe7,0xff,
+ 0xef,0xff,0xff,0xa5,0x50,0x7e,0xff,0x25,0xe5,0xff,0x2a,0xa5,0x52,0x7f,0x85,
+ 0x54,0x35,0x08,0x82,0x0a,0x55,0x95,0xaa,0xfc,0xff,0xff,0xff,0xcf,0xff,0xff,
+ 0xff,0xff,0xd7,0xff,0xff,0xff,0x7f,0x52,0x85,0x7e,0xff,0xab,0x94,0x1e,0x55,
+ 0x2a,0xc8,0xff,0x10,0x90,0x92,0xa0,0x08,0x20,0x24,0x52,0x25,0xfd,0xff,0xff,
+ 0xff,0xef,0xff,0xff,0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0x94,0x10,0x7e,0xff,
+ 0x93,0xaa,0x6a,0x49,0x49,0xf2,0xff,0x85,0x52,0x09,0x0a,0xa2,0x4a,0x92,0x29,
+ 0xa9,0xf2,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0x7f,
+ 0x55,0x25,0x7f,0xff,0x55,0x49,0x49,0x95,0x0a,0xf9,0xff,0x17,0x48,0x26,0x50,
+ 0x08,0x00,0xa9,0x4a,0x95,0xfa,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xf2,
+ 0xff,0xff,0xff,0xff,0x92,0x80,0x7e,0xff,0xa7,0x54,0xaa,0xa4,0x52,0xfc,0xff,
+ 0xaf,0x42,0x89,0xfa,0xbf,0x54,0x20,0xa9,0xa4,0xd4,0xff,0xff,0xff,0xcb,0xff,
+ 0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,0x54,0x29,0x7f,0xff,0x4b,0xa5,0x92,
+ 0x2a,0x01,0xff,0xff,0x1f,0xa8,0x22,0xff,0xff,0x01,0xa5,0x2a,0x55,0xa9,0xff,
+ 0xff,0xff,0xd4,0xff,0xff,0xff,0x7f,0xfa,0xff,0xff,0xff,0x7f,0xa5,0x04,0x7f,
+ 0xff,0x57,0x2a,0x55,0xa9,0x54,0xfe,0xff,0x3f,0x05,0x89,0xff,0xff,0x5f,0x48,
+ 0x92,0x2a,0x95,0xff,0xff,0xff,0xea,0xff,0xff,0xff,0xff,0xd2,0xff,0xff,0xff,
+ 0x7f,0x2a,0x91,0x7f,0xff,0xa9,0x54,0x4a,0x52,0x02,0xff,0xff,0xff,0x50,0xd1,
+ 0xff,0xff,0x1f,0x81,0xaa,0xa4,0x52,0xfe,0xff,0x3f,0xe9,0xff,0xff,0xff,0x7f,
+ 0x1d,0xff,0xff,0xff,0xff,0x54,0x41,0x7f,0xff,0x93,0x92,0x52,0x95,0xc8,0xff,
+ 0xff,0xff,0x8b,0xc4,0xff,0xff,0x7f,0x24,0xa5,0x2a,0x49,0xf9,0xff,0x7f,0xd5,
+ 0xff,0xff,0xff,0xbf,0x4a,0xff,0xff,0xff,0xff,0x4a,0x14,0x7f,0xff,0x28,0xa5,
+ 0x94,0x2a,0xa0,0xff,0xff,0x7f,0x22,0xf0,0xff,0xff,0x7f,0x12,0x94,0xa4,0xaa,
+ 0xea,0xff,0xaf,0xea,0xff,0xff,0xff,0x5f,0x8e,0xff,0xff,0xff,0x7f,0xa9,0x40,
+ 0x7f,0xff,0x48,0x55,0x55,0x12,0xca,0xff,0xff,0xff,0x0a,0xf5,0xff,0xff,0xff,
+ 0x80,0x52,0x95,0x54,0xaa,0xfe,0x55,0xc4,0xff,0xff,0xff,0x5f,0xa5,0xff,0xff,
+ 0xff,0xff,0x94,0x14,0x7f,0xff,0x52,0x2a,0xa9,0x4a,0xe1,0xff,0xff,0xbf,0x24,
+ 0xf0,0xff,0xff,0xff,0x0b,0x28,0xa9,0x92,0x24,0x55,0x49,0xe5,0xd7,0xff,0xff,
+ 0xa7,0x8a,0xff,0xff,0xff,0x7f,0xa5,0xc0,0x7f,0xff,0x50,0x49,0x95,0x04,0xf8,
+ 0xff,0xff,0x5f,0x1f,0xfd,0xff,0xff,0xff,0x47,0x45,0x55,0xaa,0xaa,0x4a,0xaa,
+ 0xea,0xaf,0xff,0xff,0x2b,0xc3,0xff,0xff,0xff,0x7f,0x55,0x94,0x7f,0x7f,0x4a,
+ 0x55,0x52,0x51,0xfe,0xff,0xff,0x5f,0x4e,0xf8,0xff,0xff,0xff,0x1f,0x50,0x92,
+ 0x52,0x49,0xa9,0x92,0xe4,0xd3,0xff,0xff,0x4b,0xd5,0xff,0xff,0xff,0xff,0x94,
+ 0xc0,0x7f,0x3f,0xa0,0xa4,0xaa,0x04,0xfe,0xff,0xff,0xa7,0x1d,0xfd,0xff,0xff,
+ 0xff,0x9f,0x84,0xaa,0x4a,0xaa,0x24,0x55,0xf2,0x2b,0xff,0x7f,0xa9,0xc1,0xff,
+ 0xff,0xff,0x7f,0x4a,0x95,0x7f,0xbf,0x2a,0x95,0x24,0x50,0xff,0xff,0xff,0x97,
+ 0x5e,0xfe,0xff,0xff,0xff,0x3f,0x92,0x24,0x95,0x92,0xaa,0xa4,0xf2,0xcb,0xff,
+ 0x5f,0xd5,0xe5,0xff,0xff,0xff,0xff,0x52,0x80,0x7f,0x3f,0xa0,0x52,0x15,0x85,
+ 0xff,0xff,0xff,0xd7,0x38,0xfe,0xff,0xff,0xff,0xff,0x20,0xaa,0x52,0x55,0x55,
+ 0x55,0xf9,0x29,0xfd,0xab,0xa4,0xf0,0xff,0xff,0xff,0x7f,0x29,0xa9,0x7f,0xff,
+ 0x42,0x25,0x49,0xe8,0xff,0xff,0xff,0x69,0x7a,0xff,0xff,0xff,0xff,0xff,0x82,
+ 0x52,0xaa,0x24,0x89,0x4a,0xf8,0x55,0x2a,0x49,0x95,0xf5,0xff,0xff,0xff,0xbf,
+ 0x2a,0xc4,0x7f,0x7f,0x90,0x54,0x15,0xe2,0xff,0xff,0xff,0x25,0xbc,0xff,0xff,
+ 0xff,0xff,0xff,0x29,0x48,0x49,0xaa,0xaa,0xa4,0xfa,0x95,0x92,0x54,0x52,0xf0,
+ 0xff,0xff,0xff,0xbf,0x4a,0xd1,0x7f,0xff,0x05,0xaa,0x40,0xf8,0xff,0xff,0x7f,
+ 0xaa,0xfc,0xff,0xff,0xff,0xff,0xff,0x43,0xa9,0xaa,0x4a,0x52,0xa9,0xf8,0xa4,
+ 0xaa,0x52,0x95,0xfc,0xff,0xff,0xff,0x7f,0x52,0xc0,0x7f,0xff,0xa1,0x00,0x24,
+ 0xfa,0xff,0xff,0xff,0x0a,0xfe,0xff,0xff,0xff,0xff,0xff,0x17,0x92,0x24,0xa5,
+ 0x2a,0x55,0xfe,0xaa,0xa4,0x2a,0x29,0xf9,0xff,0xff,0xff,0xbf,0x2a,0xea,0x7f,
+ 0xff,0x05,0x92,0x90,0xfc,0xff,0xff,0xbf,0xa4,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x4f,0xa0,0xaa,0x54,0x49,0x25,0x7c,0x49,0x95,0xa4,0x12,0xfc,0xff,0xff,0xff,
+ 0x7f,0x8a,0xe0,0x7f,0xff,0xa3,0x04,0x05,0xfe,0xff,0xff,0xbf,0x06,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x1f,0x49,0x95,0x52,0xaa,0x12,0x7f,0x55,0x52,0x55,0x0a,
+ 0xfd,0xff,0xff,0xff,0x3f,0x29,0xe8,0x7f,0xff,0x0f,0x50,0x50,0xff,0xff,0xff,
+ 0x5f,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x04,0xa9,0x4a,0x25,0x45,0x3e,
+ 0xa9,0x2a,0xa9,0xa2,0xfc,0xff,0xff,0xff,0x7f,0x55,0xe1,0x7f,0xff,0x27,0x05,
+ 0xc4,0xff,0xff,0xff,0x9f,0x91,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x41,0x4a,
+ 0x29,0xa9,0x12,0x5e,0x95,0x94,0x4a,0x0a,0xfe,0xff,0xff,0xff,0xbf,0x12,0xf4,
+ 0x7f,0xff,0x8f,0x50,0xf1,0xff,0xff,0xff,0xa7,0xc2,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x14,0x92,0xaa,0x4a,0xa2,0xbf,0xa4,0x52,0x95,0x22,0xff,0xff,0xff,
+ 0xff,0x3f,0x45,0xf2,0x7f,0xff,0x3f,0x04,0xf4,0xff,0xff,0xff,0xd7,0xe8,0xff,
+ 0xff,0xff,0xff,0x5f,0xff,0xff,0x83,0xa8,0x94,0x54,0x09,0x2f,0x55,0x4a,0x52,
+ 0x49,0xff,0xff,0xff,0xff,0x5f,0x99,0xf0,0x7f,0xff,0x7f,0x51,0xfc,0xff,0xff,
+ 0xff,0x6b,0xf1,0xff,0xff,0xff,0xff,0x5f,0xfd,0xff,0x2b,0x2a,0xa9,0x12,0x20,
+ 0x5f,0xa9,0xaa,0x54,0x00,0xff,0xff,0xff,0xff,0x5f,0x15,0xf2,0x7f,0xff,0xff,
+ 0x8f,0xff,0xff,0xff,0xff,0x2b,0xfc,0xff,0xff,0xff,0xff,0x2f,0xfd,0xff,0x87,
+ 0xa0,0x4a,0xaa,0x8a,0x9f,0x4a,0x52,0x15,0xa9,0xff,0xff,0xff,0xff,0x5f,0x8a,
+ 0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x94,0xf8,0xff,0xff,0xff,0xff,
+ 0x57,0xf2,0xff,0x2f,0x82,0x52,0x05,0xd0,0x2f,0x95,0x4a,0x49,0x84,0xff,0xff,
+ 0xff,0xff,0xbf,0x24,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x12,0xfd,
+ 0xff,0xff,0xff,0xff,0x4b,0xd5,0xff,0x9f,0x28,0x54,0x48,0xc5,0xbf,0x52,0x55,
+ 0x0a,0xe1,0xff,0xff,0xff,0xff,0x9f,0x4a,0xfa,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x1a,0xfe,0xff,0xff,0xff,0xff,0x57,0xa9,0xff,0x3f,0x82,0x00,0x21,
+ 0xf0,0x5f,0x2a,0x49,0x21,0xc4,0xff,0xff,0xff,0xff,0xaf,0x1a,0xfd,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x3f,0x85,0xff,0xff,0xff,0xff,0xff,0x29,0xa5,0xff,
+ 0xff,0x24,0x52,0x88,0xfc,0xbf,0x92,0x2a,0x09,0xf1,0xff,0xff,0xff,0xff,0x9f,
+ 0x4c,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x15,0xff,0xff,0xff,0x7f,
+ 0xff,0xa5,0x4a,0xff,0xff,0x90,0x08,0x01,0xfe,0x3f,0x55,0x52,0x24,0xf4,0xff,
+ 0xff,0xff,0xff,0xaf,0x02,0xfd,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xc6,
+ 0xff,0xff,0xff,0xbf,0xfe,0x95,0x54,0xff,0xff,0x05,0x42,0xa8,0xfe,0xbf,0xa4,
+ 0x2a,0x41,0xf9,0xff,0xff,0xff,0xff,0x5f,0x55,0xfc,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x4f,0xd0,0xff,0xff,0xff,0xbf,0x7c,0xaa,0x92,0xfc,0xff,0x53,0x08,
+ 0x01,0xff,0x1f,0x4a,0x01,0x04,0xfc,0xff,0xff,0xff,0xff,0x27,0x05,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xc5,0xff,0xff,0xff,0x4f,0xbf,0x52,0xaa,
+ 0xfe,0xff,0x07,0x42,0xea,0xff,0xbf,0x50,0x54,0x51,0xff,0xff,0xff,0xff,0xff,
+ 0x97,0x56,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xf0,0xff,0xff,0xff,
+ 0x2f,0x7f,0xa5,0x54,0xfd,0xff,0x3f,0x09,0xe0,0xff,0x1f,0x02,0x01,0x04,0xff,
+ 0xff,0xff,0xff,0xff,0xaf,0x02,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,
+ 0xf5,0xff,0xff,0xff,0xab,0x9f,0x94,0x92,0xfc,0xff,0xff,0x40,0xfd,0xff,0x9f,
+ 0x48,0x48,0xa1,0xff,0xff,0xff,0xff,0xff,0xa7,0x56,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x6b,0xf8,0xff,0xff,0xff,0xa4,0x5f,0xa9,0x2a,0xfd,0xff,0xff,
+ 0xff,0xff,0xff,0x3f,0x22,0x21,0xc4,0xff,0xff,0xff,0xff,0xff,0x2f,0x03,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0xfa,0xff,0xff,0x7f,0xd5,0x2f,0xa5,
+ 0xa4,0xfa,0xff,0xff,0xff,0xff,0xff,0xbf,0x08,0x08,0xf9,0xff,0xff,0xff,0xff,
+ 0xff,0x97,0x4a,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x94,0xfc,0xff,0xff,
+ 0x7f,0x69,0xac,0x2a,0x55,0xf9,0xff,0xff,0xff,0xff,0xff,0x7f,0xa2,0x22,0xf8,
+ 0xff,0xff,0xff,0xff,0xff,0x53,0x21,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x15,0xfe,0xff,0xff,0x9f,0x2a,0x95,0x94,0x92,0xf4,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x08,0x88,0xfe,0xff,0xff,0xff,0xff,0xff,0x57,0x8b,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xa9,0xfe,0xff,0xff,0x5f,0x52,0xbc,0x52,0x55,0xf5,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x21,0x21,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xa1,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x7f,0x0d,0xff,0xff,0xff,0x57,0x15,0x3f,
+ 0x55,0x49,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xc8,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xd7,0x89,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xbf,0xd6,0xff,0xff,
+ 0xff,0x4b,0x45,0x3f,0x49,0xaa,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xf9,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xc9,0xe2,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0x3f,0x81,0xff,0xff,0xff,0x29,0x11,0x5f,0x28,0x55,0xf5,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0xc8,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0x5f,0xd6,0xff,0xff,0x7f,0xaa,0xc2,0x0f,0x55,0x49,0xea,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa5,
+ 0xe2,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x9f,0xe1,0xff,0xff,0xbf,0x4a,0xd1,
+ 0x5f,0x48,0xa5,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xe9,0xe0,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x27,0xf4,0xff,
+ 0xff,0xbf,0x94,0xc4,0x07,0x91,0x2a,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xca,0xea,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xaf,0xf1,0xff,0xff,0x9f,0x52,0xe0,0x4b,0x44,0x52,0xe9,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6a,0xe0,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0x4b,0xfc,0xff,0xff,0xab,0x2a,0xf5,0x0f,0x51,0xa5,
+ 0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0x69,0xe5,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x55,0xf8,0xff,0xff,0x95,0x14,
+ 0xf0,0x5f,0x84,0x54,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0x75,0xf0,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x13,0xfd,
+ 0xff,0xff,0xa5,0x42,0xf9,0x7f,0x91,0x4a,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb2,0xfa,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0x54,0xfe,0xff,0x7f,0x52,0x12,0xfa,0xff,0x20,0xa5,0xe4,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x34,0xf8,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0x25,0xff,0xff,0xaf,0xaa,0x48,0xfc,0xff,0x0b,
+ 0x29,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x7f,0xb5,0xf8,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x52,0xff,0xff,0x2f,0x49,
+ 0x02,0xfe,0xff,0x43,0xaa,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x3f,0x3a,0xfa,0xff,0x7f,0xff,0xff,0xff,0xff,0x7f,0x4a,
+ 0xff,0xff,0xa5,0x2a,0xa9,0xff,0xff,0x17,0x25,0xe9,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x9a,0xfc,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0x2a,0xff,0x7f,0x95,0x54,0x80,0xff,0xff,0x07,0xa9,0xea,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x1d,0xfc,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0x3f,0xa9,0xfe,0x7f,0xa9,0x12,0xe5,0xff,0xff,
+ 0x5f,0x4a,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x5f,0xad,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0x7f,0x95,0xea,0x97,0x54,
+ 0x4a,0xf0,0xff,0xff,0x1f,0xa8,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x5f,0x0e,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f,
+ 0x52,0x55,0xa9,0x92,0x02,0xfd,0xff,0xff,0x5f,0x53,0xf5,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x5e,0xfe,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xbf,0x2a,0x49,0x4a,0x55,0x49,0xfc,0xff,0xff,0x3f,0x94,0xf8,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x0f,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4f,0xa5,0xaa,0x92,0xa4,0x20,0xff,0xff,
+ 0xff,0xbf,0xa4,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x5f,0x57,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f,0x52,0x52,0xaa,
+ 0x2a,0x0a,0xff,0xff,0xff,0x7f,0x54,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0x07,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xa7,0x94,0x4a,0x55,0x4a,0xa0,0xff,0xff,0xff,0xff,0xa8,0xfa,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x57,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0x2f,0x55,0xa9,0x92,0x12,0xe9,0xff,0xff,0xff,0x7f,0x24,
+ 0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0x87,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0xa5,0x4a,0xaa,0x44,0xf4,0xff,
+ 0xff,0xff,0xff,0x55,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xa7,0xab,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xab,0x94,0xa4,
+ 0x92,0x12,0xf9,0xff,0xff,0xff,0xff,0xa8,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xab,0x83,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0x47,0xa9,0x2a,0x55,0x40,0xfc,0xff,0xff,0xff,0xff,0x25,0xf5,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xd7,0x97,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0x33,0x55,0xa9,0x24,0x15,0xfe,0xff,0xff,0xff,0xff,
+ 0x95,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,
+ 0x93,0xc3,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0x25,0xa5,0x2a,0x40,0xff,
+ 0xff,0xff,0xff,0xff,0xa9,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,
+ 0xff,0xff,0xff,0xff,0xe7,0xd5,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4b,0x92,
+ 0x54,0x92,0xd4,0xff,0xff,0xff,0xff,0xff,0x55,0xf5,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0xff,0xd5,0xc1,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0x97,0xaa,0x4a,0x05,0xe2,0xff,0xff,0xff,0xff,0xff,0x25,0xf1,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xfd,0xff,0xff,0xff,0xff,0xd5,0xea,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0x57,0x55,0x25,0xa1,0xf0,0xff,0xff,0xff,0xff,
+ 0xff,0x95,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe8,0xfa,0xff,0xff,0xff,
+ 0xff,0xea,0xe0,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xa7,0x24,0x59,0x04,0xfa,
+ 0xff,0xff,0xff,0xff,0xff,0xa9,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe2,
+ 0xfd,0xff,0xff,0xff,0xff,0xc9,0xe9,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x4f,
+ 0x52,0x05,0xa1,0xfc,0xff,0xff,0xff,0xff,0xff,0xa5,0xfa,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x70,0xf9,0xff,0xff,0xff,0xff,0x74,0xe2,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0x47,0x95,0x92,0x04,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0xf8,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe2,0xfa,0xff,0xff,0xff,0xff,0x72,0xe8,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x97,0xaa,0x20,0xd0,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x55,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xb8,0xfc,0xff,0xff,
+ 0xff,0xff,0xea,0xe2,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x07,0x04,0x82,0xc2,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x29,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0x71,0xfd,0xff,0xff,0xff,0x7f,0x2a,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0x4f,0x91,0x28,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0xfc,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x1f,0x54,0xfe,0xff,0xff,0xff,0x7f,0x75,0xf2,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0x27,0x44,0x82,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0x29,
+ 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xb8,0xfc,0xff,0xff,0xff,0xbf,0x14,
+ 0xf1,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x0f,0x11,0x20,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x55,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x9a,0xfe,0xff,
+ 0xff,0xff,0x7f,0x5a,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x5f,0x40,0x85,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x09,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x4f,0x2d,0xfd,0xff,0xff,0xff,0x9f,0x12,0xf9,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0x3f,0x14,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xfe,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x07,0xa6,0xfe,0xff,0xff,0xff,0x5f,0x4d,0xfa,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0x40,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x09,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0x4b,0xfe,0xff,0xff,0xff,0xbf,
+ 0x2c,0xf8,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x43,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x57,0xff,
+ 0xff,0xff,0xff,0x5f,0x0a,0xfe,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x89,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xd5,0xa9,0xff,0xff,0xff,0xff,0xaf,0x5a,0xfc,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa3,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x81,0x95,0xff,0xff,0xff,0xff,0x9f,0x06,0xfd,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xca,0xa5,0xff,0xff,0xff,0xff,
+ 0x2f,0x95,0xfc,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xea,
+ 0xff,0xff,0xff,0xff,0xaf,0x26,0xfe,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x7f,0xf5,0xf4,0xff,0xff,0xff,0xff,0xaf,0x86,0xfe,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0x70,0xe5,0xff,0xff,0xff,0xff,0x4f,0x2e,0xfe,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xb2,0xfa,0xff,0xff,0xff,
+ 0xff,0x57,0x83,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x78,
+ 0xf2,0xff,0xff,0xff,0xff,0xa7,0x22,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x5f,0x5d,0xfd,0xff,0xff,0xff,0xff,0x97,0x87,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x3c,0xfd,0xff,0xff,0xff,0xff,0x53,0xa3,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xac,0xfe,0xff,0xff,
+ 0xff,0xff,0x57,0x95,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,
+ 0x9e,0xfe,0xff,0xff,0xff,0xff,0x97,0x81,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xa7,0x57,0xfe,0xff,0xff,0xff,0xff,0xa9,0xa5,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xaf,0xff,0xff,0xff,0xff,0xff,0x4b,
+ 0x89,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0x93,0xff,0xff,
+ 0xff,0xff,0xff,0x95,0xa2,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x83,0xab,0xff,0xff,0xff,0xff,0xff,0xd3,0xc8,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,
+ 0xff,0xff,0xff,0xff,0xe9,0xa5,0xff,0xff,0xff,0xff,0xff,0xa5,0xe1,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xd5,0xff,0xff,0xff,0xff,0xff,
+ 0xd5,0xc8,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xea,0xea,0xff,
+ 0xff,0xff,0xff,0xff,0x14,0xc1,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,
+ 0xff,0xe0,0xe4,0xff,0xff,0xff,0xff,0xff,0x65,0xe8,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,
+ 0xff,0xff,0xff,0xff,0x3f,0x72,0xe9,0xff,0xff,0xff,0xff,0xff,0x6a,0xe1,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xbf,0xb8,0xfa,0xff,0xff,0xff,0xff,
+ 0xff,0x52,0xea,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0xff,0x1f,0x7a,0xf5,
+ 0xff,0xff,0xff,0xff,0x7f,0x2a,0xe0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,
+ 0xff,0x8f,0x58,0xfa,0xff,0xff,0xff,0xff,0x7f,0x25,0xf5,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xb5,0xff,0xff,0xdf,0xff,0x57,0x5e,0xfd,0xff,0xff,0xff,0xff,0xff,0x34,0xe0,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xca,0xff,0xff,0x8f,0xff,0x07,0xac,0xfc,0xff,0xff,0xff,
+ 0xff,0x7f,0x2a,0xf5,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd4,0xff,0xff,0x57,0xff,0x2b,0x2d,
+ 0xfd,0xff,0xff,0xff,0xff,0xff,0xb2,0xf0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd2,0xff,0xff,
+ 0x07,0xff,0x43,0x4a,0xff,0xff,0xff,0xff,0xff,0xbf,0x2a,0xf8,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x3f,0xc5,0xff,0xff,0x2b,0xfe,0x08,0xab,0xfe,0xff,0xff,0xff,0xff,0x7f,0xaa,
+ 0xf2,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xea,0xff,0xff,0x83,0x36,0x20,0x55,0xff,0xff,0xff,
+ 0xff,0xff,0x3f,0x15,0xf0,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xc2,0xff,0xff,0x48,0x4a,0x85,
+ 0x49,0xff,0xff,0xff,0xff,0xff,0x7f,0x59,0xfa,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xf5,0xff,
+ 0x7f,0x10,0x29,0x50,0xa5,0xff,0xff,0xff,0xff,0xff,0x3f,0x15,0xf9,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x97,0xe4,0xff,0x7f,0x05,0x95,0x42,0xd5,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0x35,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xab,0xea,0xff,0xbf,0xa0,0x24,0xa8,0xd4,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0x19,0xf9,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x27,0xe5,0xff,0x3f,0x92,0xaa,
+ 0x50,0xe9,0xff,0xff,0xff,0xff,0xff,0x9f,0x4a,0xfc,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa9,0xe2,
+ 0xff,0x9f,0xa0,0xaa,0x2a,0xf5,0xff,0xff,0xff,0xff,0xff,0x5f,0x1a,0xf9,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x95,0xf8,0xff,0x5f,0x4a,0x92,0x4a,0xf5,0xff,0xff,0xff,0xff,0xff,
+ 0xbf,0x4a,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0x52,0xf2,0xff,0x1f,0x20,0x49,0xa5,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0x5f,0x1a,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaa,0xf8,0xff,0x47,0xa9,
+ 0x2a,0x29,0xf9,0xff,0xff,0xff,0xff,0xff,0xbf,0x0a,0xfc,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x49,
+ 0xf2,0xff,0x17,0x92,0xaa,0xaa,0xfe,0xff,0xff,0xff,0xff,0xff,0x9f,0xac,0xfe,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x9f,0x2a,0xf8,0xff,0x43,0xa8,0x24,0x25,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xaf,0x0a,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x94,0xfa,0xff,0x91,0x54,0xaa,0x52,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x2f,0x4d,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x45,0xfc,0xff,0x03,
+ 0x92,0x52,0xaa,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x06,0xfc,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,
+ 0x12,0xfe,0xff,0x50,0xaa,0x2a,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xa5,
+ 0xfe,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xa7,0x44,0xff,0xff,0x0a,0x25,0xa5,0xa4,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x97,0x06,0xfc,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0x15,0xff,0xff,0x40,0xa9,0x92,0xea,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x55,0xfd,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xa1,0xff,0x7f,
+ 0x92,0x4a,0xaa,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x06,0xfc,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x95,0x8a,0xff,0x3f,0x84,0x54,0xa9,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,
+ 0x25,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x52,0xe0,0xff,0xbf,0x50,0xa9,0x4a,0xf2,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xa7,0x8e,0xfe,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa9,0xea,0xff,0x3f,0x24,0x95,0x54,
+ 0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0x23,0xfe,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x4a,0xf0,0xff,
+ 0x9f,0x50,0x69,0x49,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x8b,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x7f,0xa5,0xf4,0xff,0x0f,0x2d,0x75,0xaa,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xaf,0x03,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x9f,0x14,0xfa,0xff,0x2f,0xa8,0xfa,0x25,0xfd,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x97,0xd7,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xaa,0xfc,0xff,0x0f,0x4d,0xfd,
+ 0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0x83,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x12,0xfc,
+ 0xff,0x27,0x92,0xfe,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xd7,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x97,0x0a,0xff,0xff,0x83,0x56,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xef,0xc7,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xab,0x24,0xff,0xff,0x2b,0xaa,0xfe,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xe7,0xef,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x45,0xff,0xff,0x05,0x95,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0x82,
+ 0xff,0xff,0x51,0xa9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,
+ 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xa9,0xe8,0xff,0xff,0x85,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0x52,0xc1,0xff,0xff,0x90,0xd5,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x4d,0xe8,0xff,0xff,0xa5,
+ 0xe4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x51,
+ 0xf2,0xff,0x7f,0x40,0xd5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x3f,0x95,0xf8,0xff,0x7f,0xa9,0xea,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x15,0xfa,0xff,0x3f,0xa4,0xf4,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xa4,0xfc,0xff,0x7f,
+ 0x71,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,
+ 0x15,0xfe,0xff,0x3f,0x94,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xa7,0x0a,0xff,0xff,0x1f,0x79,0xf2,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0xa4,0xff,0xff,0x5f,0x8c,0xfa,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0x82,0xff,0xff,
+ 0x1f,0x5c,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xa4,0x92,0xff,0xff,0xbf,0x56,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x9a,0xc4,0xff,0xff,0x0f,0x2e,0xfd,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa2,0xf0,0xff,0xff,0xaf,0xa7,0xfe,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x55,0xe4,0xff,
+ 0xff,0x0f,0x57,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xbf,0x54,0xf2,0xff,0xff,0x9f,0x4b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x9f,0x92,0xf8,0xff,0xff,0xc7,0xab,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x15,0xfe,0xff,0xff,0x97,0xd7,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0x94,0xfc,
+ 0xff,0xff,0xc7,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x2f,0x05,0xfe,0xff,0xff,0xcf,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x53,0xa9,0xff,0xff,0xff,0xd3,0xeb,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x05,0xff,0xff,0xff,0xe3,
+ 0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x54,0xc2,
+ 0xff,0xff,0xff,0xeb,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x95,0xc8,0xff,0xff,0xff,0xf3,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0xa5,0xd2,0xff,0xff,0xff,0xff,0xf5,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xaa,0xe0,0xff,0xff,0xff,
+ 0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x49,
+ 0xf8,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x9f,0x2a,0xf5,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x4a,0xf8,0xff,0xff,0xff,0xff,0xfc,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x14,0xfd,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,
+ 0x4a,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xab,0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x95,0x52,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0x85,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x54,0xa2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x4a,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa5,0xe0,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x94,0xe4,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x5f,0x55,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0x12,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x54,0xfa,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x0a,0xfc,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x53,0x45,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x97,0x14,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4b,0x45,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x54,0x82,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x4a,0xe9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x52,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x55,0xe8,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x24,
+ 0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0x55,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x24,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x15,0xfe,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,
+ 0x49,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x2f,0x95,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x01,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xd5,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x57,0x81,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x97,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xe0,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x93,0xf4,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x57,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x2b,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x89,0xfc,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xfc,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x05,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x49,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x22,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x89,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xe9,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x9f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0x6f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f};
Index: gnus/etc/images/gnus/gnus.xpm
diff -u /dev/null gnus/etc/images/gnus/gnus.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/gnus.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,284 @@
+/* XPM */
+static char *gnus[] = {
+/* width height num_colors chars_per_pixel */
+"   271   273        3            1",
+/* colors */
+". s thing c #bf9900",
+"# s shadow c #ffcc00",
+"a s None c None",
+/* pixels */
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........######aaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............#######aaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................######aaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................######aaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................#######aaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......................#######aaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........................#######aaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........................######aaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........................######aaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa............................#######aaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..............................#######aaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................aaaaaaaaaaaaaaaaaaaaaa...........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............................#######aaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................aaaaaaaaaaaaaaaaaaa...............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............................#######aaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......................aaaaaaaaaaaaaaaa....................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................########aaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......................aaaaaaaaaaaaaa........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.................................#######aaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........................aaaaaaaaaaa............................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................................########aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........................aaaaaaaaa..............................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...................................#######aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............................aaaaaaa................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................................#######aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............................aaaaa..................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......######.......................#######aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................aaaa...................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#######aa....................#######aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................................aa.....................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaa.................#######aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................................a......................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaa................#######aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaa...............#######aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..............................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaa...............#######aaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaa..............#######aaaaa",
+"aaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..................................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaa..............#######aaaaa",
+"aaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaa.............#######aaaaa",
+"aaaaaaaa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaa..............####....................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaa............########aaaaa",
+"aaaaaaa.........aaaaaaaaaaaaaaaaaaaaaaaaaaa.............########...................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaa...........########aaaaa",
+"aaaaaaa...........aaaaaaaaaaaaaaaaaaaaaaa.............############..................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaa...........########aaaaa",
+"aaaaaaaa..........aaaaaaaaaaaaaaaaaaaaaa.............##############..................................................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaa...........########aaaaa",
+"aaaaaaaa...........aaaaaaaaaaaaaaaaaaaa............##################.......................##########................................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaa..........########aaaaa",
+"aaaaaaaa............aaaaaaaaaaaaaaaaaa............####################....................###############..............................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaa..........#######aaaaaa",
+"aaaaaaaa............aaaaaaaaaaaaaaaa..............#####################.................#####################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaa..aaaaa###aaaaaaaaaaaaaaaaaa..........#######aaaaaa",
+"aaaaaaaa.............aaaaaaaaaaaaaa..............#######################...............#######################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaa..aaaaa##aaaaaaaaaaaaaaaaaaa..........#######aaaaaa",
+"aaaaaaaaa.............aaaaaaaaaaa...............##########aa#############.............#########################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaa..........#######aaaaaa",
+"aaaaaaaaa.............aaaaaaaaa................#########aaaaaaa###########............##########################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........########aaaaaa",
+"aaaaaaaaa................aaaa..................#######aaaaaaaaaa###########..........############################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........########aaaaaa",
+"aaaaaaaaa.....................................######aaaaaaaaaaaaa###########.........#############################..........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........########aaaaaa",
+"aaaaaaaaa....................................######aaaaaaaaaaaaaaaa#########........###############################.........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........########aaaaaa",
+"aaaaaaaaaa.................................#######aaaaaaaaaaaaaaaaaa#########.......#######aaaaaaaaaaa##############..........................aaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#######aaaaaaa",
+"aaaaaaaaaa................................#######aaaaaaaaaaaaaaaaaaaa########......#####aaaaaaaaaaaaaaaaa############..........................aaaaaaaaaaaaaaaaaaaaaaaaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#######aaaaaaa",
+"aaaaaaaaaa...............................########aaaaaaaaaaaaaaaaaaaaa########....#####aaaaaaaaaaaaaaaaaaaaa##########..........................aaaaaaaaaaaaaaaaaaaaaaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#######aaaaaaa",
+"aaaaaaaaa#..............................########aaaaaaaaaaaaaaaaaaaaaaaa#.####...#####aaaaaaaaaaaaaaaaaaaaaaa##########...........................aaaaaaaaaaaaaaaaaaaa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#######aaaaaaa",
+"aaaaaaaaa#.............................########aaaaaaaaaaaaaaaaaaaaaaaaa...###..######aaaaaaaaaaaaaaaaaaaaaaaa##########...........................aaaaaaaaaaaaaaaaaaa......a#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........########aaaaaaa",
+"aaaaaaaa###...........................#########aaaaaaaaaaaaaaaaaaaaaaaa....##########aaaaaaaaaaaaaaaaaaaaaaaaaa##########............................aaaaaaaaaaaaaaa........##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........########aaaaaaa",
+"aaaaaaaa###..........................#########aaaaaaaaaaaaaaaaaaaaaaaaa....#########aaaaaaaaaaaaaaaaaaaaaaaaaaaa##########...............................aaaaaaaa...........##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........########aaaaaaa",
+"aaaaaaaa###.........................#########aaaaaaaaaaaaaaaaaaaaaaaaa....a#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaa##########................................................##aaaaaa...aaaaaaaaaaaaaaaaaaaaa......a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
+"aaaaaaa####........................#########aaaaaaaaaaaaaaaaaaaaaaaaa....aaa#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########...............................................##aaaaaa....aaaaaaaaaaaaaaaaaaa.......a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
+"aaaaaaa####.......................########aaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########..............................................##aaaaa.....aaaaaaaaaaaaaaaaaa.......a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
+"aaaaaa######....................#########aaaaaaaaaaaaaaaaaaaaaaaaaa.....a#aaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########............................................##aaaaaa......aaaaaaaaaaaaaaa.........a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
+"aaaaaa######...................#########aaaaaaaaaaaaaaaaaaaaaaaaaa......##aaa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########...........................................##aaaaa.......aaaaaaaaaaaaa..........aa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaa",
+"aaaaaa#######.................#########aaaaaaaaaaaaaaaaaaaaaaaaaaa.....a###aaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.........................................###aaaaa.........aaaaaaa..............a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........########aaaaaaaa",
+"aaaaaaa#######...............#########aaaaaaaaaaaaaaaaaaaaaaaaaaa.....a####aaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########........................................##aaaaa...............................a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaaa",
+"aaaaaaa########............##########aaaaaaaaaaaaaaaaaaaaaaaaaaa.....a####aaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.......................................##aaaaa...............................#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaaa",
+"aaaaaaaa##########.......###########aaaaaaaaaaaaaaaaaaaaaaaaaaa......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.....................................###aaaaa..............................#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#######aaaaaaaaa",
+"aaaaaaaaa##########################aaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########....................................##aaaaa...............................#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........########aaaaaaaaa",
+"aaaaaaaaa#########################aaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########..................................###aaaaa..............................#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaa",
+"aaaaaaaaaa#######################aaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########...............................####aaaaa..............................######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaa",
+"aaaaaaaaaaa#####################aaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.............................#####aaaaa.............................#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaa",
+"aaaaaaaaaaa###################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########...........................######aaaa..............................######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......########aaaaaaaaaa",
+"aaaaaaaaaaaa#################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########.........................######aaaaa.............................#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaaa",
+"aaaaaaaaaaaaa###############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaa#########.......................#######aaaa.............................#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#######aaaaaaaaaaa",
+"aaaaaaaaaaaaaaa###########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aaaaaaaaaaaaaaaa#########....................#########aaaa............................########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......aaaaaaaaaaaaaaaa#########..................#########aaaaa..........................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........aaaaaaaaaaaaaaa###########.............###########aaaaa.........................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa............aaaaaaaaaaaaaaa##############....###############aaaaaaa.......................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............aaaaaaaaaaaaaaa##############################aaaaaaaaa.....................############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............aaaaaaaaaaaaaaa############################aaaaaaaaaaa...................############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaa................aaaaaaaaaaaaaaaa##########################aaaaaaaaaaaa#................#############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaa.................aaaaaaaaaaaaaaaa########################aaaaaaaaaaaaa##..............#############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaa...................aaaaaaaaaaaaaaaa######################aaaaaaaaaaaaa#####.........###############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaa....................aaaaaaaaaaaaaaaaa###################aaaaaaaaaaaaaaa########..##################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaaaaa....................aaaaaaaaaaaaaaaaaaa################aaaaaaaaaaaaaaaa###########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......aaaaa......................aaaaaaaaaaaaaaaaaaaaa###########aaaaaaaaaaaaaaaaaa##########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......aaaaa.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaaa.......aaaaaa.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaa........a###a.........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a####aaaaaaaaaaaaaaaaaaaaaaaaaaaa........a####a.........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#####aaaaaaaaaaaaaaaaaaaaaaaaaaa........a#####aaa.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....a####aaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaa#.....................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a####aaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaa##....................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaa..........######aaaaa#####..................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a####aaaaaaaaaaaaaaaaaaaaaaaaa...........#####aaaaa#######..................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaaaaa...........#####aaaaaa#######..................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaaaaa...........######aaaaa#########.................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaaaa...........######aaaaa###########................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaaa............#######aaaaaaa##########...............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......####aaaaaaaaaaaaaaaaaaaaaa............#######aaaaaaaaa#########...............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....####aaaaaaaaaaaaaaaaaaaaaa............#######aaaaaaaaaaaa########..............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......###aaaaaaaaaaaaaaaaaaaaa............#########aaaaaaaaaaaaa#######..............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......###aaaaaaaaaaaaaaaaaaa.............#########aaaaaaaaaaaaaaa#######.............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#aaaaaaaaaaaaaaaaaaa.............#########aaaaaaaaaaaaaaaaa######.............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#aaaaaaaaaaaaaaaaa..............#########aaaaaaaaaaaaaaaaaaa#####.............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#aaaaaaaaaaaaaaa...............#########aaaaaaaaaaaaaaaaaaaa#####.............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........aaaaaaaaaaaaa...............#########aaaaaaaaaaaaaaaaaaaaaa#####............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...............aaaaa..................########aaaaaaaaaaaaaaaaaaaaaaaaa####............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......................................########aaaaaaaaaaaaaaaaaaaaaaaaaa####...........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....................................########aaaaaaaaaaaaaaaaaaaaaaaaaaaa###...........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa####aaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaa####..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa####aaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa................................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..............................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.............................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.........#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa####aaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa............................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.........#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...........................#########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.........#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aaa#####aaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........................##########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#........##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####aaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......................###########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#........##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#...................############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#........#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##................#############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.......##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###............##############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#......###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####.........###############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#......###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######..###################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.....###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.....###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######a.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa########################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#.....###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#....####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######a......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##################aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#....###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##############aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#...####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###########aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##..####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa######aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....a#aaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaa#######aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#aaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaa#######aa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......#aaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaaa########a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......#aaaaaaaaaaaaaaaaaaaaa#####aaaaaaaaa########a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#aaaaaaaaaaaaaaaaaaaa#######aaaaaaa#########a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......##aaaaaaaaaaaaaaaaaaa########a..aa##########a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........##aaaaaaaaaaaaaaaaaa#########....##########a........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#aaaaaaaaaaaaaaaaaa#########......#########........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#aaaaaaaaaaaaaaaaaa#########......########a........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........##aaaaaaaaaaaaaaaaa#########.......#######.........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........##aaaaaaaaaaaaaaaaa########.........#####.........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........###aaaaaaaaaaaaaaaa########........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........###aaaaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........###aaaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........####aaaaaaaaaaaaaaa#########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaa#########......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaa#########......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa#########......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......a######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaa#######........................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaa########.......................aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......a#######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaa#######.........a..............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaa#######a........aaa............aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....aa######aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaa#######........aaaaa..........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaa#######a.......aaaaaaa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....aaa#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaa######a........aaaaaaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaa#######........aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaa#######.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaa######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaa#######a......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaa#######.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaa#######.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaa#######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaa######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaa######aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaa######a.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaa#####aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaa####aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaa#####aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaa####aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaa####aa.......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaa###aaa......aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaa####aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaa####aaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaa###aaa.....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaa###aaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaa####aaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaa###aaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaa###aaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaa....aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa........#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa......#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...#####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.a####aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.aa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa###aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa##aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+};
+
Index: gnus/etc/images/gnus/important.xpm
diff -u /dev/null gnus/etc/images/gnus/important.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/important.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 2  1",
+"! c red",
+"w c Gray75",
+/* pixels */
+"wwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwww!!!wwwwwwwwwwww",
+"wwwwwwwww!!!wwwwwwwwwwww",
+"wwwwwwww!!!!!wwwwwwwwwww",
+"wwwwwwww!!!!!wwwwwwwwwww",
+"wwwwwww!!!!!!!wwwwwwwwww",
+"wwwwwww!!!!!!!wwwwwwwwww",
+"wwwwwww!!!!!!!wwwwwwwwww",
+"wwwwwww!!!!!!!wwwwwwwwww",
+"wwwwwww!!!!!!!wwwwwwwwww",
+"wwwwwww!!!!!!!wwwwwwwwww",
+"wwwwwww!!!!!!!wwwwwwwwww",
+"wwwwwwww!!!!!wwwwwwwwwww",
+"wwwwwwww!!!!!wwwwwwwwwww",
+"wwwwwwww!!!!!wwwwwwwwwww",
+"wwwwwwwww!!!wwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwww!!!wwwwwwwwwwww",
+"wwwwwwww!!!!!wwwwwwwwwww",
+"wwwwwwww!!!!!wwwwwwwwwww",
+"wwwwwwwww!!!wwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwww"
+};
Index: gnus/etc/images/gnus/kill-group.pbm
Index: gnus/etc/images/gnus/kill-group.xpm
diff -u /dev/null gnus/etc/images/gnus/kill-group.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/kill-group.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,30 @@
+/* XPM */
+static char * kill_group_xpm[] = {
+"24 24 3 1",
+".	c None",
+"o	c #000000000000",
+"+	c #9A9A6C6C4E4E",
+"o..o..o..o..o..o..o..o..",
+"........................",
+"........................",
+"o..o..o..o..o..o..o..o..",
+"........................",
+"........................",
+"o..o..o..o..++.o..o..o..",
+".......++..++++.........",
+"........++.+++..........",
+"o..o..o.+++++..o..o..o..",
+".........+++............",
+".........++++...........",
+"o..o..o.++++++.o..o..o..",
+"........++.++++.........",
+".......++...++++........",
+"o..o...+.o...++o..o..o..",
+"........................",
+"........................",
+"o..o..o..o..o..o..o..o..",
+"........................",
+"........................",
+"o..o..o..o..o..o..o..o..",
+"........................",
+"........................"};
Index: gnus/etc/images/gnus/mail-reply.pbm
Index: gnus/etc/images/gnus/mail-reply.xpm
diff -u /dev/null gnus/etc/images/gnus/mail-reply.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/mail-reply.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char * mail_reply_xpm[] = {
+"24 24 5 1",
+" 	c None",
+".	c #000000000000",
+"X	c #E1E1E0E0E0E0",
+"O	c #FFFFFFFFFFFF",
+"o	c #C7C7C6C6C6C6",
+"               ..       ",
+"               .X.      ",
+"              ..XX.     ",
+"         ......XoXX..   ",
+"       ...OOO.XooXXX.   ",
+"      ..OOOO.XooXXX.    ",
+"   ...OOOOO.XooXXX...   ",
+"  ..OOOOOO.XXooXX.OO..  ",
+"  ...OOOO.oooXXX......  ",
+"  .O...O.oXooXXX...OO.  ",
+"  .OOO...oXoXX...OOOO.  ",
+"  .OOOOO...X...OOOOOO.  ",
+"  .OOOOO.O...OO.OOOOO.  ",
+"  .OOO..OOOOOOOO..OOO.  ",
+"  .OO.OOOOOOOOOOOO.OO.  ",
+"  .O.OOOOOOOOOOOOOO.O.  ",
+"  ..OOOOOOOOOOOOOOOO..  ",
+"  ....................  ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Index: gnus/etc/images/gnus/next-ur.pbm
Index: gnus/etc/images/gnus/next-ur.xpm
diff -u /dev/null gnus/etc/images/gnus/next-ur.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/next-ur.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,35 @@
+/* XPM */
+static char * next_ur_xpm[] = {
+"24 24 8 1",
+".	c None",
+" 	c #000000000000",
+"X	c #A5A5A5A59595",
+"o	c #C7C7C6C6C6C6",
+"O	c #FFFF00000000",
+"+	c #9A9A6C6C4E4E",
+"@	c #E1E1E0E0E0E0",
+"#	c #FFFFFFFFFFFF",
+" .. .. .. .. .. .. .. ..",
+"........................",
+"............X...........",
+" .. .. .. .XXX. .. .. ..",
+".........XXooOX.........",
+".......XXooo+O@X........",
+" .. XXXoooo++@@@X. .. ..",
+"....X@Xoooooo@@@X.......",
+"....X@@Xooo@@@@@@X......",
+" .. X@@XXoo@@@@@@@X.. ..",
+"....X@@Xoo@@@@@@@@@X....",
+"....X@Xo@@@XX@@@@@@oX...",
+" .. oXoo@XXooO@@@@@@X ..",
+"....oXoXXooo+OX@@@@Xo...",
+"....XXXoooo++@@X@@Xo....",
+" .. X@Xoooooo@@@XX .. ..",
+"....X@@Xooo@@@@@@X......",
+"....X@@XXoo@@@@@@@X.....",
+" .. X@@Xoo@@@@@@@@@X. ..",
+"....X@Xo@  @@@@@@@  X...",
+"... oXoo ## @@ @@ ## ...",
+" .. oXo ####  @  #### ..",
+".....oX #### @@@ #### ..",
+".....oX@ ## @@@@X ## ..."};
Index: gnus/etc/images/gnus/oort.xface
diff -u /dev/null gnus/etc/images/gnus/oort.xface:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/oort.xface	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,3 @@
+X-Face: $BP*2z+\?fNM."!*~JsIgw(Y]n?WG!KMc;^jL$SLrt@X4%uMguO/$3HO<5@43P@[~'kE'fG
+ #YdP[sb6IJ5|Sm[z#9sI|)iJ})U5;Rt-?jI3i24zoJmonTV}kTVOm/5wMCnc3P~d#+BF1c&N6mdF{u
+ CE+<;lN!v~JRyR"q0d5<\y]faXpTC4,wpQ{=<==?LRA`}3qqIgr
Index: gnus/etc/images/gnus/post.pbm
Index: gnus/etc/images/gnus/post.xpm
diff -u /dev/null gnus/etc/images/gnus/post.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/post.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,35 @@
+/* XPM */
+static char * post_xpm[] = {
+"24 24 8 1",
+".	c None",
+" 	c #434343434343",
+"X	c #A5A5A5A59595",
+"O	c #000000000000",
+"+	c #C7C7C6C6C6C6",
+"@	c #FFFF00000000",
+"#	c #9A9A6C6C4E4E",
+"$	c #E1E1E0E0E0E0",
+"O..O..O..O..O..O..O..O..",
+"........................",
+"............X...........",
+"O..O..O..O.XXX.O..O..O..",
+".........XX++@X.........",
+".......XX+++#@$X........",
+"O..OXXX++++##$$$X.O..O..",
+"....X$X++++++$$$X.......",
+"....X$$X+++$$$$$$X......",
+"O..OX$$XX++$$$$$$$X..O..",
+"....X$$X++$$$$$$$$$X....",
+"....X$X+$$$$$$$$$$$+X...",
+"O..O+X++$$$$$$$$$$$$XO..",
+"....+X+$$$$$$$$$$$$X+...",
+".....+X$$$$$$$$$$$X+....",
+"O..O.+X$$$$$$$$$XXO..O..",
+"......+X$$$$$$$X++......",
+"......+X$$$$$XX+........",
+"O..O..O+X$$$X++O..O..O..",
+".......+X$$X++..........",
+"........+XX+............",
+"O..O..O..O+.O..O..O..O..",
+"........................",
+"........................"};
Index: gnus/etc/images/gnus/prev-ur.pbm
Index: gnus/etc/images/gnus/prev-ur.xpm
diff -u /dev/null gnus/etc/images/gnus/prev-ur.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/prev-ur.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,35 @@
+/* XPM */
+static char * prev_ur_xpm[] = {
+"24 24 8 1",
+".	c None",
+" 	c #000000000000",
+"X	c #A5A5A5A59595",
+"o	c #C7C7C6C6C6C6",
+"O	c #FFFF00000000",
+"+	c #9A9A6C6C4E4E",
+"@	c #E1E1E0E0E0E0",
+"#	c #FFFFFFFFFFFF",
+" .. .. .. .. .. .. .. ..",
+"........................",
+"............X...........",
+" .. .. .. .XXX. .. .. ..",
+".........XXooOX.........",
+".......XXooo+O@X........",
+" .. XXXoooo++@@@X. .. ..",
+"....X@Xoooooo@@@X.......",
+"....X@@Xooo@@@@@@X......",
+" .. X@@XXoo@@@@@@@X.. ..",
+"....X@@Xo  @@@@@@  X....",
+"....X@Xo ## X  @ ## X...",
+" .. oXo #XXXoO@ ####  ..",
+"....oXoXXooo+OX #### ...",
+"....XXXoooo++@@X ## ....",
+" .. X@Xoooooo@@@X  .. ..",
+"....X@@Xooo@@@@@@X......",
+"....X@@XXoo@@@@@@@X.....",
+" .. X@@Xoo@@@@@@@@@X. ..",
+"....X@Xo@@@@@@@@@@@@X...",
+"... oXoo@@@@@@@@@@@@X...",
+" .. oXo@@@@@@@@@@@@X....",
+".....oX@@@@@@@@@@@X.....",
+".....oX@@@@@@@@@@X......"};
Index: gnus/etc/images/gnus/preview.xbm
diff -u /dev/null gnus/etc/images/gnus/preview.xbm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/preview.xbm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,10 @@
+#define preview_width 24
+#define preview_height 24
+static char preview_bits[] = {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0xc0,0x03,0x00,0x3e,0x06,0xf0,0x03,0x04,0x08,0x00,0x0a,0x78,0x00,0x09,
+ 0x88,0xf9,0x08,0x10,0xc6,0x10,0x10,0x3a,0x13,0x10,0x06,0x15,0x20,0x02,0x29,
+ 0x20,0x02,0x31,0x20,0xad,0x0f,0x40,0xf9,0x03,0xc0,0xb8,0x07,0x80,0x07,0x0e,
+ 0x80,0x01,0x1c,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x00,
+ 0x00,0x00,0x39,0x00,0x00,0x00,0x08,0xc0,0x12,0x42,0x00,0x00,0x00,0x00,0x38,
+ 0x82,0x18,0x08,0x00,0x00,0x00 };
Index: gnus/etc/images/gnus/preview.xpm
diff -u /dev/null gnus/etc/images/gnus/preview.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/preview.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,33 @@
+/* XPM */
+static char *prev1[]={
+"24 24 6 1",
+". c None",
+"# c #000000",
+"d c #46463e",
+"a c #676663",
+"c c #a8a7a3",
+"b c #ebeae4",
+"........................",
+"........................",
+"........................",
+"........................",
+"........................",
+"..............####......",
+".........#####abbc#.....",
+"....#####acbbbbbbc#.....",
+"...#acbbbbbbbbbbacc#....",
+"...#baabbbbbbbbcacb#....",
+"...#cbcaabbd##dacbb#....",
+"....#bbbccdcbbcdabbc#...",
+"....#bbbbdccaaccdacb#...",
+"....#cbbb#abbbbb#bac#...",
+".....#bbb#cbbbbc#bbac#..",
+".....#bbbdcbbbbddbbc##..",
+".....#cbccdcbbd#####....",
+"......#babbd##dd##......",
+"......#acbc###.####.....",
+"......#aa##......###....",
+".......##.........###...",
+"...................##...",
+"........................",
+"........................"};
Index: gnus/etc/images/gnus/receipt.xpm
diff -u /dev/null gnus/etc/images/gnus/receipt.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/receipt.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char * receipt_xpm[] = {
+"24 24 5 1",
+" 	c None",
+".	c #FFFFFFFFFFFF",
+"X	c #676766666363",
+"o	c #FFFF00000000",
+"O	c #AEAE3E3E4848",
+"                        ",
+"                        ",
+"                   ..   ",
+"                    .   ",
+"                     .  ",
+"                     .  ",
+"                   ..   ",
+"           Xooo  ..     ",
+"      Xoooooooo..       ",
+" Xoooooooooooooo  ...   ",
+" oooooooooooOOoo .      ",
+" ooooooooooOOOOo.       ",
+"  oooooooooOO...o       ",
+"  ooooooooooOOooo       ",
+"  ooooooooooooooo       ",
+"   ooooooooooooooo      ",
+"   oooooooooooooo       ",
+"   ooooooooooo          ",
+"    ooooooo             ",
+"    oooo                ",
+"    oo                  ",
+"                        ",
+"                        ",
+"                        "};
Index: gnus/etc/images/gnus/reply-wo.pbm
Index: gnus/etc/images/gnus/reply-wo.xpm
diff -u /dev/null gnus/etc/images/gnus/reply-wo.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/reply-wo.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,31 @@
+/* XPM */
+static char * reply_wo_xpm[] = {
+"24 24 4 1",
+" 	c None",
+".	c #000000000000",
+"X	c #E1E1E0E0E0E0",
+"O	c #FFFFFFFFFFFF",
+"                        ",
+"                        ",
+"                        ",
+"           ....         ",
+"          ..X....       ",
+"         ..XX.XX..      ",
+"       .O.XX.XXXX..     ",
+"     ..O.XXX.XXXX...    ",
+"    .OO.XXXX.X.......   ",
+"   .OO.XXXX...XXX.OO..  ",
+" ..OO.XX....XXXX.OOOO.. ",
+" .......XX.XXXX.OOO.... ",
+" .OOO.XXX.XXXX.OO..OOO. ",
+" .OOOO....XXX....OOOOO. ",
+" .OOOOOOO..XX..OOOOOOO. ",
+" .OOOOOOO......OOOOOOO. ",
+" .OOOOOO.OO..O..OOOOOO. ",
+" .OOOOO.OOOOOOOO.OOOOO. ",
+" .OOOO.OOOOOOOOOO.OOOO. ",
+" .OOO.OOOOOOOOOOOO.OOO. ",
+" .O..OOOOOOOOOOOOOO..O. ",
+" ..OOOOOOOOOOOOOOOOOO.. ",
+" ...................... ",
+"                        "};
Index: gnus/etc/images/gnus/reply.pbm
Index: gnus/etc/images/gnus/reply.xpm
diff -u /dev/null gnus/etc/images/gnus/reply.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/reply.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,31 @@
+/* XPM */
+static char * reply_xpm[] = {
+"24 24 4 1",
+" 	c None",
+".	c #000000000000",
+"X	c #E1E1E0E0E0E0",
+"O	c #FFFFFFFFFFFF",
+"                        ",
+"                        ",
+"                        ",
+"           ....         ",
+"          ..XXX..       ",
+"         ..XXXXX..      ",
+"       .O.XXXXXXX..     ",
+"     ..O.XXXXXXXXX..    ",
+"    .OO.XXXXXXXXXX...   ",
+"   .OO.XXXXXXXXXX.OO..  ",
+" ..OO.XXXXXXXXXX.OOOO.. ",
+" .....XXXXXXXXX.OOO.... ",
+" .OOO.XXXXXXXX.OO..OOO. ",
+" .OOOO...XXXXX...OOOOO. ",
+" .OOOOOOO..XX..OOOOOOO. ",
+" .OOOOOOO......OOOOOOO. ",
+" .OOOOOO.OO..O..OOOOOO. ",
+" .OOOOO.OOOOOOOO.OOOOO. ",
+" .OOOO.OOOOOOOOOO.OOOO. ",
+" .OOO.OOOOOOOOOOOO.OOO. ",
+" .O..OOOOOOOOOOOOOO..O. ",
+" ..OOOOOOOOOOOOOOOOOO.. ",
+" ...................... ",
+"                        "};
Index: gnus/etc/images/gnus/rot13.pbm
Index: gnus/etc/images/gnus/rot13.xpm
diff -u /dev/null gnus/etc/images/gnus/rot13.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/rot13.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char * rot13_xpm[] = {
+"24 24 5 1",
+" 	c None",
+".	c #A5A5A5A59595",
+"X	c #C7C7C6C6C6C6",
+"o	c #E1E1E0E0E0E0",
+"O	c #919187876969",
+"                        ",
+"                        ",
+"                        ",
+"             .          ",
+"           ..X.         ",
+"         ..XXX.         ",
+"       ..XXXXXo.        ",
+"    ...XXXXXXooo.       ",
+"    .o.XXXXXoooo.       ",
+"    .oo.XXXooOooo.      ",
+"    .oo..XXoOXOOoo.     ",
+"    .oo.XXoOXooOXoo.    ",
+"    .o.XoooOOXXOXooX.   ",
+"     .XXooOOXOOXoooo.   ",
+"     .XooOOOooooooo.    ",
+"      .oOOXOXooooo.     ",
+"      .oOOXoooooo.      ",
+"       .oOOXooo..       ",
+"       .oooooo.         ",
+"        .ooo..          ",
+"        .oo.            ",
+"         ..             ",
+"                        ",
+"                        "};
Index: gnus/etc/images/gnus/save-aif.pbm
Index: gnus/etc/images/gnus/save-aif.xpm
diff -u /dev/null gnus/etc/images/gnus/save-aif.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/save-aif.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,33 @@
+/* XPM */
+static char * save_aif_xpm[] = {
+"24 24 6 1",
+" 	c None",
+".	c #999999999999",
+"X	c #E1E1E0E0E0E0",
+"o	c #C7C7C6C6C6C6",
+"O	c #000000000000",
+"+	c #FFFFFFFFFFFF",
+"                        ",
+"                        ",
+"       .............    ",
+"       .XXXXXXXXXX.X..  ",
+"       .XXXXXXXXXX.XX.  ",
+"       .XXXXXXXXXX....  ",
+"       .XXXXXXXXXXooo.  ",
+"       .XXXXXXXXXXXXX.  ",
+"       .XXXXXXXXXXXXX.  ",
+"       .XXXXXXXXXXXXX.  ",
+" OOOOOOOOOOOOOOXXXXXX.  ",
+" O..O+++++++O.OXXXXXX.  ",
+" O..O+++++++O.OXXXXXX.  ",
+" O..O+++++++O.OXXXXXX.  ",
+" O..O+++++++O.OXXXXXX.  ",
+" O..O+++++++O.OXXXXXX.  ",
+" O..OOOOOOOOO.OXXXXXX.  ",
+" O............OXXXXXX.  ",
+" O............OXXXXXX.  ",
+" O..OOOOOOOOO.O.......  ",
+" O..OoooooO++.O         ",
+" O..OoooooO++.O         ",
+"  O.OoooooO++.O         ",
+"   OOOOOOOOOOOO         "};
Index: gnus/etc/images/gnus/save-art.pbm
Index: gnus/etc/images/gnus/save-art.xpm
diff -u /dev/null gnus/etc/images/gnus/save-art.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/save-art.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char * save_art_xpm[] = {
+"24 24 5 1",
+" 	c None",
+".	c #000000000000",
+"X	c #FFFFFFFFFFFF",
+"o	c #999999999999",
+"O	c #C7C7C6C6C6C6",
+"                        ",
+"                        ",
+"     .................. ",
+"     ...XXXXXXXXXXXXX.. ",
+"     .XX..XXXXXXXXX..X. ",
+"     .XXXX..XXXXX..XXX. ",
+"     .XXXXX......XXXXX. ",
+"     .XXX..XX..XX..XXX. ",
+"     .XX..XXXXXXXX..XX. ",
+"     ...XXXXXXXXXXXX... ",
+" ..............XXXXXXX. ",
+" .oo.XXXXXXX.o......... ",
+" .oo.XXXXXXX.o.         ",
+" .oo.XXXXXXX.o.         ",
+" .oo.XXXXXXX.o.         ",
+" .oo.XXXXXXX.o.         ",
+" .oo.........o.         ",
+" .oooooooooooo.         ",
+" .oooooooooooo.         ",
+" .oo.........o.         ",
+" .oo.OOOOO.XXo.         ",
+" .oo.OOOOO.XXo.         ",
+"  .o.OOOOO.XXo.         ",
+"   ............         "};
Index: gnus/etc/images/gnus/subscribe.pbm
Index: gnus/etc/images/gnus/subscribe.xpm
diff -u /dev/null gnus/etc/images/gnus/subscribe.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/subscribe.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char * subscribe_xpm[] = {
+"24 24 5 1",
+" 	c None",
+".	c #A5A5A5A59595",
+"X	c #E1E1E0E0E0E0",
+"o	c #C7C7C6C6C6C6",
+"O	c #8686ADAD7D7D",
+"                        ",
+"                        ",
+"                        ",
+"     ...                ",
+"   ..XXX.....           ",
+"...XXXXX..XXX. ...      ",
+".X.XX...XXXX...XXX.     ",
+".XX.X.X.XX...XXXXX.     ",
+".XX...XX.X.X.XXXXXX.    ",
+".XX.o.XX...XX.XXXXXX.   ",
+".X.oo.XX.o.XX..XXXXXX.  ",
+"o.ooo.X.oo.XX.XXXOXXX.  ",
+"o.oXXo.ooo.X.oXXOXXXXX. ",
+" o.XXo.oXXo.ooXXOXXXXX. ",
+" o.XXXo.XXo.oXXXOXXXXXX.",
+"  o.XXo.XXXo.XOOOOXXXXX.",
+"  o.XXoo.XXo.XXXOOXXXXX.",
+"   o.XXo.XXXo.XXXXXXX...",
+"   o.XX.o.XXo.XXXXXX.oo ",
+"    o..oo.XX.o.XXX..o   ",
+"     oo  o..oo.XX.oo    ",
+"          oo  o..o      ",
+"               oo       ",
+"                        "};
Index: gnus/etc/images/gnus/unimportant.xpm
diff -u /dev/null gnus/etc/images/gnus/unimportant.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/unimportant.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 2  1",
+"! c blue",
+"w c Gray75",
+/* pixels */
+"wwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"ww!!!wwwwww!!!wwwwww!!!w",
+"www!!!wwwww!!!wwwww!!!ww",
+"wwww!!!wwww!!!wwww!!!www",
+"wwwww!!!www!!!www!!!wwww",
+"wwwwww!!!ww!!!ww!!!wwwww",
+"wwwwwww!!!w!!!w!!!wwwwww",
+"wwwwwwww!!!!!!!!!wwwwwww",
+"wwwwwwwww!!!!!!!wwwwwwww",
+"wwwwwwwwww!!!!!wwwwwwwww",
+"wwwwwwwwwww!!!wwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwww",
+"wwwwwwwwwwwwwwwwwwwwwwww"
+};
Index: gnus/etc/images/gnus/unsubscribe.pbm
Index: gnus/etc/images/gnus/unsubscribe.xpm
diff -u /dev/null gnus/etc/images/gnus/unsubscribe.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/unsubscribe.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,32 @@
+/* XPM */
+static char * unsubscribe_xpm[] = {
+"24 24 5 1",
+" 	c None",
+".	c #A5A5A5A59595",
+"X	c #E1E1E0E0E0E0",
+"o	c #C7C7C6C6C6C6",
+"O	c #FFFF00000000",
+"                        ",
+"                        ",
+"                        ",
+"     ...                ",
+"   ..XXX.....           ",
+"...XXXXX..XXX. ...      ",
+".X.XX...XXXX...XXX.     ",
+".XX.X.X.XX...XXXXX.     ",
+".XX...XX.X.X.XXXXXX.    ",
+".XX.o.XX...XX.XXXXXX.   ",
+".X.oo.XX.o.XX..XXXXXX.  ",
+"o.ooo.X.oo.XX.XXXXXXX.  ",
+"o.oXXo.ooo.X.oXXXXXXXX. ",
+" o.XXo.oXXo.ooXXOXXXXX. ",
+" o.XXXo.XXo.oXXXOXXXXXX.",
+"  o.XXo.XXXo.XOOOXXXXXX.",
+"  o.XXoo.XXo.XoOOOXXXXX.",
+"   o.XXo.XXXo.XOoOXXX...",
+"   o.XX.o.XXo.XOXoXX.oo ",
+"    o..oo.XX.o.oXX..o   ",
+"     oo  o..oo.XX.oo    ",
+"          oo  o..o      ",
+"               oo       ",
+"                        "};
Index: gnus/etc/images/gnus/uu-decode.pbm
Index: gnus/etc/images/gnus/uu-decode.xpm
diff -u /dev/null gnus/etc/images/gnus/uu-decode.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/uu-decode.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,36 @@
+/* XPM */
+static char * uu_decode_xpm[] = {
+"24 24 9 1",
+" 	c None",
+".	c #919187876969",
+"X	c #C2C2B9B99C9C",
+"o	c #868686868686",
+"O	c #8F8F8F8F8F8F",
+"+	c #000000000000",
+"@	c #4C4C4C4C4C4C",
+"#	c #E9E9EFEFE8E8",
+"$	c #8686ADAD7D7D",
+"                        ",
+"                        ",
+"                        ",
+"    ..............      ",
+"    X.o.........O.++    ",
+"    XX++++++++++..++    ",
+"    XX@########+..++    ",
+"    XX@########+..++    ",
+"    XX@$#$$$#$#+..++    ",
+"    XX@#$$$$$$#+..++    ",
+"    XX@##$#####+..++    ",
+"    XX@##$#$$##+..++    ",
+"    XX@##$#$$##+..++    ",
+"    XX@##$$#$$#+..++    ",
+"    XX@######$#+..++    ",
+"    XX@########+..++    ",
+"    XX@########+..++    ",
+"    XX.@@@@@@@@@..++    ",
+"    X.XXXXXXXXXX..++    ",
+"    .XXXXXXXXXXXX.++    ",
+"     +++++++++++++++    ",
+"     +++++++++++++++    ",
+"                        ",
+"                        "};
Index: gnus/etc/images/gnus/uu-post.pbm
Index: gnus/etc/images/gnus/uu-post.xpm
diff -u /dev/null gnus/etc/images/gnus/uu-post.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/gnus/uu-post.xpm	Sat Feb 19 06:08:41 2005
@@ -0,0 +1,35 @@
+/* XPM */
+static char * uu_post_xpm[] = {
+"24 24 8 1",
+".	c None",
+"X	c #000000000000",
+"+	c #C2C2B9B99C9C",
+"@	c #919187876969",
+"#	c #868686868686",
+"%	c #4C4C4C4C4C4C",
+"&	c #E9E9EFEFE8E8",
+"*	c #8686ADAD7D7D",
+"X..X..X..X.XX..X..X..X..",
+"..........X.X...........",
+".........X...X..........",
+"X..X..X.XX..X.XX..X..X..",
+".......X.......X........",
+"......X.........X.......",
+"X..X+X@@@@@@@@@@@XX..X..",
+"....+@@@@@@@@@@@@@......",
+"....++XXXXXXXXXX@@......",
+"X..X++%&&&&&&&&X@@X..X..",
+"....++%&&&&&&&&X@@......",
+"....++%*&***&*&X@@......",
+"X..X++%&******&X@@X..X..",
+"....++%&&*&&&&&X@@......",
+"....++%&&*&**&&X@@......",
+"X..X++%&&*&**&&X@@X..X..",
+"....++%&&**&**&X@@......",
+"....++%&&&&&&*&X@@......",
+"X..X++%&&&&&&&&X@@X..X..",
+"....++%&&&&&&&&X@@......",
+"....++@%%%%%%%%%@@......",
+"X..X+@++++++++++@@X..X..",
+"....+++++++++++++@......",
+"........................"};
Index: gnus/etc/images/gnus/x-splash
Index: gnus/etc/images/smilies/blink.pbm
Index: gnus/etc/images/smilies/blink.xpm
diff -u /dev/null gnus/etc/images/smilies/blink.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/blink.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * blink_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".+++++++..++.",
+".+++++++..++.",
+".++...++++++.",
+".+++++++++++.",
+".++++++++.++.",
+".++.+++++.++.",
+".+++.....+++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/braindamaged.xpm
diff -u /dev/null gnus/etc/images/smilies/braindamaged.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/braindamaged.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * mad_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".++...++++++.",
+".++.+.+...++.",
+".++...+.+.++.",
+".++++++...++.",
+".+.+++++++.+.",
+".+.+++++++.+.",
+".++.+++++.++.",
+".+++.....+++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/cry.xpm
diff -u /dev/null gnus/etc/images/smilies/cry.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/cry.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * cry_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".++..+++..++.",
+".++++++++.++.",
+".+++++++.+.+.",
+".+++++++.+.+.",
+".++++++++..+.",
+".+++.....+++.",
+".++.+++++.++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/dead.xpm
diff -u /dev/null gnus/etc/images/smilies/dead.xpm:1.1
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/dead.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * dead_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".++.+.+.+.++.",
+".+++.+++.+++.",
+".++.+.+.+.++.",
+".+++++++++++.",
+".+++++++++++.",
+".+.+++++++.+.",
+".++.......++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/evil.xpm
diff -u /dev/null gnus/etc/images/smilies/evil.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/evil.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * diabolic_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".++.+++++.++.",
+".++..+++..++.",
+".++...+...++.",
+".+++++++++++.",
+".+.+++++++.+.",
+".++.+++++.++.",
+".+++.+++.+++.",
+".++++...++++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/forced.xpm
diff -u /dev/null gnus/etc/images/smilies/forced.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/forced.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * forced_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".++..+++..++.",
+".++..+++..++.",
+".+++++++++++.",
+".+++++++++++.",
+".+.+++++++.+.",
+".+.+++++++.+.",
+".+.........+.",
+".+++++++++++.",
+" ...+++++... ",
+"   .......   "};
Index: gnus/etc/images/smilies/frown.pbm
Index: gnus/etc/images/smilies/frown.xpm
diff -u /dev/null gnus/etc/images/smilies/frown.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/frown.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * frown_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".++..+++..++.",
+".++++.+.++++.",
+".+...+++...+.",
+".+...+++...+.",
+".+++++++++++.",
+".+++.....+++.",
+".++.+++++.++.",
+".++.+++++.++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/grin.xpm
diff -u /dev/null gnus/etc/images/smilies/grin.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/grin.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,21 @@
+/* XPM */
+static char * grin_xpm[] = {
+"13 14 4 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"@	c #FFFFFF",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".++..+++..++.",
+".++..+++..++.",
+".+++++++++++.",
+".+.........+.",
+".+.@@@@@@@.+.",
+".++.@@@@@.++.",
+".+++.....+++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/indifferent.xpm
diff -u /dev/null gnus/etc/images/smilies/indifferent.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/indifferent.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * indifferent_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".++..+++..++.",
+".++..+++..++.",
+".+++++++++++.",
+".+++++++++++.",
+".+++++++++++.",
+".++.......++.",
+".+++++++++++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/reverse-smile.xpm
diff -u /dev/null gnus/etc/images/smilies/reverse-smile.xpm:1.1
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/reverse-smile.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * reverse_smile_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++.....+++.",
+".++.+++++.++.",
+".++.+++++.++.",
+".+++++++++++.",
+".+++++++++++.",
+".++..+++..++.",
+".++..+++..++.",
+".+++++++++++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/sad.pbm
Index: gnus/etc/images/smilies/sad.xpm
diff -u /dev/null gnus/etc/images/smilies/sad.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/sad.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * sad_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".++..+++..++.",
+".++..+++..++.",
+".+++++++++++.",
+".+++++++++++.",
+".+++.....+++.",
+".++.+++++.++.",
+".++.+++++.++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/smile.pbm
Index: gnus/etc/images/smilies/smile.xpm
diff -u /dev/null gnus/etc/images/smilies/smile.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/smile.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * smile_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".++..+++..++.",
+".++..+++..++.",
+".+++++++++++.",
+".+++++++++++.",
+".++.+++++.++.",
+".++.+++++.++.",
+".+++.....+++.",
+" .+++++++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/images/smilies/wry.pbm
Index: gnus/etc/images/smilies/wry.xpm
diff -u /dev/null gnus/etc/images/smilies/wry.xpm:1.2
--- /dev/null	Sun May  1 19:04:57 2005
+++ gnus/etc/images/smilies/wry.xpm	Sat Feb 19 06:08:44 2005
@@ -0,0 +1,20 @@
+/* XPM */
+static char * wry_xpm[] = {
+"13 14 3 1",
+" 	c None",
+".	c #000000",
+"+	c #FFDD00",
+"   .......   ",
+"  ..+++++..  ",
+" .+++++++++. ",
+".+++++++++++.",
+".+++++++..++.",
+".++..+++..++.",
+".++..+++++++.",
+".+++++++++++.",
+".+++++++...+.",
+".+++++...+++.",
+".++++..+++++.",
+" .+++.+++++. ",
+"  ..+++++..  ",
+"   .......   "};
Index: gnus/etc/smilies/blink.pbm
Index: gnus/etc/smilies/blink.xpm
diff -u gnus/etc/smilies/blink.xpm:7.1 gnus/etc/smilies/blink.xpm:removed
--- gnus/etc/smilies/blink.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/blink.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * blink_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".+++++++..++.",
-".+++++++..++.",
-".++...++++++.",
-".+++++++++++.",
-".++++++++.++.",
-".++.+++++.++.",
-".+++.....+++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/braindamaged.xpm
diff -u gnus/etc/smilies/braindamaged.xpm:7.1 gnus/etc/smilies/braindamaged.xpm:removed
--- gnus/etc/smilies/braindamaged.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/braindamaged.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * mad_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".++...++++++.",
-".++.+.+...++.",
-".++...+.+.++.",
-".++++++...++.",
-".+.+++++++.+.",
-".+.+++++++.+.",
-".++.+++++.++.",
-".+++.....+++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/cry.xpm
diff -u gnus/etc/smilies/cry.xpm:7.1 gnus/etc/smilies/cry.xpm:removed
--- gnus/etc/smilies/cry.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/cry.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * cry_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".++..+++..++.",
-".++++++++.++.",
-".+++++++.+.+.",
-".+++++++.+.+.",
-".++++++++..+.",
-".+++.....+++.",
-".++.+++++.++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/dead.xpm
diff -u gnus/etc/smilies/dead.xpm:7.1 gnus/etc/smilies/dead.xpm:removed
--- gnus/etc/smilies/dead.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/dead.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * dead_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".++.+.+.+.++.",
-".+++.+++.+++.",
-".++.+.+.+.++.",
-".+++++++++++.",
-".+++++++++++.",
-".+.+++++++.+.",
-".++.......++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/evil.xpm
diff -u gnus/etc/smilies/evil.xpm:7.1 gnus/etc/smilies/evil.xpm:removed
--- gnus/etc/smilies/evil.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/evil.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * diabolic_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".++.+++++.++.",
-".++..+++..++.",
-".++...+...++.",
-".+++++++++++.",
-".+.+++++++.+.",
-".++.+++++.++.",
-".+++.+++.+++.",
-".++++...++++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/forced.xpm
diff -u gnus/etc/smilies/forced.xpm:7.1 gnus/etc/smilies/forced.xpm:removed
--- gnus/etc/smilies/forced.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/forced.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * forced_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".++..+++..++.",
-".++..+++..++.",
-".+++++++++++.",
-".+++++++++++.",
-".+.+++++++.+.",
-".+.+++++++.+.",
-".+.........+.",
-".+++++++++++.",
-" ...+++++... ",
-"   .......   "};
Index: gnus/etc/smilies/frown.pbm
Index: gnus/etc/smilies/frown.xpm
diff -u gnus/etc/smilies/frown.xpm:7.1 gnus/etc/smilies/frown.xpm:removed
--- gnus/etc/smilies/frown.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/frown.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * frown_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".++..+++..++.",
-".++++.+.++++.",
-".+...+++...+.",
-".+...+++...+.",
-".+++++++++++.",
-".+++.....+++.",
-".++.+++++.++.",
-".++.+++++.++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/grin.xpm
diff -u gnus/etc/smilies/grin.xpm:7.1 gnus/etc/smilies/grin.xpm:removed
--- gnus/etc/smilies/grin.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/grin.xpm	Sun May  1 19:04:57 2005
@@ -1,21 +0,0 @@
-/* XPM */
-static char * grin_xpm[] = {
-"13 14 4 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"@	c #FFFFFF",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".++..+++..++.",
-".++..+++..++.",
-".+++++++++++.",
-".+.........+.",
-".+.@@@@@@@.+.",
-".++.@@@@@.++.",
-".+++.....+++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/indifferent.xpm
diff -u gnus/etc/smilies/indifferent.xpm:7.1 gnus/etc/smilies/indifferent.xpm:removed
--- gnus/etc/smilies/indifferent.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/indifferent.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * indifferent_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".++..+++..++.",
-".++..+++..++.",
-".+++++++++++.",
-".+++++++++++.",
-".+++++++++++.",
-".++.......++.",
-".+++++++++++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/reverse-smile.xpm
diff -u gnus/etc/smilies/reverse-smile.xpm:7.1 gnus/etc/smilies/reverse-smile.xpm:removed
--- gnus/etc/smilies/reverse-smile.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/reverse-smile.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * reverse_smile_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++.....+++.",
-".++.+++++.++.",
-".++.+++++.++.",
-".+++++++++++.",
-".+++++++++++.",
-".++..+++..++.",
-".++..+++..++.",
-".+++++++++++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/sad.pbm
Index: gnus/etc/smilies/sad.xpm
diff -u gnus/etc/smilies/sad.xpm:7.1 gnus/etc/smilies/sad.xpm:removed
--- gnus/etc/smilies/sad.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/sad.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * sad_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".++..+++..++.",
-".++..+++..++.",
-".+++++++++++.",
-".+++++++++++.",
-".+++.....+++.",
-".++.+++++.++.",
-".++.+++++.++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/smile.pbm
Index: gnus/etc/smilies/smile.xpm
diff -u gnus/etc/smilies/smile.xpm:7.1 gnus/etc/smilies/smile.xpm:removed
--- gnus/etc/smilies/smile.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/smile.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * smile_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".++..+++..++.",
-".++..+++..++.",
-".+++++++++++.",
-".+++++++++++.",
-".++.+++++.++.",
-".++.+++++.++.",
-".+++.....+++.",
-" .+++++++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/etc/smilies/wry.pbm
Index: gnus/etc/smilies/wry.xpm
diff -u gnus/etc/smilies/wry.xpm:7.1 gnus/etc/smilies/wry.xpm:removed
--- gnus/etc/smilies/wry.xpm:7.1	Sun Jan  4 22:50:57 2004
+++ gnus/etc/smilies/wry.xpm	Sun May  1 19:04:57 2005
@@ -1,20 +0,0 @@
-/* XPM */
-static char * wry_xpm[] = {
-"13 14 3 1",
-" 	c None",
-".	c #000000",
-"+	c #FFDD00",
-"   .......   ",
-"  ..+++++..  ",
-" .+++++++++. ",
-".+++++++++++.",
-".+++++++..++.",
-".++..+++..++.",
-".++..+++++++.",
-".+++++++++++.",
-".+++++++...+.",
-".+++++...+++.",
-".++++..+++++.",
-" .+++.+++++. ",
-"  ..+++++..  ",
-"   .......   "};
Index: gnus/lisp/.cvsignore
diff -u gnus/lisp/.cvsignore:7.2 gnus/lisp/.cvsignore:7.3
--- gnus/lisp/.cvsignore:7.2	Tue Jan  6 05:09:16 2004
+++ gnus/lisp/.cvsignore	Wed Sep  1 22:19:48 2004
@@ -4,4 +4,5 @@
 custom-load.el
 gnus-load.el
 old
+semantic.cache
 version
Index: gnus/lisp/ChangeLog
diff -u gnus/lisp/ChangeLog:7.238 gnus/lisp/ChangeLog:7.692
--- gnus/lisp/ChangeLog:7.238	Sat May  1 12:32:29 2004
+++ gnus/lisp/ChangeLog	Sun May  1 19:03:24 2005
@@ -1,3 +1,3273 @@
+2005-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: No Gnus v0.3 is released.
+
+2005-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* lpath.el (featurep): Bind show-nonbreak-escape.
+
+2005-04-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-edit-part): Disable undo.
+
+2005-04-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-date-ut): Don't delete X-Sent header when
+	gnus-article-date-lapsed-new-header is t if date timer is active;
+	skip headers in which the original date value is empty.
+	(gnus-article-save-original-date): Redefine it as a macro.
+	(gnus-display-mime): Use it.
+
+2005-04-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-date-ut): Support converting date in
+	forwarded parts as well.
+	(gnus-article-save-original-date): New function.
+	(gnus-display-mime): Use it.
+
+2005-04-22  David Hansen  <david.hansen@physik.fu-berlin.de>
+
+	* nnrss.el (nnrss-check-group, nnrss-request-article): Support the
+	enclosure element of <item>.
+
+2005-04-21  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-kill-buffer-query): Renamed from
+	`message-kill-buffer-query-if-modified'.  Added :version.
+
+2005-04-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mml.el (mml-preview): Bind gnus-message-buffer while setting the
+	window layout.
+
+2005-04-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mml.el: Autoload dnd when compiling.
+
+2005-04-18  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mml.el (mml-mode, mml-dnd-attach-file): Use dnd-* instead of
+	x-dnd-*.
+
+2005-04-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* qp.el (quoted-printable-encode-region): Save excursion.
+
+2005-04-14  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* message.el (message-kill-buffer-query-if-modified): new variable
+	so the user can kill a modified message buffer quickly
+	(message-kill-buffer): use it.
+
+2005-04-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Fbind display-time-event-handler; don't fbind
+	string-to-multibyte.
+
+	* qp.el (quoted-printable-encode-region): Use mm-string-to-multibyte.
+
+2005-04-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnrss.el (nnrss-node-text): Replace CRLFs (which might be
+	contained in text because xml.el decodes entities) with LFs.
+
+2005-04-11  Lute Kamstra  <lute@gnu.org>
+
+	* nnimap.el (nnimap-date-days-ago): Handle byte-compiler warnings
+	differently.
+
+2005-04-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* mm-util.el (mm-detect-coding-region): Typo.
+
+2005-04-11  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-read-summary-keys): Fix misplaced parens.
+
+2005-04-06  D Goel  <deego@gnufans.org>
+
+	* spam-stat.el (spam-stat-score-buffer): Add a call to a
+	user-function allow user modifications of the scores.
+	(spam-stat-score-buffer-user): New function, to allow
+	user-computed modifications to the score.
+	(spam-stat-score-buffer-user-functions): list of additional
+	scoring functions
+	(spam-stat-error-holder): global temporary error holder
+	(spam-stat-split-fancy): use the new `spam-stat-error-holder'
+	variable
+
+2005-04-06  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-clean-empty-function)
+	(gnus-registry-trim, gnus-registry-fetch-groups)
+	(gnus-registry-delete-group): now groups that match
+	`gnus-registry-ignored-groups' will be removed from the registry
+	entries, not just ignored for splitting.  This helps clean up the
+	registry.  Also, `gnus-registry-fetch-groups' is a convenient way
+	to get all the groups a message ID is in.
+
+	* spam-stat.el (spam-stat-split-fancy-spam-threshold)
+	(spam-stat-split-fancy): changed "threshhold" to "threshold"
+	(spam-stat-score-buffer-user-functions): added :number custom type
+
+2005-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-coding-system-p): Don't return binary for the nil
+	argument in XEmacs.
+
+	* nnrss.el (nnrss-compatible-encoding-alist): New variable.
+	(nnrss-request-group): Decode group name first.
+	(nnrss-request-article): Make a text/plain article if mml-to-mime
+	failed.
+	(nnrss-get-encoding): Return a compatible encoding according to
+	nnrss-compatible-encoding-alist.
+	(nnrss-find-el): Use consp instead of listp.
+	(nnrss-opml-export, nnrss-order-hrefs, nnrss-find-el): Use dolist.
+
+2005-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* time-date.el (time-to-seconds): Don't use the #xhhhh syntax
+	which Emacs 20 doesn't support.
+	(seconds-to-time, days-to-time, time-subtract, time-add): Ditto.
+
+2005-04-04  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* nnimap.el (nnimap-date-days-ago): Add defvars in order to
+	silence the byte compiler inside the defun
+
+	* gnus-demon.el (parse-time-string): Added autoload.
+
+	* gnus-delay.el (parse-time-string): Added autoload.
+
+	* gnus-art.el (parse-time-string): Added autoload.
+
+	* nnultimate.el (parse-time): Require for `parse-time-string'.
+
+2005-03-31  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-copy-article-ignored-headers): Update :version.
+
+	* gnus-score.el (gnus-adaptive-pretty-print): Ditto.
+
+	* smime.el (smime-ldap-host-list): Add :version.
+
+2005-03-21  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-srvr.el (gnus-browse-select-group): Add NUMBER argument and
+	pass it to `gnus-browse-read-group'.
+	(gnus-browse-read-group): Add NUMBER argument and pass it to
+	`gnus-group-read-ephemeral-group'.
+
+	* gnus-group.el (gnus-group-read-ephemeral-group): Add NUMBER
+	argument and pass it to `gnus-group-read-group'.
+
+2005-03-19  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mm-util.el (mm-xemacs-find-mime-charset): Only call
+	mm-xemacs-find-mime-charset-1 if we have the mule feature
+	available at runtime.
+
+2005-03-25  Werner Lemberg  <wl@gnu.org>
+
+	* nnmaildir.el: Replace `illegal' with `invalid'.
+
+2005-03-23  Lute Kamstra  <lute@gnu.org>
+
+	* time-date.el: Add comment on time value formats.
+	Don't require parse-time.
+	(with-decoded-time-value): New macro.
+	(encode-time-value): New function.
+	(time-to-seconds, time-less-p, time-subtract, time-add): Use them.
+	(days-to-time): Return a valid time value when arg is huge.
+	(time-since): Use time-subtract.
+	(time-to-number-of-days): Use time-to-seconds.
+
+2005-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* gnus-start.el (gnus-display-time-event-handler):
+	Check display-time-timer at runtime rather than only at load time
+	in case display-time-mode is turned off in the mean time.
+
+2005-03-16  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* nnimap.el (nnimap-open-connection): Print which authinfo file is
+	used.
+
+	* nneething.el (nneething-map-file-directory): Derive from
+	`gnus-directory'.
+
+	* gnus-art.el (gnus-header-button-alist): Use `gnus-msg-mail' for
+	the To/Cc button.
+
+2005-03-15  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* nnmaildir.el (nnmaildir-request-accept-article):
+	Use `nnheader-cancel-timer' for compatibility with current XEmacs.
+
+2005-03-13  Steve Youngs  <steve@sxemacs.org>
+
+	* gnus-async.el: Require timer-funcs at compile time when in
+	XEmacs for `run-with-idle-timer'.
+
+2005-03-13  Steve Youngs  <steve@sxemacs.org>
+
+	* gnus.el: Don't try and mark `gnus-agent-save-groups' as an
+	autoloaded function.
+	From: Andrey Slusar <anrays@gmail.com>.
+
+2005-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* nnimap.el (nnimap-retrieve-headers-from-server): Fix last change.
+
+2005-03-10  Arne J,Ax(Brgensen <arne@arnested.dk>  (tiny change)
+
+	* nnimap.el (nnimap-retrieve-headers-from-server): Fix off-by-one flaw.
+
+2005-03-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-confirm-mail-reply-to-news): Add
+	gnus-expert-user to default.
+
+2005-03-08  Juergen Kreileder <jk@blackdown.de>  (tiny change)
+
+	* nnimap.el (nnimap-open-server): Ditto.
+
+	* imap.el (imap-authenticate): Fix typo.
+
+2005-03-08  Bjorn Solberg <bjorn_ding@hekneby.org>  (tiny change)
+
+	* nnimap.el (nnimap-retrieve-headers-from-server): Sort NOV
+	buffer (since IMAP server might return FETCH response out of
+	order, and the nntp buffer must be sorted).
+
+2005-03-06  Kevin Greiner  <kevin.greiner@compsol.cc>
+
+	* gnus-start.el (gnus-convert-old-newsrc): Fixed numeric
+	comparison on string.
+
+	* gnus-agent.el (gnus-agent-long-article,
+	gnus-agent-short-article, gnus-agent-score): Renamed category
+	keywords to match gnus-cus.
+	(gnus-agent-summary-fetch-series): Modified to protect against
+	gnus-agent-summary-fetch-group clearing processable flags.
+	(gnus-agent-synchronize-group-flags): Update live group buffer as
+	synchronization may occur due to the user toggle the plugged
+	status.
+	(gnus-agent-fetch-group-1): Clear downloadable flag when article
+	successfully downloaded.
+	(gnus-agent-expire-group-1): Avoid using markers when the overview
+	is in ascending order; greatly improves performance.
+	(gnus-agent-regenerate-group): Use
+	gnus-agent-synchronize-group-flags to reset read status in both
+	gnus and server.
+	(gnus-agent-update-files-total-fetched-for): Fixed initial size.
+	
+2005-03-04  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el: Don't autoload former message-utils variables.
+	(message-strip-subject-trailing-was): Change doc string.
+
+	* nnweb.el: Fixes for `gnus-group-make-web-group'.
+	(nnweb-type-definition): Don't add "hl=en" in `address'.  Add `base'.
+	(nnweb-google-search): Add "hl=en" here.
+	(nnweb-google-parse-1, nnweb-google-create-mapping):
+	Don't hardcode URL.
+
+2005-03-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-get-reply-headers, message-followup):
+	Mention related variables `message-use-followup-to' and
+	`message-use-mail-followup-to', in the information buffer.
+
+	* nnweb.el (nnweb-type-definition): Use groups.google.de instead
+	of broken groups(-beta).google.com.
+
+2005-03-03  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-sum.el (gnus-summary-move-article): pass move-is-internal
+	parameter to invoked gnus-request-move-article; remove the
+	redundant gnus-sum-hint-move-is-internal variable; apply the marks
+	all at once instead of once per article
+	(gnus-summary-remove-process-mark): accept a list of articles as
+	well as a single article for processing
+
+	* gnus-int.el (gnus-request-move-article): add move-is-internal parameter
+
+	* nnml.el (nnml-request-move-article): add move-is-internal parameter
+
+	* nnmh.el (nnmh-request-move-article): add move-is-internal parameter
+
+	* nnmbox.el (nnmbox-request-move-article): add move-is-internal parameter
+
+	* nnmaildir.el (nnmaildir-request-move-article): add move-is-internal parameter
+
+	* nnimap.el (nnimap-request-move-article): add move-is-internal
+	parameter and remove the gnus-sum-hint-move-is-internal variable
+
+	* nnfolder.el (nnfolder-request-move-article): add move-is-internal parameter
+
+	* nndraft.el (nndraft-request-move-article): add move-is-internal parameter
+
+	* nndiary.el (nndiary-request-move-article): add move-is-internal parameter
+
+	* nndb.el (nndb-request-move-article): add move-is-internal parameter
+
+	* nnbabyl.el (nnbabyl-request-move-article): add move-is-internal parameter
+
+	* nnagent.el (nnagent-request-move-article): add move-is-internal parameter
+
+2005-03-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* gnus-sum.el (gnus-summary-exit): Undo last change and fix it in
+	a more conservative way.
+
+2005-02-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* gnus-sum.el (gnus-summary-exit): Move point after displaying the
+	buffer, so it moves the window's cursor.
+
+2005-02-26  Arne J,Ax(Brgensen  <arne@arnested.dk>
+
+	* mm-decode.el (mm-dissect-buffer): Pass the from field on to
+	`mm-dissect-multipart' and receive the from field as an (optional)
+	argument from `mm-dissect-multipart'.
+	(mm-dissect-multipart): Receive the from field as an argument and
+	pass it on when we call `mm-dissect-buffer' on MIME parts.
+	Fixes verification/decryption of signed/encrypted MIME parts.
+
+2005-02-25  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-sum.el (gnus-summary-move-article): set
+	gnus-sum-hint-move-is-internal for gnus-request-move-article and
+	whatever it calls (right now, only nnimap-request-move article
+	respects it)
+
+	* nnimap.el (nnimap-request-move-article): when
+	gnus-sum-hint-move-is-internal is set, don't do the extra
+	nnimap-request-article
+
+2005-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* nnheader.el (nnheader-find-file-noselect): Add doc string.
+
+	* nnfolder.el (nnfolder-read-folder): Use RAWFILE for
+	`nnheader-find-file-noselect' to avoid `large-file-warning-threshold'.
+
+	* gnus-sum.el (gnus-summary-caesar-message):
+	Apply `gnus-treat-article' after rotation.
+
+	* gnus-group.el (gnus-group-clear-data): Mention process/prefix in
+	doc string.
+
+2005-02-22  Simon Josefsson  <jas@extundo.com>
+
+	* encrypt.el (encrypt-password-cache-expiry): Remove (use
+	`password-cache-expiry' instead).  Reported by Arne J,Ax(Brgensen
+	<arne@arnested.dk>.
+	(encrypt): Add password-cache and password-cache-expiry as group
+	members.
+
+2005-02-22  Arne J,Ax(Brgensen  <arne@arnested.dk>
+
+	* smime.el (smime-ldap-host-list): Doc fix.
+	(smime-ask-passphrase): Use `password-read-and-add' to read (and
+	cache) password.
+	(smime-sign-region): Use it.
+	(smime-decrypt-region): Use it.
+	(smime-sign-buffer): Signal an error if `smime-sign-region' fails.
+	(smime-encrypt-buffer): Signal an error if `smime-encrypt-region'
+	fails.
+	(smime-cert-by-ldap-1): Use `base64-encode-string' to convert
+	certificate from DER to PEM format rather than calling openssl.
+
+	* mml-smime.el (mml-smime-encrypt-query): Remove obsolete comment.
+
+	* mml-sec.el (mml-secure-message): Insert keyfile/certfile tags
+	for signing/encryption.
+
+	* mml.el (mml-parse-1): Use them.
+
+2005-02-21  Arne J,Ax(Brgensen <arne@arnested.dk>
+
+	* nnrss.el (nnrss-verbose): Removed.
+	(nnrss-request-group): Use `nnheader-message' instead.
+
+2005-02-19  Mark Plaksin  <happy@usg.edu>  (tiny change)
+
+	* nnrss.el (nnrss-verbose): New variable.
+	(nnrss-request-group): Make it say nnrss is requesting a group.
+
+2005-02-21  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-parse-news-url, gnus-button-handle-news):
+	Handle news URL with given port correctly.
+
+2005-02-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-copy-article-buffer): Quote decoded words
+	containing special characters.
+
+	* gnus-sum.el (gnus-summary-edit-article): Ditto.
+
+	* mml.el (mime-to-mml): Ditto.
+
+	* rfc2047.el (rfc2047-encode-parameter): Use ietf-drums-tspecials.
+	(rfc2047-quote-decoded-words-containing-tspecials): New variable.
+	(rfc2047-decode-region): Quote decoded words containing special
+	characters when rfc2047-quote-decoded-words-containing-tspecials
+	is non-nil.
+
+2005-02-16  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-delete-group): Minor bug fix.
+
+	* gnus.el (gnus-install-group-spam-parameters): Doc fix.
+
+2005-02-15  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-debug): Doc fix.
+
+	* imap.el (imap-debug): Doc fix.
+
+2005-02-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el: Avoid "Recursive load suspected" error in Emacs 21.1.
+
+2005-02-14  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.el (spam-contents): improve docs for spam-contents
+	parameter in its variable incarnation
+
+2005-02-14  Simon Josefsson  <jas@extundo.com>
+
+	* smime-ldap.el: Use require instead of load-library for ldap.
+	(smime-ldap-search): Indent.
+	(smime-ldap-search-internal): Shorten line.
+
+	* smime.el (smime-cert-by-dns): Add doc-string.
+	(smime-cert-by-ldap-1): Indent.
+
+	* mml-smime.el (mml-smime-get-ldap-cert): Renamed from
+	mml-smime-get-dns-ldap.
+	(mml-smime-encrypt-query): Use new function.  Default to ldap.
+
+2005-02-14  Arne J,Ax(Brgensen <arne@arnested.dk>
+
+	* smime.el: Require smime-ldap.
+	(smime-ldap-host-list): New variable.
+	(smime-cert-by-ldap, smime-cert-by-ldap-1): New functions.
+
+	* mml-smime.el (mml-smime-encrypt-query): New function.
+	(mml-smime-encrypt-query): Use it.
+
+	* smime-ldap.el: New file.
+
+2005-02-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-agent.el: Remove garbage made while merging the Emacs trunk.
+
+2005-02-14  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-group.el (gnus-group-make-doc-group): Mention prefix
+	argument in doc string.  Make query for type more clear.
+
+2005-02-13  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.el (gnus-group-startup-message): Search for gnus images in
+	etc/images/gnus.
+	* mm-util.el (mm-find-charset-region): Likewise.
+	* smiley.el (smiley-data-directory): Search for smilies in
+	etc/images/smilies.
+
+2005-02-09  Kim F. Storm  <storm@cua.dk>
+
+	Change Emacs release version from 21.4 to 22.1 throughout.
+	Change Emacs development version from 21.3.50 to 22.0.50.
+
+2005-02-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-mime-copy-part): Don't decode compressed parts.
+
+	* mm-util.el (mm-coding-system-to-mime-charset): Make it work with
+	non-Mule XEmacs as well.
+	(mm-decompress-buffer): Signal an error intentionally if it does
+	not decompress compressed data because auto-compression-mode is
+	disabled.
+
+2005-02-11  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-delete-group): small bug leaves
+	an ID in the registry even if it has no groups
+
+2005-02-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-mime-jka-compr-maybe-uncompress): Remove;
+	merge it into mm-decompress-buffer.
+	(gnus-mime-copy-part): Use the MIME part charset, the value which
+	a user specified or gnus-newsgroup-charset for decoding, like
+	gnus-mime-inline-part does; set buffer-file-coding-system to tell
+	save-buffer what was used.  Suggested by Kevin Ryde
+	<user42@zip.com.au>.
+	(gnus-mime-inline-part): Allow the name parameter as well as the
+	filename parameter; force decompressing of compressed data; always
+	display contents being not decoded as unibyte.
+
+	* mm-view.el (mm-display-inline-fontify): Allow the name parameter
+	as well as the filename parameter.
+
+	* mm-util.el (mm-decompress-buffer): Merge
+	gnus-mime-jka-compr-maybe-uncompress.
+	(mm-find-buffer-file-coding-system): Doc fix; force decompressing
+	of compressed data.
+
+2005-02-08  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-log): Doc fix.
+
+2005-02-07  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-mime-inline-part): Decode parts according to
+	the coding cookies; decompress compressed parts.
+
+	* mml.el (mml-generate-mime-1): Add the charaset parameter according
+	to the value which a user specified manually or the coding cookie.
+
+	* mm-util.el (mm-string-to-multibyte): New function.
+	(mm-detect-mime-charset-region): Work with Emacs 22 as well.
+	(mm-coding-system-to-mime-charset): New function.
+	(mm-decompress-buffer): New function.
+	(mm-find-buffer-file-coding-system): New function.
+
+	* mm-view.el (mm-insert-inline): Make sure a part ends with a newline.
+	(mm-display-inline-fontify): Rewrite for decoding and decompressing
+	parts.
+
+2004-10-15  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* mm-view.el (mm-display-inline-fontify): Decode a part according
+	to the charset parameter.
+
+2005-02-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-mime-inline-part): Show the raw contents if a
+	prefix arg is neither nil nor a number, as info specifies.
+
+2005-02-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-marks-changed-p): Use time-less-p to compare the
+	timestamps.
+
+2005-01-29  Jari Aalto  <jari.aalto@cante.net>
+
+	* gnus-sum.el (gnus-list-of-unread-articles): Improve active
+	groups error checking and notify user.
+
+2004-09-04  Jari Aalto  <jari.aalto@poboxes.com>
+
+	* message.el (message-send-mail-function): Check existence of
+	sendmail-program first before using default value
+	`message-send-mail-with-sendmail'.  Otherwise use more generic
+	`smtpmail-send-it'.
+
+2005-02-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-request-update-info): Always return nil.
+
+2005-01-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* gnus-art.el (gnus-article-mode): Turn off the "\ " non-break space.
+
+2005-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* message.el (message-beginning-of-line): Change the behavior when
+	invoked between BOL and : so that it first moves backward.
+
+2005-01-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-setup-buffer): Kill and re-create the
+	article buffer when editing of the article is discarded.
+	(gnus-article-prepare): Revert.
+
+2005-01-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-prepare):
+	Remove message-strip-forbidden-properties from the local hook.
+
+2005-01-27  Simon Josefsson  <jas@extundo.com>
+
+	* password.el (password-cache-add): Only start one timer per key.
+	Reported by Derek Atkins <warlord@MIT.EDU>.
+
+2005-01-26  Steve Youngs  <steve@sxemacs.org>
+
+	* run-at-time.el: Removed.  It is no longer needed as
+	timer-funcs.el in the xemacs-base package has a working version of
+	`run-at-time'.
+
+	* gnus-xmas.el: Require timer-funcs instead of run-at-time.
+
+	* password.el: Require timer-funcs instead of run-at-time in
+	XEmacs.
+	Remove `password-run-at-time' macro.
+	(password-cache-add): Use `run-at-time' instead of
+	`password-run-at-time'. 
+
+	* nnheaderxm.el: Require timer-funcs instead of run-at-time.
+	Remove `nnheader-cancel-function-timers' alias,
+	`cancel-function-timers' exists in XEmacs in timer-funcs. 
+
+	* mail-source.el: Require timer-funcs instead of itimer in XEmacs
+	for `run-with-idle-timer'. 
+
+	* gnus-demon.el: Require timer-funcs instead of itimer in XEmacs
+	for `run-at-time'.
+
+	* mm-url.el: Require timer-funcs at compile time when in XEmacs
+	for `with-timeout'. 
+
+	* dgnushack.el: Autoload the correct `setenv' for SXEmacs which is
+	the same as for XEmacs 21.4.
+	No need to ignore `run-with-idle-timer', this function exists in
+	XEmacs now in timer-funcs.el in the xemacs-base package.
+	(dgnushack-compile): No need to delete
+	run-at-time.el from the list of files to compile because it
+	doesn't exist anymore.
+
+2005-01-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mml.el (mml-generate-mime-1): Convert string into unibyte when
+	inserting " *mml*" buffer's contents into a unibyte temp buffer.
+
+2005-01-24  Harald Meland <harald.meland@usit.uio.no>  (tiny change)
+
+	* mail-source.el (mail-source-fetch-imap): Search for ^From case
+	sensitively.
+
+2005-01-21  Derek Atkins <warlord@MIT.EDU>  (tiny change)
+
+	* pgg-pgp.el (pgg-pgp-decrypt-region): Use passphrase cache.
+
+2005-01-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-insert-part): Switch the multibyteness of data
+	which will be inserted according to the multibyteness of a buffer
+	rather than the type of contents.  Suggested by ARISAWA Akihiro
+	<ari@mbf.ocn.ne.jp>.
+
+	* nnrss.el (nnrss-find-el): Check carefully whether there's a list
+	of string which old xml.el may return rather than a string.
+
+2005-01-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-idna-message): Silence byte compiler.
+
+2005-01-16  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-idna-message): Fail gracefully if
+	idn/idna.el isn't available.
+	(gnus-summary-idna-message): Doc fix.  Suggested by Michael Cook
+	<michael@waxrat.com>.
+
+	* hashcash.el: Remove non-FSF copyright header.
+
+	* hashcash.el (hashcash-extra-generate-parameters): New variable.
+	(hashcash-generate-payment): Use it.
+	(hashcash-generate-payment-async): Use it.
+
+2005-01-15  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-idna-to-ascii-rhs): Decode Reply-To too.
+	Suggested by Raymond Scholz <ray-2005@zonix.de>.
+
+	* gnus-sum.el (gnus-summary-wash-map): Bind "W i" to
+	gnus-summary-idna-message.
+	(gnus-summary-make-menu-bar): Add De-IDNA menu entry.
+	(gnus-summary-idna-message): New function.
+
+2005-01-13  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-msg.el (gnus-confirm-mail-reply-to-news): Change default to
+	gnus-novice-user.
+
+2005-01-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnrss.el (nnrss-request-delete-group): Delete entries in
+	nnrss-group-alist as well.
+	(nnrss-save-server-data): Insert newline.
+
+2005-01-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.el (gnus-user-agent): Use list of symbols instead of
+	symbols.  Display full version number for (S)XEmacs.  Optionally
+	display (S)XEmacs codename.
+
+	* gnus-util.el (gnus-emacs-version): Update for new
+	`gnus-user-agent'.
+
+	* gnus-msg.el (gnus-extended-version): Make it possible to omit
+	Gnus version.
+
+2005-01-05  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* spam.el (spam-face): New face.  Don't use `gnus-splash-face'
+	which is unreadable in some setups.
+
+2005-01-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-spec.el (gnus-update-format-specifications): Flush the
+	group format spec cache if it doesn't support decoded group names.
+
+2005-01-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-score.el (gnus-decay-scores, gnus-score-load-file): Allow
+	to apply decay on score files matching a regexp.
+
+2004-12-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-group-line-format-alist): Keep the forward
+	compatibility in %g and %c.
+
+2004-12-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-group-line-format-alist): Use decoded group
+	name for only %g and %c.
+	(gnus-group-insert-group-line): Bind gnus-tmp-decoded-group instead
+	of gnus-tmp-group to decoded group name.
+	(gnus-group-make-rss-group): Exclude `/'s from group names.
+
+2004-12-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnrss.el (nnrss-get-encoding): Fix regexp.
+
+2004-12-27  Simon Josefsson  <jas@extundo.com>
+
+	* mm-bodies.el (mm-body-encoding): Don't permit 7-bit to be used when
+	mm-use-ultra-safe-encoding is enabled (e.g., for PGP/MIME) and we have
+	trailing white space.  Reported by Werner Koch <wk@gnupg.org>.
+
+2004-12-17  Kim F. Storm  <storm@cua.dk>
+
+	* gnus-group.el (gnus-group-mode-map): Map follow-link to mouse-face.
+
+	* gnus-sum.el (gnus-summary-mode-map): Likewise.
+
+2004-12-26  Tsuyoshi AKIHO  <akiho@kawachi.zaq.ne.jp>
+
+	* gnus-sum.el (gnus-summary-walk-group-buffer): Decode group name.
+
+2004-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnrss.el: Require rfc2047 and mml.
+	(nnrss-file-coding-system): New variable.
+	(nnrss-format-string): Redefine it as an inline function.
+	(nnrss-decode-group-name): New function.
+	(nnrss-string-as-multibyte): Remove.
+	(nnrss-retrieve-headers): Decode group name; don't use
+	nnrss-format-string.
+	(nnrss-request-group): Decode group name.
+	(nnrss-request-article): Decode group name; allow a Message-ID as
+	well as an article number; don't use nnrss-format-string; encode a
+	Message-ID string which may contain non-ASCII characters; use
+	mml-to-mime to compose a MIME article.
+	(nnrss-request-expire-articles): Decode group name.
+	(nnrss-request-delete-group): Decode group name.
+	(nnrss-fetch): Clarify error message.
+	(nnrss-read-server-data): Use insert-file-contents instead of load;
+	bind file-name-coding-system; use multibyte buffer.
+	(nnrss-save-server-data): Bind coding-system-for-write to the
+	value of nnrss-file-coding-system; bind file-name-coding-system;
+	add coding cookie.
+	(nnrss-read-group-data): Use insert-file-contents instead of load;
+	bind file-name-coding-system; use multibyte buffer.
+	(nnrss-save-group-data): Bind coding-system-for-write to the
+	value of nnrss-file-coding-system; bind file-name-coding-system.
+	(nnrss-decode-entities-string): Rename from n-d-e-unibyte-string;
+	make it work with non-ASCII text.
+	(nnrss-find-el): Make it work with old xml.el as well.
+
+2004-12-26  Tsuyoshi AKIHO  <akiho@kawachi.zaq.ne.jp>
+
+	* nnrss.el (nnrss-get-encoding): New function.
+	(nnrss-fetch): Use unibyte buffer initially; bind
+	coding-system-for-read while performing mm-url-insert; remove ^Ms;
+	decode contents according to the encoding attribute.
+	(nnrss-save-group-data): Add coding cookie.
+	(nnrss-mime-encode-string): New function.
+	(nnrss-check-group): Use it to encode subject and author.
+
+2004-12-23  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-BBDB): don't get the symbol-value of an
+	imaginary variable
+
+2004-12-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-spec.el (gnus-spec-tab): Make a Lisp form which works
+	correctly even if there are wide characters.
+
+2004-12-21  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-BBDB): fix the BBDB caching code to use
+	downcased symbol names; make a new cache instead of reusing
+	bbdb-hashtable
+
+2004-12-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2231.el (rfc2231-parse-string): Decode encoded value after
+	concatenating segments rather than before concatenating them.
+	Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>.
+
+	* message.el (message-get-reply-headers): Bind `extra'.
+
+2004-12-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-extra-wide-headers): New variable.
+	(message-get-reply-headers): Use it.
+
+2004-12-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-agent.el (gnus-agent-group-path): Decode group name.
+	(gnus-agent-group-pathname): Ditto.
+
+	* gnus-cache.el (gnus-cache-file-name): Decode group name.
+
+	* gnus-group.el (gnus-group-make-group): Decode group name.
+	(gnus-group-make-rss-group): Register the group data after opening
+	the nnrss group.
+
+2004-12-17  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-expire-articles): Articles moved
+	by expiry now get marked as read.
+
+2004-12-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-xemacs-find-mime-charset): New macro.
+
+2004-12-17  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mm-util.el (mm-xemacs-find-mime-charset-1): New function used to
+	unify Latin characters in XEmacs.
+	(mm-find-mime-charset-region): Use it.
+
+2004-12-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el (gnus-delete-directory): New function.
+
+	* gnus-agent.el (gnus-agent-delete-group): Use it.
+
+	* gnus-cache.el (gnus-cache-delete-group): Use it.
+
+2004-12-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-group-make-rss-group): Unify non-ASCII group
+	names.
+
+2004-12-16  Simon Josefsson  <jas@extundo.com>
+
+	* hashcash.el (hashcash-payment-alist): Fix custom :type.
+
+2004-12-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-url.el (mm-url-predefined-programs): Add --silent arg to curl.
+
+	* gnus-group.el (gnus-group-expire-articles-1): Decode group name.
+	(gnus-group-set-current-level): Decode group name.
+
+2004-12-15  Maciek Pasternacki  <maciekp@japhy.fnord.org>  (tiny change)
+
+	* nnrss.el (nnrss-fetch): Signal an error if w3-parse-buffer also
+	failed.
+
+2004-12-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-group-delete-group): Decode group name.
+	(gnus-group-make-rss-group): Encode group name.
+	(gnus-group-catchup-current): Decode group name.
+	(gnus-group-kill-group): Decode group name.
+
+2004-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* gnus-art.el (gnus-narrow-to-page): Don't hardcode point-min.
+
+2004-12-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-group-make-rss-group):
+	Use gnus-group-make-group instead of gnus-group-unsubscribe-group.
+
+	* gnus-start.el (gnus-setup-news): Honor user's setting to
+	gnus-message-archive-method.  Suggested by Lute Kamstra
+	<lute@gnu.org>.
+
+2004-12-10  Arnaud Giersch  <arnaud.giersch@free.fr>  (tiny change)
+
+	* gnus-sum.el (gnus-summary-exit-no-update): Don't clear the
+	global counterparts of the buffer-local variables.
+
+2004-11-16  Romain Francoise  <romain@orebokech.com>
+
+	* gnus-sum.el (gnus-summary-exit): Don't clear the global
+	counterparts of the buffer-local variables.
+
+2004-11-25  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-forbidden-properties): Fixed typo in doc
+	string.
+
+2004-11-25  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-util.el (gnus-replace-in-string): Added doc string.
+
+	* nnmail.el (nnmail-split-header-length-limit): Increase to 2048
+	to avoid problems when splitting mails with many recipients.
+
+2004-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* gnus-sum.el (gnus-summary-exit): Remove redundant and harmful
+	pop-to-buffer, covered by the subsequent gnus-configure-windows.
+
+2004-12-05  Nelson Ferreira  <nelson.ferreira@ieee.org>
+
+	* spam-stat.el (spam-stat-save): Load the hashtable from disk only
+	if there is no hashtable in memory or file modification time is
+	newer than cached timestamp.
+
+2004-12-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-sum.el (gnus-summary-limit-to-recipient): Implement
+	not-matching option.
+
+2004-12-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-sum.el (gnus-summary-limit-to-recipient): New function.
+	Suggested David Mazieres in analogy to rmail-summary-by-recipients.
+	(gnus-summary-limit-map, gnus-summary-make-menu-bar): Add it.
+	(gnus-article-sort-by-recipient, gnus-summary-sort-by-recipient):
+	New functions.  Suggested by Uwe Brauer <oub@mat.ucm.es>.
+	(gnus-summary-mode-map, gnus-summary-make-menu-bar): Add it.
+
+2004-12-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-forward-make-body-mml): Remove headers
+	according to message-forward-ignored-headers if a message is decoded.
+
+2004-12-02  Romain Francoise  <romain@orebokech.com>
+
+	* message.el (message-forward-make-body-plain): Always remove
+	headers according to message-forward-ignored-headers.
+
+2004-12-01  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-summary-prepare-exit): remove the
+	gnus-summary-limit pop for now, it has problems with ham marks for
+	me
+
+2004-11-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-summary-prepare-exit): use gnus-summary-limit
+	correctly
+
+2004-11-28  Carl Henrik Lunde  <chlunde+bugs+@ping.uio.no>  (tiny change)
+
+	* format-spec.el (format-spec): Message the char.
+
+2004-11-26  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-art.el (gnus-split-methods): reformat comments
+
+	* spam.el (spam-summary-prepare-exit): remove article limits
+	before exiting the summary buffer
+
+2004-11-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Remove bbdb-create-internal, bbdb-records,
+	spam-BBDB-register-routine and spam-enter-ham-BBDB.
+
+	* nnrss.el (nnrss-string-as-multibyte): Redefine it as a macro in
+	order to silence the byte compiler.
+
+	* spam.el: Fix the way to silence the byte compiler, which
+	complained about bbdb-buffer, bbdb-create-internal, bbdb-records,
+	bbdb-search-simple, spam-BBDB-register-routine,
+	spam-enter-ham-BBDB, spam-stat-buffer-change-to-non-spam,
+	spam-stat-buffer-change-to-spam, spam-stat-buffer-is-non-spam,
+	spam-stat-buffer-is-spam, spam-stat-load,
+	spam-stat-register-ham-routine, spam-stat-register-spam-routine,
+	spam-stat-save and spam-stat-split-fancy.
+
+2004-11-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* canlock.el (canlock-password): Remove `:size 0' or `:size 1'
+	which may confuse users.
+	(canlock-password-for-verify): Ditto.
+
+	* deuglify.el (gnus-outlook-deuglify-unwrap-stop-chars): Ditto.
+
+	* gnus-art.el (gnus-emphasis-alist): Ditto.
+
+	* gnus-registry.el (gnus-registry-max-entries): Ditto.
+
+	* gnus-score.el (gnus-adaptive-word-length-limit): Ditto.
+
+	* gnus-start.el (gnus-save-killed-list): Ditto.
+
+	* gnus-sum.el (gnus-thread-hide-subtree): Ditto.
+	(gnus-sum-thread-tree-root): Ditto.
+	(gnus-sum-thread-tree-false-root): Ditto.
+	(gnus-sum-thread-tree-single-indent): Ditto.
+
+	* message.el (message-courtesy-message): Ditto.
+	(message-archive-note): Ditto.
+	(message-subscribed-address-file): Ditto.
+	(message-user-fqdn): Ditto.
+
+	* spam-report.el (spam-report-gmane-regex): Ditto.
+
+	* spam.el (spam-blackhole-good-server-regex): Ditto.
+
+2004-11-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mml.el (mml-preview): Widen the message buffer before copying
+	the contents to the preview buffer; sort headers before previewing.
+
+	* message.el (message-hidden-headers): Fix the way to avoid a bug
+	in the `repeat' widget in Emacs 21.3 or earlier.
+
+2004-11-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-hidden-headers): Default to "^References:".
+	From Reiner Steib <Reiner.Steib@gmx.de>; improve customization type.
+	(message-strip-forbidden-properties): Remove check for obsolete
+	`message-hidden' text property, hidden headers are not accessible
+	in the buffer anymore.  From Romain Francoise on January 11, 2004.
+
+2004-11-22  Romain Francoise  <romain@orebokech.com>
+
+	* message.el (message-header-format-alist): Add `From' in list
+	so that it can be sorted.
+	(message-fix-before-sending): Widen and sort headers before
+	sending.
+	(message-hide-headers): Use narrowing to hide headers by moving
+	them to the top of the buffer and narrowing to the region
+	underneath.
+
+2004-11-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-strip-forbidden-properties): Bind
+	buffer-read-only (etc) to nil.
+
+2004-11-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-header-encoding-alist): Add In-Reply-To to
+	address-mime.  Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>.
+
+2004-11-22  Marek Martin  <marek.martin@mum.pri.ee>  (tiny change)
+
+	* nnfolder.el (nnfolder-request-create-group): Save current buffer.
+
+2004-11-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* dns.el (query-dns): Use sit-for to time instead of
+	accept-process-output, since that doesn't seem to work on udp
+	sockets. 
+
+2004-11-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-region): Encode bogus delimiters.
+
+2004-11-15  Jesper Harder  <harder@ifa.au.dk>
+
+	* pop3.el (pop3-leave-mail-on-server): Don't quote nil in
+	docstrings.
+
+2004-11-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-request-update-info): Return nil if
+	nntp-marks-is-evil is true so that gnus-get-unread-articles-in-group
+	may not call gnus-activate-group which uselessly issues the GROUP
+	commands for all nntp groups and wastes time.  Reported by Romain
+	Francoise <romain@orebokech.com>.
+
+	* gnus-start.el (gnus-get-unread-articles): Remove redundant test.
+
+2004-11-15  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-header-button-alist): Handle URLs in OpenPGP:
+	headers separately.
+	(gnus-button-openpgp): New function, inspired by Jochen K,A|(Bpper
+	<jochen-+It19tn3Rl9sbm7dSapR3bNAH6kLmebB@public.gmane.org>.
+
+2004-11-14  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-start.el (gnus-convert-old-newsrc):
+	Assign legacy-gnus-agent to 5.10.7.
+
+2004-11-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (article-unsplit-urls): Don't anchor urls to the
+	start of the lines.
+
+2004-11-14  Magnus Henoch  <mange@freemail.hu>
+
+	* hashcash.el (hashcash-default-payment): Change default to 20
+	(hashcash-default-accept-payment): Change default to 20
+	(hashcash-process-alist): New variable
+	(hashcash-generate-payment-async): Add
+	(hashcash-already-paid-p): Add
+	(hashcash-insert-payment): Don't generate payments twice
+	(hashcash-insert-payment-async): Add
+	(hashcash-insert-payment-async-2): Add
+	(hashcash-cancel-async): Add
+	(hashcash-wait-async): Add
+	(hashcash-processes-running-p): Add
+	(hashcash-wait-or-cancel): Add
+	(mail-add-payment): New optional argument.  Conditionally start
+	asynchronous calculation.
+	(mail-add-payment-async): Add
+
+	* message.el (message-send-mail): Wait for asynchronous hashcash
+	results.  Don't clobber existing X-Hashcash headers.
+	(message-setup-1): Call mail-add-payment-async when
+	message-generate-hashcash is non-nil.
+
+2004-11-11  ARISAWA Akihiro  <ari@mbf.ocn.ne.jp>  (tiny change)
+
+	* message.el (message-use-alternative-email-as-from): Examine the
+	From header as well; use message-make-from in order to include a
+	user's full name.
+
+2004-11-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-emphasis-alist): Don't hide asterisks by
+	default; improve customization type.
+	(gnus-emphasis-custom-with-format): New macro.
+	(gnus-emphasis-custom-value-to-external): New function.
+	(gnus-emphasis-custom-value-to-internal): New function.
+
+2004-11-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* dns.el (query-dns): Resolve reverse addresses.
+
+2004-10-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el (gnus-group-get-new-news): Use it.
+
+	* gnus-start.el (gnus-check-reasonable-setup): New function.
+
+2004-11-07  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-configure-posting-styles): Don't cause the
+	"Args out of range" error.  Reported by Arnaud Giersch
+	<arnaud.giersch@free.fr>.
+
+2004-11-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-clear-local-variables): Use symbolp.
+	From Stefan Wiens <s.wi@gmx.net>.
+
+2004-11-04  Richard M. Stallman  <rms@gnu.org>
+
+	* spam.el (spam group): Add :version.
+
+	* pgg-def.el (pgg group): Add :version.
+
+2004-11-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-edit-article): Don't associate the
+	article buffer with a draft file.  This is a temporary measure
+	against the 2004-08-22 change to gnus-article-edit-mode.
+
+2004-11-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* html2text.el (html2text-get-attr): Remove unused argument `tag'.
+	(html2text-format-tags): Remove unused variable `attr'.
+
+2004-11-01  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-msg.el (gnus-summary-resend-default-address): Add :version.
+
+	* tls.el (tls-process-connection-type, tls-success)
+	(tls-certtool-program): Add :version.
+
+	* starttls.el (starttls-gnutls-program, starttls-use-gnutls)
+	(starttls-extra-arguments, starttls-process-connection-type)
+	(starttls-connect, starttls-failure, starttls-success):
+
+	* spam-stat.el (spam-stat): Add :version.
+
+	* sieve.el (sieve): Add :version.
+
+	* sha1.el (sha1): Add :version.
+	(sha1-use-external): Remove redundant version.
+
+	* nnmail.el (nnmail-split-fancy-with-parent-ignore-groups)
+	(nnmail-cache-ignore-groups, nnmail-spool-hook)
+	(nnmail-split-fancy-match-partial-words)
+	(nnmail-split-lowercase-expanded):
+
+	* nndiary.el (nndiary): Add :version.
+
+	* mml2015.el (mml2015-unabbrev-trust-alist): Add :version.
+
+	* mml-sec.el (mml-default-sign-method)
+	(mml-default-encrypt-method, mml-signencrypt-style-alist):
+	Add :version.
+
+	* mm-uu.el (mm-uu-diff-groups-regexp): Add :version.
+
+	* mm-url.el (mm-url-use-external, mm-url-program)
+	(mm-url-arguments): Add :version.
+
+	* mm-decode.el (mm-inline-text-html-with-w3m-keymap)
+	(mm-attachment-file-modes, mm-decrypt-option)
+	(mm-w3m-safe-url-regexp): Add :version.
+
+	* message.el (message-cite-prefix-regexp)
+	(message-sendmail-envelope-from, message-minibuffer-local-map)
+	(message-user-fqdn, message-completion-alist): Add :version.
+
+	* gnus-win.el (gnus-configure-windows-hook)
+	(gnus-use-frames-on-any-display): Add :version.
+
+	* gnus-art.el (gnus-article-address-banner-alist)
+	(gnus-treat-unsplit-urls, gnus-treat-unfold-headers)
+	(gnus-treat-from-picon, gnus-treat-mail-picon)
+	(gnus-treat-x-pgp-sig): Add :version.
+
+	* gnus-sum.el (gnus-spam-mark, gnus-recent-mark)
+	(gnus-undownloaded-mark, gnus-summary-article-move-hook)
+	(gnus-summary-article-delete-hook)
+	(gnus-summary-display-while-building): Add :version.
+
+	* gnus-start.el (gnus-subscribe-newsgroup-hooks)
+	(gnus-get-top-new-news-hook):Add :version.
+
+	* gnus-srvr.el (gnus-server-agent-face, gnus-server-opened-face)
+	(gnus-server-closed-face, gnus-server-denied-face): Add :version.
+
+	* gnus-registry.el (gnus-registry): Add :version.
+
+	* gnus-spec.el (gnus-use-correct-string-widths)
+	(gnus-make-format-preserve-properties): Add :version.
+
+	* gnus.el (gnus-group-charter-alist)
+	(gnus-group-fetch-control-use-browse-url)
+	(gnus-install-group-spam-parameters): Add :version.
+
+	* gnus-diary.el (gnus-diary): Add :version.
+
+	* gnus-delay.el (gnus-delay): Add :version.
+
+	* gnus-cite.el (gnus-cite-unsightly-citation-regexp)
+	(gnus-cite-ignore-quoted-from, gnus-cite-attribution-face)
+	(gnus-cite-blank-line-after-header, gnus-article-boring-faces):
+	Add :version.
+
+	* gnus-agent.el (gnus-agent-max-fetch-size)
+	(gnus-agent-enable-expiration, gnus-agent-queue-mail)
+	(gnus-agent-prompt-send-queue): Add :version.
+
+	* deuglify.el (gnus-outlook-deuglify): Add :version.
+
+	* html2text.el: Beautify code.  Improve doc strings.  Some checkdoc
+	cleanup.
+	(html2text-get-attr, html2text-fix-paragraph): Simplify code.
+	(html2text-format-tag-list): Add "strong" and "em".
+	From "Alfred M. Szmidt" <ams@kemisten.nu> (tiny change).
+
+2004-10-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-hashtb): create the registry
+	when package is loaded
+
+	* spam.el (spam-summary-score-preferred-header): global preference
+	for people who want to override the default SpamAssassin over
+	Bogofilter preference (when both are set)
+	(spam-necessary-extra-headers): add spam-use-bogofilter as an option
+	(spam-user-format-function-S): check spam-summary-score-preferred-header
+	(spam-extra-header-to-number): add X-Bogosity header parsing
+	(spam-user-format-function-S): format the score correctly
+
+2004-10-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-configure-posting-styles): Work with empty
+	signature file.  Suggested by Manoj Srivastava
+	<srivasta@golden-gryphon.com>.
+
+	* mm-util.el (mm-coding-system-priorities): Prefer iso-8859-1 than
+	iso-2022-jp even in the Japanese language environment.
+	Suggested by Jason Rumney <jasonr@gnu.org>.
+
+2004-10-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-update-summary-mark-positions): Allow users to
+	use the same characters as the dummy marks; make it free from
+	getting affected by the language environment.
+	(gnus-summary-read-group-1): Update mark positions only when the
+	format spec is updated.
+
+	* gnus-spec.el (gnus-update-format-specifications): Return a list
+	of updated types.
+
+2004-10-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-start.el (gnus-check-reasonable-setup): Use fboundp instead
+	of boundp to check if display-warning is available.
+
+2004-10-26  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* nnimap.el (nnimap-open-connection): fixed prog1/prog2 bug
+
+2004-10-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnspool.el (nnspool-spool-directory): Use news-path if the
+	news-directory variable is not bound.
+
+	* gnus-start.el (gnus-check-reasonable-setup): Use an alternative
+	function instead of display-warning if it is not available.
+
+2004-10-26  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-agent.el (gnus-agent-expire-group-1): Fix last merge from
+	v5-10: Use `point-at-bol'.
+
+2004-10-26  Simon Josefsson  <jas@extundo.com>
+
+	* hashcash.el: Fix URL in comment, reported by Cheng Gao
+	<chenggao@gmail.com>.
+
+2004-10-25  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* html2text.el (html2text-buffer-head): Remove.  Use `goto-char'
+	instead.
+
+2004-10-25  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* nnimap.el (nnimap-remove-server-from-buffer-alist): new function
+	to remove a server from the nnimap-server-buffer-alist
+	(nnimap-open-connection, nnimap-close-server): use it
+
+	* gnus-encrypt.el: removed in favor of encrypt.el
+
+2004-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-view.el (mm-display-inline-fontify): Inhibit font-lock when
+	running the major-mode function.
+
+2004-10-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-update-summary-mark-positions): Search for
+	dummy marks in the right way.
+
+2004-10-18  David Edmondson  <dme@dme.org>
+
+	* mm-view.el (mm-w3m-cid-retrieve-1): Don't use recursive call
+	excessively.
+
+2004-10-18  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-util.el (gnus-split-references): accept a nil references
+	string and go on blissfully
+
+	* gnus-registry.el (gnus-registry-split-fancy-with-parent): catch
+	cases where the references string is non-nil but has no references
+
+	* encrypt.el: add autoload tags
+
+	* spam.el (spam-resolve-registrations-routine): remove article
+	from unregistration list too.  Reported by David Hanak
+	<dhanak@isis.vanderbilt.edu>
+
+2004-10-18  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-copy-article-ignored-headers): Default to
+	nil.  Changed custom type.
+
+2004-10-17  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-copy-article-ignored-headers): New variable.
+
+	* gnus-sum.el (gnus-summary-move-article): Use it.
+
+2004-10-15  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* encrypt.el: add autoload cookies
+
+	* spam.el (spam-backend-article-list-property)
+	(spam-backend-get-article-todo-list)
+	(spam-backend-put-article-todo-list, )
+	(spam-summary-prepare-exit, spam-resolve-registrations-routine):
+	resolve registrations separately
+	(spam-register-routine): format comments
+	(spam-unregister-routine, spam-register-routine): always call with
+	specific-articles, no default list
+	(spam-summary-prepare-exit): use the spam-classifications function
+
+	* netrc.el (autoload, netrc-parse): use encrypt.el instead of
+	gnus-encrypt.el
+
+	* encrypt.el: copied from gnus-encrypt.el
+
+	* gnus-encrypt.el: commented that it's obsolete
+
+2004-10-15  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-score.el (gnus-adaptive-pretty-print): New variable.
+	(gnus-score-save): Use it.
+
+	* message.el (message-bury): Use `window-dedicated-p'.
+
+2004-10-15  Simon Josefsson  <jas@extundo.com>
+
+	* pop3.el (top-level): Don't require nnheader.
+	(pop3-read-timeout): Add.
+	(pop3-accept-process-output): Add.
+	(pop3-read-response, pop3-retr): Use it.
+
+2004-10-14  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-register-routine): move comment
+	(spam-verify-bogofilter): we use 'unknown for the initial
+	spam-bogofilter-valid state, not 'never
+
+	* netrc.el (netrc-machine-user-or-password): convenience wrapper
+	for netrc-machine
+
+	* nnimap.el (nnimap-open-connection): use
+	netrc-machine-user-or-password
+
+2004-10-17  Richard M. Stallman  <rms@gnu.org>
+
+	* gnus-registry.el (gnus-registry-unload-hook): 
+	Set as a variable with add-hook.
+
+	* nnspool.el (nnspool-spool-directory): Use news-directory instead
+	of news-path.
+
+	* spam-stat.el (spam-stat-unload-hook): Set as a variable w/ add-hook.
+
+	* spam.el: Delete duplicate `provide'.
+	(spam-unload-hook): Set as a variable with add-hook.
+
+2004-10-15  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* pop3.el (pop3-leave-mail-on-server): Describe possible problems
+	in the doc string.
+
+	* message.el (message-ignored-news-headers)
+	(message-ignored-supersedes-headers)
+	(message-ignored-resent-headers)
+	(message-forward-ignored-headers): Improve custom type.
+
+2004-10-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-tokenize-header): Fix 2004-09-06 change
+	which used point-min in the wrong place.
+
+2004-10-12  Simon Josefsson  <jas@extundo.com>
+
+	* net/tls.el (tls-certtool-program): New variable.
+	(tls-certificate-information): New function, based on
+	ssl-certificate-information.
+
+2004-10-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* compface.el: Move the version of ELisp-based uncompface program
+	to the contrib directory because of the copyright problem.
+
+2004-10-12  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-kill-buffer): Raise the current frame.
+
+2004-10-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-sum.el: Mention that multibyte characters don't work as marks.
+
+	* gnus.el (message-y-or-n-p): Autoload.
+
+	* pop3.el (pop3-maildrop, pop3-mailhost, pop3-port)
+	(pop3-password-required, pop3-authentication-scheme)
+	(pop3-leave-mail-on-server): Made customizable.
+	(pop3): New custom group.
+	(pop3-retr): Remove `sleep-for' statements.
+	Suggested by Dave Love <fx@gnu.org>.
+
+	* nnheader.el (nnheader-read-timeout): Explain 1.0 timeout for
+	Windows/DOS.
+
+	* imap.el (imap-parse-flag-list, imap-parse-body-extension)
+	(imap-parse-body): Fix incorrect use of `assert'.  Suggested by
+	Dave Love <fx@gnu.org>.
+
+	* mml.el (mml-minibuffer-read-disposition): Require match.
+	Suggested by Dave Love <fx@gnu.org>.
+
+2004-10-11  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-group.el (gnus-group-delete-group): Change "\t." to "  " in
+	doc string.
+
+2004-10-08  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-uu.el (mm-uu-dissect-text-parts): Support all text/* types.
+
+2004-10-07  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* gnus-art.el (gnus-mime-display-single): Call `mm-display-inline'
+	instead of calling `mm-insert-inline', to decode text/* parts
+	before displaying them.
+
+2004-10-07  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-uu.el (mm-uu-text-plain-type): New variable.
+	(mm-uu-pgp-signed-extract-1): Use it.
+	(mm-uu-pgp-encrypted-extract-1): Use it.
+	(mm-uu-dissect): Allow MIME type and parameters as an optional arg;
+	bind mm-uu-text-plain-type with that value.
+	(mm-uu-dissect-text-parts): Pass MIME type and parameters to
+	mm-uu-dissect.
+
+2004-10-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-update-group-mark-positions):
+	* gnus-sum.el (gnus-update-summary-mark-positions):
+	* message.el (message-check-news-body-syntax):
+	* gnus-msg.el (gnus-debug): Use mm-string-as-multibyte instead
+	of string-as-multibyte.
+
+2004-10-05  Juri Linkov  <juri@jurta.org>
+
+	* gnus-group.el (gnus-update-group-mark-positions):
+	* gnus-sum.el (gnus-update-summary-mark-positions):
+	* message.el (message-check-news-body-syntax):
+	* gnus-msg.el (gnus-debug): Use `string-as-multibyte' to convert
+	8-bit unibyte values to a multibyte string for search functions.
+
+2004-10-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-uu.el (mm-uu-dissect): Allow optional arg.
+	(mm-uu-dissect-text-parts): New function.
+
+	* gnus-art.el (gnus-display-mime): Use mm-uu-dissect-text-parts to
+	dissect text parts.
+
+	* gnus-sum.el (gnus-summary-insert-subject): Remove redundant setq.
+	(gnus-summary-force-verify-and-decrypt): Revert 2004-08-18 change.
+
+	* mm-decode.el (mm-dissect-singlepart): Revert 2004-08-18 change.
+
+	* gnus-topic.el (gnus-topic-hierarchical-parameters): Use
+	gnus-current-topics instead of gnus-current-topic.
+
+2004-10-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-show-article): Use with-current-buffer.
+
+2004-10-05  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnsoup.el (nnsoup-read-active-file): Use dolist, mapc or last
+	where approriate.
+
+	* nnml.el (nnml-generate-active-info): do.
+
+	* nndiary.el (nndiary-generate-active-info): do.
+
+	* gnus-topic.el (gnus-topic-hierarchical-parameters): do.
+	(gnus-topic-move): do.
+
+	* gnus-sum.el (gnus-data-enter-list, gnus-summary-process-mark-set)
+	(gnus-summary-set-local-parameters, gnus-summary-read-document): do.
+
+	* gnus-srvr.el (gnus-server-prepare)
+	(gnus-server-open-all-servers): do.
+
+	* gnus-msg.el (gnus-summary-cancel-article)
+	(gnus-summary-resend-message)
+	(gnus-summary-mail-crosspost-complaint): do.
+
+	* gnus-move.el (gnus-change-server): do.
+
+	* gnus-group.el (gnus-group-unmark-all-groups)
+	(gnus-group-set-current-level): do.
+
+2004-10-04  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-generate-hashcash): Doc fix.
+
+2004-10-02  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* nnagent.el (nnagent-request-type): Bind gnus-agent to nil to
+	avoid infinite recursion via gnus-get-function.
+
+2004-10-02  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-partial.el (mm-partial-find-parts): Use with-current-buffer.
+
+	* nnfolder.el (nnfolder-generate-active-file): Use dolist.
+
+	* nnmail.el (nnmail-split-history): do.
+
+	* nnml.el (nnml-generate-nov-databases-1, nnml-request-rename-group)
+	(nnml-request-delete-group): do.
+
+	* nnslashdot.el (nnslashdot-read-groups): do.
+
+	* nnsoup.el (nnsoup-delete-unreferenced-message-files): do.
+	(nnsoup-unpack-packets, nnsoup-make-active): Simplify.
+
+	* nnspool.el (nnspool-find-id): Use with-temp-buffer.
+	(nnspool-sift-nov-with-sed): Use last
+	(nnspool-retrieve-headers-with-nov): Use mapc.
+	(nnspool-request-newgroups): Use dolist.
+	(nnspool-request-group): Use last.
+
+	* nntp.el (nntp-read-server-type): Use dolist.
+
+	* nnvirtual.el (nnvirtual-create-mapping)
+	(nnvirtual-update-read-and-marked): Use dolist.
+	(nnvirtual-convert-headers): Simplify.
+
+2004-10-01  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-agent.el (gnus-agent-synchronize-group-flags): Added
+	support for sync'ing tick marks.
+
+2004-10-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-toggle-header): Make it work even if
+	there's no visible header.
+
+2004-10-01  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-agent.el (gnus-agent-synchronize-group-flags): When
+	necessary, pass full group name to gnus-request-set-marks.
+	
+2004-10-01  Simon Josefsson  <jas@extundo.com>
+
+	* mailcap.el (mailcap-mime-data): Add pdf.  Remove non-free
+	acroread.
+
+2004-10-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* spam-report.el (spam-report-gmane): Fix interactive.
+
+	* gnus-art.el (gnus-treat-body-boundary): Only do stuff under X. 
+
+	* gnus-agent.el (gnus-agent-synchronize-flags-server): Be silent
+	when writing file.
+	(gnus-agent-synchronize-flags): Don't default to being
+	interactive. 
+
+2004-09-30  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-generate-hashcash): Add.
+	(message-send-mail): Use it, call mail-add-payment.
+
+2004-09-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-verify-bogofilter): -V, not -sV option
+
+2004-09-28  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-agent.el (gnus-agent-synchronize-group-flags): Replaced
+	gnus-requst-update-info with explicit code to sync the in-memory
+	info read flags with the marks being sync'd to the backend.
+
+	*gnus-util.el (gnus-pp): Added optional stream to match pp API.
+	
+2004-09-28  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-verify-bogofilter): new function
+	(spam-check-bogofilter)
+	(spam-bogofilter-register-with-bogofilter): use it
+	(spam-verify-bogofilter): small fixes
+
+2004-09-28  Simon Josefsson  <jas@extundo.com>
+
+	* hashcash.el (hashcash-generate-payment): Revert.
+
+2004-09-28  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-split-fancy-with-parent): use
+	gnus-extract-references instead of gnus-split-references
+
+	* gnus-util.el (gnus-extract-references): new function, analogous
+	to gnus-split-references but extracts only the message-ID without
+	anything extra
+
+	* hashcash.el (hashcash-generate-payment)
+	(hashcash-check-payment): do the right thing if hashcash-path is
+	nil (because the hashcash program could not be found)
+
+	* spam.el (spam-use-hashcash): remove comment
+
+2004-09-27  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-cache.el (gnus-cache-possibly-remove-articles-1)
+	(gnus-cache-enter-article, gnus-cache-remove-article)
+	(gnus-cache-braid-heads, gnus-cache-generate-active): Use dolist.
+
+	* gnus-async.el (gnus-async-prefetch-remove-group): do.
+
+	* gnus-art.el (article-hide-boring-headers)
+	(article-translate-strings, article-display-face)
+	(gnus-article-mime-match-handle-first)
+	(gnus-article-highlight-headers)
+	(gnus-article-add-buttons-to-head): do.
+
+2004-09-27  Simon Josefsson  <jas@extundo.com>
+
+	* hashcash.el: New version, from
+	http://users.actrix.co.nz/mycroft/hashcash.el.  Previously in
+	../contrib/.
+
+2004-09-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-copy-to-buffer): Don't use set-buffer-multibyte.
+
+2004-09-26  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-dup.el (gnus-dup-open): Use mapc.
+	(gnus-dup-enter-articles, gnus-dup-suppress-articles): Use dolist.
+	
+	(gnus-dup-enter-articles): Remove excess ID's from gnus-dup-hashtb.
+	Reported by Stefan Wiens <s.wi@gmx.net>.
+
+	* gnus.el (gnus-shutdown): Use dolist.
+
+	* gnus-undo.el (gnus-undo): Use mapc.
+
+	* nnrss.el (nnrss-generate-active): do.
+
+	* message.el (message-cite-original-without-signature)
+	(message-cite-original): Use mapc.
+	(message-do-actions, message-make-forward-subject): Use dolist.
+
+2004-09-25  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-agent.el (gnus-agent-check-overview-buffer): Fixed range of
+	deletion to remove entire duplicate line.  Fixes merged article
+	number bug.
+	
+2004-09-25  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-agent.el (gnus-agent-possibly-synchronize-flags): Ignore
+	servers that are offline.  Avoids having gnus-agent-toggle-plugged
+	first ask if you want to open a server and then, even when you
+	responded with no, asking if you want to synchronize the server's
+	flags.
+	(gnus-agent-synchronize-flags-server): Rewrote read loop to handle
+	multi-line expressions.
+	(gnus-agent-synchronize-group-flags): New internal function.
+	Updates marks in memory (in the info structure) AND in the
+	backend.
+
+	* gnus-util.el (gnus-remassoc): Fixed typo in documentation.
+
+	* nnagent.el (nnagent-request-set-mark): Use
+	gnus-agent-synchronize-group-flags, not backend's request-set-mark
+	method, to ensure that synchronization updates marks in the
+	backend and in the info (in memory) structure.
+	
+2004-09-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-uu.el (gnus-uu-digest-mail-forward): Obey the process/prefix
+	convention fully; don't miss the root article of a thread; make
+	the X-Draft-From header with correct article numbers.
+
+2004-09-23  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-agent.el (gnus-agent-synchronize-flags-server): Do nothing
+	unless plugged.  Disable the agent so that an open failure causes
+	an error.
+
+	* gnus-int.el (gnus-request-set-mark, gnus-request-update-mark):
+	Reverted 2004-09-21 change.  The backend must be opened while
+	synchronizing flags even when the backend stores the flags
+	locally.
+
+2004-09-23  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-msg.el (gnus-configure-posting-styles): Narrow to headers
+	in `header' match.  Reported by Svend Tollak Munkejord.
+
+	* message.el (message-cite-original): Fix use of
+	`message-cite-articles-with-x-no-archive'.
+
+2004-09-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-win.el (gnus-buffer-configuration): Add mml-preview.
+	(gnus-window-to-buffer): Ditto.
+
+	* mml.el (mml-preview-buffer): New variable.
+	(mml-preview): Manage window layout with gnus-buffer-configuration.
+
+	* gnus-msg.el (gnus-setup-message): Put article numbers into the
+	X-Draft-From header even if those articles aren't quoted.
+
+2004-09-21  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-int.el (gnus-servers-that-use-local-marks): New variable.
+	(gnus-request-set-mark, gnus-request-update-mark): Use new
+	g-s-t-u-l-m to decide to use backend even when unplugged.
+
+2004-09-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-inews-make-draft-meta-information): Don't add
+	a trailing whitespace.  Suggested by Cheng Gao <chenggao@gmail.com>.
+
+2004-09-20  Simon Josefsson  <jas@extundo.com>
+
+	* mm-util.el (mm-charset-synonym-alist): Map "unicode" to
+	"utf-16-le".
+
+2004-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* mm-decode.el (mm-copy-to-buffer): Preserve the data's unibyteness.
+
+2004-09-19  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* uudecode.el (uudecode-use-external): Add :version.
+
+	* smime.el (smime-CA-file, smime-encrypt-cipher)
+	(smime-dns-server): Add :version.
+
+	* smiley.el (gnus-smiley-file-types): Add :version.
+
+	* sha1.el (sha1-use-external): Add :version.
+
+	* pgg-def.el (pgg-query-keyserver): Add :version.
+
+	* nnmail.el (nnmail-fancy-expiry-targets)
+	(nnmail-mail-splitting-charset, nnmail-mail-splitting-decodes):
+
+	* nnimap.el (nnimap-split-download-body, nnimap-dont-close)
+	(nnimap-retrieve-groups-asynchronous): Add :version.
+	(nnimap-close-asynchronous): Add :version.  Fixed typo in doc string.
+
+	* mml.el (mml-content-disposition-parameters)
+	(mml-insert-mime-headers-always): Add :version.
+
+	* mm-util.el (mm-coding-system-priorities):
+
+	* mm-decode.el (mm-inline-text-html-with-images)
+	(mm-keep-viewer-alive-types, mm-external-terminal-program)
+	(mm-verify-option): Add :version.
+	(mm-text-html-renderer): Change :version.
+
+	* message.el (message-fcc-externalize-attachments)
+	(message-required-headers, message-draft-headers)
+	(message-subject-trailing-was-query)
+	(message-subject-trailing-was-ask-regexp)
+	(message-subject-trailing-was-regexp, message-mark-insert-begin)
+	(message-mark-insert-end, message-archive-header)
+	(message-archive-note, message-cross-post-default)
+	(message-cross-post-note, message-followup-to-note)
+	(message-cross-post-note-function, message-use-mail-followup-to)
+	(message-subscribed-address-functions)
+	(message-subscribed-address-file, message-subscribed-addresses)
+	(message-subscribed-regexps, message-allow-no-recipients)
+	(message-yank-cited-prefix, message-signature-insert-empty-line)
+	(message-hidden-headers, message-hierarchical-addresses)
+	(message-mail-user-agent, message-use-idna)
+	(message-valid-fqdn-regexp)
+	(message-strip-special-text-properties, message-header-synonyms)
+	(message-beginning-of-line, message-tab-body-function): Add :version.
+	(message-insert-canlock, message-wide-reply-confirm-recipients):
+	Change :version.
+
+	* mail-source.el (mail-source-ignore-errors): Add :group, :type
+	and :version.
+	(mail-source-delete-old-incoming-confirm)
+	(mail-source-movemail-program): Add :version.
+
+	* gnus.el (gnus-parameters, gnus-user-agent): Add :version.
+	(gnus-agent-cache, gnus-agent): Change :version.
+
+	* gnus-util.el (gnus-use-byte-compile): Change :version.
+
+	* gnus-sum.el (gnus-summary-make-false-root-always)
+	(gnus-summary-default-high-score)
+	(gnus-summary-default-low-score, gnus-auto-goto-ignores)
+	(gnus-forwarded-mark, gnus-unseen-mark, gnus-no-mark)
+	(gnus-read-all-available-headers, gnus-article-emulate-mime)
+	(gnus-sum-thread-tree-root, gnus-sum-thread-tree-false-root)
+	(gnus-sum-thread-tree-single-indent)
+	(gnus-sum-thread-tree-vertical, gnus-sum-thread-tree-indent)
+	(gnus-sum-thread-tree-leaf-with-other)
+	(gnus-sum-thread-tree-single-leaf): Add :version.
+	(gnus-summary-display-arrow, gnus-summary-muttprint-program)
+	(gnus-article-loose-mime): Change :version.
+
+	* gnus-start.el (gnus-backup-startup-file)
+	(gnus-save-startup-file-via-temp-buffer): Add :version.
+
+	* gnus-srvr.el (gnus-server-browse-in-group-buffer)
+	(gnus-server-offline-face): Add :version.
+
+	* gnus-score.el (gnus-adaptive-word-length-limit):
+
+	* gnus-msg.el (gnus-gcc-externalize-attachments)
+	(gnus-debug-files, gnus-debug-exclude-variables)
+	(gnus-discouraged-post-methods): Change :version.
+	(gnus-confirm-mail-reply-to-news)
+	(gnus-confirm-treat-mail-like-news): Add :version.
+
+	* gnus-int.el (gnus-server-unopen-status): Add :version.
+
+	* gnus-group.el (gnus-group-jump-to-group-prompt)
+	(gnus-large-ephemeral-newsgroup)
+	(gnus-fetch-old-ephemeral-headers): Add :version.
+
+	* gnus-fun.el (gnus-x-face-directory)
+	(gnus-convert-pbm-to-x-face-command)
+	(gnus-convert-image-to-x-face-command)
+	(gnus-convert-image-to-face-command): Add :version.
+
+	* gnus-delay.el (gnus-delay-default-hour): Add :version.
+
+	* gnus-cite.el (gnus-cite-blank-line-after-header)
+	(gnus-article-boring-faces):
+
+	* gnus-art.el (gnus-buttonized-mime-types)
+	(gnus-inhibit-mime-unbuttonizing)
+	(gnus-treat-display-face)
+	(gnus-treat-body-boundary): Change :version.
+	(gnus-body-boundary-delimiter, gnus-picon-databases)
+	(gnus-treat-strip-cr, gnus-treat-leading-whitespace)
+	(gnus-treat-date-english, gnus-treat-fold-headers)
+	(gnus-article-skip-boring, gnus-treat-fold-newsgroups)
+	(gnus-treat-mail-picon, gnus-treat-wash-html)
+	(gnus-article-encrypt-protocol)
+	(gnus-use-idna, gnus-article-over-scroll)
+	(gnus-mime-display-multipart-alternative-as-mixed)
+	(gnus-mime-display-multipart-related-as-mixed)
+	(gnus-button-valid-fqdn-regexp, gnus-button-man-handler)
+	(gnus-ctan-url, gnus-button-ctan-handler)
+	(gnus-button-handle-ctan-bogus-regexp)
+	(gnus-button-ctan-directory-regexp)
+	(gnus-button-mid-or-mail-regexp, gnus-button-prefer-mid-or-mail)
+	(gnus-button-mid-or-mail-heuristic-alist, gnus-button-tex-level)
+	(gnus-button-man-level, gnus-button-emacs-level)
+	(gnus-button-message-level, gnus-button-browse-level): Add :version.
+
+	* gnus-agent.el (gnus-agent-fetched-hook): Add :version.
+	(gnus-agent-go-online): Change :version.
+	(gnus-agent-expire-unagentized-dirs)
+	(gnus-agent-auto-agentize-methods): Add :version.
+
+	* flow-fill.el (fill-flowed-display-column)
+	(fill-flowed-encode-column): Add :version.
+
+	* deuglify.el (gnus-outlook-deuglify-unwrap-min)
+	(gnus-outlook-deuglify-unwrap-max)
+	(gnus-outlook-deuglify-cite-marks)
+	(gnus-outlook-deuglify-unwrap-stop-chars)
+	(gnus-outlook-deuglify-no-wrap-chars)
+	(gnus-outlook-deuglify-attrib-cut-regexp)
+	(gnus-outlook-deuglify-attrib-verb-regexp)
+	(gnus-outlook-deuglify-attrib-end-regexp)
+	(gnus-outlook-display-hook): Add :version.
+
+	* binhex.el (binhex-use-external): Add :version.
+
+2004-09-16  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-sum.el (gnus-fetch-old-headers): Add custom choices `t'
+	and `invisible'.
+
+2004-09-10  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-trim): watch out for negatives
+	in gnus-registry-trim
+
+2004-09-13  Simon Josefsson  <jas@extundo.com>
+
+	* dns-mode.el: Add XEmacs auto-mode-alist autoload cookie.
+
+	* nnimap.el (nnimap-demule): Revert 2004-08-30 change.
+
+	* dns-mode.el (dns-mode): Fix menu for XEmacs, reported by Steve
+	Youngs <steve@youngs.au.com> and suggested by Katsumi Yamaoka
+	<yamaoka@jpl.org>.
+	(dns-mode-font-lock-keywords): Fix faces, reported by Steve Youngs
+	<steve@youngs.au.com> and suggested by Katsumi Yamaoka
+	<yamaoka@jpl.org>.
+
+	* sieve.el (sieve-manage-mode): Ditto.
+
+2004-09-13  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-sum.el (gnus-summary-copy-article): Fix doc string.
+
+2004-09-11  Simon Josefsson  <jas@extundo.com>
+
+	* dns-mode.el: Add.
+
+	* mm-view.el (mm-display-dns-inline): Add.
+
+	* mm-decode.el (mm-inline-media-tests): Add text/dns.
+	(mm-automatic-display): Ditto.
+
+	* mailcap.el (mailcap-mime-data): Add text/dns.
+	(mailcap-mime-extensions): Map .soa to text/dns.
+
+2004-09-10  Miles Bader  <miles@gnu.ai.mit.edu>
+
+	* gnus-art.el (article-decode-mime-words, article-babel)
+	(gnus-article-highlight-signature, gnus-article-add-buttons)
+	(gnus-signature-toggle): Remove unnecessary bindings of
+	`inhibit-read-only' inherited from v5.10 merge.
+
+2004-09-08  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* nntp.el (nntp): New customization group.
+	(nntp-authinfo-file): Add customization group.
+
+	* mml2015.el (mml2015-unabbrev-trust-alist): Add customization group.
+
+	* mml-sec.el (mml-signencrypt-style-alist): Ditto.
+
+	* gnus.el (to-address, to-list, subscribed)
+	(large-newsgroup-initial): Ditto.
+
+	* flow-fill.el (fill-flowed-display-column)
+	(fill-flowed-encode-column): Ditto.
+
+2004-09-06  Stefan  <monnier@iro.umontreal.ca>
+
+	* message.el (message-tokenize-header, message-send-mail-with-qmail):
+	Use point-min rather than 1.
+	(message-send-mail): Use buffer-size rather than point-max.
+
+	* gnus-sum.el (gnus-summary-search-article-forward):
+	Signal a specific `search-failed' rather than a generic `error'.
+
+	* gnus-salt.el (gnus-pick-mouse-pick-region): Switch 1 => point-min.
+	(gnus-generate-vertical-tree): Usue `bobp' rather than compare to 1.
+	(gnus-highlight-selected-tree): Use point-min rather than 1 and 2.
+
+2004-09-10  Simon Josefsson  <jas@extundo.com>
+
+	* nndb.el (require): Remove tcp and duplicate cl.
+
+2004-09-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-agent.el (directory-files-and-attributes): Move forward.
+
+2004-09-09  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-agent.el (directory-files-and-attributes): Optionally
+	defined to support XEmacs.
+
+2004-09-09  Kevin Greiner  <kgreiner@compsol.cc>
+
+	* gnus-agent.el (gnus-agent-cat-groups): rewrote avoiding defsetf
+	to avoid run-time CL dependencies.
+	(gnus-agent-unfetch-articles): New function.
+	(gnus-agent-fetch-headers): Use gnus-agent-braid-nov to validate
+	article numbers even when local .overview file is missing.
+	(gnus-agent-read-article-number): New function. Only accepts
+	27-bit article numbers.
+	(gnus-agent-copy-nov-line, gnus-agent-uncached-articles): Use
+	gnus-agent-read-article-number.
+	(gnus-agent-braid-nov): Rewrote to validate article numbers coming
+	from backend while recognizing that article numbers in .overview
+	must be valid.
+	(gnus-agent-update-files-total-fetched-for): Use
+	directory-files-and-attributes to improve performance.
+	* gnus-int.el (gnus-request-move-article): Use
+	gnus-agent-unfetch-articles in place of gnus-agent-expire to
+	improve performance.
+
+	* gnus-start.el (gnus-convert-old-newsrc): Changed message text as
+	some users confused by references to .newsrc when they only have a
+	.newsrc.eld file.
+	(gnus-convert-mark-converter-prompt,
+	gnus-convert-converter-needs-prompt): Fixed use of property list.
+	* legacy-gnus-agent.el (gnus-agent-convert-to-compressed-agentview-prompt):
+	New function. Used internally to only display 'gnus converting
+	files' message when actually necessary.
+
+	* gnus-sum.el (): Removed (require 'gnus-agent) as required
+	methods now autoloaded.
+
+2004-09-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-insert-subject): Remove list
+	identifiers.
+
+2004-09-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-picon.el: Fix indentation and closing parenthesis.
+
+2004-09-01  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-canlock-generate): Require sha1, not
+	sha1-el.  (Can we get rid of this require alltogheter? It is ugly
+	to require within a function.  Sadly, if sha1.el isn't loaded, the
+	let binding in m-c-g will hide the defcustom definition, which is
+	bad.)
+
+	* canlock.el: Require sha1, not sha1-el.
+
+	* message.el: Don't autoload sha1 (there is a autoload cookie in
+	sha1.el).
+
+	* sha1-el.el: Renamed to sha1.el.
+
+2004-08-30  Juanma Barranquero  <lektu@terra.es>
+
+	* ietf-drums.el (ietf-drums-remove-whitespace): Fix character constant.
+
+2004-08-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* nnimap.el (nnimap-demule): Avoid string-as-multibyte.
+
+2004-08-30  Kim F. Storm  <storm@cua.dk>
+
+	* nntp.el (nntp-authinfo-file): Add :group 'nntp.
+
+	* nnimap.el (nnimap-authinfo-file, nnimap-prune-cache):
+	Add :group 'nnimap.
+
+2004-08-30  Simon Josefsson  <jas@extundo.com>
+
+	* rfc2231.el (rfc2231-parse-string): Restore whitespace syntax for
+	?* and ?\; (tiny patch).  From Andreas Schwab <schwab@suse.de>.
+
+2004-08-30  Simon Josefsson  <jas@extundo.com>
+
+	* ietf-drums.el (ietf-drums-syntax-table): Set syntax of ?* ?\;
+	and ?\' to symbol instead of whitespace (tiny patch).  From
+	Andreas Schwab <schwab@suse.de>.
+
+2004-08-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-agent.el (gnus-agent-restore-gcc): Use ^ and regexp-quote.
+
+	* gnus-sum.el (gnus-summary-morse-message): Use search-forward
+	instead of re-search-forward.
+
+	* gnus-uu.el (gnus-uu-save-article): Ditto.
+	(gnus-uu-post-encode-uuencode): Ditto.
+
+	* html2text.el (html2text-clean-list-items): Ditto.
+	(html2text-clean-dtdd): Ditto.
+	(html2text-format-tags): Ditto.
+
+	* message.el (message-send-mail-with-sendmail): Fix regexp.
+	(message-fill-field-general): Use search-forward instead of
+	re-search-forward.
+	(unbold-region): Ditto.
+
+	* nnrss.el (nnrss-request-article): Ditto.
+
+	* nnslashdot.el (nnslashdot-request-article): Ditto.
+
+	* nnweb.el (nnweb-gmane-wash-article): Ditto.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Avoid the
+	"Unrecognized menu descriptor" error in XEmacs.
+
+2004-08-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nndoc.el (nndoc-type-alist): Fix regexp in the rfc822-forward
+	entry.
+
+	* gnus-group.el (gnus-group-line-format-alist): Convert the value
+	of gnus-tmp-news-method into string under XEmacs.  It will be
+	passed to gnus-correct-length which takes only a string argument.
+
+2004-08-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el (gnus-bind-print-variables): New macro.
+	(gnus-prin1): Use it.
+	(gnus-prin1-to-string): Use it.
+	(gnus-pp): New function.
+	(gnus-pp-to-string): New function.
+
+	* gnus-cus.el (gnus-agent-cat-prepare-category-field): Replace
+	pp-to-string with gnus-pp-to-string.
+	* gnus-eform.el (gnus-edit-form): Replace pp with gnus-pp.
+	* gnus-group.el (gnus-group-make-kiboze-group): Ditto.
+	* gnus-msg.el (gnus-debug): Ditto.
+	* gnus-score.el (gnus-score-save): Ditto.
+	* gnus-spec.el (gnus-update-format): Replace pp-to-string with
+	gnus-pp-to-string.
+	* legacy-gnus-agent.el (gnus-agent-unlist-expire-days): Replace pp
+	with gnus-pp.
+	* score-mode.el (gnus-score-pretty-print): Ditto.
+	* webmail.el (webmail-debug): Ditto.
+
+2004-08-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-display-face, article-display-x-face): Use
+	buffer-read-only.
+
+2004-08-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-hide-list-identifiers): Bind
+	inhibit-read-only as t.
+
+2004-08-22  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-mlspl.el (gnus-group-split-update): Fix docstring.
+
+2004-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* gnus-art.el: Use inhibit-read-only instead of buffer-read-only.
+	(gnus-narrow-to-page): Don't assume point-min == 1.
+	(gnus-article-edit-mode): Derive from message-mode.
+
+	* gnus-score.el (gnus-score-find-bnews): Simplify and don't assume
+	point-min == 1.
+
+	* imap.el (imap-parse-address-list, imap-parse-body-ext):
+	Disable incorrect use of `assert'.
+
+	* message.el (message-mode): Set comment-start-skip.
+
+
+2004-08-22  Sam Steingold  <sds@gnu.org>
+
+	* pop3.el (pop3-leave-mail-on-server): New user variable.
+	(pop3-movemail): Delete mail only when it is nil.
+
+2004-08-21  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* nntp.el (nntp-marks-is-evil): Fix typo in docstring.
+
+	* mml.el (mml-preview): Use `pop-to-buffer'.
+
+	* message.el (message-goto-mail-followup-to): Insert after "To".
+	(message-carefully-insert-headers): Add comment.
+
+	* gnus.el: Remove unused variable `gnus-article-check-size'.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Add help texts.
+
+	* gnus-art.el (gnus-button-alist): Improve
+	`gnus-button-handle-library' entry.
+
+2004-08-19  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--emlink-p, nnmaildir--enoent-p): Use
+	downcase, since XEmacs capitalizes error messages differently.
+	From Sebastian Freundt <hroptatyr@gna.org>.
+
+2004-08-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* nntp.el: Add (require 'gnus) due to reference to
+	`gnus-directory'.  Reported by Matt Swift <swift@alum.mit.edu>.
+
+2004-08-18  Florian Weimer  <fw@deneb.enyo.de>
+
+	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): Bind
+	`mm-fill-flowed'.
+
+	* mm-decode.el (mm-dissect-singlepart): Check it.
+
+2004-08-17  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* nnimap.el (nnimap-open-connection): add 'imaps' synonym to
+	'imap' for netrc parsing
+
+2004-08-16  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mailcap.el (mailcap-mime-data): Mark as risky.
+
+2004-08-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-region): Assume the close parenthesis
+	may be included in the encoded word.
+	(rfc2047-encode): Don't append a space if the encoded word
+	includes close parenthesis.
+
+2004-08-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-1, rfc2047-encode): Improve encoding
+	of text within parentheses.
+
+2004-08-06  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-encrypt.el (gnus-encrypt-insert-file-contents)
+	(gnus-encrypt-write-file-contents): the password key is the file
+	name PLUS the cipher, not just the cipher.  Also remove failed
+	passwords from the cache.
+
+2004-08-06  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-article-loose-mime): Change default to t.  Doc
+	fix.
+
+2004-08-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-fold-region): Use trailing whitespace as
+	LWSP.
+
+2004-08-04  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-split-fancy-with-parent): try
+	to append in-reply-to: data to the references: header
+
+	* netrc.el: removed old encryption support, autoload gnus-encrypt.el
+	(netrc-parse): use gnus-encrypt.el functions
+
+	* gnus-encrypt.el: new file for encryption support; currently
+	does only a few GPG ciphers and an internal XOR cipher
+
+	* password.el: add comments on using password-read-and-add
+	(password-read-and-add): new function to read and add the
+	password to the cache at once
+
+2004-07-28  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-pgp5.el (pgg-pgp5-encrypt-region): Accept sign
+	parameter (but don't use it, for now).
+
+	* imap.el (imap-ssl-open): Use imap-process-connection-type,
+	instead of hard coding to nil.
+
+2004-07-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-view.el (mm-inline-image-emacs): Open lines under an image
+	as mm-inline-image-xemacs does.
+
+2004-07-26  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-group-map, gnus-group-make-menu-bar):
+	Revert part of 2004-07-17 change below.
+
+2004-07-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-region): Don't infloop.  Suggested by
+	Hiroshi Fujishima <pooh@nature.tsukuba.ac.jp>.
+
+2004-07-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* flow-fill.el (fill-flowed): Remove space stuffing, and only do
+	quotes that actually start with ">" at the beginning of the
+	lines. 
+
+2004-07-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-region): Fix last change.
+	(rfc2047-encode-parameter): Remove useless concat.
+
+2004-07-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-region): Check carefully whether to
+	encode special characters; fix some kind of misconfigured headers;
+	signal a real error if debug-on-quit or debug-on-error is non-nil.
+	(rfc2047-encode-max-chars): New variable.
+	(rfc2047-encode-1): Use it.
+	(rfc2047-encode-parameter): New function.
+
+	* mml.el (mml-insert-parameter): Remove an excessive space.
+
+2004-07-17  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-make-group-simple): Add, suggested by
+	Kai Grossjohann <kai@emptydomain.de>.
+	(gnus-group-group-map): Use it, instead of gnus-group-make-group.
+	(gnus-group-make-menu-bar): Ditto.
+
+	* gnus-util.el (gnus-group-server): Add.
+
+2004-07-16  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-clone-locals): Clone sendmail and smtp
+	variables.
+
+2004-07-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-region): Fix last change.
+
+2004-07-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+	From David Hedbor <dhedbor@real.com>.
+
+	* nnmail.el (nnmail-split-lowercase-expanded): New user option.
+	(nnmail-expand-newtext): Lowercase expanded entries if
+	nnmail-split-lowercase-expanded is non-nil.
+
+2004-07-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-region): Treat backslash-quoted
+	characters as non-special.
+
+2004-07-09  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-agent.el (gnus-agent-synchronize-flags): Revert to ask.
+	Users will lose all flag changes made while unplugged with
+	e.g. nntp unless flag synchronization happens, thus `nil' is not a
+	good default.  See numerous reports on ding mailing list.
+
+2004-07-09  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nndoc.el (nndoc-type-alist): Improve regexp for article-begin,
+	add generate-head-function and generate-article-function to the
+	rfc822-forward entry.
+	(nndoc-rfc822-forward-generate-article): New function.
+	(nndoc-rfc822-forward-generate-head): New function.
+
+	* mm-decode.el (mm-dissect-buffer): Simplify cleaning of CTE.
+
+2004-07-06  Dan Christensen  <jdc@uwo.ca>
+
+	* gnus-sum.el (gnus-summary-read-group-1): When summary
+	is unthreaded, respect display group parameter.
+	(gnus-articles-to-read): Remove unused reference to
+	display group parameter.
+
+2004-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnheader.el (nnheader-uniquify-message-id): New experimental
+	variable. 
+	(nnheader-nov-read-message-id): Use it.
+
+	* spam-report.el (spam-report-gmane): Add interactive.
+
+2004-07-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-encode.el (mm-content-transfer-encoding-defaults): Use
+	qp-or-base64 for the application/* types.
+
+2004-07-02  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnrss.el (nnrss-read-group-data): Fix off-by-one error.  From
+	Joakim Verona <joakim@verona.se>.
+
+2004-06-30  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-trim): don't allow a negative
+	trim value
+
+2004-01-25  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--condcase, nnmaildir--enoent-p):
+	New macro and function.
+	(nnmaildir--new-number, nnmaildir-request-set-mark): Use them.
+
+2004-06-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-enrich-utf-8-by-mule-ucs): Fix cleaning of
+	after-load-alist.
+
+2004-06-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el (gnus-group-get-new-news-this-group): Don't
+	update info that isn't there.
+
+2004-06-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-view.el (mm-inline-render-with-function): Use multibyte
+	buffer; decode html source by charset.
+
+	* mm-encode.el (mm-content-transfer-encoding-defaults): Doc fix.
+
+	* mm-util.el (mm-mime-mule-charset-alist): Add the windows-1251
+	entry.  From Ilya N. Golubev <gin@mo.msk.ru>.
+	(mm-enrich-utf-8-by-mule-ucs): New function run when Mule-UCS is
+	loaded under XEmacs.
+	(): Don't make duplicated entries in mm-mime-mule-charset-alist.
+
+2004-06-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnheader.el (nnheader-max-head-length): Increase to 8192.
+
+2004-06-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-coding-system-p): Return a coding-system.
+	(mm-mime-mule-charset-alist): Use shift_jis instead of
+	iso-2022-jp-2 for the katakana-jisx0201 mule charset; add new
+	entries for the mime charsets iso-2022-jp-3 and shift_jis.
+	(mm-coding-system-priorities): Use shift_jis and iso-8859-1
+	instead of japanese-shift-jis and iso-latin-1 respectively in
+	order to share the default value with both Emacs and XEmacs-mule.
+	(mm-mule-charset-to-mime-charset): Make
+	mm-coding-system-priorities effective.
+	(mm-sort-coding-systems-predicate): Canonicalize coding-systems
+	while predicating of candidates upon the priorities.
+
+2004-06-27  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Add
+	gnus-uu-invert-processable.
+
+	* gnus.el: Autoload gnus-uu-invert-processable.
+
+2004-06-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-with-multibyte-buffer): New macro.
+
+	* rfc2047.el (rfc2047-encode-string): Use it.
+	(rfc2047-encode-region): Move point to the end of the region after
+	encoding.  Suggested by IRIE Tetsuya <irie@t.email.ne.jp>.
+
+2004-06-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-cite.el (gnus-cite-parse): Don't ignore case when finding
+	">From ".  Thanks to Reiner Steib <Reiner.Steib@gmx.de>.
+
+2004-06-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-cite.el (gnus-cite-ignore-quoted-from): New user option.
+	(gnus-cite-parse): Ignore quoted envelope From_.  Suggested by
+	Karl Chen <quarl@nospam.quarl.org>.
+
+2004-06-23  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-idna-to-ascii-rhs-1): Don't choke on
+	invalid addresses.
+
+2004-06-21  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: section markers changed, TODO list revised
+	(spam-backends): new master list of all installed backends
+	(spam-summary-exit-behavior): new variable to determine how
+	messages moves are done at summary exit
+	(spam-move-spam-nonspam-groups-only)
+	(spam-process-ham-in-nonham-groups)
+	(spam-process-ham-in-spam-groups): variables removed, the
+	spam-summary-exit-behavior variable should be used to manage this
+	behavior
+	(spam-old-ham-articles, spam-old-spam-articles): removed
+	(spam-old-articles): new variable, replacing spam-old-ham-articles
+	and spam-old-spam-articles
+	(spam-use-copy, spam-use-move, spam-use-gmane, spam-use-resend):
+	empty variables, placeholders for the backends they represent
+	(spam-set-difference): moved, unchanged
+	(spam-list-of-processors): variable OBSOLETE, not used anymore
+	unless the user has a processor variable
+	(spam-classifications, spam-classification-valid-p)
+	(spam-backend-properties, spam-backend-property-valid-p)
+	(spam-backend-function-type-valid-p)
+	(spam-process-type-valid-p, spam-list-articles): helper functions
+	(spam-report-articles-gmane, spam-report-articles-resend):
+	functions removed, they are not needed
+	(spam-install-backend-super, spam-backend-list)
+	(spam-backend-check, spam-backend-valid-p, spam-backend-info)
+	(spam-backend-function, spam-backend-ham-registration-function)
+	(spam-backend-spam-registration-function)
+	(spam-backend-ham-unregistration-function)
+	(spam-backend-spam-unregistration-function)
+	(spam-backend-statistical-p, spam-backend-mover-p)
+	(spam-install-backend-alias, spam-install-checkonly-backend)
+	(spam-install-mover-backend, spam-install-nocheck-backend)
+	(spam-install-backend, spam-install-statistical-backend)
+	(spam-install-statistical-checkonly-backend): backend installation
+	support
+	(spam-summary-prepare-exit): rewritten to use the new backend code
+	(spam-group-processor-p): use the new backend code and respect the
+	summary exit behavior
+	(spam-mark-spam-as-expired-and-move-routine): removed
+	(spam-summary-prepare): changed to use the new spam-old-articles
+	variable
+	(spam-copy-or-move-routine, spam-copy-spam-routine)
+	(spam-move-spam-routine, spam-copy-ham-routine)
+	(spam-move-ham-routine): new code to copy/move ham or spam
+	(spam-fetch-field-fast): doc and code improved, plus it allows the
+	'number request
+	(spam-list-of-checks, spam-list-of-statistical-checks): variables
+	removed, no longer used
+	(spam-split, spam-find-spam): use the new backend code
+	(spam-registration-functions): variable removed, no longer used
+	(spam-unregister-routine): convenience wrapper
+	(spam-log-undo-registration, spam-register-routine)
+	(spam-log-processing-to-registry)
+	(spam-log-unregistration-needed-p): renamed "check" to "backend"
+	where possible
+	(spam-check-gmane-xref, spam-check-regex-headers)
+	(spam-check-blackholes, spam-check-stat, spam-check-ifile, spam-check-BBDB)
+	(spam-check-whitelist, spam-check-blacklist)
+	(spam-check-bogofilter-headers, spam-check-spamoracle)
+	(spam-check-spamassassin-headers, spam-check-bsfilter-headers)
+	(spam-check-crm114-headers): use the spam-split-group that
+	spam-split prepares, no need to determine it every time
+
+	* nnimap.el (nnimap-retrieve-headers-progress): add the message number to
+	the nnheader-parse-naked-head call
+
+	* nnheader.el (nnheader-generate-fake-message-id): fix indentation
+
+	* gnus-sum.el (gnus-nov-parse-line): add the message number to
+	the nnheader-nov-read-message-id call
+
+2004-06-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-group-get-new-news-this-group): Don't call
+	gnus-activate-group twice.  Suggested by Markus Peter
+	<warp@spin.de>.
+
+2004-06-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-time-format): Exchange the order of
+	day and month in the default value; fix customization type.
+	(article-date-ut): Use add-text-properties.
+	(article-make-date-line): Use message-make-date instead of
+	current-time-string.
+
+	* message.el (message-fetch-field): Don't use set-text-properties.
+	(message-make-date): Simplify.
+
+	* messagexmas.el (message-xmas-make-date): New function.
+	(message-xmas-redefine): Defalias message-make-date to it.
+
+2004-06-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-syntax-table): Treat `(' and `)' as is.
+	(rfc2047-encode-region): Treat text within parentheses as special;
+	show the original text when error has occurred.
+
+	* gnus-group.el (gnus-group-get-new-news-this-group): Pass the
+	already-computed method to gnus-activate-group.
+
+	* gnus-start.el (gnus-make-hashtable-from-newsrc-alist): Make the
+	same select-methods identical Lisp objects.
+
+	* gnus-srvr.el (gnus-server-set-info): Don't make a new Lisp
+	object when modifying the info.
+
+2004-06-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-srvr.el (gnus-server-set-info): Remove the server from
+	gnus-opened-servers since it has never been opened with the new
+	configuration yet.
+
+2004-06-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnheader.el (nnheader-nov-read-message-id): Pass the optional
+	arg to nnheader-generate-fake-message-id.
+
+2004-06-14  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* nnheader.el (nnheader-generate-fake-message-id): accept a
+	number and build a fake message ID localized to a group and
+	article number (so it's repeatable from that point on)
+	(nnheader-fake-message-id-p): change regex to accomodate new fake
+	ID format
+
+	* gnus-sum.el (gnus-get-newsgroup-headers): call
+	nnheader-generate-fake-message-id with the article number
+
+2004-06-12  YAGI Tatsuya  <ynyaaa@ybb.ne.jp>  (tiny change)
+
+	* gnus-art.el (gnus-article-next-page): Fix the way to find a real
+	end-of-buffer.
+
+2004-06-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-ignored-supersedes-headers): Add Approved. 
+
+2004-06-11  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-message-header): Remove useless
+	goto-char.
+	(rfc2047-encode): Fold the line before encoding.
+
+2004-06-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* rfc2047.el (rfc2047-encode-message-header): Disabled header
+	folding -- not all headers can be folded, and this should be done
+	by the message composition mode.  Probably.  I think. 
+
+2004-06-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el (gnus-remove-text-with-property): Make it slightly
+	fast.
+
+	* gnus-ems.el (gnus-remove-image): Don't use
+	message-text-with-property; remove only the image found first.
+
+	* gnus-xmas.el (gnus-xmas-remove-image): Remove only the image
+	found first.
+
+2004-06-09  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-send-mail-with-sendmail): Use with-current-buffer.
+
+2004-06-09  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-text-with-property): Make it fast and accept
+	optional arguments.
+	(message-strip-forbidden-properties): Use it.
+	(message-fix-before-sending): Follow the m-t-w-p change.
+
+	* gnus-ems.el (gnus-remove-image): Follow the m-t-w-p change.
+
+2004-06-08  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-hide-headers): Don't change the buffer
+	mistakenly when performing mml-preview even if
+	gnus-single-article-buffer is nil.
+
+2004-06-08  Kai Grossjohann  <kgrossjo@eu.uu.net>
+
+	* message.el (message-expand-name-databases): New user option.
+	(message-expand-name): Use it.
+
+2004-06-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-report-articles-resend)
+	(spam-report-resend-register-routine): allow ham reporting
+	(spam-report-resend-register-ham-routine): simple wrapper
+	(spam-registration-functions): add ham resending functions
+	(spam-list-of-processors): add ham resend processor
+
+	* gnus.el (ham-resend-to): new group parameter
+	(spam-process): add ham resend option
+
+	* spam-report.el (spam-report-resend): allow reporting ham
+	(spam-report-resend-ham): simple wrapper
+
+2004-06-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-cite-articles-with-x-no-archive): New
+	variable. 
+	(message-cite-original): Use it.
+
+2004-06-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-cite-original): Respect X-No-Archive. 
+
+2004-06-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-hide-headers): Refer to the values for
+	gnus-ignored-headers and gnus-visible-headers in the summary
+	buffer since a user may have set them as group parameters.
+
+2004-06-03  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* assistant.el (assistant-node-name): new convenience function
+	(assistant-render-text, assistant-render-node): error handling,
+	plus handle multiple next nodes
+	(assistant-find-next-node): commented out for now
+	(assistant-find-next-nodes): new function, returns list of next
+	nodes
+
+2004-06-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mail-source.el (mail-source-directory): Fix doc-string.
+
+2004-05-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* assistant.el (assistant-render-text, assistant-eval): add :set
+	widget type, which is different because it takes and returns a
+	list.  Much hilarity ensues.
+
+2004-05-28  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-alist): Fixed regexp for manual links.
+
+	* gnus-group.el (gnus-group-get-new-news-this-group): Added
+	doc-string.
+
+	* gnus-start.el (gnus-activate-group): Added doc-string.
+
+2004-05-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-encode.el (mm-safer-encoding): Consider 7bit is safe.
+
+2004-05-27  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* assistant.el (assistant-render-text): trying to add a :set
+	widget, more to come...
+
+	* spam.el (spam-group-spam-contents-p): handle empty groupname
+	strings
+	(spam-report-articles-resend)
+	(spam-report-resend-register-routine): allow spam-report-resend-to
+	to be a group parameter or a global value
+	(tiny change).  From Daniel Pittman <daniel@rimspace.net>.
+	(spam-register-routine): do registration iff any articles warrant
+	it.
+	(spam-summary-prepare-exit): changed log message for nil group
+	destinations 
+
+2004-05-26  Simon Josefsson  <jas@extundo.com>
+
+	* starttls.el: Merge with my GNUTLS based starttls.el.
+	(starttls-gnutls-program, starttls-use-gnutls)
+	(starttls-extra-arguments, starttls-process-connection-type)
+	(starttls-connect, starttls-failure, starttls-success): New
+	variables.
+	(starttls-program, starttls-extra-args): Doc fix.
+	(starttls-negotiate-gnutls, starttls-open-stream-gnutls): New
+	functions.
+	(starttls-negotiate, starttls-open-stream): Check
+	`starttls-use-gnutls' and pass on to corresponding *-gnutls
+	function if it is set.
+
+2004-05-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-region): Encode encoded words in
+	structured fields.
+
+2004-05-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-resend): Bind rfc2047-encode-encoded-words.
+
+2004-05-26  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-mark-junk-as-spam-routine)
+	(spam-mark-new-messages-in-spam-group-as-spam): allow user to
+	disable assigning the spam-mark to new messages
+	(spam-ham-copy-or-move-routine): todo decleared twice (tiny
+	change).  From Adam Sj,Ax(Bgren <asjo@koldfront.dk>.
+
+2004-05-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el: Autoload customize-set-variable for XEmacs.
+
+	* rfc2047.el (rfc2047-encodable-p): Don't move point.
+	(rfc2047-decode): Treat the ascii coding-system as raw-text by
+	default.
+
+2004-05-25  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-sum.el (gnus-summary-delete-article): invoke hook with
+	correct data (tiny change).  From Anand Mitra <mitramc@yahoo.com>.
+
+2004-05-24  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-list-of-processors): use nil for nonexistent processors
+	(spam-group-processor-p): fixed function so it works properly
+	(spam-group-processor-multiple-p)
+	(spam-group-spam-processor-report-gmane-p)
+	(spam-group-spam-processor-report-resend-p)
+	(spam-group-spam-processor-bogofilter-p)
+	(spam-group-spam-processor-blacklist-p)
+	(spam-group-spam-processor-ifile-p)
+	(spam-group-ham-processor-ifile-p)
+	(spam-group-spam-processor-spamoracle-p)
+	(spam-group-spam-processor-crm114-p)
+	(spam-group-ham-processor-bogofilter-p)
+	(spam-group-spam-processor-stat-p)
+	(spam-group-ham-processor-stat-p)
+	(spam-group-ham-processor-whitelist-p)
+	(spam-group-ham-processor-BBDB-p)
+	(spam-group-ham-processor-spamoracle-p)
+	(spam-group-ham-processor-copy-p): functions removed with some
+	prejudice against unneeded code
+	(spam-report-articles-resend)
+	(spam-report-resend-register-routine): allow the group/topic
+	spam-resend-to value to override spam-report-resend-to
+	(spam-summary-prepare-exit): invoke spam-group-processor-p
+	properly now
+
+	* spam-report.el (spam-report-resend-to, spam-report-resend):
+	start with resend-to set to nil, and then ask the user if
+	necessary.  From Daniel Pittman <daniel@rimspace.net>.
+
+	* gnus.el (spam-resend-to): new group/topic parameter
+	(spam-process): move the OBSOLETE processors to the end of the
+	choices.
+
+	* spam-report.el (spam-report-resend): spam-report-resend takes a
+	list of articles, not separate article numbers.  From Daniel
+	Pittman <daniel@rimspace.net>.
+
+2004-05-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-text-html-renderer): Make sure w3m exists in
+	addition to emacs-w3m.
+
+2004-05-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* assistant.el (assistant-authinfo-data): New function.
+	(assistant-eval): Eval for entire assistant.
+
+	* netrc.el (netrc-services-file): New variable.
+	(netrc-parse-services): New function.
+	(netrc-find-service-name): New function.
+	(netrc-find-service-number): New function.
+	(netrc-port-equal): New function.
+	(netrc-machine): Use it.
+
+	* nnimap.el (nnimap-open-connection): Use netrc.
+
+	* gnus-util.el (gnus-netrc-get): Remove aliases.
+	
+	* gnus-sum.el (gnus-auto-center-summary): Change default to 2.
+
+	* assistant.el (wid-edit): Fix compilation.
+
+	* gnus-util.el (gnus-set-file-modes): Just ignore errors. 
+
+2004-05-23  Paul Stodghill  <stodghil@cs.cornell.edu>
+
+	* gnus-util.el (gnus-set-file-modes): New function.  (small
+	patch). 
+
+2004-05-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-topic.el (gnus-topic-jump-to-topic): Goto missing topic.
+
+	* assistant.el (assistant-render-node): Fix up rendering and
+	read-only text. 
+	(assistant-render-node): Reset.
+	(assistant-make-read-only): Not sticky.
+
+2004-05-20  Danny Siu  <dsiu@adobe.com>
+
+        * gnus-sum.el (gnus-summary-recenter): Summery buffer was not auto
+	centered even when gnus-auto-center-summary is t
+
+2004-05-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* dns.el (dns-get-txt-answer): New function.
+	(dns-read-txt): Ditto.
+	(query-dns): Use it.
+
+2004-05-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-start.el (gnus-get-unread-articles): Don't invalidate
+	active for foreign groups even if the group level is higher than
+	the specified value.
+
+2004-05-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el (gnus-group-jump-to-group): Don't prompt for
+	non-active groups.
+
+	* gnus-art.el (gnus-picon-databases): Add /usr/share/picons.
+
+2004-05-20  Magnus Henoch  <mange@freemail.hu>
+
+	* dns.el (dns-read-type): Add support for SVR.  (small patch)
+
+2004-05-20  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-use-crm114, spam-crm114, spam-crm114-program)
+	(spam-crm114-header, spam-crm114-spam-switch)
+	(spam-crm114-spam-strong-switch, spam-crm114-ham-strong-switch)
+	(spam-crm114-positive-spam-header)
+	(spam-crm114-database-directory, spam-list-of-processors)
+	(spam-group-spam-processor-crm114-p)
+	(spam-group-ham-processor-crm114-p, spam-extra-header-to-number)
+	(spam-generic-score, spam-list-of-checks)
+	(spam-list-of-statistical-checks, spam-registration-functions)
+	(spam-check-crm114-headers, spam-crm114-score)
+	(spam-check-crm114, spam-crm114-register-with-crm114)
+	(spam-crm114-register-spam-routine)
+	(spam-crm114-unregister-spam-routine)
+	(spam-crm114-register-ham-routine)
+	(spam-crm114-unregister-ham-routine): add CRM114 support.  From
+	asjo@koldfront.dk (Adam Sj,Ax(Bgren).
+
+	* gnus.el: added spam-use-crm114
+
+	* spam.el (spam-list-of-processors, spam-registration-functions):
+	add spam-use-resend
+	(spam-group-spam-processor-report-resend-p): utility wrapper
+	(spam-report-articles-gmane): doc fix
+	(spam-report-articles-resend,
+	spam-report-resend-register-routine): wrappers around
+	spam-report-resend-to
+
+	* spam-report.el (spam-report-resend-to, spam-report-resend):
+	support for resending spam
+	(spam-report-gmane): line length >80 fix
+
+	* gnus.el (spam-process): add spam-use-resend
+
+2004-05-20  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* spam.el (spam-mark-spam-as-expired-and-move-routine): Return the
+	number of processed spam messages.
+	(spam-ham-copy-or-move-routine): Return the number of processed
+	ham messages.
+	(spam-summary-prepare-exit): Use the above values to decide
+	whether status messages shouled be displayed.
+
+2004-05-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-encode-function-alist): Renamed from
+	`rfc2047-encoding-function-alist' in order to avoid conflicting
+	with the old version.
+	(rfc2047-encode-region): Concatenate words containing non-ASCII
+	characters in structured fields; don't encode space-delimited
+	ASCII words even in unstructured fields; don't break words at
+	char-category boundaries.
+	(rfc2047-encode-1): New function.
+	(rfc2047-encode): Use it; encode text so that it occupies the
+	maximum width within 76-column; work correctly on Q encoding for
+	iso-2022-* charsets.
+	(rfc2047-fold-region): Use existing whitespace for LWSP; make it
+	sure not to break a line just after the header name.
+	(rfc2047-b-encode-region): Removed.
+	(rfc2047-b-encode-string): New function.
+	(rfc2047-q-encode-region): Removed.
+	(rfc2047-q-encode-string): New function.
+
+	* mm-util.el (mm-replace-in-string): New function.
+
+2004-05-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-inews-make-draft-meta-information): Really
+	get it right.
+	(gnus-inews-make-draft): Really.
+
+2004-05-19  Ben Menasha  <bmenasha@benmenasha.net>
+
+	* nnmh.el (nnmh-request-list-1): Don't check the link count
+	before descending.  (small patch)
+
+2004-05-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-inews-make-draft-meta-information): Fix quote
+	stuff. 
+
+	* gnus-start.el (gnus-subscribe-hierarchical-interactive): Match
+	on real group name.
+
+	* gnus-art.el (gnus-signature-limit): Doc fix.
+
+	* gnus-msg.el (gnus-inews-make-draft): Quote list.
+
+	* pgg-pgp.el (pgg-pgp-verify-region): Clean up.
+
+2004-05-19  Michael Schierl  <schierlm-usenet@gmx.de>
+
+	* pgg-pgp.el (pgg-pgp-verify-region): Default when signature
+	isn't a string.
+
+2004-05-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-draft.el (gnus-draft-send): Bind
+	rfc2047-encode-encoded-words.
+
+	* rfc2047.el (rfc2047-encode-region): Encode =? strings. 
+	(rfc2047-encodable-p): Say that =? needs encoding.
+	(rfc2047-encode-encoded-words): New variable.
+
+	* gnus-group.el (gnus-group-select-group): Doc fix.
+
+	* gnus-draft.el (gnus-draft-setup): Mark all replied as replied. 
+
+	* gnus-group.el (gnus-group-mode): Set show-trailing-whitespace
+	to nil.
+	
+	* gnus-cache.el (gnus-cache-possibly-enter-article): Use it.
+
+	* nnheader.el (nnheader-get-lines-and-char): New function.
+
+2004-05-19  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-msg.el (gnus-summary-followup-with-original): Document
+	yanking of region when active.
+
+2004-05-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-start.el (gnus-get-unread-articles): Do nothing for foreign
+	groups if the group level is higher than the specified value.
+
+2004-05-18  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-group.el (gnus-group-jump-to-group-prompt): Allow an alist.
+	(gnus-group-jump-to-group): Added prefix argument using
+	`gnus-group-jump-to-group-prompt'.  Query before jumping to
+	non-active group.
+
+	* compface.el (uncompface): Be verbose when changing
+	`uncompface-use-external'.
+
+	* gnus-art.el (gnus-button-handle-man, gnus-button-alist): Try to
+	handle manual section.
+
+2004-05-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-button-alist): Revert previous change.
+
+2004-05-18  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-idna-to-ascii-rhs-1): Fix typo.
+
+2004-05-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-inews-do-gcc): Don't use read-only-p to see
+	whether backend can accept message.
+
+	* message.el (message-idna-to-ascii-rhs-1): Don't use equalp. 
+
+2004-05-18  Kai Grossjohann  <kgrossjo@eu.uu.net>
+
+	* nntp.el (nntp-request-set-mark, nntp-request-update-info):
+	Avoid creating directory when nntp-marks-is-evil is true.
+	Reported by Reiner Steib.
+
+2004-05-18  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-picon.el (gnus-picon-style): New variable.
+	(gnus-picon-insert-glyph): Added optional `nostring' argument.
+	(gnus-picon-transform-address): Support `gnus-picon-style'.  From
+	Jesper Harder <harder@ifa.au.dk>.
+
+2004-05-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-fill-field): Return point.
+	(message-generate-headers): Go to end of field.
+
+	* gnus-start.el (gnus-get-unread-articles-in-group): Don't do
+	stuff for non-living groups.
+
+2004-05-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-article-followup-with-original)
+	(gnus-article-reply-with-original): gnus-mark-active-p ->
+	gnus-region-active-p.
+
+2004-05-17  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-summary-prepare-exit): fix messages, so they show
+	only when there is spam or ham to be processed
+
+2004-05-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (mail-source-delete-crash-box): Refactor.
+	(mail-source-fetch): Use it.
+	(mail-source-fetch-file): Ditto.
+	(mail-source-fetch-directory): Run postscript in loop. 
+	(mail-source-fetch-pop): Delete.
+	(mail-source-fetch-maildir): Ditto.
+	(mail-source-fetch-imap): Ditto.
+
+	* imap.el (imap-authenticators): Comment out sasl.
+
+	* message.el (message-skip-to-next-address): New function.
+	(message-fill-header-address): Refactor.
+	(message-fill-address): Use it.
+	(message-delete-address): Use it.
+	(message-fill-header-general): Refactor.
+	(message-fill-field-address): Rename.
+	(message-narrow-to-field): Find the start of the header. 
+	(message-header-format-alist): Don't pre-fill.
+	(message-fill-header): Removed.
+	(message-insert-header): New function.
+	(message-shorten-references): Use it.
+
+	* rfc2047.el (rfc2047-field-value): Strip props.
+
+	* mail-parse.el (mail-header-make-address): New alias.
+
+	* ietf-drums.el (ietf-drums-make-address): New function.
+
+	* imap.el: Add compiler directives.
+
+	* gnus-score.el (gnus-score-edit-done): run-hook->run-hooks. 
+
+	* gnus-art.el (article-decode-idna-rhs): Don't use
+	message-idna-inside-rhs-p. 
+
+2004-05-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-idna-inside-rhs-p): Removed.
+	(message-idna-to-ascii-rhs-1): Use proper address parsing.
+
+	* gnus-art.el (gnus-emphasis-alist): Removed strikethru; too many
+	false positives.
+
+2004-05-16  Kim Minh Kaplan  <kmkaplan-AwwS6Bc0PDVoiYX5Tdu9fQ@public.gmane.org>
+
+	* imap.el (imap-sasl-make-mechanisms): Use sasl. 
+
+2004-05-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nneething.el (nneething-file-name): Don't create spurions
+	files. 
+
+	* gnus-msg.el (gnus-inews-do-gcc): Ignore read-only groups. 
+	(gnus-inews-do-gcc): Remove sleep.
+
+	* gnus-art.el (gnus-mime-delete-part): Error message when no MIME
+	part under point.
+
+	* gnus-agent.el (gnus-agent-synchronize-flags): Default to nil. 
+	(gnus-agent-regenerate-group): Using nil messages aren't valid. 
+
+2004-05-15  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-summary-prepare-exit): oops, forgot (length)
+
+2004-05-14  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-dup.el (gnus-dup-unsuppress-article): don't assume the mail
+	header is not nil (tiny change).  From Nelson Ferreira
+	<nelson.ferreira@verizon.net>.
+
+	* spam.el (spam-summary-prepare-exit): only produce "marking spam
+	as expired without moving it" message when there are spam
+	messages left
+
+2004-05-14  Kai Grossjohann  <kgrossjo@eu.uu.net>
+
+	* nntp.el (nntp-request-set-mark, nntp-request-update-info): Call
+	nntp-possibly-create-directory, not nntp-possibly-change-group.
+	(nntp-marks-changed-p): New arg SERVER.
+	(nntp-request-update-info): Adjust caller.
+
+2004-05-14  Kai Grossjohann  <kai@emptydomain.de>
+
+	* nntp.el (nntp-save-marks): Pass missing arg.
+
+2004-05-13  Kai Grossjohann  <kai.grossjohann@gmx.net>
+
+	* nntp.el: Support marks.
+	(nntp-marks-is-evil, nntp-marks-file-name, nntp-marks)
+	(nntp-marks-modtime, nntp-marks-directory): New variables.
+	(nntp-request-set-mark, nntp-request-update-info)
+	(nntp-possibly-create-directory, nntp-marks-changed-p)
+	(nntp-save-marks, nntp-open-marks, nntp-marks-directory): New
+	functions.
+
+2004-05-12  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-xmas.el (gnus-xmas-select-lowest-window)
+	(gnus-xmas-redefine): Rename.
+
+	* gnus-score.el (gnus-score-insert-help): Use
+	gnus-select-lowest-window.
+
+	* gnus-ems.el (gnus-select-lowest-window): Copy definition of
+	appt-select-lowest-window and rename to gnus-select-lowest-window.
+
+	* gnus.el: do.
+
+2004-05-12  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* rfc2047.el (rfc2047-encode): Use uppercase letters to specify
+	encodings of MIME-encoded words, in order to improve
+	interoperability with several broken MUAs.
+
+2004-05-07  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* mm-view.el (mm-inline-text-html-render-with-w3): Check META
+	tags, only when charsets are not specified in headers.
+	(mm-inline-text-html-render-with-w3m): Ditto.
+
+	* lpath.el: Remove `w3m-meta-content-type-charset-regexp' and
+	`w3m-charset-to-coding-system'.  Add `w3m-detect-meta-charset'.
+
+2004-05-06  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* gnus-art.el (article-strip-banner): Use MIME-encoded from fields
+	instead of MIME-decoded from fields when checking
+	`gnus-article-address-banner-alist'.
+
+2004-05-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnrss.el (nnrss-check-group, nnrss-read-group-data): Hash on
+	description rather than subject.
+
+2004-05-02  Steve Youngs  <steve@youngs.au.com>
+
+	* dgnushack.el: Autoload `mail-fetch-field' for XEmacs.
+
+2004-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
 2004-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
 
 	* gnus.el: No Gnus v0.2 is released.
@@ -5,7 +3275,7 @@
 2004-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
 	* gnus-agent.el (gnus-agent-read-agentview): Inline
-	gnus-uncompress-range. 
+	gnus-uncompress-range.
 
 2004-05-01  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
 
@@ -33,7 +3303,7 @@
 	(spam-bsfilter-unregister-spam-routine)
 	(spam-bsfilter-register-ham-routine)
 	(spam-bsfilter-unregister-ham-routine): New functions.
-	(spam-generic-score): Supprt bsfilter; Accept an optional argument
+	(spam-generic-score): Support bsfilter; Accept an optional argument
 	to recalcurate spam score even if scoring header has already been
 	added.
 	(spam-bogofilter-score, spam-spamassassin-score): Accept an
@@ -122,8 +3392,12 @@
 	* gnus-group.el (gnus-group-make-kiboze-group)
 	(gnus-group-browse-foreign-server): do.
 
-2004-04-22  Teodor Zlatanov  <tzz@bwh.harvard.edu>
+2004-04-22  Teodor Zlatanov  <tzz@lifelogs.com>
 
+	From Dan Christensen <jdc@uwo.ca>, asjo@koldfront.dk (Adam
+	Sj,Ax(Bgren), Wes Hardaker <wes@hardakers.net>, and Michael Shields
+	<shields@msrl.com>:
+	
 	* spam.el (spam-necessary-extra-headers): get the extra headers we
 	may need for spam sorting and scoring
 	(spam-user-format-function-S): a user format function suitable for
@@ -597,7 +3871,7 @@
 
 2004-03-04  Kevin Greiner <kgreiner@xpediantsolutions.com>
 
-        * gnus-agent.el (gnus-agent-file-header-cache): Removed.
+	* gnus-agent.el (gnus-agent-file-header-cache): Removed.
 	(gnus-agent-possibly-alter-active): Avoid null in numeric
 	comparison.
 	(gnus-agent-set-local): Refuse to save null in local object table.
@@ -1458,7 +4732,7 @@
 	* pgg-gpg.el (pgg-gpg-lookup-all-secret-keys)
 	(pgg-gpg-lookup-key): Use regexp match instead of
 	split-string (split-string is different between emacs 21.2 and
-	21.4).  Reported by ultrasoul@ultrasoul.com (David D. Smith).
+	22.1).  Reported by ultrasoul@ultrasoul.com (David D. Smith).
 
 2004-01-08  Jesper Harder  <harder@ifa.au.dk>
 
@@ -1919,7 +5193,26 @@
 
 	* gnus.el (gnus-logo-color-style): Changed colors to `no'.
 
-	* Moved to Changelog.1.
+	* Moved to Changelog.2.
+
+2004-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump version.
+
+2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: No Gnus v0.1 is released.
+
+2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: No Gnus v0.0 is released.
+
+2004-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+	(gnus-version): No.
+
+See ChangeLog.2 for earlier changes.
 
     Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
   Copying and distribution of this file, with or without modification,
@@ -1928,3 +5221,5 @@
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; End:
+
+;;; arch-tag: 3f33a3e7-090d-492b-bedd-02a1417d32b4
Index: gnus/lisp/ChangeLog.1
diff -u gnus/lisp/ChangeLog.1:7.2 gnus/lisp/ChangeLog.1:7.4
--- gnus/lisp/ChangeLog.1:7.2	Sun Jan  4 23:00:34 2004
+++ gnus/lisp/ChangeLog.1	Sun Sep 12 20:07:31 2004
@@ -1,18943 +1,3 @@
-2004-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump version.
-
-2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: No Gnus v0.1 is released.
-
-2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: No Gnus v0.1 is released.
-
-2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: No Gnus v0.0 is released.
-
-2004-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-	(gnus-version): No.
-
-2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Gnus v5.10.6 is released.
-
-2004-01-04  Kai Grossjohann  <kai@emptydomain.de>
-
-	* gnus-sum.el (gnus-summary-print-article): Doc fix.
-
-2004-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Gnus v5.10.5 is released.
-
-2004-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-face-from-file): Message 9.
-
-2004-01-03  Romain FRANCOISE  <romain@orebokech.com>
-
-	* gnus-fun.el (gnus-face-from-file): Use gnus-message.
-
-2004-01-03  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-mid-or-mail-heuristic): Treat Gmane
-	addresses specially.  Fix returned value and messages.
-
-	* mm-decode.el (mm-enable-external): New variable.
-	(mm-display-part): Use it.
-	(mm-display-external): Fix message in case of nil handle.
-
-	* Update copyright for several files.
-
-	* spam-report.el (spam-report-gmane): Adjust verbosity.
-	Delete trailing whitespace.  Update copyright.
-
-	* spam.el: Fix many (but not all) checkdoc complaints.
-	Delete trailing whitespace.
-
-	* message.el (message-header-synonyms): Defcustom.
-	(message-get-reply-headers): Catch `Original-To'.
-	(message-carefully-insert-headers): Added comment.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Improved "Washing" menu.
-
-2004-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-select-newsgroup): Use cat.
-
-	* gnus-agent.el (gnus-agent-cat-enable-undownloaded-faces): New
-	cat. 
-
-	* gnus.el (gnus-user-agent): Moved here.
-
-	* gnus-msg.el (gnus-user-agent): Moved from here.
-
-	* gnus.el (gnus-version-number): Bump.
-
-2004-01-03 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Gnus v5.10.4 is released.
-
-2004-01-02  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus.el (gnus-mode-line-buffer-identification): Show version in
-	help-echo.
-	(gnus-read-group): Allow most group names.  Changed warning.
-
-2004-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-dired.el (gnus-dired-mode-map): Change keymaps.
-
-2004-01-02  Arne J,Ax(Brgensen  <arne@arnested.dk>
-
-	* smime.el (smime-crl-check): Doc fix.
-
-2004-01-02  Edwin Steiner  <edwin.steiner@gmx.net>
-
-	* gnus-nocem.el (gnus-nocem-enter-article): Use the real group
-	hashtb (tiny patch).
-
-2004-01-02  Kai Grossjohann  <kai@emptydomain.de>
-
-	* nnml.el (nnml-save-mail): Grok compressed articles.  From
-	Michael Albinus <Michael.Albinus@alcatel.de>.
-
-2004-01-02  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-copy-or-move-routine): use spam-list-articles
-	(spam-list-articles): rewritten to only check a mark once per
-	invocation
-
-2004-01-01  Simon Josefsson  <jas@extundo.com>
-
-	* mml-sec.el (mml-default-encrypt-method)
-	(mml-default-sign-method): Defcustom.
-
-2003-12-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mml.el (mml-generate-mime-1): Remove extra ).
-
-	* gnus-group.el (gnus-group-set-current-level): Signal errors on
-	topic lines.
-	(gnus-group-set-current-level): Fix fix.
-
-2003-12-31  Jeremy Maitin-Shepard  <jbms@attbi.com>
-
-	* mml.el (mml-generate-mime-1): Use mml-compute-boundary (tiny
-	change). 
-
-2003-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-group.el: Removed `(when t ...)' around `gnus-define-keys'.
-	(gnus-group-group-map): Added `gnus-group-read-ephemeral-group'
-	(already in previous commit inadvertently).
-	(gnus-group-make-menu-bar): Added `gnus-group-read-ephemeral-group'.
-	(gnus-group-read-ephemeral-group): Made interactive.
-
-	* gnus-score.el (gnus-score-find-trace): Added comment on sync
-	with `gnus-score-edit-file-at-point'.
-
-	* gnus-logic.el (gnus-score-advanced): Ditto.
-
-	* gnus-score.el (gnus-score-edit-file-at-point): Fix for
-	advanced scoring.
-
-2003-12-30  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-score.el (gnus-score-edit-file-at-point): Use
-	gnus-point-at-*, for portability.
-
-2003-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-treat-body-boundary): Fix doc-string and
-	custom type.
-	(gnus-button-mid-or-mail-regexp): Don't be too restrictive.
-	Suggested by Felix Wiemann <Felix.Wiemann@gmx.net>.
-	(gnus-button-alist): Added "M-x ... RET" and "mid:" buttons.
-	Added comments about relevant RFCs.
-
-	* gnus-sum.el (gnus-summary-mode): Untabify doc-string.
-	(gnus-summary-goto-article): Allow `%40'.
-	(gnus-summary-refer-article): Convert `%40' to `@'.
-
-2003-12-30  Simon Josefsson  <jas@extundo.com>
-
-	* smime.el (smime-crl-check): New.
-	(smime-verify-region): Use it.  From Arne J,Ax(Brgensen
-	<arne@arnested.dk> in <87llpk9v5q.fsf@seamus.arnested.dk> (tiny
-	change).
-
-2003-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-score.el (gnus-score-edit-file-at-point): Consider the
-	whole match element.  From Karl Pfl,Ad(Bsterer <sigurd@12move.de>.
-	(gnus-score-find-trace): Use it.  Added `f' and `t' commands,
-	added quick help.  With some suggestions from Karl Pfl,Ad(Bsterer
-	<sigurd@12move.de>.
-
-	* gnus-util.el (gnus-emacs-version): Added doc-string.
-
-	* mml.el (mml-minibuffer-read-disposition): New function.
-	(mml-attach-file): Use it.
-	(mml-preview): Added MIME preview to gnus-buffers.
-
-2003-12-30  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Add ellipses.
-
-2003-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-start.el (gnus-get-unread-articles): Inline gnus-server-get-method.
-	(gnus-get-unread-articles): Cache methods.
-	(gnus-get-unread-articles-in-group): Indent.
-
-	* gnus.el (gnus-version-number): Bump.
-	(gnus-secondary-method-p): Extend servers to methods before comparing.
-	(gnus-secondary-method-p): Revert.
-
-2003-12-30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Gnus v5.10.3 is released.
-
-2003-12-29  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-agent.el (gnus-agentize): Improve auto-agentizing logic.
-	Suggested by Steinar Bang <sb@dod.no>.
-	(gnus-agent-auto-agentize-methods): Customize.
-
-2003-12-29  Kevin Greiner <kgreiner@xpediantsolutions.com>
-	* gnus.el (gnus-server-to-method): Fixed bug in 2003-12-22
-	check-in.
-
-2003-12-28  Adrian Lanz  <lanz@fowi.ethz.ch>
-
-	* mail-source.el (mail-source-fetch-imap): Prevent storing of
-	identical entries for imap mail sources, when retrieving mail
-	messages from an imap server within the same Gnus session several
-	times (tiny change).
-
-2003-12-28  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-view.el (mm-text-html-washer-alist): Use
-	mm-inline-wash-with-stdin for w3m-standalone.
-
-	* mm-decode.el (mm-text-html-renderer): Add w3m-standalone.
-
-	* mml1991.el (mml1991-pgg-encrypt): Decode according to CTE before
-	encrypting.
-
-2003-12-28  Jesper Harder  <harder@ifa.au.dk>
-
-	* mml1991.el (mml1991-pgg-sign): Use unibyte when re-encoding.
-	From Ivan Boldyrev <boldyrev@uiggm.nsc.ru> (tiny change).
-
-2003-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el: Add an advice to byte-optimize-form-code-walker to
-	avoid the warning ``...called for effect'' for the pop form when
-	running Emacs 21.3.
-
-2003-12-26  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-bodies.el (mm-body-encoding): Don't use 7bit if the body
-	contains "^From " and mm-use-ultra-safe-encoding is true.
-
-2003-12-25  Jesper Harder  <harder@ifa.au.dk>
-
-	* mml1991.el (mml1991-pgg-sign): Encode and decode according to
-	CTE header.  Don't insert gpg output as unibyte.
-
-2003-12-25  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el: Remove display-time-event-handler and open-ssl-stream;
-	add delete-extent for Emacs; rearrange bindings assuming w3 may
-	not be available and XEmacs without the file-coding feature may be
-	used.
-
-2003-12-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el (dgnushack-compile): Increase the value for
-	max-specpdl-size when compiling Gnus with Emacs 20.
-
-2003-12-22  Kevin Greiner <kgreiner@xpediantsolutions.com>
-	* gnus-int.el (gnus-open-server): Fixed the server status such
-	that an agentized server, when opened offline, has a status of
-	offline.  Also fixes bug whereby the agent's backend was called
-	twice to open each server.
-
-	* gnus-start.el (gnus-get-unread-articles-in-group): Autoload
-	gnus-agent-possibly-alter-active rather than inline to resolve
-	compiler warnings.
-
-	* gnus.el (gnus-server-to-method): Added fallback of iterating
-	over gnus-newsrc-alist to resolve names of foreign servers.
-	Should fix recent agent bug.
-
-2003-12-22  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-score.el (gnus-summary-lower-score)
-	(gnus-summary-increase-score): Mention symbolic prefix in the
-	doc-string.  Suggested by Karl Pfl,Ad(Bsterer <sigurd@12move.de>.
-
-2003-12-21  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-agent.el (gnus-agent-read-agentview): Use
-	car-less-than-car.
-
-2003-12-20  Artem Chuprina <ran@ran.pp.ru>  (tiny change)
-
-	* message.el (message-yank-buffer): Bind message-reply-buffer to
-	a buffer rather than a string.
-
-2003-12-19  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-summary-followup): Correct documentation.
-
-2003-12-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-inews-add-send-actions): `yanked' can be a
-	list of lists.  Reported by Dmitri Paduchikh <paduch@imm.uran.ru>.
-
-2003-12-18  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* mm-url.el (mm-url-insert-file-contents-external)
-	(mm-url-insert-file-contents): Added doc-strings.  Autoload.
-
-2003-12-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-cus.el (defvar): defvar
-	gnus-agent-cat-disable-undownloaded-faces.
-
-2003-12-17  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-forward-subject-name-subject): Use
-	gnus-extract-address-components instead of
-	mail-header-parse-address because it may be called with non-ascii
-	text.
-
-2003-12-16  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* nnmail.el (nnmail-split-fancy): The widget now supports
-	restrictions.
-
-2003-12-16  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nnheader.el (nnheader-find-etc-directory): Find the newest one.
-
-2003-12-16  Simon Josefsson  <jas@extundo.com>
-
-	* sha1-el.el (autoload): Don't use ignore-errors.
-	(sha1-use-external): Use condition-case.  Suggested by Katsumi
-	Yamaoka <yamaoka@jpl.org>.
-
-2003-12-15  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nnmail.el (nnmail-split-fancy): Make it customizable with Emacs
-	20 as well.
-
-2003-12-15  Simon Josefsson  <jas@extundo.com>
-
-	* sha1-el.el (autoload): Ignore errors for
-	executable-find. (XEmacs ecrypto does not require sh-script where
-	executable.el is located.)
-	(sha1-use-external): Likewise.
-
-	* sha1-el.el (sha1): Add defgroup.
-	(sha1-maximum-internal-length, sha1-program, sha1-use-external)
-	(sha1-program): Use 'sha1sum' from GNU CoreUtils instead of OpenSSL.
-	(sha1): Autoload.
-
-	* nndraft.el (nndraft-request-move-article): Copy definition of
-	nnmh-request-move-article instead of calling it, because the nnmh
-	version uses nnmh-request-article which isn't the same as the
-	nndraft version.
-
-2003-12-13  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el: added some gnus-registry autoloads
-	(spam-split-symbolic-return): makes spam-split return 'spam
-	instead of the value of spam-split-group when spam is detected
-	(spam-split-symbolic-return-positive): makes spam-split return
-	'ham instead of nil when ham is detected
-	(spam-autodetect-recheck-messages): tells spam.el whether it
-	should recheck all messages in a group, or only the unseen ones
-	(spam-split-last-successful-check): spam-split will set this to
-	the last successful check; this was seen as a cleaner approach
-	than returning a cell like '(spam spam-use-bogofilter)
-	(spam-list-of-checks): documentation appended
-	(spam-split): accomodate the spam-split-symbolic-return and
-	spam-split-symbolic-return-positive variables
-	(spam-find-spam): new function called when the summary is built
-	(spam-log-registered-p): checks if a ham or spam registration has
-	already been done for an article
-	(spam-check-regex-headers, spam-check-blackholes, spam-check-BBDB)
-	(spam-check-ifile, spam-check-stat, spam-check-whitelist)
-	(spam-check-blacklist, spam-check-bogofilter-headers)
-	(spam-check-spamoracle): respect the spam-split-symbolic-return
-	and spam-split-symbolic-return-positive variables
-	(spam-initialize): add spam-find-spam to gnus-summary-prepare-hook
-	(spam-unload-hook): remove spam-find-spam from
-	gnus-summary-prepare-hook
-
-	* gnus.el (spam-autodetect, spam-autodetect-methods): new
-	configuration items for spam autodetection
-
-2003-12-12  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-draft.el (gnus-draft-mode-map): Bind `e' to
-	`gnus-draft-edit-message'.  We still have `B w' for
-	`gnus-summary-edit-article'.
-
-2003-12-12  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nnheaderxm.el (nnheader-xmas-run-at-time): Use a simple function
-	definition if there is not a bug in start-itimer.
-
-	* pgg.el (pgg-run-at-time): Ditto.
-
-2003-12-11  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-possibly-alter-active): New Function.
-	(gnus-agent-regenerate-group): When necessary, alter the group's
-	active range to include articles newly recognized as being
-	downloaded.
-	(gnus-agent-regenerate): Removed code that updated the agent's
-	active file as the new gnus-agent-possibly-alter-active function
-	obsolesced it.
-
-	* gnus-cus.el (gnus-agent-customize-category): Added missing
-	agent-disable-undownloaded-faces parameter.
-	
-	* gnus-start.el (gnus-activate-group): Backed out my 2003-11-29
-	patch as it was too late at adjusting the active range.
-	(gnus-get-unread-articles-in-group): Added call to new
-	gnus-agent-possibly-alter-active to adjust the active range.
-
-2003-12-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-get-reply-headers): Narrow to headers.
-
-2003-12-10  Teodor Zlatanov  <tzz@lifelogs.com> 
-
-	* spam.el (spam-disable-spam-split-during-ham-respool): new
-	variable.  From lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly)
-	(spam-ham-copy-or-move-routine): respect
-	spam-disable-spam-split-during-ham-respool.  From
-	lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly)
-	(spam-split-disabled): new variable.  From
-	lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly)
-	(spam-split): respect spam-split-disabled.  From
-	lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly)
-
-2003-12-10  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nnheaderxm.el (nnheader-xmas-run-at-time): Make it work
-	correctly for the first argument.
-
-	* pgg.el (pgg-run-at-time): New function.
-	(pgg-add-passphrase-cache): Use it.
-
-2003-12-10  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-parse.el (pgg-decode-packets): Rewrite to handle corrupt
-	input.
-	(pgg-decode-armor-region): Don't parse packet if decoding fail.
-
-2003-12-09  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-bogofilter): run in the correct buffer.
-	From lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly).
-	(spam-bogofilter-database-directory): correct customization
-	group.  From Xavier Maillard <zedek@gnu-rox.org>.
-
-2003-12-09  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* nnmail.el (nnmail-lazy, nnmail-split-fancy): New widgets.
-	(nnmail-split-fancy): Use it.
-
-2003-12-08  Joel Ray Holveck <joelh@piquan.org>  (tiny change)
-
-	* gnus-sum.el (gnus-summary-save-parts-1): Consider the "name"
-	parameter of Content-Type.
-
-2003-12-08  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-util.el: Revert 2003-12-03 change, instead, provide the
-	compiler macro for rmail-select-summary if rmail is not available,
-	and bind rmail-summary-displayed and rmail-maybe-display-summary
-	in order to silence the compiler even if tm is not available.
-
-2003-12-08  Simon Josefsson  <jas@extundo.com>
-
-	* flow-fill.el (fill-flowed-encode-tests, fill-flowed-test): Add.
-
-2003-12-08  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-extended-version): Bind float-output-format to
-	nil.
-
-2003-12-08  Simon Josefsson  <jas@extundo.com>
-
-	* mml-smime.el (mml-smime-sign): Replace CRLF with LF in OpenSSL
-	output.  Reported by Arne J,Ax(Brgensen <arne@arnested.dk>.
-
-2003-12-07  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-gpg.el (pgg-gpg-recipient-arg): Add.
-	(pgg-gpg-encrypt-region): Use it.  Tiny patch from Lloyd Zusman
-	<ljz@asfast.com>.
-	(pgg-gpg-recipient-argument): Doc fix.  Renamed fro p-g-r-a.
-	(pgg-gpg-encrypt-region): Update.
-
-2003-12-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* spam.el (spam-check-spamoracle, spam-spamoracle-learn): Don't
-	use = or zerop to test the return value of call-process, because
-	it can be a string.
-
-	* mail-source.el (mail-source-fetch-with-program): do.
-
-	* mailcap.el (mailcap-viewer-passes-test): do.
-
-	* gnus-uu.el (gnus-uu-treat-archive, gnus-uu-post-encode-mime)
-	(gnus-uu-post-encode-file): do.
-
-	* gnus-soup.el (gnus-soup-pack, gnus-soup-unpack-packet): do.
-
-	* message.el (message-fix-before-sending): Fix detection of
-	non-printables.  Don't replace unencodable utf-8.
-
-2003-12-05  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-url.el (mm-url-predefined-programs): Add user-agent for wget.
-	(mm-url-insert-file-contents-external): Signal an error if program
-	fails.
-
-2003-12-04  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam-report.el (spam-report-gmane): iterate over articles
-	instead of a single one; remove interactive usage
-
-2003-12-03  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dns.el: Fix misplaced eval-when-compile.
-
-	* gnus-util.el: Require alist and provide tm-view when compiling
-	with XEmacs.
-
-2003-12-03  Steve Youngs  <sryoungs@bigpond.net.au>
-
-	* gnus-xmas.el: Add autoloads for macros defined in gnus.el.
-	From Jerry James <james@xemacs.org>.
-
-	* gnus-util.el: Get rmail definitions when compiling.
-	From Jerry James <james@xemacs.org>.
-
-	* dns.el: Require gnus-xmas at compile time instead of trying to
-	autoload `gnus-xmas-open-network-stream' because it wasn't picking
-	up the macro.
-	From Jerry James <james@xemacs.org>.
-
-2003-12-01  Kevin Greiner <kgreiner@xpediantsolutions.com>
-	* gnus-agent.el (gnus-agent-consider-all-articles): Updated
-	docstring.
-	(gnus-predicate-implies-unread, gnus-predicate-implies-unread-1):
-	Fixed implementation such that the predicate `true' no longer
-	evaluates to t.
-
-2003-12-01  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-bogofilter): check the bogofilter headers
-	AFTER the save-excursion scope is over.  From Adrian Lanz
-	<lanz@fowi.ethz.ch>.
-	(spam-fetch-field-message-id-fast): doc fix
-
-2003-12-01  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-agent.el (gnus-agent-expire-days): Doc fix.
-
-2003-11-30  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-agent.el (gnus-agent-expire-group-1): Bind message-log-max
-	when messaging "X % completed" to inhibit logging them to the
-	message buffer.
-	(gnus-agent-expire-group-1): Mention group name in messages.
-	(gnus-agent-expire-group-1): Only print a message for an article
-	when there actually was something done to it.
-
-	* mm-util.el (mm-enable-multibyte): Call set-buffer-multibyte with
-	'to argument.  Fixes something or other in Emacs 22, and is
-	backwards compatible.  From Kenichi Handa <handa@m17n.org>.
-
-	* gnus-agent.el (gnus-agent-expire-unagentized-dirs): Custom fix.
-
-2003-11-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-covered-methods): Remove nil methods. 
-
-2003-11-29  Kevin Greiner <kgreiner@xpediantsolutions.com>
-	* gnus-start.el (gnus-activate-group): The active range of the
-	group must include the articles known to the agent.
-
-	* gnus.el (gnus-agent-method-p): Accept a server name as the
-	method being tested.
-
-2003-11-29  Alexander Kreuzer <alex@freesources.org>  (tiny change)
-
-	* nnrss.el (nnrss-check-group): Set xml when nnrss-use-local is t.
-
-2003-11-29  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-group.el (gnus-group-make-menu-bar): Add
-	gnus-group-make-rss-group.
-
-2003-11-28  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el: Added custom-manual links to all variables that have
-	an index entry in the message manual.
-	(message-generate-headers-first): Fixed doc-string.
-
-2003-11-27  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-msg.el (gnus-summary-yank-message): Don't bind
-	gnus-display-mime-function to nil so that non-ascii text is
-	decoded and attachments are not shown.
-
-	* message.el (message-cite-original-without-signature): Replace
-	the value of message-reply-headers with the yanked article since
-	it may be a different article from the original.
-	(message-cite-original): Ditto.
-
-2003-11-25  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-blacklist-ignored-regexes): new variable, so
-	blacklisting can ignore certain regular expressions (e.g. the
-	user's e-mail address)
-	(spam-bogofilter-spam-strong-switch,
-	spam-bogofilter-ham-strong-switch): options used when articles are
-	already registered as the opposite classification
-	(spam-old-ham-articles, spam-old-spam-articles): lists of ham and
-	spam articles, generated when a summary buffer is entered, and
-	consulted when it's exited so we know what articles are changing
-	state from spam to ham or vice-versa
-	(spam-xor): everyone needs a little convenience
-	(spam-list-of-processors): lookup table for old-style spam/ham
-	exits processors
-	(spam-group-processor-p): support old-style and new-style spam/ham
-	exit processors
-	(spam-group-processor-multiple-p): handle new-style spam/ham exit
-	processors
-	(spam-summary-prepare): use spam-old-{ham,spam}-articles; change
-	logic to iterate over list of processors instead of manual
-	individual lookup, unregister any articles that change from ham to
-	spam or vice-versa in the course of the summary buffer usage; use
-	the new spam-register-routine
-	(spam-ham-copy-routine, spam-ham-move-routine,
-	spam-mark-spam-as-expired-and-move-routine): check that the list
-	of groups is not nil, because apply doesn't like to apply a
-	function across nil
-	(spam-registration-functions): variable for looking up spam/ham
-	registration/unregistration functions based on a spam-use-* symbol
-	(spam-classification-valid-p, spam-process-type-valid-p)
-	(spam-registration-check-valid-p)
-	(spam-unregistration-check-valid-p): convenience functions
-	(spam-registration-function, spam-unregistration-function): look
-	up the registration/unregistration function based on a
-	classification and the check (spam-use-* symbol)
-	(spam-list-articles): generate list of spam/ham articles from a
-	given list of articles
-	(spam-register-routine): do the heavy work of registering and
-	unregistering articles, using all the articles in the group or
-	specific ones as needed
-	(spam-generic-register-routine): removed, no longer used
-	(spam-log-unregistration-needed-p, spam-log-undo-registration):
-	handle article registration/unregistration with a given spam/ham
-	processor and group
-	(BBDB, ifile, spam-stat, blacklists, whitelists, spam-report,
-	bogofilter, spamoracle): rewrite registration/unregistration
-	functions to take a list of articles and the unregister option.
-	Much hilarity ensues.
-	(spam-initialize): spam-stat-maybe-{save,load} already respect spam-use-stat
-	(spam-stat-register-ham-routine, spam-stat-register-spam-routine):
-	don't load and save unnecessarily
-
-	* spam-stat.el (spam-stat-dirty): new variable, set when the stats
-	database is modified
-	(spam-stat-buffer-is-spam, spam-stat-buffer-is-non-spam)
-	(spam-stat-buffer-change-to-spam, spam-stat-to-hash-table)
-	(spam-stat-buffer-change-to-non-spam): set spam-stat-dirty when
-	needed
-	(spam-stat-save): respect spam-stat-dirty, unless the force
-	parameter is specified
-	(spam-stat-load): clear spam-stat-dirty
-
-	* gnus.el (gnus-install-group-spam-parameters): marked the
-	old-style exit processors as obsolete in the docs, added the
-	new-style exit processors while the old ones are still allowed
-
-
-2003-11-25  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (article-hide-boring-headers): Don't hide Reply-To
-	unless its list of addresses is identical to From.
-
-2003-11-25  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el (mapc): Add the compiler macro for Emacs 20.
-
-2003-11-24  Kevin Greiner <kgreiner@xpediantsolutions.com>
-	* gnus-srvr.el (gnus-server-insert-server-line): The server names
-	used in gnus-agent are different (for example, the native server
-	uses the alias "native") from the names in gnus-srvr.
-	Compensating by adding a second text property storing the name
-	expected by gnus-agent.
-	(gnus-server-named-server): New function.
-	* gnus-agent.el (gnus-agent-remove-server, gnus-agent-add-server):
-	No longer expect an argument as it was ignored anyway.  Uses the
-	new gnus-server-named-server function to get gnus-agent compatible
-	names from the server buffer.
-
-2003-11-20  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus.el (gnus-agent-covered-methods): Documented use of
-	named servers, not methods, to identity agentized groups.
-	Users may now change their server configurations without having
-	the server become "unagentized".
-	(gnus-agent-covered-methods): Removed from gnus-variable-list to
-	avoid storing two copies of gnus-agent-covered-methods, one in
-	.newsrc.eld and the other in agent/lib/servers.
-	(gnus-server-to-method): Do not cache server for the nil method.
-	(gnus-method-to-server): New function.  Associate named server
-	with all, even foreign, methods.
-	(gnus-agent-method-p, gnus-agent-method-p-cache): Incorporated
-	simple last-response cache to offset performance lose of having to
-	always convert methods to named servers.
-	* gnus-agent.el (gnus-agent-expire-days): Removed obsolete
-	documentation.
-	(gnus-agentize, gnus-agent-add-server, gnus-agent-remove-server):
-	Modified to support new definition of gnus-agent-covered-method.
-	(gnus-agent-read-servers): Rewritten to convert old method data
-	into server names.
-	(gnus-agent-read-servers-validate)
-	(gnus-agent-read-servers-validate-native): New functions.
-	(gnus-agent-write-servers): No longer use gnus-method-simplify as
-	it failed to simplify foreign methods.
-	(gnus-agent-close-connections, gnus-agent-synchronize-flags)
-	(gnus-agent-possibly-synchronize-flags, gnus-agent-fetch-session)
-	(gnus-agent-regenerate): Uses new gnus-agent-covered-methods
-	function as gnus-agent-covered-methods variable no longer provides
-	methods.
-	(gnus-agent-covered-methods): New function
-	(gnus-agent-expire-group, gnus-agent-expire): Final message will,
-	if gnus-verbose is greater than 4, report statistics of NOV
-	entries and files deleted as well as total bytes recovered.
-	(gnus-agent-expire-done-message): New function
-	(gnus-agent-unread-articles): Bug fix.  No longer drops last
-	unread article onto read list.
-	(gnus-agent-regenerate-group): Changed prompt to use typical
-	style.
-	(gnus-agent-group-covered-p): Rewrote to internally use
-	gnus-agent-method-p.
-	* gnus-int.el (gnus-start-news-server): Partially convert old
-	gnus-agent-covered-methods to new format so that gnus-open-server
-	functions correctly.
-	* gnus-srvr.el (gnus-server-insert-server-line): Replaced
-	gnus-agent-covered-methods with gnus-agent-method-p.
-	* gnus-start.el (gnus-clear-system): Added
-	gnus-agent-covered-methods to compensate for removing it from
-	gnus-variable-list.
-	(gnus-setup-news): Complete conversion of old
-	gnus-agent-covered-methods to new format so that secondary and
-	foreign servers can be correctly opened.
-
-2003-11-20  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-copy-or-move-routine): add respooling
-	support, not working well yet
-
-	* gnus.el (ham-process-destination): make 'respool option the
-	only one, so it can't be chosen together with other groups
-
-2003-11-19  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-track-extra): make it a set of
-	choices instead of a boolean
-	(gnus-registry-track-subject-p, gnus-registry-track-sender-p):
-	new convenience functions
-	(gnus-registry-split-fancy-with-parent): use convenience
-	functions, also don't return extra tracking info if sender or
-	subject is found in more than one groups
-	(gnus-registry-add-group): use new convenience functions to
-	decide if sender and subject should be tracked
-
-	* gnus.el (ham-process-destination): add 'respool option,
-	unused by spam.el yet
-
-2003-11-19  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-score.el (gnus-decay-score): Return a surely smaller value
-	than the argument in XEmacs.
-
-2003-11-18  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-insert-to): Don't use `gnus-message'.
-	(message-header-synonyms): New variable.
-	(message-carefully-insert-headers): Use it (check for synonyms).
-	Added doc-string.  From Sam Steingold <sds@gnu.org>.
-
-2003-11-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* html2text.el (html2text-remove-tags): Remove the tag in a
-	simpler way to avoid inflooping.
-
-2003-11-17  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-gssapi-auth-p): Don't check capability (some
-	servers remove AUTH=GSSAPI from capability response returned after
-	successful authentication).
-
-2003-11-16  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus.el (gnus-getenv-nntpserver): Fix regexp and simplify.
-	Reported by Artem Chuprina <ran@ran.pp.ru>.
-
-2003-11-14  Simon Josefsson  <jas@extundo.com>
-
-	* mm-util.el (mm-charset-synonym-alist): Map BIG5-HKSCS to BIG5
-	when it isn't available.
-
-2003-11-13  Alex Schroeder  <alex@gnu.org>
-
-	* nnrss.el (nnrss-check-group): Use dc:contributor if neither
-	rss:author nor dc:creator is provided.
-
-2003-11-13  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-decode.el (mm-dissect-buffer): Save start="<id>" value
-	contained in Content-Type header of multipart/related messages.
-
-	* mm-view.el (mm-w3m-cid-retrieve-1): New function.
-	(mm-w3m-cid-retrieve): Use it.
-
-	* mml.el (mml-generate-mime-1): Add start="<id>" to Content-Type.
-	(mml-insert-mime-headers): Insert Content-ID header.
-	(mml-insert-mml-markup): Insert start="<id>" value.
-
-2003-11-12  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* nnml.el (nnml-request-accept-article): pass sender to
-	nnmail-cache-insert
-
-	* nnmh.el (nnmh-request-accept-article): pass sender to
-	nnmail-cache-insert 
-
-	* nnmbox.el (nnmbox-request-accept-article): pass sender to
-	nnmail-cache-insert 
-
-	* nnfolder.el (nnfolder-request-accept-article): pass sender to
-	nnmail-cache-insert 
-
-	* nnbabyl.el (nnbabyl-request-accept-article): pass sender to
-	nnmail-cache-insert 
-
-	* nnmail.el (nnmail-cache-insert): accept sender parameter and
-	pass it to the nnmail-spool-hook
-
-	* gnus-registry.el (gnus-registry-track-extra): clarify doc
-	(gnus-registry-action): add sender lexical var and pass it to
-	gnus-registry-add-group
-	(gnus-registry-spool-action): take a sender parameter, pass to
-	gnus-registry-add-group
-	(gnus-registry-split-fancy-with-parent): trace by sender in
-	addition to subject
-	(gnus-registry-fetch-sender-fast): new function
-	(gnus-registry-add-group): accept sender parameter
-
-2003-11-11  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-copy-routine, spam-ham-move-routine)
-	(spam-mark-spam-as-expired-and-move-routine): allow for the
-	groups to be a list of a single item
-
-	* gnus.el (gnus-install-group-spam-parameters):
-	ham-process-destination and spam-process-destination allow lists now
-
-2003-11-10  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-insert-to): Do error out when the user
-	requested no Cc.  Don't insert empty To.  Can be added to
-	`message-setup-hook' now.  From Sam Steingold <sds@gnu.org>.
-	(message-mode-field-menu): Moved some entries, added
-	`message-insert-wide-reply'.
-	(message-change-subject): Fixed comment.
-
-2003-11-10  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-def.el (pgg-encrypt-for-me): Change default from nil to t.
-
-2003-11-09  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-gpg.el (pgg-gpg-encrypt-region): Cache passphrase under hex
-	key id too (for decryption).
-	(pgg-gpg-sign-region): Likewise.
-
-2003-11-09  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-gpg.el (pgg-gpg-all-secret-keys): New variable.
-	(pgg-gpg-lookup-all-secret-keys): New function.
-	(pgg-gpg-select-matching-key): Likewise.
-	(pgg-gpg-decrypt-region): Use new functions.  From Satyaki Das
-	<satyakid@stanford.edu>.
-
-2003-11-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* nnmail.el (nnmail-cache-insert): make sure that the
-	nnmail-spool-hook is called with a valid newsgroup name (though
-	it may be wrong)
-
-	* gnus.el (gnus-group-real-prefix): return nil if group is not a
-	string, instead of triggering an error
-
-2003-11-06  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus.el (gnus-group-guess-full-name-from-command-method): new	function
-
-	* gnus-registry.el (gnus-registry-fetch-group): use long names if
-	requested 
-	(gnus-registry-split-fancy-with-parent): when long names are in
-	use, strip the name if we're in the native server, or else return nothing
-	(gnus-registry-spool-action, gnus-registry-action): use
-	gnus-group-guess-full-name-from-command-method instead of
-	gnus-group-guess-full-name
-
-	* spam.el (spam-mark-spam-as-expired-and-move-routine)
-	(spam-ham-copy-or-move-routine): prevent article deletions or
-	moves unless the backend allows it
-
-	* gnus.el (gnus-install-group-spam-parameters): fixed parameters
-	to list spamoracle as well, suggested by Jean-Marc Lasgouttes
-	<Jean-Marc.Lasgouttes@inria.fr>
-
-	* spam.el (spam-spamoracle): doc change, suggested by Jean-Marc
-	Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
-
-2003-11-04  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-score.el (gnus-decay-score): Protect against arithmetic
-	errors.  Tiny patch from Norbert Koch <viteno@xemacs.org>.
-
-2003-10-31  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el
-	(spam-log-processing-to-registry): improved message and comments
-	(spam-log-unregistration-needed-p): new function
-	(spam-ifile-register-spam-routine)
-	(spam-ifile-register-ham-routine, spam-stat-register-spam-routine)
-	(spam-stat-register-ham-routine)
-	(spam-blacklist-register-routine)
-	(spam-whitelist-register-routine)
-	(spam-bogofilter-register-spam-routine)
-	(spam-bogofilter-register-ham-routine)
-	(spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): change
-	spam-log-processing-to-registry invocations appropriately
-
-2003-10-31  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-kerberos4-open): Ignore output from ATHENA imtest.
-	Tiny patch from Derek Atkins <warlord@MIT.EDU>.
-	(imap-process-connection-type): Improve docstring.  Suggested by
-	Derek Atkins <warlord@MIT.EDU>.
-
-2003-10-31  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (autoload): autoload the gnus-registry functions we'll
-	need
-	(spam-log-to-registry): new variable for interfacing with the
-	gnus-registry
-	(spam-install-hooks): variable had the wrong customization group
-	(spam-fetch-field-message-id-fast): convenience function for fetch
-	a message ID quickly
-	(spam-log-processing-to-registry): new function
-	(spam-ifile-register-spam-routine)
-	(spam-ifile-register-ham-routine, spam-stat-register-spam-routine)
-	(spam-stat-register-ham-routine)
-	(spam-blacklist-register-routine)
-	(spam-whitelist-register-routine)
-	(spam-bogofilter-register-spam-routine)
-	(spam-bogofilter-register-ham-routine)
-	(spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): add
-	spam-log-processing-to-registry invocations
-
-	* gnus-registry.el: fixed docs in the preface to mention
-	gnus-registry-initialize
-	(gnus-registry-store-extra): remove cached extra entry
-	information when new extra entry is stored
-
-2003-10-29  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-forward-make-body-plain): Fix ARG=1 mode
-	after separating m-f-m-b.
-
-2003-10-29  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-forward-make-body-plain): Remove ignored
-	headers.  Tiny patch from Andre Srinivasan <andre@e2open.com>.
-	(message-forward-make-body-plain): Fix ARG=1.
-
-2003-10-28  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-forward-subject-name-subject)
-	(message-forward-subject-author-subject): Decode non-ASCII
-	newsgroup names.
-	(autoload): Autoload gnus-group-decoded-name.
-
-2003-10-27  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): New optional
-	parameter key, overrides the key id used to store passphrase
-	under (uses true key id from gpg output if nil).
-	(pgg-gpg-encrypt-region): Search for passphrase using user suplied
-	string STR, instead of (pgg-lookup-key STR t).
-	(pgg-gpg-encrypt-region): Store passphrase under user suplied
-	string, instead of real key id taken from gpg output.
-	(pgg-gpg-decrypt-region): Likewise.
-	(pgg-gpg-sign-region): Likewise.
-	* pgg.el (pgg-decrypt-region): Don't set pgg-default-user-id.
-
-2003-10-27  Romain FRANCOISE  <romain@orebokech.com>
-
-	* gnus-art.el (gnus-article-goto-prev-page): Doc fix. 
-
-2003-10-27  Simon Josefsson  <jas@extundo.com>
-
-	* mm-bodies.el (mm-body-encoding): Don't use QP when message body
-	only consists of short lines and ASCII, when
-	mm-use-ultra-safe-encoding.  Refer to 'About foo' thread in
-	gnus-bug, e.g. <ilullrg4k7p.fsf@extundo.com>, for more discussion.
-	This make it possible to pipe the raw RFC 822 message into 'gpg'
-	and have the signature work.  Potential problem: what if message
-	contain data that would be dash-escaped by OpenPGP
-	implementations? Then PGP 2.x might not be able to parse the raw
-	RFC 822 message correctly.  If that problem is worth fixing, it
-	should be fixed by detecting the situation, instead of applying QP
-	to everything.  Based on discussion with "John A. Martin"
-	<jam@jamux.com>.
-
-2003-10-27  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-mark-spam-as-expired-and-move-routine)
-	(spam-ham-copy-or-move-routine): don't ask when deleting copied
-	articles, and use move instead of copy when possible
-	(spam-split): added the option of specifying a string as a
-	spam-split parameter; such a string will override
-	spam-split-group temporarily.
-
-	* nnmail.el (nnmail-cache-insert): protect from nil message IDs,
-	but should we do something else?
-
-	* gnus-registry.el (gnus-registry-spool-action): protect from nil
-	message IDs
-
-2003-10-26  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-button-alist): Allow & in mailto URLs.
-	(gnus-header-button-alist): Likewise.
-	(gnus-url-mailto): Handle ?to parameters.  Replace \r\n with \n.
-	Reverse parameter list to use same order as in the URL.  Reported
-	by f95-msv@f.kth.se (M,Ae(Brten Svantesson).
-
-2003-10-25  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-move-spam-nonspam-groups-only): documentation fix
-	for the variable
-
-2003-10-25  Steve Youngs  <sryoungs@bigpond.net.au>
-
-	* Makefile.in (clean-some): Remove auto-autoloads.* and
-	custom-load.* as well.
-	(distclean): Ditto.
-
-	* dgnushack.el (dgnushack-make-load): Add a local vars section to
-	the dummy gnus-load.el.
-
-2003-10-24  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-copy-or-move-routine): do not delete if copy
-	is t, also don't intepret the list of groups as a list of lists
-	(spam-mark-spam-as-expired-and-move-routine)
-	(spam-ham-copy-or-move-routine): delete articles only if 1 or
-	more groups were specified (and "copy" was not specified for
-	spam-ham-copy-or-move-routine) (fixed twice)
-
-2003-10-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nndoc.el (nndoc-guess-type): Reverse the sort order.  Suggested
-	by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>.
-	(nndoc-dissect-buffer): Don't miss even-numbered articles.
-
-2003-10-24  Steve Youngs  <sryoungs@bigpond.net.au>
-
-	* dgnushack.el (dgnushack-gnus-load-file): Set to
-	"auto-autoloads.el" if building with XEmacs.
-	(dgnushack-cus-load-file): Set to "custom-load.el" if building
-	with XEmacs.
-	(dgnushack-make-cus-load): We don't delete the resulting file if
-	building with XEmacs so byte-compile it.
-	(dgnushack-make-load): When building with XEmacs do nothing except
-	byte-compile the autoload file and create a dummy gnus-load.el
-	file. 
-
-2003-10-23  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-make-fqdn): Bind case-fold-search.
-	Suggested by Christopher Richards <richards@CS.Princeton.EDU>.
-
-2003-10-23  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus.el (spam-process-destination, ham-process-destination):
-	allow multiple groups as a choice
-
-	* spam.el (spam-check-blackholes): remove "[IP address]"
-	requirement, now just "IP address" is enough for detection for
-	blackhole checking
-	(spam-check-blackholes): oops, the dots were not escaped
-	(spam-mark-spam-as-expired-and-move-routine): added multiple group
-	support (multiple copies, then delete)
-	(spam-ham-copy-routine): new function
-	(spam-ham-move-routine): new function
-	(spam-ham-copy-or-move-routine): new function (used to be
-	spam-ham-move-routine), handle multiple groups
-	(spam-summary-prepare-exit): call the new functions
-
-2003-10-23  Simon Josefsson  <jas@extundo.com>
-
-	* flow-fill.el (fill-flowed-encode, fill-flowed): Autoload.
-
-2003-10-22  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-emphasis-strikethru): Use the :strike-through
-	attribute in Emacs.
-
-2003-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-bounce): Don't erase except bounced header.
-
-2003-10-21  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-reverse-ip-string): new function to reverse an IP
-	address in a string
-	(spam-check-blackholes): use spam-reverse-ip-string
-
-2003-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-narrow-to-page): Clear as well as set the
-	value for gnus-page-broken.
-
-	* gnus-sum.el (gnus-summary-beginning-of-article): Use
-	gnus-break-pages instead of gnus-page-broken.
-	(gnus-summary-end-of-article): Use gnus-break-pages instead of
-	gnus-page-broken; narrow to the end of a page beforehand.
-	(gnus-summary-toggle-header): Use gnus-break-pages instead of
-	gnus-page-broken; remove delimiter buttons unless gnus-break-pages
-	is non-nil.
-
-2003-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-picon.el (gnus-picon-transform-address): Protect against
-	errors. 
-
-2003-10-20  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-msg.el (nnspool-rejected-article-hook): Remove defvar.
-	(xemacs-codename): Move defvar to gnus-util.el.
-
-	* gnus-util.el (xemacs-codename): Defvar when compiling.
-
-2003-10-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* spam-report.el (spam-report-url-ping-plain): Include a
-	User-Agent. 
-
-	* gnus-msg.el (gnus-extended-version): Use it.
-
-	* gnus-util.el (gnus-emacs-version): Separated out into own
-	function. 
-
-2003-10-19  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-mode-field-menu): Added
-	message-generate-unsubscribed-mail-followup-to.
-	(message-forward-subject-fwd): Avoid double "Fwd: "
-	(message-change-subject): Added comment.
-
-2003-10-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-nov-parse-line): Remove condition-cases.
-
-	* mml.el (mml-insert-mime): Quote mml.
-
-2003-10-19  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-remove-odd-characters): Use
-	mm-subst-char-in-string instead of subst-char-in-string.
-	(gnus-summary-refer-article): Use gnus-replace-in-string instead
-	of replace-regexp-in-string.
-
-2003-10-19  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-uu.el (gnus-uu-uustrip-article): Really strip directory
-	from file name.
-
-2003-10-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-save-parts-last-directory): Default
-	to mm-default-directory.
-	(gnus-summary-save-parts-1): Use mm-file-name-rewrite-functions.
-
-2003-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* pop3.el (pop3-read-response): Check whether the process is
-	alive. 
-
-	* gnus-sum.el (gnus-summary-refer-article): Strip spaces.
-
-	* rfc2047.el (rfc2047-encode-region): Do error out on invalid
-	strings. 
-
-	* nntp.el (nntp-retrieve-headers-with-xover): Get error messages
-	right. 
-
-	* gnus-agent.el (gnus-agent-read-servers): Remove sit-for.
-
-	* gnus-art.el (article-treat-dumbquotes): Doc fix.
-
-	* message.el (message-field-value): New function.
-	(message-insert-disposition-notification-to): Use Reply-To, too.
-
-	* imap.el (imap-mailbox-status): Upcase STATUS commands. 
-
-	* gnus-sum.el (gnus-remove-odd-characters): New function.
-	(gnus-nov-parse-line): Use it.
-
-2003-10-18  Matt Swift  <swift@alum.mit.edu>
-
-	* mm-decode.el (mm-inline-media-tests): Recognize pjpeg as jpeg. 
-
-2003-10-18  Romain FRANCOISE  <romain@orebokech.com>
-
-	* message.el (message-forward-make-body): does both
-	m-f-make-body-mml and m-f-make-body-plain, resulting in a strange
-	message buffer.
-
-2003-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-narrow-to-page): Only break page if it's
-	broken.
-
-	* nnrss.el (nnrss-find-rss-via-syndic8): Return nil if xml-rpc
-	isn't available.
-
-	* message.el (message-hidden-headers): Doc fix.
-
-2003-10-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-summary-resend-message-edit): Avoid error when
-	fields aren't found.
-
-2003-10-18  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-forward-make-body-plain)
-	(message-forward-make-body-mime, message-forward-make-body-mml)
-	(message-forward-make-body-digest-plain)
-	(message-forward-make-body-digest-mime)
-	(message-forward-make-body-digest): New, derived from
-	message-forward-make-body.
-	(message-forward-make-body): Use them.
-	(message-forward-show-mml): New default 'best.
-	(message-forward-make-body): Support it.
-
-2003-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-mode): Set gnus-page-broken to nil.
-	(gnus-article-prepare): Don't set to t.
-	(gnus-narrow-to-page): Set to t if we break.
-
-2003-06-11  Daniel N,Ai(Bri  <dne@mayonnaise.net>
-
-	* message.el (message-resend): Generate Resent-Message-ID header.
-
-2003-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-next-page): Don't go to the next line
-	before checking end-of-buffer.
-	(gnus-mime-delete-part): Don't insert parts twice.
-
-2003-10-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (article-update-date-lapsed): Make sure point
-	doesn't move around (much).
-
-2003-07-28  Vasily Korytov  <deskpot@myrealbox.com>
-
-	* mail-source.el (mail-source-keyword-map): List "cur" before
-	"new" for maildirs.
-
-2003-10-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-enter-digest-group): ogroup, nor
-	group. 
-
-	* gnus-msg.el (gnus-inews-insert-archive-gcc): Use the parent
-	name for gcc-self.
-	(gnus-inews-insert-archive-gcc): Paren mistake.
-
-	* gnus-sum.el (gnus-summary-enter-digest-group): Add
-	parent-group. 
-
-	* gnus-art.el (gnus-ignored-headers): Add more headers.
-
-	* rfc2047.el (rfc2047-encode): See which encoding is shorter --
-	base64 or QP.
-
-	* nnmail.el (nnmail-article-group): Default to "bogus".
-
-	* mail-source.el (mail-source-delete-incoming): Change to nil.
-
-2003-10-16  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mail-source.el (mail-source-fetch-imap): Fix mismatched parens.
-
-2003-10-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mail-source.el (defvar): Add post/pre/scripts.
-	(mail-source-fetch-imap): Use them.
-
-	* nndraft.el (nndraft-request-move-article): Fix infinite
-	recursion. 
-
-	* gnus-group.el (gnus-group-mark-regexp): Jump to groups.
-
-2003-10-16  Ed L. Cashin  <ecashin@uga.edu>
-
-	* imap.el (imap-interactive-login): Set imap-password to nil if
-	login fails.
-
-2003-10-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-inserted-headers): New variable.
-	(message-mode): Make local.
-	(message-mode): Set all the local action variables to nil.	
-
-2003-10-16  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-decode.el (mm-inline-text-html-with-images): Doc fix.
-	(mm-w3m-safe-url-regexp): Doc fix.
-
-2003-10-12  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-respool-query): Don't narrow to head,
-	it's done by nnmail-article-group.
-
-	* gnus-uu.el (gnus-uu-grab-articles): Fix misplaced parens.
-	From Mark Hood <markhood@speakeasy.net> (tiny change)
-
-2003-10-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-decode.el (mm-file-name-delete-gotchas): Avoid infloop in
-	XEmacs.
-
-2003-10-10  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-initialize): new function, does the spam-face
-	update and all the hooks, replaces spam-install-hooks-function
-
-	* gnus-registry.el (gnus-registry-initialize): new autoloaded
-	function to explicitly initialize the registry
-
-2003-10-10  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-decode.el (mm-w3m-safe-url-regexp): Doc fix.
-
-	* mm-view.el (mm-w3m-mode-map): Doc fix.
-	(mm-inline-text-html-render-with-w3m): Add a comment.
-
-2003-10-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-group.el: Remove superfluous eval-when-compiles.
-
-2003-10-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-group.el (gnus-group-suspend): Reset gnus-backlog-articles.
-
-2003-10-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* dns.el (query-dns): Don't error out on malformed resolv files.
-
-2003-10-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus.el (gnus-group-faq-directory): Update .tw entry.  From
-	Albert Chun-Chieh Huang <mr894348@cs.nthu.edu.tw>
-
-2003-10-03  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-blackholes): exit the loop if matches are
-	found (idea from Adrian Lanz <lanz@fowi.ethz.ch>)
-	(spam-check-bogofilter-headers, spam-check-blackholes, spam-check-BBDB)
-	(spam-from-listed-p): use nnmail-fetch-field instead of message-fetch-field
-	
-
-2003-10-03  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-decode.el (mm-attachment-file-modes): Change the default
-	value into 384 from ?\600 which doesn't mean an integer in XEmacs.
-
-2003-10-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-decode.el (mm-file-name-delete-control)
-	(mm-file-name-delete-gotchas): New functions.
-	(mm-file-name-rewrite-functions): Use them.
-	(mm-attachment-file-modes): New option.
-	(mm-save-part-to-file): Use it.
-
-2003-10-02  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* spam.el (spam-install-hooks-function): Added Autoload cookie.
-
-2003-10-02  Jesper Harder  <harder@ifa.au.dk>
-
-	* pgg-def.el (pgg-default-keyserver-address): Change to
-	subkeys.pgp.net.  From Michael Shields <shields@msrl.com>
-
-2003-10-01  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-idna-to-ascii-rhs-1): RHS can be terminated
-	by ',', as in 'foo@example.org, bar@example.org'.
-
-2003-10-01  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-send): Fix reversed logic of supersedes
-	check.
-
-2003-09-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-article-view-part-as-charset): Doc fix,
-	suggested by Norbert Koch <viteno@xemacs.org>.
-
-2003-09-29  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-topic.el (gnus-topic-goto-missing-topic): Revert 2003-02-09
-	change in order to correct the position where an invisible topic
-	(because gnus-topic-display-empty-topics is nil) may be inserted.
-
-2003-09-22  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-ignored-supersedes-headers): Add X-Payment.
-
-2003-09-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* rfc2047.el (rfc2047-encode): Limit line length to 76 characters.
-
-2003-09-20  Simon Josefsson  <jas@extundo.com>
-
-	* tls.el (tls-process-connection-type): Doc fix.
-
-	* imap.el (imap-starttls-open): Rewrite, should support both old
-	starttls.el and new starttls.el that uses GNUTLS.
-
-2003-09-18  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-treat-display-x-face): Use set-default instead
-	of custom-set-default which isn't available in old XEmacsen.
-
-2003-09-17  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-summary-resend-message-edit): Don't convert
-	to MML.  MIME -> MML -> MIME does not work for PGP/MIME.
-
-	* message.el (message-bounce, message-forward-show-mml): do.
-	
-2003-09-13  Jesper Harder  <harder@ifa.au.dk>
-
-	* rfc2047.el (rfc2047-charset-encoding-alist): Add viscii.
-	(rfc2047-encode): Add factors for big5, gb2312 and euc-kr.
-
-	* nnweb.el (nnweb-google-parse-1): Fix parsing.
-
-2003-09-12  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-group.el (gnus-group-fetch-control): ISC changed
-	compression from .Z to .gz.
-
-	* rfc2047.el (rfc2047-header-encoding-alist): Add "Approved" to
-	address-mime.
-
-2003-09-11  Jesper Harder  <harder@ifa.au.dk>
-
-	* rfc2047.el (rfc2047-encode): Restrict encoded-words to 75
-	characters.
-
-2003-09-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus.el (gnus-group-charter-alist): Update.
-
-2003-09-10  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam-report.el: use mm-url.el functions for external URL
-	loading when the built-in HTTP GET is insufficient (e.g. proxies
-	are in the way).  From Eric Knauel
-	<knauel@informatik.uni-tuebingen.de>.
-	(spam-report-url-ping-function): new option, defaults to the
-	built-in HTTP GET (spam-report-url-ping-plain)
-	(spam-report-url-ping): calls spam-report-url-ping-function now
-	(spam-report-url-ping-plain): new function, does what
-	spam-report-url-ping used to do
-	(spam-report-url-ping-mm-url): function that delegates to
-	mm-url.el (autoloaded)
-
-2003-09-08  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-delete-id): function to
-	completely delete an ID, including all the cache hashtables
-	(gnus-registry-delete-group): use gnus-registry-delete-id
-	(gnus-registry-simplify-subject): only run if the argument is a
-	string, return nil otherwise
-
-2003-09-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-summary-resend-bounced-mail): Docstring fix.
-
-2003-09-05  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-split-fancy-with-parent): yet
-	another error *sigh*
-
-	* gnus-registry.el (gnus-registry-fetch-extra-entry): don't use
-	puthash unless gnus-registry-entry-caching is on
-	(gnus-registry-split-fancy-with-parent): misplaced parenthesis
-	made everything a part of the 'else'
-	(gnus-registry-save): used 'entry-caching' instead of 'caching'
-
-2003-09-05  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-button-alist): Improve Info regexp.
-
-2003-09-04  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el: added brief explanation of basics
-	(gnus-registry-track-extra): new variable for tracking of message
-	subjects
-	(gnus-registry-entry-caching): caching parameter, used for extra
-	data
-	(gnus-registry-minimum-subject-length): minimum subject length
-	before it's considered when tracing subjects
-	(gnus-registry-save): accomodate extra data entry caching
-	(gnus-registry-action): change function name, add the subject and
-	pass it to gnus-registry-add-group
-	(gnus-registry-spool-action): change function name, add the
-	subject and pass it to gnus-registry-add-group
-	(gnus-registry-split-fancy-with-parent): add subject tracking
-	(gnus-registry-register-message-ids): pass subject to
-	gnus-registry-add-group
-	(gnus-registry-simplify-subject)
-	(gnus-registry-fetch-simplified-message-subject-fast): new
-	functions
-	(gnus-registry-fetch-extra, gnus-registry-fetch-extra-entry): add
-	extra data entry caching
-	(gnus-registry-add-group): handle the extra subject parameter
-	(gnus-registry-install-hooks, gnus-registry-unload-hook): fix the
-	gnus-register-* function names
-
-	* nnmail.el (nnmail-cache-insert): add subject parameter, pass it
-	on to the nnmail-spool-hook
-
-	* nnbabyl.el (nnbabyl-request-accept-article): added subject to
-	nnmail-cache-insert call
-
-	* nndiary.el (nndiary-request-accept-article): added subject to
-	nnmail-cache-insert call
-
-	* nnfolder.el (nnfolder-request-accept-article): added subject to
-	nnmail-cache-insert call
-
-	* nnimap.el (nnimap-split-articles): added subject to
-	nnmail-cache-insert call
-	(nnimap-request-accept-article): added subject to
-	nnmail-cache-insert call
-
-	* nnmbox.el (nnmbox-request-accept-article): added subject to
-	nnmail-cache-insert call
-
-	* nnmh.el (nnmh-request-accept-article): added subject to
-	nnmail-cache-insert call
-
-	* nnml.el (nnml-request-accept-article): added subject to
-	nnmail-cache-insert call
-
-2003-09-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-button-handle-info-url)
-	(gnus-button-handle-info-url-gnome)
-	(gnus-button-handle-info-url-kde, gnus-button-alist): Handle GNOME
-	and KDE style Info URLs.
-
-	* gnus-util.el (gnus-url-unhex-string): Don't replace "+" with " ".
-
-2003-09-02  Jesper Harder  <harder@ifa.au.dk>
-
-	* rfc2047.el (rfc2047-fold-region): Don't fold at the beginning
-	of the field.
-
-2003-09-01  Simon Josefsson  <jas@extundo.com>
-
-	* mml.el (mml-insert-mime-headers-always): New variable.
-	(mml-insert-mime-headers): Use it.  Based on (tiny) patch from
-	Lars Balker Rasmussen <lars@balker.org>.
-
-2003-08-30  Simon Josefsson  <jas@extundo.com>
-
-	* mail-source.el (mail-source-fetch-imap): Pass correct buffer to
-	imap-open, reverts 2003-03-17 change.  Reverse remove before
-	calling gnus-compress-sequence.  From Gaute Strokkenes
-	<gs234@srcf.ucam.org> (tiny change).
-
-2003-08-29  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-delete-group): Doc fix.  Suggested by
-	Jochen K,A|(Bpper <jochen@jochen-kuepper.de>.
-
-2003-08-29  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (article-display-x-face): Make it possible to set
-	the gnus-article-x-face-command variable to the lambda form.
-
-2003-08-27  Simon Josefsson  <jas@extundo.com>
-
-	* mm-decode.el (mm-remove-part): Try to kill external displayers
-	cleanly first (if it refuses, C-g aborts loop and kill process
-	unconditionally).  Also make sure process is dead before we remove
-	the files it may be using.  Reported by David Coe
-	<davidc@debian.org>.
-
-2003-08-27  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-cache.el (gnus-cache-generate-active): Fix bug in
-	replacement.  From Vagn Johansen <v@johansen.mail.dk> (tiny
-	change).
-
-2003-08-25  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el: Don't use defvaralias.
-	(gnus-treat-display-x-face): Warn if the obsolete variable
-	`gnus-treat-display-xface' exists.
-
-2003-08-25  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-treat-display-face): Fix typo.
-	(gnus-treat-display-xface): Rename to gnus-treat-display-x-face
-	(reported by Jochen K,A|(Bpper <jochen@jochen-kuepper.de>)
-
-2003-08-24  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-header-button-alist, gnus-button-alist): Fix
-	type.
-
-2003-08-22  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-make-forward-subject-function): Fix
-	customize mismatch.
-
-	* gnus.el (gnus-message-archive-method): do.
-
-2003-08-20  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus.el (gnus-read-group): Offer to continue only if the invalid
-	char is `/' and add more information for the user.
-
-	* gnus-art.el (gnus-button-alist): Add `+' (gnus-button-handle-man).
-	(gnus-header-button-alist): Added `In-Reply-To'.
-
-	* nnimap.el (nnimap-open-connection): Allow different user names
-	on the same server (and in the same authinfo file).
-
-2003-08-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sieve.el (gnus-sieve-crosspost): Fix type.
-
-	* message.el (message-make-forward-subject-function): Add
-	message-forward-subject-name-subject to choices.
-
-	* gnus-art.el (gnus-article-edit-done, gnus-article-edit-exit):
-	Redisplay article after editing.
-
-2003-08-20  Simon Josefsson  <jas@extundo.com>
-
-	* gnus.el (gnus-read-group): Added check to ask confirmation if
-	Group name contains invalid character. You can use '/' in IMAP,
-	but not in filenames. G m cannot know what the user is creating,
-	so let user decide. See thread m2oeysiev3.fsf@naima.lensflare.org.
-	Tiny patch from letters@hotpop.com (Jari Aalto+mail.linux).
-
-2003-08-13  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-score.el (gnus-summary-score-effect): Fix interactive use.
-
-2003-08-10  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-draft.el (gnus-draft-send-all-messages): ask if all drafts
-	should be sent unless gnus-expert-user is on
-
-2003-08-09  Jesper Harder  <harder@ifa.au.dk>
-
-	* pgg-gpg.el (pgg-gpg-extra-args): Fix customization type.
-
-2003-08-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* pgg-gpg.el (pgg-gpg-process-region): Bind
-	default-enable-multibyte-characters to nil.
-
-2003-08-07  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* canlock.el (canlock-password): Fix customization type.
-	(canlock-password-for-verify): Ditto.
-	* deuglify.el (gnus-outlook-deuglify-unwrap-min): Ditto.
-	(gnus-outlook-deuglify-unwrap-max): Ditto.
-	(gnus-outlook-deuglify-unwrap-stop-chars): Ditto.
-	* gnus-sum.el (gnus-sum-thread-tree-root): Ditto.
-	(gnus-sum-thread-tree-false-root): Ditto.
-	(gnus-sum-thread-tree-single-indent): Ditto.
-	* message.el (message-archive-note): Ditto.
-	(message-subscribed-address-file): Ditto.
-	(message-user-fqdn): Ditto.
-	* spam-report.el (spam-report-gmane-regex): Ditto.
-	* spam.el (spam-blackhole-good-server-regex): Ditto.
-
-	* gnus-start.el (gnus-save-killed-list): Fix last change.
-	* message.el (message-courtesy-message): Ditto.
-
-2003-08-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-header-face-alist): Revert previous change.
-	(gnus-header-newsgroups-face): Explain that it's only used for
-	crossposts.
-
-2003-08-07  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-registry.el (gnus-registry-max-entries): Fix customization
-	type.
-	* gnus-score.el (gnus-adaptive-word-length-limit): Ditto.
-	* gnus.el (gnus-refer-article-method): Ditto.
-	* message.el (message-courtesy-message): Ditto.
-
-2003-08-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-header-face-alist): Fix "Newsgroups" entry.
-	From Chunyu Wang <spr@db.cs.hit.edu.cn> (tiny patch)
-
-2003-08-05  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-start.el (gnus-save-killed-list): Fix customization type.
-	* gnus-sum.el (gnus-thread-hide-subtree): Ditto.
-	* gnus.el (gnus-use-long-file-name): Ditto.
-
-2003-08-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-group.el (gnus-group-rename-group): Don't allow renaming to
-	an existing name.
-
-	* gnus-sum.el (gnus-summary-highlight): Add uncached to docstring.
-
-	* nnmail.el (nnmail-large-newsgroup): Docstring fix.
-
-	* nntp.el (nntp-large-newsgroup): do.
-
-	* nnspool.el (nnspool-large-newsgroup): do.
-
-	* gnus-cus.el (gnus-group-parameters): Typo.
-
-2003-07-31  Simon Josefsson  <jas@extundo.com>
-
-	* mml-sec.el (mml-signencrypt-style-alist): Use separate S/MIME
-	method by default (revert partial 2003-07-10 patch).
-
-2003-07-28  Dave Love  <fx@gnu.org>
-
-	* pgg-gpg.el, pgg-pgp.el, pgg-pgp5.el: Require cl when compiling.
-
-2003-07-26  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-install): add an initial
-	registry read to the loading when gnus-registry-install is set
-
-2003-07-26  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* flow-fill.el (fill-flowed): Empty lines separate paragraphs
-	even if the preceding line ends with a soft break.  Tiny patch
-	from Mark Thomas <swoon@bellatlantic.net>.
-
-2003-07-25  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-use-regex-body, spam-regex-body-spam) 
-	(spam-regex-body-ham): new variables, default to nil/empty/empty
-	(spam-install-hooks): added spam-use-regex-body to list or
-	pre-install conditions
-	(spam-list-of-checks): added spam-use-regex-body and
-	spam-check-regex-body to list of checks
-	(spam-list-of-statistical-checks): added spam-use-regex-body to
-	list of statistical checks
-	(spam-check-regex-body): invokes spam-check-regex-headers with
-	appropriate variable masking
-	(spam-check-regex-headers): changes to print "body" or "header"
-	where appropriate
-
-2003-07-25  Jesper Harder  <harder@ifa.au.dk>
-
-	* smime.el (smime-ask-passphrase): Use read-passwd rather than
-	comint-read-noecho.  The former is more secure.
-
-2003-07-24  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-cache-whitespace): make "adding
-	whitespace" message level 5 instead of 4
-	(gnus-registry-clean-empty-function): new function to remove empty
-	registry entries
-	(gnus-registry-clean-empty): new variable to enable cleaning the
-	registry when saving it by calling gnus-registry-clean-empty-function
-
-	* spam.el (spam-summary-prepare-exit): use spam-process-ham-in-spam-groups
-	(spam-process-ham-in-spam-groups): new variable
-
-2003-07-24  Jesper Harder  <harder@ifa.au.dk>
-
-	* pgg-gpg.el (pgg-gpg-process-region): Add "--yes" to options.
-
-	* pgg-gpg.el, pgg-pgp.el, pgg-pgp5.el, pgg.el: Reapply changes
-	from 2003-04-03 to fix security problem.  See
-	http://www.debian.org/security/2003/dsa-339
-
-2003-07-23  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus.el (gnus-install-group-spam-parameters): add the
-	gnus-ticked-mark to the possible choices of ham marks
-
-	* spam.el (spam-process-ham-in-nonham-groups): new variable
-	(spam-summary-prepare-exit): use spam-process-ham-in-nonham-groups
-
-2003-07-23  Jesper Harder  <harder@ifa.au.dk>
-
-	* rfc2047.el (rfc2047-header-encoding-alist): Add Mail-Followup-To
-	and Mail-Copies-To to address-mime.
-	(rfc2047-narrow-to-field): Use rfc2047-point-at-bol.
-
-2003-07-19  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-util.el (mm-coding-system-priorities): Docstring improvement.
-
-2003-07-17  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-thread-latest-date): Move condition-case to
-	the right place.
-
-2003-07-14  Simon Josefsson  <jas@extundo.com>
-
-	* mail-source.el (mail-source-fetch-imap): Don't assume
-	imap-error-text returns something.
-
-2003-07-12  Nevin Kapur  <kapur@mts.jhu.edu>
-
-	* nnimap.el (nnimap-request-newgroups): Use the pattern in
-	nnimap-list-pattern instead of "*".
-
-2003-07-10  Simon Josefsson  <jas@extundo.com>
-
-	* mml-sec.el (mml-signencrypt-style-alist): Use "combined" by
-	default.  Improve docstring.
-
-2003-07-10  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* imap.el (imap-arrival-filter): Fix test for missing process
-	buffer.
-
-2003-07-09  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-	From Gaute B Strokkenes <gs234@cam.ac.uk> (tiny patch).
-
-	* imap.el (imap-wait-for-tag): Clarify comment.  Use timeout zero
-	for second, after-process-has-died, accept-process-output.
-	(imap-arrival-filter): If PROC has no buffer, do nothing.
-
-2003-07-09  Jesper Harder  <harder@ifa.au.dk>
-
-	* flow-fill.el: Docstring and message fixes.
-
-	* deuglify.el: do.
-
-	* gnus-int.el: do.
-
-	* gnus-msg.el: do.
-
-	* gnus-util.el: do.
-
-	* gnus-draft.el: do.
-
-	* gnus-start.el: do.
-
-	* gnus.el: do.
-
-	* gnus-group.el: do.
-
-	* gnus-art.el: do.
-
-	* gnus-sum.el: do.
-
-	* mail-source.el (mail-source-movemail): Handle non-numerical
-	return values.
-
-2003-07-08  Jesper Harder  <harder@ifa.au.dk>
-
-	* mailcap.el (mailcap-parse-args-syntax-table)
-	(mailcap-viewer-passes-test): Docstring fix.
-
-	* mm-bodies.el (mm-long-lines-p): Docstring fix.
-
-	* mm-decode.el (mm-w3m-safe-url-regexp, mm-verify-option)
-	(mm-decrypt-option, mm-handle-set-external-undisplayer)
-	(mm-file-name-replace-whitespace): Docstring fix.
-
-	* mm-uu.el (mm-uu-emacs-sources-regexp): Docstring fix.
-	(mm-uu-pgp-signed-test): Fix message.
-
-	* mml.el (mml-tweak-sexp-alist): Docstring fix.
-	(mml-parse-1, mml-insert-mime-headers): Fix message.
-
-	* message.el (message-archive-header)
-	(message-subscribed-address-functions)
-	(message-subscribed-addresses, message-subscribed-regexps)
-	(message-canlock-generate)
-	(message-generate-new-buffer-clone-locals): Docstring fixes.
-
-2003-07-07  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* imap.el (imap-wait-for-tag): After the process has died, look
-	for more output still pending.  From Gaute B Strokkenes
-	<gs234@cam.ac.uk> (tiny patch).
-
-2003-07-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-bogofilter-score): redisplay article normally
-	after spam-bogofilter-score is called
-
-2003-07-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-send-mail-with-sendmail): Handle
-	non-numeric return values.
-
-	* gnus-sum.el (gnus-print-buffer): Apply emphasis.
-	From Michael Piotrowski <mxp@dynalabs.de> (tiny change).
-
-	* gnus-start.el (gnus-clear-system): Revert change from
-	2003-06-19.
-
-2003-07-04  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (rfc2047-q-encode-region): Exclude especials from
-	characters not encoded, and make the list more legible.
-
-2003-07-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-make-from): Revert change from 2002-01-08.
-
-2003-06-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnheader.el (nnheader-init-server-buffer): Don't add
-	nntp-server-buffer to list of Gnus buffers.
-
-2003-06-25  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-parse-list): prevent empty ("") strings
-
-2003-06-24  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-parse-list): use gnus-extract-address-components
-	instead of ietf-drums-parse-addresses
-	(spam-from-listed-p): let* was unnecessary
-
-2003-06-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-ems.el (gnus-put-image): Mark the right text segment with
-	gnus-image-category. 
-
-	* gnus-srvr.el (gnus-browse-unsubscribe-group): Strip prefix from
-	native groups.
-
-	* gnus-topic.el (gnus-group-prepare-topics): Update topic line
-	format specs.
-
-	* gnus-picon.el: Written by moi, moi, moi.
-
-	* gnus-group.el (gnus-group-kill-group): Clean up.
-
-2003-06-23  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-from-listed-p, spam-parse-list): use
-	ietf-drums-parse-addresses to extract the address portion of the
-	whitelist/blacklist file if it looks like an address can be found
-
-2003-06-23  Didier Verna  <didier@xemacs.org>
-
-	* gnus-ems.el (gnus-put-image): New argument CATEGORY. Add it as a
-	text property.
-	(gnus-remove-image): New argument CATEGORY. Only remove if
-	category matches.
-	* gnus-xmas.el (gnus-xmas-put-image):
-	(gnus-xmas-remove-image): Ditto, with extents.
-	* gnus-art.el (gnus-delete-images): Pass CATEGORY argument to
-	gnus-[xmas-]remove-image.
-	(article-display-face): Don't always act as a toggle. Call
-	`gnus-put-image' with CATEGORY argument.
-	(article-display-x-face): Call `gnus-put-image' with CATEGORY
-	argument.
-	* smiley.el (smiley-region): Ditto.
-	* gnus-fun.el (gnus-display-x-face-in-from): Ditto.
-	* gnus-picon.el (gnus-picon-insert-glyph): Ditto.
-	(gnus-treat-mail-picon): Don't always act as a toggle.
-	* gnus-picon.el (gnus-treat-newsgroups-picon): Ditto.
-
-2003-06-23  Didier Verna  <didier@xemacs.org>
-
-	* gnus-art.el (article-display-face): Check for existence of the
-	original article buffer before switching to it.
-
-2003-06-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-util.el (mm-append-to-file): Say "Appended to".  Suggested by
-	Dan Jacobson <jidanni@jidanni.org>.
-
-	* mm-view.el (mm-inline-message): Bind
-	gnus-original-article-buffer to the buffer in the mml handle
-	holding the message.
-
-2003-06-20  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (sender, from): No need to bind them.
-
-2003-06-19  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-enter-list): search-forward specified wrong
-
-2003-06-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el: Comment fix.
-
-2003-06-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-configure-posting-styles): Remove unused
-	variable.  From Jan Rychter <jan@rychter.com>.
-
-	* spam.el (spam-spamoracle-learn): insert-string is obsolete.
-
-2003-06-19  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-enter-list): do not enter duplicate addresses into
-	the whitelist/blacklist
-
-2003-06-19  Jesper Harder  <harder@ifa.au.dk>
-
-	* nnheader.el (nnheader-init-server-buffer): Add
-	nntp-server-buffer to gnus-buffers.
-
-	* gnus-start.el (gnus-clear-system): Now we don't need to kill
-	nntp-server-buffer separately.
-
-2003-06-18  Didier Verna  <didier@xemacs.org>
-
-	* gnus-art.el (article-display-face): Correctly toggle between
-	display and hiding. Handle multiple Face headers.
-
-2003-06-17  Dave Love  <fx@gnu.org>
-
-	* nnimap.el: Require cl when compiling.
-
-	* message.el (message-fix-before-sending): Reinstate nullifying
-	the invisible text property.
-	(sender, from): Defvar when compiling.
-	(message-is-yours-p): Remove autoload cookie.
-
-2003-06-17  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-util.el (gnus-extract-address-components): Added
-	doc-string.
-
-2003-06-16  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* nnml.el (nnml-current-group-article-to-file-alist): Don't read
-	overview when using compressed files.  From Michael Albinus
-	<Michael.Albinus@alcatel.de>.
-
-2003-06-16  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-summary-refer-parent-article): Extract
-	Message-ID from In-Reply-To header.
-
-2003-06-16  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-is-yours-p): Narrow to head; extract from
-	and sender by itself.
-	(message-cancel-news, message-supersede): Remove useless things.
-
-2003-06-15  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): Bind
-	`gnus-article-emulate-mime'.
-
-2003-06-15  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-	From Tommi Vainikainen <thv+gnus@iki.fi>.
-
-	* message.el (message-is-yours-p): New function.  Separated common
-	code from message-cancel-news and message-supersede.  Added
-	matching code which uses message-alternative-emails regexp as last
-	resort.
-	(message-cancel-news, message-supersede): Use message-is-yours-p.
-
-2003-06-13  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* nnimap.el (nnimap-split-articles): Narrow the right buffer to
-	the headers.  From Niklas Morberg <niklas.morberg@axis.com>.
-
-2003-06-12  Dave Love  <fx@gnu.org>
-
-	* nnheader.el (nnheader-functionp): Deleted.
-
-	* nnmail.el (nnmail-split-fancy-syntax-table): Define all in
-	defvar.
-	(nnmail-version): Deleted.
-	(nnmail-check-duplication, nnmail-expiry-target-group): Don't use
-	nnheader-functionp.
-
-2003-06-10  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-bogofilter-headers): fix for when the score
-	is requested but the message is not spam
-
-2003-06-09  Teodor Zlatanov  <tzz@lifelogs.com>
-	From Eric
-	<knauel@informatik.uni-tuebingen.de>
-
-	* spam.el (spam-use-spamoracle): new variable
-	(spam-install-hooks): add spamoracle to the list of conditions
-	for activation of spam-install-hooks
-	(spam-spamoracle): new variable customization group
-	(spam-spamoracle, spam-spamoracle): new variables
-	(spam-group-spam-processor-spamoracle-p)
-	(spam-group-ham-processor-spamoracle-p): new functions
-	(spam-summary-prepare-exit): added spamoracle ham/spam exit processing
-	(spam-list-of-checks, spam-list-of-statistical-checks): add
-	spam-use-spamoracle
-	(spam-check-spamoracle, spam-spamoracle-learn)
-	(spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): new functions
-
-	* gnus.el (gnus-group-spam-exit-processor-spamoracle)
-	(gnus-group-ham-exit-processor-spamoracle): new variables for SpamOracle
-	(spam-process, ham-process): added spamoracle spam/ham processors
-
-2003-06-08  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-beginning-of-line): Docstring improvement.
-	Suggested by Michael R. Wolf <MichaelRunningWolf@att.net>
-
-2003-06-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Removed ["Add buttons"
-	gnus-summary-display-buttonized t]
-
-2003-06-07  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* nnmail.el (nnmail-split-fancy-match-partial-words): Doc string
-	fix.  Reported by Johan Bockg,Ae(Brd <bojohan+news@dd.chalmers.se>.
-
-2003-06-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-beginning-of-line): Docstring improvement.
-
-2003-06-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-srvr.el (gnus-browse-foreign-server): Parse garbage NNTP
-	groups correctly.
-
-2003-06-06  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-	From Benjamin Rutt <rutt+news@cis.ohio-state.edu>.
-
-	* message.el (message-fetch-field): Augment documentation to state
-	the narrowed-to-headers restriction.
-	(message-change-subject, message-reduce-to-to-cc)
-	(message-generate-unsubscribed-mail-followup-to)
-	(message-insert-importance-high, message-insert-importance-low)
-	(message-insert-or-toggle-importance)
-	(message-insert-disposition-notification-to): Narrow to headers
-	before calling message-fetch-field or message-remove-header.
-
-2003-06-06  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-trim): fix for when
-	gnus-registry-max-entries is nil
-
-2003-06-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* qp.el (quoted-printable-decode-region): Don't error out on
-	malformed text.
-
-2003-06-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* rfc2047.el (rfc2047-encode-region): Don't error out on invalid
-	strings.
-
-2003-06-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* mml1991.el (mml1991-pgg-sign): Insert pgg output as unibyte.
-	From: Ivan Boldyrev <boldyrev+nospam@cgitftp.uiggm.nsc.ru> (tiny
-	change)
-
-2003-06-03  Dave Love  <fx@gnu.org>
-
-	* gnus-soup.el (gnus-soup-send-packet): Don't use
-	message-functionp.
-
-	* gnus.el (gnus-agent-cache): Doc fix.
-	(gnus-other-frame): Quote lambda used as hook.
-
-	* message.el: Doc fixes.
-	(message-functionp): Deleted.  Callers changed.
-	(message-fix-before-sending): Highlight with overlays.  Clarify
-	`illegible text' messages.
-	(rmail-enable-mime-composing, gnus-message-group-art): Defvar when
-	compiling.
-	(gnus-find-method-for-group, nnvirtual-find-group-art): Autoload.
-
-2003-06-03  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* nnmail.el (nnmail-split-fancy-match-partial-words): New user
-	option.
-	(nnmail-split-it): Obey it.  Don't let-bind regexp twice.
-
-	* message.el (message-fetch-field): Mention narrow-to-headers
-	requirement.
-
-2003-06-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-xmas.el (gnus-xmas-create-image): Use
-	insert-file-contents-literally.  From: Eric Eide
-	<eeide@cs.utah.edu>
-
-2003-06-02  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-fetch-group): always return the
-	short name of the group
-
-2003-06-02  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-cus.el (defvar): Silence byte-compiler warnings.
-
-	* gnus-sum.el (gnus-get-newsgroup-headers): Unfold headers.
-
-2003-05-31  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (article-unsplit-urls): Use gnus-treat-article
-	rather than gnus-display-mime-function.
-
-2003-05-30  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-use-long-group-names): new variable
-	(gnus-registry-add-group): use it
-	(gnus-registry-trim-articles-without-groups): new variable
-	(gnus-registry-delete-group): use it
-	(gnus-registry-unload-hook): uninstall all the hooks
-
-	* spam.el (spam-install-hooks-function, spam-unload-hook): new
-	functions so users that load spam.el for customization don't get
-	all the hooks installed
-	(spam-install-hooks): new variable, set to t by default if user
-	has one of the spam-use-* variables set
-
-	* spam-stat.el (spam-stat-install-hooks, spam-stat-unload-hook): new
-	functions so users that load spam-stat.el for customization don't get
-	all the hooks installed
-
-2003-05-30  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (rfc2047-decode): Don't use
-	mm-with-unibyte-current-buffer.
-
-	* qp.el (quoted-printable-decode-string): Use
-	mm-with-unibyte-buffer.
-
-2003-05-29  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-save): allow forced saving even
-	when registry is not dirty.  Use gnus-registry-trim to shorten the
-	gnus-registry-alist.
-	(gnus-registry-max-entries): new variable
-	(gnus-registry-trim): new function, trim gnus-registry-alist to
-	size gnus-registry-max-entries, sorting by entry mtime so the
-	newest entries stick around
-
-	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): instead of
-	just one specific variable, allow a list of specific variables
-
-2003-05-28  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (rfc2047-encode-region): Skip ASCII at beginning and
-	end of region.
-
-2003-05-28  Jesper Harder  <harder@ifa.au.dk>
-
-	* lpath.el: Add put-char-table and get-char-table.
-
-2003-05-28  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-dirty): flag for modified registry
-	(gnus-registry-save, gnus-registry-read)
-	(gnus-registry-store-extra, gnus-registry-clear): use it (note
-	that gnus-registry-store-extra is invoked for all modifications to
-	set the mtime, so gnus-registry-dirty only needs to be set there)
-
-2003-05-23  Simon Josefsson  <jas@extundo.com>
-
-	* mml1991.el (mml1991-pgg-sign): Use mml-sender instead of
-	message-sender.
-
-	* gnus-art.el (gnus-use-idna): Check if idna-program is installed.
-
-	* message.el (message-use-idna): Ditto.
-
-2003-05-20  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (rfc2047-q-encoding-alist): Deleted.
-	(rfc2047-q-encode-region): Don't use it.
-	(rfc2047-encode-message-header) <(eq method 'mime)>: Bind
-	rfc2047-encoding-type to `mime'.
-	(rfc2047-encode-string, rfc2047-encode): Doc fix.
-
-2003-05-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-send-mail): Don't insert a courtesy copy
-	notice in base64 encoded messages.
-
-2003-05-16  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-summary-move-article): Don't copy expirable
-	marks if the destination group is not auto-expirable.
-
-2003-05-14  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el (assq-delete-all): Removed the compiler macro.
-
-2003-05-14  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agentize): Updated documentation to match
-	usage.
-	(gnus-agent-expire-group-1): Do not skip over a group when the
-	force argument is set.
-	* gnus.el (gnus-agent): Updated documentation to reflect that
-	gnus-agent now defaults to t.
-
-2003-05-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-2003-05-14 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Gnus v5.10.2 is released.
-
-2003-05-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mail-source.el (mail-source-delete-incoming): Changed to t.
-
-	* rfc2047.el (rfc2047-syntax-table): Funcall.
-
-	* lpath.el ((featurep 'xemacs)): Added set-char-table-range.
-	((featurep 'xemacs)): No, don't.
-
-	* rfc2047.el (rfc2047-encodable-p): Use the header charset.
-
-	* gnus-sum.el (gnus-summary-reselect-current-group): Supply
-	leave-hidden.
-
-2003-05-14  Jonathan Kamens  <jik@kamens.brookline.ma.us>
-
-	* gnus-sum.el (gnus-summary-exit): Added `leave-hidden'.  (Tiny
-	patch.)
-
-2003-05-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-registry.el (gnus-registry-store-extra-entry): Use
-	gnus-assq-delete-all.
-
-	* gnus-xmas.el (gnus-xmas-assq-delete-all): New function.
-
-	* message.el (message-ignored-bounced-headers): Add Delivered-To.
-
-	* gnus-sum.el (gnus-summary-find-next): Indent.
-	(gnus-summary-find-prev): Ditto.
-	(gnus-summary-catchup): Doc fix.
-	(gnus-summary-mark-current-read-and-unread-as-read): New function.
-	(gnus-summary-catchup): Really mark after point.
-
-	* gnus-util.el (gnus-user-date): Use %d instead of %m.
-	(gnus-user-date): Use floating point time so that we don't get
-	overflows.
-
-	* gnus-sum.el (gnus-summary-local-variables): Clean up.
-
-	* gnus-fun.el (gnus-display-x-face-in-from): Don't use centering
-	since none of the other image things do.
-
-2003-05-13  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el (assq-delete-all): New compiler macro for Emacs 20.
-
-2003-05-12  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el: Fbind find-coding-system.
-
-	* dgnushack.el (dgnushack-make-load): Remove redundant format call
-	in message.  Suggested by Yoichi NAKAYAMA <yoichi@geiin.org>.
-	* pop3.el (pop3-movemail): Ditto.
-
-2003-05-12  Colin Marquardt <c.marquardt@alcatel.de>  (tiny change)
-
-	* gnus.el (gnus-agent): Docstring fix.
-
-2003-05-12  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-install): new variable
-	(gnus-registry-fetch-extra, gnus-registry-fetch-extra-entry)
-	(gnus-registry-store-extra-entry, gnus-registry-delete-group)
-	(gnus-registry-add-group): add a modification timestamp to each entry
-	(gnus-registry-install-hooks): new function
-
-2003-05-12  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-cat-name): Eval macro while compiling.
-	(gnus-agent-cat-disable-undownloaded-faces): New function.
-	Accessor for new agent property
-	'agent-disable-undownloaded-faces'.
-	gnus-cus.el (gnus-agent-parameters): Added
-	agent-disable-undownloaded-faces and corrected documentation.
-	(gnus-agent-cat-prepare-category-field,
-	gnus-agent-customize-category): Changed to avoid creating free
-	references to each field's symbol.
-	gnus-sum.el (gnus-summary-use-undownloaded-faces): New local variable.
-	(gnus-select-newgroup): Initialize it.
-	(gnus-summary-highlight-line): Use it.
-
-2003-05-12  Dave Love  <fx@gnu.org>
-
-	* mm-util.el (mm-read-charset): Deleted.
-	(mm-coding-system-mime-charset): New.
-	(mm-read-coding-system, mm-mule-charset-to-mime-charset)
-	(mm-charset-to-coding-system, mm-mime-charset)
-	(mm-find-mime-charset-region): Use it.
-	(mm-default-multibyte-p): Fix non-mule case.
-
-	* rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-bol): Eval
-	and compile.
-	(rfc2047-syntax-table): Fix building table to work in Emacs 22.
-	(rfc2047-unfold-region): Delete unused var `leading'.
-
-2003-05-12  Simon Josefsson  <jas@extundo.com>
-
-	* pgg.el (pgg-temp-buffer-show-function): Reuse existing visible
-	output window if one is available.  Tiny patch from Ville Skytt,Ad(B
-	<scop@xemacs.org>.
-
-2003-05-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-expire-unagentized-dirs): Added
-	space.
-
-2003-05-11  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-enter-digest-group): Don't do article
-	washing etc.
-	(gnus-handle-ephemeral-exit): Don't reload article after exiting.
-
-	* nndoc.el (nndoc-type-alist): `mime-digest' should be before
-	`mime-parts'.
-
-2003-05-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-cite.el (gnus-article-hide-citation-maybe): Make toggling
-	work.  Update mode-line.
-
-2003-05-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-logo-color-alist): Added no colours.
-
-2003-05-09  Dave Love  <fx@gnu.org>
-
-	* utf7.el (mm-util): Require.
-	(utf7-direct-encoding-chars, utf7-imap-direct-encoding-chars):
-	Defconst, not defvar.
-	(utf7-utf-16-coding-system): New.
-	(utf7-encode-internal): Hoist concat out of loop.
-	(utf7-fragment-encode): Use mm-with-unibyte-current-buffer.
-	(utf7-get-u16char-converter) [utf7-utf-16-coding-system]: New
-	case.
-	(utf7-latin1-u16-char-converter): Encode the region.
-	(utf7-u16-latin1-char-converter): Decode the region.
-	(utf7-encode, utf7-decode): Fix multibyteness.
-
-	* mm-bodies.el (mm-body-7-or-8): Don't special-case mule.
-	(mm-encode-body): Use mm-read-coding-system, not mm-read-charset.
-	(mm-uu-yenc-decode-function): Defvar when compiling.
-	(mm-encode-body, mm-decode-body): Doc fix.
-
-2003-05-09  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-unregistered-group-regex):
-	removed in favor of the group/topic/global variables
-	(gnus-registry-register-message-ids): fixed test to omit
-	gnus-registry-unregistered-group-regex
-
-	* gnus.el (gnus-variable-list): removed gnus-registry-alist and
-	gnus-registry-headers-alist from the list
-	(gnus-registry-headers-alist): removed
-	(registry-ignore): new parameter, with accompanying
-	gnus-registry-ignored-groups global variable
-
-	* gnus-start.el (gnus-clear-system): no need to clear the
-	registry, we can do it ourselves
-	(gnus-gnus-to-quick-newsrc-format): extra parameters so it can be
-	used by gnus-registry.el
-
-	* gnus-registry.el (gnus-registry-cache-file): new file variable
-	(gnus-registry-cache-read, gnus-registry-cache-save): new
-	functions
-	(gnus-registry-cache-whitespace): new function.  From Dan
-	Christensen <jdc@chow.mat.jhu.edu>
-	(gnus-registry-save, gnus-registry-read): use the new
-	gnus-registry-cache-{read|save} functions, and change the name
-	from gnus-registry-translate-{from|to}-alist
-	(gnus-registry-clear): fixed so it doesn't refer to old function name
-
-2003-05-09  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-picon.el (gnus-picon-transform-address): Parse the encoded
-	address.
-
-2003-05-08  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-start.el (gnus-clear-system): added gnus-registry-alist to
-	the list of cleared variables
-
-	* gnus-registry.el (gnus-registry-split-fancy-with-parent):
-	nnmail-split-fancy-with-parent-ignore-groups can be a single regex
-	in addition to a list of regexes.
-
-	* spam.el (spam-use-regex-headers): docstring fix.  From Niklas
-	Morberg <niklas.morberg@axis.com>
-
-2003-05-08  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* gnus-sum.el (gnus-summary-next-page): Mention
-	`gnus-article-skip-boring' in docstring.
-
-2003-05-08  Jesper Harder  <harder@ifa.au.dk>
-
-	* rfc2231.el (rfc2231-parse-string): "=" should have whitespace
-	syntax here.
-
-	* ietf-drums.el (ietf-drums-syntax-table): "=" should not have
-	whitespace syntax class when parsing email addresses.
-
-	* message.el (message-forward-subject-name-subject): Don't use
-	mail-decode-encoded-word-string before parsing from.
-
-2003-05-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-setup-1): Setup alternative email before
-	generate-headers.
-
-	(message-forward-subject-name-subject): Fix the case when the
-	field "from" doesn't exist.
-
-2003-05-07  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (rfc2047-encode-region): Skip \n as whitespace.
-
-	* mm-util.el (mm-find-mime-charset-region): Expurgate utf-16 from
-	possible values.
-
-2003-05-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-kill-to-signature): Fix.
-
-2003-05-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-auto-goto-ignores): Docstring fix.
-
-	* gnus-art.el (gnus-mime-display-multipart-as-mixed)
-	(gnus-mime-display-multipart-related-as-mixed)
-	(gnus-button-mid-or-mail-heuristic-alist): do.
-
-2003-05-05  Dave Love  <fx@gnu.org>
-
-	* mm-util.el (mm-default-multibyte-p): New.
-	(mm-coding-system-p): Maybe use find-coding-systems.
-
-2003-05-04  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (with-syntax-table): Define if necessary.
-	(rfc2047-syntax-table): Fix last change for XEmacs.
-	(rfc2047-parse-and-decode): Revert last change.
-
-2003-05-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus.el: Don't test for `mm-guess-mime-charset'.
-
-	* mm-util.el (mm-guess-mime-charset): Remove.  Not used any more.
-
-	* gnus.el (gnus-default-charset): Set default value to
-	`undecided'.
-
-	* gnus-art.el (article-decode-charset): Don't supply 4th arg to
-	mm-decode-body.
-
-	* mm-bodies.el (mm-decode-coding-region-safely): Remove.
-	(mm-decode-body): Don't use mm-decode-coding-region-safely.
-
-2003-05-03  Vasily Korytov <deskpot@despammed.com>  (tiny change)
-
-	* gnus-util.el (gnus-multiple-choice): Add ", ?".
-
-2003-05-03  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (rfc2047-syntax-table): Don't call make-char-table
-	with 2 args.
-	(rfc2047-decode-string): Don't set the buffer multibyte before
-	calling buffer-string.
-
-	* mm-encode.el (mm-long-lines-p): Autoload.
-	(mm-encode-content-transfer-encoding): Doc fix.  Don't make buffer
-	unibyte.  Signal error on unknown encoding.
-	(mm-encode-buffer, mm-qp-or-base64): Doc fix.
-
-	* rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-eol): New.
-	Callers of gnus- versions changed to use them.
-	(rfc2047-header-encoding-alist): Add `address-mime' part.  Doc
-	fixes.
-	(rfc2047-encoding-type): New.
-	(rfc2047-encode-message-header): Use mm-charset-to-coding-system.
-	Don't include header name field in encoding.  Add `address-mime'
-	case and bind rfc2047-encoding-type for `mime' case.
-	(rfc2047-encodable-p): Deleted.
-	(rfc2047-syntax-table): New.
-	(rfc2047-encode-region, rfc2047-encode): Rewritten to take account
-	of rfc2047 rules with respect to rfc2822 tokens and to do encoding
-	in place rather than by passing strings.
-	(rfc2047-encode-string): Doc fix.
-	(rfc2047-q-encode-region): Don't use
-	mm-with-unibyte-current-buffer.
-	(rfc2047-encoded-word-regexp): eval-and-compile.
-	(rfc2047-decode-region): Avoid concatenation in loop.
-	(rfc2047-parse-and-decode): Remove useless disjunction.
-
-2003-05-02  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (rfc2047-q-encode-region, rfc2047-decode): Use
-	mm-with-unibyte-current-buffer.
-	(ietf-drums, gnus-util): don't require.
-
-	* sieve.el (sieve-manage-mode-menu): Define before use.
-
-	* mml-smime.el (message-narrow-to-headers): Autoload.
-
-	* mm-util.el (mm-coding-system-p): Don't override nil from
-	coding-system-p.
-	(mm-mule4-p, mm-disable-multibyte-mule4)
-	(mm-with-unibyte-current-buffer-mule4): Deleted.
-	(mm-multibyte-p): Use defun, not defalias.
-	(mm-make-temp-file): Moved to group at top of file.
-	(mm-point-at-eol, mm-point-at-bol): New.
-
-	* gnus-cite.el (gnus-art): Require.
-
-	* gnus-ems.el (gnus-get-buffer-create)
-	(nnheader-find-etc-directory, message-text-with-property):
-	Autoload.
-	(gnus-tmp-unread, gnus-tmp-replied, gnus-tmp-score-char)
-	(gnus-tmp-indentation, gnus-tmp-opening-bracket, gnus-tmp-lines)
-	(gnus-tmp-name, gnus-tmp-closing-bracket, gnus-tmp-subject-or-nil)
-	(gnus-check-before-posting): Only defvar when compiling.
-
-	* gnus-int.el (gnus-agent-expire): Autoload, don't defun.
-
-	* gnus-util.el (rmail-default-rmail-file, mm-text-coding-system):
-	Defvar when compiling.
-	(gnus-output-to-rmail): Require mm-util.
-
-	* mail-source.el (mail-source-callback): Use mm-make-temp-file.
-	(mail-source-make-complex-temp-name): Deleted.
-
-	* message.el (message-use-idna): Use mm-coding-system-p.
-	(message-tokenize-header, message-make-organization)
-	(message-make-from):  Use with-temp-buffer.
-	(message-set-work-buffer): Deleted.
-	(message-fill-paragraph): Use `if' not `and' for compiler warning.
-	(message-check-news-header-syntax): Remove useless lambda.
-	(message-forward-make-body): Use mm-disable-multibyte,
-	mm-with-unibyte-current-buffer, mm-enable-multibyte.
-	(message-replace-chars-in-string): Deleted.
-
-	* mm-extern.el (mm-extern-local-file): Use mm-disable-multibyte.
-	(mm-extern-url): Use mm-with-unibyte-current-buffer,
-	mm-disable-multibyte.
-	(mm-extern-anon-ftp): Use mm-disable-multibyte.
-
-	* mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt): Use
-	mm-with-unibyte-current-buffer.
-
-	* mml2015.el (mml): Require.
-	(mml2015-mailcrypt-encrypt, mml2015-gpg-encrypt): Use
-	mm-with-unibyte-current-buffer.
-
-	* nnheader.el (gnus-util): Require.
-
-	* nntp.el (format-spec, format-spec-make, open-tls-stream):
-	Autoload.
-
-	* rfc2231.el (mail-header-remove-comments, mm-encode-body)
-	(mail-header-remove-whitespace): Autoload.
-
-	* sieve-manage.el (starttls-negotiate): Autoload.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnrss.el (nnrss-find-rss-via-syndic8): Indent.
-
-2003-05-01  Mark A. Hershberger  <mah@everybody.org>
-
-	* nnrss.el (nnrss-find-rss-via-syndic8): Don't error out.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-2003-05-01  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam-report.el (spam-report-gmane-regex): docstring fix.  From
-	Jon Ericson <Jon.Ericson@jpl.nasa.gov> (tiny change)
-
-	* gnus.el (gnus-install-group-spam-parameters): docstring fix.
-	From Jon Ericson <Jon.Ericson@jpl.nasa.gov> (tiny change)
-
-	* gnus-registry.el (gnus-registry-fetch-extra)
-	(gnus-registry-store-extra, gnus-registry-group-count): new functions
-	(gnus-registry-fetch-group, gnus-registry-delete-group)
-	(gnus-registry-add-group): changed to work with extra data element
-	if present
-
-2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Gnus v5.10.1 is released.
-
-2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.24 is released.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* dgnushack.el (when): Check whether defadvice is fbound.
-
-2003-05-01  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-unregistered-group-regex): new variable
-	(gnus-registry-register-message-ids): use it
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-	* gnus.el: Update copyright for several files.
-
-2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.23 is released.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* spam-stat.el (spam-stat-test-directory): Compare against zero.
-
-2003-05-01  Trey Jackson <tjackson@ichips.intel.com>  (tiny change)
-
-	* spam-stat.el (spam-stat-test-directory): Skip 0 length files.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-forward-subject-name-subject): Decode
-	string when forwarding.
-
-2003-05-01  Oystein Viggen  <oysteivi@tihlde.org>
-
-	* dgnushack.el (when): Add defadvice.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.22 is released.
-
-2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.21 is released.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.20 is released.
-
-2003-05-01  Vasily Korytov  <deskpot@despammed.com>
-
-	* gnus-dired.el (gnus-dired-mode-map): Move to C-c C-l.
-
-2003-04-30  Mark A. Hershberger  <mah@everybody.org>
-
-	* mm-url.el (mm-url-insert-file-contents): set url-current-object
-	in the case where mm-url-use-external is set.
-
-	* nnrss.el (nnrss-request-article): Change the messages created to
-	multipart/alternative.  Hopefully fixes a problem interaction with
-	w3m.
-	(nnrss-find-rss-via-syndic8): Better handling if xml-rpc.el isn't
-	around.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-check-news-header-syntax): Alter "posting"
-	message.
-
-	* nnrss.el (nnrss-node-text): Don't use char classes.
-
-2003-05-01  David Z. Maze  <dmaze@mit.edu>
-
-	* nnrss.el (nnrss-find-rss-via-syndic8): Have an `error' branch
-	in condition-case.
-
-2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-required-headers): Remove In-Reply-To.
-
-	* gnus-int.el (gnus-open-server): Revert changes.
-
-2003-04-30  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* gnus-int.el (gnus-open-server): Try to open unagentized servers
-	even when unplugged.
-
-2003-04-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-prefer-mid-or-mail): Fixed typo in
-	doc-string.
-
-2003-05-01  Steve Youngs  <youngs@xemacs.org>
-
-	* lpath.el: Add a section for non-Mule XEmacsen.
-	fbind `find-charset-string' and `coding-system-base' in that
-	section.
-
-	* gnus-util.el (gnus-completing-read-maybe-default): New.
-	(gnus-completing-read): Use it.
-
-	* mm-view.el (mm-view-pkcs7-decrypt): Ditto.
-
-	* gnus-art.el (gnus-read-string): New.
-	(gnus-summary-pipe-to-muttprint): Use it.
-
-	* gnus-xmas.el (gnus-xmas-open-network-stream): New.
-
-	* dns.el (dns-make-network-process): Use it.
-
-	Take care of some differences between XEmacs 21.1 and newer
-	versions of XEmacs.
-
-2003-04-30  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-split-fancy-with-parent): added
-	diagnostic message
-	(gnus-registry-grep-in-list): don't run when word is nil
-	(gnus-registry-fetch-message-id-fast): new function
-	(gnus-registry-delete-group, gnus-registry-add-group): make sure
-	the id and group are not nil
-	(gnus-registry-register-message-ids): new function
-	(gnus-register-action): optimized logical flow
-	(gnus-summary-prepare-hook): added gnus-registry-register-message-ids
-
-2003-04-30  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* gnus-delay.el (gnus-delay-article): Call
-	`gnus-agent-queue-setup' to create the delay group.
-
-	* gnus-agent.el (gnus-agent-queue-setup): Support optional arg
-	for the (queue) group name.
-
-2003-04-30  Simon Josefsson  <jas@extundo.com>
-
-	* mm-util.el (mm-charset-to-coding-system): Use user specified
-	charset unless coding-system-get is fboundp.
-
-2003-04-30  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-name):
-	Wrapped in eval-when-compile.
-	(gnus-agent-mode): Bind gnus-agent-go-online to nil as you
-	shouldn't be asked twice to go online with each server.
-	(gnus-agent-get-undownloaded-list, gnus-agent-fetch-articles,
-	gnus-agent-crosspost, gnus-agent-flush-cache,
-	gnus-agent-fetch-session, gnus-agent-unread-articles,
-	gnus-agent-uncached-articles, gnus-agent-regenerate-group,
-	gnus-agent-group-covered-p): Expanded pop macros used for
-	effect. Avoids compilation warning in emacs 21.3.
-
-	* gnus-int.el (gnus-open-server): Restructured to only open
-	nnagent when gnus-plugged is nil.
-
-2003-04-30  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el: Fbind string-to-multibyte.
-
-2003-04-30  Steve Youngs  <youngs@xemacs.org>
-
-	* dgnushack.el: Add some missing autoloads for XEmacs 21.1.
-
-2003-04-29  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-registry-fetch-group): faster
-	(gnus-registry-delete-group): new function
-	(gnus-registry-add-group): new function
-	(gnus-register-spool-action): use it
-	(gnus-register-action): use it
-	(gnus-registry-translate-from-alist)
-	(gnus-registry-translate-to-alist): remove the headers registry
-	for now
-
-2003-04-29  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-alist): Fixed CTAN regexp.
-
-2003-04-29  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam-report.el (spam-report-gmane): gnus-summary-article-number
-	is not necessary, just use the function parameter
-
-2003-04-29  Karl Pflysterer  <sigurd@12move.de>
-
-	* spam-stat.el (spam-stat-save): No longer font-locks the file
-	when saving
-
-2003-04-29  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* canlock.el: Bind mail-header-separator when compiling (XEmacs
-	provides it in mail-lib/auto-autoloads.el).
-
-2003-04-29  Simon Josefsson  <jas@extundo.com>
-
-	* mml2015.el (mml2015-pgg-sign): Use mml-sender instead of
-	message-sender.
-
-	* mml.el (mml-generate-mime-1): Set mml-sender too.
-
-2003-04-29  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-display-while-building): Docstring fix.
-
-	* mm-url.el (mm-url-use-external): do.
-
-2003-04-29  Simon Josefsson  <jas@extundo.com>
-
-	* canlock.el (mail-fetch-field): Autoload it (fix xemacs compile
-	warnings).
-
-	* sieve-mode.el (c-mode): Ditto.
-
-	* pgg.el (run-at-time): Ditto.
-
-	* mm-url.el (require): Require timer when compiling for
-	with-timeout macro (fix xemacs compile warnings).
-
-2003-04-28  Dave Love  <fx@gnu.org>
-
-	* gnus-util.el (nnheader): Don't require.
-	(Nnheader-narrow-to-headers, nnheader-replace-chars-in-string):
-	Autoload.
-
-	* spam.el: Require cl when compiling.
-
-	* dns.el: Require cl when compiling.
-
-2003-04-28  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-article-goto-next-page)
-	(gnus-article-goto-prev-page): Revert 2003-02-12 change to make
-	gnus-pick-mode work.
-
-2003-04-28  Steve Youngs  <youngs@xemacs.org>
-
-	* Makefile.in (FLAGS): Use @FLAGS@.
-
-2003-04-27  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-mime-display-multipart-as-mixed)
-	(gnus-mime-display-multipart-alternative-as-mixed)
-	(gnus-mime-display-multipart-related-as-mixed): Added doc-strings,
-	allow customization.
-
-2003-04-27  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* dgnushack.el (dgnushack-compile-verbosely): New function.  Not
-	currently called (See source for explanation).
-
-2003-04-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-catchup): Don't mark ticked messages.
-	(gnus-summary-mark-read-and-unread-as-read): Take an optional
-	mark.
-
-	* gnus.el (gnus-version-number): Bump.
-
-2003-04-27 06:47:31 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.19 is released.
-
-2003-04-27  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-registry.el (gnus-register-spool-action): Replaced literal
-	carriage-return character with its escape sequence.
-
-2003-04-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-catchup-from-here): Doc fix.
-
-	* nnrss.el (nnrss-node-text): Use only one
-	gnus-replace-in-string.
-
-	* gnus.el: Remove gnus-functionp throughout.
-
-	* gnus-util.el (gnus-functionp): Removed.
-
-	* gnus-msg.el (gnus-summary-wide-reply-with-original): Doc fix.
-
-	* message.el (message-required-headers): Add In-Reply-To.
-
-2003-04-27  Marshall T. Vandegrift  <vandem2@rpi.edu>
-
-	* gnus-fun.el (gnus-face-from-file): Bind coding-system-for-read
-	to binary.
-
-2003-04-27  Jesper Harder  <harder@ifa.au.dk>
-
-	* mml.el (mml-preview): do.
-
-	* message.el (message-mode): do.
-
-	* gnus-undo.el (gnus-undo-mode): do.
-
-	* gnus-topic.el (gnus-topic-mode): do.
-
-	* gnus-sum.el (gnus-summary-mode, gnus-summary-edit-article): do.
-
-	* gnus-msg.el (gnus-setup-message)
-	(gnus-inews-add-send-actions, gnus-configure-posting-styles): do.
-
-	* gnus-gl.el (gnus-grouplens-mode): do.
-
-	* gnus-art.el (gnus-mime-save-part-and-strip)
-	(gnus-mime-delete-part): Use it.
-
-	* gnus-util.el (gnus-make-local-hook): New function.
-
-2003-04-25  Simon Josefsson  <jas@extundo.com>
-
-	* nnrss.el (nnrss-node-text): Don't use a star.
-	(nnrss-node-text): Use g-r-i-s, not g-r-r-i-s which doesn't exist.
-
-2003-04-24  Dave Love  <fx@gnu.org>
-
-	* mm-encode.el (mm-long-lines-p): Autoload.
-	(mm-encode-content-transfer-encoding): Don't try to make buffer
-	unibyte before decoding.  Don't ignore errors for base64 encoding.
-
-	* qp.el (quoted-printable-decode-region): Use mm-insert-byte.
-	Signal error on malformed text, as for base64.
-	(quoted-printable-encode-region): DTRT in Emacs 22.
-
-	* mm-util.el (mm-make-temp-file, mm-insert-byte): New.
-	(mm-auto-save-coding-system): Consider utf-8-emacs.
-	(mm-mime-mule-charset-alist, mm-mule-charset-to-mime-charset)
-	(mm-charset-to-coding-system, mm-mime-charset)
-	(mm-find-mime-charset-region): Check for :mime-charset coding
-	systems property.
-
-	* mml-sec.el (mml2015, mml1991): Don't require.
-	(mml2015-sign, mml2015-encrypt, mml1991-sign, mml1991-encrypt)
-	(message-goto-body, mml-insert-tag): Autoload.
-
-	* mm-decode.el (mm-tmp-directory): Re-write to help avoid warnings.
-
-	* gnus-start.el (message-make-date): Autoload rather than
-	requiring message.
-
-	* gnus-group.el (gnus-group-name-charset-group-alist): Use
-	mm-coding-system-p.
-	(gnus-cache-active-altered): Defvar when compiling.
-	(gnus-group-delete-group): Re-write to help avoid warnings.
-
-	* gnus-art.el (gnus-use-idna): Use mm-coding-system-p.
-
-	* pgg.el: Split eval-when-compile forms.
-
-2003-04-24  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-group.el (gnus-large-ephemeral-newsgroup)
-	(gnus-fetch-old-ephemeral-headers): News variables.
-	(gnus-group-read-ephemeral-group): Use them.
-
-2003-04-24  Simon Josefsson  <jas@extundo.com>
-
-	* sieve.el (sieve-upload): Don't use replace-regexp-in-string.
-
-	* nnrss.el (nnrss-node-text): Ditto.
-
-2003-04-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-msg.el (gnus-inews-do-gcc): Make sure the obsolete variable
-	gnus-inews-mark-gcc-as-read exists.
-
-2003-04-23  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sieve.el (gnus-sieve-generate): Rewrite regexp search so it
-	doesn't exceed the regexp stack space.
-
-2003-04-23  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-inews-mark-gcc-as-read): Don't defvar it.
-
-	* gnus-art.el (gnus-article-hide-pgp-hook): do.
-
-2003-04-23  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* mml.el (mml-preview): Bind `=', RET, and mouse-2.
-
-2003-04-23  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-bodies.el (mm-decode-body): Don't override supplied charset.
-
-2003-04-23  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el (merge, copy-list): Remove compiler macros.
-	(butlast): Add a compiler macro.
-
-2003-04-22  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus-util.el (gnus-merge): Added "type" argument to match CL
-	merge and gnus-sum.el's expectations.
-
-2003-04-21  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-url-regexp): Added nntp.
-
-	* message.el (message-generate-headers-first): Default to
-	'(references).
-
-	* gnus-art.el (gnus-mime-delete-part): Require confirmation.
-
-2003-04-21  Jesper Harder  <harder@ifa.au.dk>
-
-	* smime.el (smime-decrypt-region): Insert From header.
-
-2003-04-21  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-
-	* gnus-fun.el (gnus-face-from-file, gnus-convert-png-to-face):
-	Max length of header is 726, not 740.  From Gaute B Strokkenes
-	<gs234@cam.ac.uk>.
-
-2003-04-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* nndb.el, mml1991.el: Fix license template.
-
-2003-04-20  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-split-articles): Don't download body unless
-	required.
-
-	* imap.el (imap-gssapi-open, imap-ssl-open): Erase buffer before
-	starting process, like imap-kerberos4-open does.
-
-	* mml-smime.el, rfc1843.el, dig.el, smime.el, uudecode.el: Fix
-	license template.
-
-	* mml-sec.el: Fix license template.
-
-	* gnus-sieve.el, sieve.el, sieve-manage.el, sieve-mode.el: Fix
-	license template.
-
-	* pgg-def.el, pgg.el, pgg-gpg.el, pgg-parse.el, pgg-pgp5.el,
-	pgg-pgp.el: Fix license template.
-
-2003-04-19  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-delete-article): Improve docstring.
-
-2003-04-19  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-move-spam-nonspam-groups-only): dumb typo fix
-
-2003-04-18  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-split): allow a particular check as a parameter,
-	e.g. (: spam-split 'spam-use-bogofilter)
-	(spam-mark-only-unseen-as-spam): new parameter, see doc
-	(spam-mark-junk-as-spam-routine): use
-	spam-mark-only-unseen-as-spam, simplify routine to take advantage
-	of gnus-newsgroup-unread as well as gnus-newsgroup-unseen
-
-2003-04-17  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus.el (gnus-group-short-name, gnus-group-prefixed-p): new functions
-	(gnus-group-guess-full-name): don't prefix the group twice
-
-	* nnmail.el (nnmail-split-fancy-with-parent): docstring fix
-
-	* gnus-registry.el (gnus-registry-clear)
-	(gnus-registry-fetch-group, gnus-registry-grep-in-list)
-	(gnus-registry-split-fancy-with-parent): new functions
-	(gnus-register-spool-action, gnus-register-action): simplified the format
-	(gnus-registry): new customization group
-	(gnus-registry-unfollowed-groups): new variable
-
-2003-04-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-button-alist): Add nntp: urls.
-	(gnus-header-button-alist): Ditto.
-
-2003-04-17  Dave Love  <fx@gnu.org>
-
-	* gnus-util.el (gnus-string-equal): Revert last change.
-
-2003-04-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-srvr.el (gnus-browse-make-menu-bar): Fix typo.
-
-2003-04-17  Mike Woolley  <mike@ariel.co.uk>
-
-	* gnus-sum.el (gnus-sum-thread-tree-false-root): New variable.
-
-2003-04-15  Michael Shields  <shields@msrl.com>
-
-	* gnus-art.el (article-hide-boring-headers): Hide Reply-To: if
-	the broken-reply-to group parameter is set.  Idea from Vasily
-	Korytov <deskpot@myrealbox.com>.
-
-2003-04-17  Steve Youngs  <youngs@xemacs.org>
-
-	* dgnushack.el: 'setenv' is in env.el for XEmacsen <= 21.4, but in
-	process.el in XEmacsen >= 21.5.
-
-2003-04-17  Steve Youngs  <youngs@xemacs.org>
-
-	* dgnushack.el: Add a whole swag of autoloads and defaliases to
-	satisfy the byte-compiler when building with XEmacs.
-
-	* lpath.el (maybe-bind): Add 'w3-meta-content-type-charset-regexp'
-	and 'w3-meta-charset-content-type-regexp' in XEmacs.  The upstream
-	W3 doesn't have these.
-
-	* mailcap.el: Maybe require 'lpr in XEmacs.
-
-2003-04-16  Simon Josefsson  <jas@extundo.com>
-
-	* mml2015.el (mml2015-pgg-sign): Bind pgg-default-user-id to MML
-	sender tag, if available.
-
-2003-04-16  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-registry.el (gnus-register-action)
-	(gnus-register-spool-action, hashtable-to-alist)
-	(gnus-registry-translate-from-alist, alist-to-hashtable)
-	(gnus-registry-translate-to-alist, gnus-registry-headers-hashtb):
-	new variables and function fixes
-
-	* gnus.el (gnus-registry-headers-alist): new variable to hold
-	article header data
-	(gnus-variable-list): save gnus-registry-headers-alist
-
-	* spam-report.el (Module): new module for spam reporting
-
-	* gnus.el (spam-process): added
-	gnus-group-spam-exit-processor-report-gmane to the list of choices
-	(gnus-install-group-spam-parameters): defined new spam exit processor
-
-	* spam.el (autoload): autoload spam-report-gmane when needed
-	(spam-report-gmane-register-routine): glue for spam-report.el
-	(spam-group-spam-processor-report-gmane-p): glue for the
-	gnus-group-spam-exit-processor-report-gmane spam processor
-	(spam-summary-prepare-exit): check the report-gmane spam processor
-	and run spam-report-gmane-register-routine if it's active
-
-	From John Wiegley <johnw@gnu.org>
-
-	* spam.el (spam-bogofilter-score): check bogofilter headers before
-	checking bogofilter itself
-
-2003-04-16  Dave Love  <fx@gnu.org>
-
-	* gnus-agent.el: Wrap defsetf in eval-when-compile.
-	(gnus-agent-cat-defaccessor): Don't use gensym.
-
-	* mml1991.el: Require cl, mm-util when compiling.
-	(quoted-printable-decode-region, quoted-printable-encode-region):
-	Autoload.
-
-	* pgg.el: Require cl when compiling.
-
-	* nnmail.el (gnus): Require.
-
-	* gnus-util.el: Move provide to end.
-	(gnus-string-equal): Maybe use compare-strings.
-	(gnus-merge): New.
-
-	* gnus-sum.el (gnus-summary-prepare-threads): Don't use copy-list.
-	(gnus-summary-insert-articles): Use gnus-merge.
-
-	* gnus-fun.el: Require cl and mm-util when compiling.
-
-	* gnus-diary.el (gnus-diary-delay-format-french)
-	(gnus-diary-delay-format-english): Don't use setf with nthcdr.
-
-	* nndiary.el (nndiary-compute-reminders): Don't use setf with
-	nthcdr.
-
-2003-04-16  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-make-cat): Added optional parameter to
-	specify a predicate other than false.
-	(gnus-category-read): Use the new feature to create a 'default'
-	category with a 'short' predicate.
-
-2003-04-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-unique-id): Comment change.
-
-	* gnus-art.el (gnus-article-next-page-1): New function.
-	(gnus-article-next-page): Use it.
-
-2003-04-15  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-split): added save-restriction to save-excursion
-
-2003-04-15  Reiner Steib  <Reiner.Steib@gmx.de>
-	From Julien Avarre <julien@avarre.com>
-
-	* gnus-fun.el: Fixed autoload cookie.
-
-2003-04-15  Paul Jarc  <prj@po.cwru.edu>
-	From Remi Letot  <remi.letot@easynet.be>
-
-	* nnmaildir.el (nnmaildir-request-scan): Use gnus-remove-if
-	instead of remove-if.
-
-2003-04-14  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-msg.el (gnus-summary-news-other-window): Use delq and
-	copy-sequence instead of remove which is a cl run-time function in
-	Emacs 20.
-
-2003-04-14  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-summary-news-other-window): Make a buffer
-	local copy of gnus-discouraged-post-methods with the current
-	method removed.
-
-2003-04-14  Simon Josefsson  <jas@extundo.com>
-
-	* mailcap.el (mailcap-mime-data): Add application/pgp-keys.
-
-2003-04-13  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* mm-util.el (mm-sort-coding-systems-predicate): Convert elements
-	of `mm-coding-system-priorities' to base coding system.
-
-	* gnus-sum.el: Added coding cookie ("middle dot" in
-	gnus-summary-morse-message).
-
-2003-04-13  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (article-fill-long-lines)
-	(article-verify-x-pgp-sig, article-decode-group-name)
-	(gnus-mime-button-menu): Split >80 character lines.
-
-2003-04-13  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-local-variables): Use defvar since
-	we're let-binding it.
-
-	* nnmbox.el (nnmbox-mbox-buffer): It's not a constant.
-
-2003-04-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-hide-headers): Don't do intangible.
-
-	* gnus.el (gnus-group-prefixed-name): Comment out the test for
-	colon.
-
-	* gnus-srvr.el (gnus-browse-read-group): Don't give the real name
-	to the ephemeral entry, but the prefixed name.
-
-	* gnus.el (gnus-group-prefixed-name): Clean up.
-
-2003-04-13  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-group-pathname): Bind
-	gnus-command-method so that gnus-agent-directory will always
-	return a valid directory.
-	* gnus-cache.el (gnus-cache-enter-article): Remove article from
-	gnus-newsgroup-undownloaded so that the summary will display the
-	article as downloaded.
-	(gnus-cache-remove-article): If the article isn't in the agent,
-	remove it from gnus-newsgroup-undownloaded so that the summary
-	will display the article as undownloaded.
-
-2003-04-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-2003-04-13 01:12:01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.18 is released.
-
-2003-04-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-draft.el (gnus-draft-send): Add message-hidden-headers.
-
-2003-04-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-next-page): Use
-	gnus-article-over-scroll.
-	(gnus-article-over-scroll): New variable.
-
-	* message.el (message-newline-and-reformat): Place a boundary
-	before filling.
-	(message-make-forward-subject-function): Changed default to
-	message-forward-subject-name-subject.
-	(message-forward-subject-name-subject): New function.
-
-	* nnimap.el (nnimap-split-fancy): Ditto.
-
-	* gnus-sum.el (gnus-summary-line-message-size): Ditto.
-
-	* gnus-cus.el (gnus-group-parameters): Removed "which see".
-
-	* mml.el (mml-minibuffer-read-file): Bind
-	completion-ignored-extensions to nil.
-
-	* message.el (message-fix-before-sending): Comment fix.
-	(message-fix-before-sending): Make hidden headers visible.
-	(message-hide-headers): Bind after-change-functions to nil.
-	(message-forbidden-properties): Put invisible and intangible
-	back.
-	(message-strip-forbidden-properties): Ignore message-hidden text.
-
-	* gnus-msg.el: Hide headers.
-
-	* message.el (message-hidden-headers): New variable.
-	(message-hide-headers): New function.
-	(message-hide-header-p): New function.
-	(message-hide-header-p): Change logic.
-	(message-forbidden-properties): Remove intangible nil invisible
-	nil.
-	(message-hide-headers): Narrow to headers.
-
-	* lpath.el (featurep): Bind Info-directory, Info-menu.
-
-2003-04-12  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-bodies.el (mm-body-charset-encoding-alist): UTF-16 *must* be
-	encoded.
-	(mm-encode-body): Don't corrupt UTF-16.
-	(mm-body-encoding): Pay attention to mm-body-charset-encoding-alist.
-
-2003-04-10  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-get-undownloaded-list): Articles in
-	the CACHE are now detected and handled the same as an article
-	downloaded into the agent.
-	(gnus-agent-group-path): Modified to match nnmail-group-pathname
-	so that the agent front-end and back-end (nnagent) always use the
-	same directory.
-	(gnus-agent-group-pathname): New function. Wrapper for
-	nnmail-group-pathname.
-	(gnus-agent-expire-unagentized-dirs): New variable.  May be
-	customized to disable gnus-agent-expire-unagentized-dirs.
-	(gnus-agent-expire-unagentized-dirs): Expand gnus-agent-directory
-	as the directories in gnus-agent-expire-current-dirs were
-	expanded.
-
-2003-04-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Disable "Encrypt
-	body" entry in read only groups.
-
-2003-04-09  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Disable "Import file"
-	and "Create article" items in non-editable groups.
-
-2003-04-09  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-write-active): Added option of
-	replacing, rather than updating, the agent's active file.  Do NOT
-	use the fully qualified group name as gnus-active-to-gnus-format
-	blindly prefixes group names with server names.
-	(gnus-agent-save-group-info): Merge BOTH min/max of current active
-	range, was just merging min, with specified active range.
-	(gnus-agent-expire): Save agent's active ranges after
-	expiring all groups.
-	(gnus-agent-expire-group-1): Update min of agent's active range to
-	min article currently fetched.
-	(gnus-agent-expire-unagentized-dirs): Avoid asking to delete the
-	same ancestor multiple times.
-
-	* gnus-async.el (gnus-asynchronous): Moved defcustom of
-	gnus-asynchronous away from defgroup of gnus-asynchronous.  This
-	seems to fix an intermittant error in which loading gnus-async
-	fails to define gnus-asynchronous (the variable).
-
-	* gnus-sum.el: Concur with Steve Young, 5th argument to 'load' is
-	non-essential.  Removed on all platforms.
-	(gnus-select-newsgroup): When the agent is active, expand the
-	group's active range to include fetched articles that are no
-	longer in the server's active range.
-
-	* gnus-util.el (gnus-with-output-to-file): Removed all of the
-	print-* bindings as they should be handled by the function doing
-	the printing.
-
-2003-04-09  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-uu.el (mm-uu-copy-to-buffer): buffer-file-coding-system
-	might be unbound in non-MULE XEmacsen.
-
-2003-04-08  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-uu.el (mm-uu-diff-groups-regexp, mm-uu-type-alist)
-	(mm-uu-diff-extract, mm-uu-diff-test): New functionality:
-	recognize diffs.
-
-	* mm-bodies.el (mm-decode-body): Use the supplied charset
-	unconditionally if `code-pages' hasn't been loaded.
-
-2003-04-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (article-verify-x-pgp-sig): Don't use
-	`insert-buffer', the docstring says "This function is meant for
-	the user to run interactively.  Don't call it from programs!"
-
-	* mm-extern.el (mm-extern-mail-server): do.
-
-	* mml1991.el (mml1991-mailcrypt-sign, mml1991-mailcrypt-sign)
-	(mml1991-gpg-sign, mml1991-gpg-encrypt, mml1991-pgg-sign)
-	(mml1991-pgg-encrypt): do.
-
-	* pgg.el (pgg-decrypt-region): do.
-
-	* mm-view.el (mm-view-pkcs7-decrypt): do.
-
-	* mml-smime.el (mml-smime-verify): do.
-
-	* mml.el (mml-insert-mime, mml-preview): do.
-
-	* mml2015.el (mml2015-gpg-decrypt-1, mml2015-gpg-sign)
-	(mml2015-gpg-encrypt, mml2015-pgg-clear-decrypt)
-	(mml2015-pgg-encrypt): do.
-
-2003-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-bodies.el (mm-decode-body): Silence XEmacs when compiling.
-
-2003-04-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-uu.el (mm-uu-copy-to-buffer): Copy
-	`buffer-file-coding-system' to the new buffer.
-	(mm-uu-pgp-signed-extract-1): Don't copy
-	`buffer-file-coding-system' here.
-
-	* mm-bodies.el (mm-decode-body): last-coding-system-used doesn't
-	exist in XEmacs.
-	(mm-decode-body): Add missing quote.
-
-	* mm-uu.el (mm-uu-pgp-signed-extract-1): Set
-	buffer-file-coding-system.
-
-	* mm-bodies.el (mm-decode-body): Set buffer-file-coding-system to
-	last-coding-system-used.
-
-	* mml2015.el (mml2015-pgg-clear-verify): Encode the text
-	according to buffer-file-coding-system.
-
-	* pgg-gpg.el (pgg-gpg-process-region): Revert previous change.
-
-	* pgg-pgp.el (pgg-pgp-process-region, pgg-pgp-verify-region)
-	(pgg-pgp-snarf-keys-region): do.
-
-	* pgg-pgp5.el (pgg-pgp5-verify-region)
-	(pgg-pgp5-snarf-keys-region, pgg-pgp5-process-region): do.
-
-	* pgg.el (pgg-make-temp-file, pgg-temporary-file-directory): do.
-
-2003-04-05  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-split): (save-excursion) around (widen)
-	(spam-ham-move-routine): Use spam-group-ham-mark-p, not
-	spam-group-spam-mark-p (from Michael Shields <shields@msrl.com>)
-
-2003-04-05  Steve Youngs  <youngs@xemacs.org>
-
-	* gnus-sum.el: XEmacs doesn't support the 5th arg to 'load', so
-	don't use it when loading gnus-sum.el if we're in XEmacs.
-
-2003-04-05  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound
-	print-escape-nonascii to fix more characters in compiled format
-	specs.
-
-2003-04-05  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player):
-	Fix customization type.
-
-2003-04-04  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound
-	print-quoted, print-readably, print-escape-multibyte, and
-	print-level to match original behavior of gnus-prin1.  This should
-	repair the format of .newsrc.eld when using compiled format specs.
-
-2003-04-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-group.el (tool-bar-map): defvar it.
-
-	* gnus-art.el (tool-bar-map): do.
-
-	* gnus-sum.el (tool-bar-map): do.
-
-2003-04-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* earcon.el (earcon-regexp-alist): catmeow is a wav file.
-
-2003-04-03  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-ctan-directory-regexp): Changed meaning
-	and value.
-	(gnus-button-alist): Use it.
-
-2003-04-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* pgg-gpg.el (pgg-gpg-process-region): do.
-
-	* pgg-pgp.el (pgg-pgp-process-region, pgg-pgp-verify-region)
-	(pgg-pgp-snarf-keys-region): do.
-
-	* pgg-pgp5.el (pgg-pgp5-verify-region)
-	(pgg-pgp5-snarf-keys-region, pgg-pgp5-process-region): Use it.
-
-	* pgg.el (pgg-make-temp-file): New function. `make-temp-name' is
-	unsafe.
-	(pgg-temporary-file-directory): Remove.
-
-2003-04-02  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el: Fbind Info-directory and Info-menu.
-
-2003-04-02  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-util.el (gnus-message): Added doc-string.
-
-	* gnus-score.el (gnus-score-find-trace): Changed behavior of `q'.
-	(gnus-score-edit-file-at-point): Goto first match when using `e'.
-
-2003-04-01  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-ctan-directory-regexp): New variable.
-	(gnus-button-alist): Use it.  Changed CTAN and "setq" entries.
-
-2003-04-01  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nntp.el (nntp-via-rlogin-command-switches): Doc fix.
-	(nntp-open-via-rlogin-and-telnet): Disable the telnet linemode.
-
-2003-03-31  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound
-	print-escape-newlines to print escape sequences rather than
-	literal newline characters.
-
-2003-03-31  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-valid-fqdn-regexp): Use
-	`message-valid-fqdn-regexp' for initialization.
-	(gnus-button-handle-info-url): Renamed and extended version of
-	`gnus-button-handle-info'.
-	(gnus-button-message-level): Renamed from `gnus-button-mail-level'
-	(gnus-button-handle-symbol, gnus-button-handle-library)
-	(gnus-button-handle-info-keystrokes): New functions.
-	(gnus-button-browse-level): New variable.
-	(gnus-button-alist): Use them.  Added levels.
-	(gnus-header-button-alist): Added levels.
-
-2003-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-2003-03-31 20:08:19 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.17 is released.
-
-2003-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-start.el (gnus-unload): Removed.
-
-	* pop3.el (pop3-read-response): Use
-	nnheader-accept-process-output.
-	(pop3-retr): Ditto.
-
-	* mm-view.el (mm-text-html-renderer-alist): Add -nolist to Lynx.
-	(mm-text-html-washer-alist): Ditto.
-
-2003-03-31  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-gssapi-program): Also try GNU SASL.
-	(imap-gssapi-open): Accept GNU SASL greeting.
-	(imap-read-timeout): New.
-	(imap-wait-for-tag): Use it.
-
-2003-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nntp.el (nntp-accept-process-output): Use new function.
-
-	* nnheader.el (nnheader-read-timeout): New variable.
-	(nnheader-accept-process-output): New function.
-
-	* nntp.el (nntp-read-timeout): Removed.
-
-	* gnus-sum.el (gnus-summary-prepare-threads): Add comment.
-
-2003-03-30  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-cache.el (gnus-cache-braid-nov): Revoke last change.
-
-2003-03-30  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-idna-inside-rhs-p): Narrow to header before
-	searching.
-
-	* gnus-art.el (article-decode-idna-rhs): More restrictive regexp.
-
-2003-03-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnmail.el (nnmail-process-mmdf-mail-format): Indent.
-
-2003-03-28  Vasily Korytov  <deskpot@myrealbox.com>
-
-	* message.el (message-make-in-reply-to): Use
-	mail-extract-address-components to determine sender's
-	name/address.
-
-2003-03-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nndoc.el (nndoc-type-alist): Move mime-parts further ahead.
-
-	* gnus-registry.el (gnus-registry-translate-to-alist): Make a
-	valid lambda.
-	(gnus-registry-translate-from-alist): Ditto.
-
-	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bind
-	print-length to nil.
-
-	* gnus-sum.el (gnus-summary-highlight-line-0): Indent.
-
-	* gnus-fun.el (gnus-fun-ppm-change-string): New function.
-	(gnus-grab-cam-face): Use it.
-
-2003-03-28  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-request-set-mark)
-	(nnmaildir-close-group): Allow each mark directory in a group to
-	have its own inode for mark files, to accommodate AFS.
-
-2003-03-28  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-start.el (gnus-read-newsrc-el-hook): new hook called by
-	gnus-read-newsrc-el-file
-	(gnus-read-newsrc-el-file): call the gnus-read-newsrc-el-hook
-
-	* gnus-registry.el (gnus-registry-translate-to-alist)
-	(gnus-registry-translate-from-alist, alist-to-hashtable)
-	(hashtable-to-alist): new functions
-	(gnus-register-spool-action): add a spool item to the registry
-
-	* gnus.el (gnus-variable-list): added gnus-registry-alist to the
-	list of saved variables
-	(gnus-registry-alist): new variable
-
-2003-03-27  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (article-decode-group-name): Be correct instead of
-	smart.
-
-2003-03-27  Katsumi Yamaoka <yamaoka@jpl.org>
-
-	* lpath.el: Bind url-current-object for Emacs; bind
-	gnus-agent-expire-current-dirs for XEmacs; fbind open-ssl-stream
-	for both Emacsen.
-
-2003-03-27  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-article-loose-mime)
-	(gnus-article-emulate-mime): Move to gnus-article-mime customize
-	group.
-
-	* gnus-msg.el (gnus-mailing-list-groups): Fix customize type and
-	doc string.
-
-2003-03-26  Kevin Ryde <user42@zip.com.au>
-
-	* gnus-sum.el (gnus-summary-find-for-reselect): Renamed from
-	gnus-summary-find-uncancelled, skip temporary articles inserted by
-	"refer" functions.
-
-2003-03-26  Vasily Korytov  <deskpot@myrealbox.com>
-
-	* smiley.el (smiley-buffer): New function.
-
-2003-03-26  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-fetch-selected-article): Replaced
-	gnus-summary-update-line (which updated the article's face) with
-	gnus-summary-update-download-mark (which updates the article's
-	face by calling gnus-summary-update-line AND updates the download
-	mark to show that the article was fetched).
-
-2003-03-23  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-expire-unagentized-dirs): Provides
-	option of deleting agent directories for groups/servers that are
-	not currently agentized.
-	(gnus-agent-expire): Use gnus-agent-expire-unagentized-dirs.
-
-	* gnus-int.el (gnus-open-server): Report backend errors in
-	condition handler.
-
-2003-03-23  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-idna-to-ascii-rhs-1): Don't continue outside
-	header.
-
-	* rfc2047.el (rfc2047-header-encoding-alist): Make Followup-To
-	same as Newsgroups.
-
-	* nntp.el (nntp-open-connection-function): Mention
-	nntp-open-tls-stream.
-	(nntp-open-tls-stream): New function.
-
-	* tls.el: New file.
-
-	* nnimap.el (nnimap-server-port, nnimap-stream): Say TLS/SSL
-	instead of SSL.
-	(nnimap-stream): Add other streams, link to imap variables.
-	(nnimap-authenticator): Add other authenticator, link to imap
-	variables.
-
-	* imap.el: Autoload open-tls-stream.
-	(imap-streams): Add tls in front of ssl.
-	(imap-stream-alist): Add tls.
-	(imap-default-tls-port): New variable.
-	(imap-tls-p, imap-tls-open): New functions.
-
-2003-03-22  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-url.el (mm-url-insert-file-contents): parse url only if
-	results is a list.
-
-2003-03-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mail-source.el (mail-source-fetch-imap): Revert.
-
-2003-03-22  Svend Tollak Munkejord  <stm@bacchus.pvv.org>
-
-	* deuglify.el (gnus-outlook-repair-attribution-outlook): Use a
-	less strict regexp.
-
-2003-03-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mail-source.el (mail-source-fetch-imap): Use buffer name for
-	more imap function.
-
-2003-03-21  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (article-decode-group-name): Replace Newsgroups and
-	Followup-To data inline.
-
-2003-03-21  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-treat-display-xface): Don't enable if
-	icontopbm isn't available.
-
-2003-03-21  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-int.el (gnus-open-server): Catch errors in backend's
-	open-server method.  Returns nil rather than crashing startup.
-
-	* gnus-sum.el (eval-when-compile): Modified to resolve
-	compile-time warnings.
-
-	* gnus-uu.el (gnus-uu-mark-series): Added informative msg.
-	Reports length of series so that the user can compare N with a
-	subject that should, if the entire series is present, contain
-	'(.../N)'.
-	(gnus-uu-delete-work-dir): Avoid hanging when O/S forbids deletion
-	of temp file (Win-XP may leave the temp file locked when the
-	uudecode process fails).
-
-2003-03-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-split-line): Ignore error.
-
-	* lpath.el (split-line): Avoid split-line warning message.
-
-2003-03-20  Kim F. Storm  <storm@cua.dk>
-
-	* message.el (message-split-line): New function.
-	(message-mode-map): Remap split-line to message-split-line.
-
-2003-03-20  Katsumi Yamaoka <yamaoka@jpl.org>
-
-	* message.el (message-make-overlay): Defalias it to make-overlay.
-	(message-delete-overlay): Defalias it to delete-overlay.
-	(message-overlay-put): Defalias it to overlay-put.
-	(message-idna-to-ascii-rhs-1): Use them.
-
-	* messagexmas.el (message-xmas-redefine): Defalias some overlay
-	functions to extent functions.
-
-2003-03-20  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-check-news-header-syntax): Fixed regexp.
-
-2003-03-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2231.el (rfc2231-decode-encoded-string): Downcase charset.
-
-	* mm-url.el (mm-url-insert): Move url-current-object stuff into
-	mm-url-insert-file-contents.
-
-	* nnrss.el (nnrss-fetch): Fetch the local stuff.
-	(nnrss-check-group): Use it.
-
-2003-03-20 Mark A. Hershberger  <mah@everybody.org>
-
-	* nnrss.el: Primitive XML Name-space support.  This means that RSS
-	feeds like Kevin Burton's[1] can now be read in Gnus.
-
-	Implemented support for Mark Pilgrim's RSS Autodiscovery.[2] This
-	means that if you want to read the RSS feed for example.com, all
-	you have to do is hit "G R http://www.example.com/ RET" and
-	nnrss.el will find and the feed listed on the site or (if you have
-	loaded xml-rpc.el) look it up on syndic8.com.
-
-	Marked the message as HTML (by adding a Content-Type header) so
-	that Gnus will render it as html if the user wants that.
-
-	Implemented the ability to save nnrss-group-alist so that any new
-	feeds the you subscribe to will be found the next time you start
-	up.
-
-	Implemented support for RSS 2.0 elements (author, pubDate).
-
-	Prefer for <content:encoded> over <description> where both
-	elements exist.
-
-	* mm-url.el (mm-url-insert): Set url-current-object.
-
-	* gnus-group.el (gnus-group-make-rss-group): New function.
-
-2003-03-20  Katsumi Yamaoka <yamaoka@jpl.org>
-
-	* message.el (message-idna-to-ascii-rhs-1): Don't use replace-*
-	for highlight overlays.
-
-2003-03-20  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-cache.el (gnus-cache-braid-nov): Test if a line looks like
-	a NOV.
-
-2003-03-20  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-use-idna): Disable if UTF-8 unavailable.
-	(message-idna-to-ascii-rhs): Use it.
-
-	* gnus-art.el (gnus-use-idna): Disable if UTF-8 unavailable.
-
-2003-03-19  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-group-ham-mark-p, spam-group-spam-mark-p)
-	(spam-group-ham-marks, spam-group-spam-marks): new functions
-	(spam-spam-marks, spam-ham-marks): removed in favor of the
-	spam-marks and ham-marks parameters
-	(spam-generic-register-routine, spam-ham-move-routine): use the
-	new spam-group-{spam,ham}-mark-p functions
-
-	* gnus.el (spam-marks, ham-marks): new group parameters with
-	default values same as the old spam-spam-marks and spam-ham-marks
-
-2003-03-19  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-article-decode-hook): Add IDNA.
-	(gnus-use-idna): New variable.
-	(article-decode-idna-rhs): New function.
-
-	* message.el (message-use-idna): New variable.
-	(message-mode-field-menu): Add entry for IDNA.
-	(message-idna-inside-rhs-p, message-idna-to-ascii-rhs-1)
-	(message-idna-to-ascii-rhs): New function.
-	(message-generate-headers): Invoke IDNA code.
-
-2003-03-19  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir--system-name): New function.
-	(nnmaildir-request-accept-article): Use it.
-
-2003-03-19  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-util.el (gnus-byte-compile): Make it work silently as the
-	gnus-compile function does.
-
-	* gnus-sum.el (gnus-summary-highlight-line-0): Revoke the last
-	bogus change.
-
-2003-03-19  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-util.el (mm-mule-charset-to-mime-charset): Test if
-	sort-coding-systems is defined.
-
-2003-03-18  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-open-server, nnmaildir-request-scan)
-	(nnmaildir-request-create-group, nnmaildir-request-delete-group):
-	Replace create-directory with target-prefix.
-
-2003-03-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-bodies.el (mm-decode-coding-region-safely): Don't use
-	find-charset-string which is slooow in XEmacs.
-
-2003-03-18  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-summary-highlight-line-0): Silence the byte-
-	compiler under XEmacs.
-
-2003-03-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-treat-highlight-signature): Make the default
-	work for multipart/signed where the message text isn't `last'.
-
-2003-03-18  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-view.el (mm-setup-w3m): Set w3m-display-inline-images to
-	the value of mm-inline-text-html-with-images.
-	(mm-inline-text-html-render-with-w3m): Don't bind
-	w3m-display-inline-images.
-
-	* gnus-art.el (gnus-article-wash-html-with-w3m): Don't bind
-	w3m-display-inline-images.
-
-	* lpath.el: Bind w3m-display-inline-images; bind mm-w3m-mode-map
-	regardless of an Emacs flavor.
-
-2003-03-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump.
-
-2003-03-18 00:38:22 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.16 is released.
-
-2003-03-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* lpath.el (featurep): Bind mm-w3m-mode-map.
-
-2003-03-17  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmail.el (nnmail-cache-primary-mail-backend): Not all
-	'respool-able backends define a global nnchoke-get-new-mail
-	variable.
-
-2003-03-17  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-mime-delete-part): New function.
-	(gnus-mime-action-alist, gnus-mime-button-commands): Use it.
-
-2003-03-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-check-news-header-syntax): Don't push
-	groups twice onto list of unknown groups.
-
-	* nndoc.el (nndoc-type-alist): Move exim-bounce a bit further
-	back.
-
-	* nnheader.el (nnheader-find-etc-directory): Doc fix.
-
-	* gnus-msg.el (gnus-inews-add-send-actions): Don't restore window
-	config unless the summary buffer exists.
-
-	* gnus-sum.el (gnus-summary-next-group): Semi-exit group first to
-	that target group is computed correctly when articles are marked
-	as read by Xref handling.
-
-	* mail-source.el (mail-source-fetch-imap): Pass buffer-name to
-	imap-open.
-
-	* message.el (message-send-mail): Add courtesy string to Bcc's,
-	too.
-
-	* gnus-cite.el (gnus-cited-line-p): New function.
-
-2003-03-15  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-bodies.el (mm-decode-body): Add new optional parameter,
-	force, to use the supplied charset unconditionally.
-
-	* gnus-art.el (article-decode-charset): Use it.
-
-2003-03-14  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-bodies.el (mm-decode-coding-region-safely): New function.
-	(mm-decode-body): Use it.
-
-	* rfc2047.el (rfc2047-decode-region): do.
-	(rfc2047-decode-string): Guess coding system if the default is
-	invalid.
-
-2003-03-12  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-request-update-info): Pretend missing
-	articles are marked 'read, so we get correct article counts.
-
-2003-03-13  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-insert-mime-button): Exclude a newline from
-	the button.
-	(gnus-insert-prev-page-button): Ditto.
-	(gnus-insert-next-page-button): Ditto.
-	(gnus-insert-mime-security-button): Ditto.
-
-	* mm-view.el (mm-inline-image-emacs): Open the bottom of an image
-	one line.  Suggested by Greg Klanderman <gak@klanderman.net>.
-	(mm-inline-image-xemacs): Ditto.
-
-2003-03-12  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir--parse-filename, nnmaildir--sort-files,
-	nnmaildir--scan, nnmaildir-request-accept-article): Changes for
-	the recent filename uniqueness discussion.
-
-2003-03-12  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-view.el (mm-inline-image-emacs): Make it delete an excessive
-	newline next time.
-	(mm-inline-image-xemacs): Ditto.
-
-2003-03-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-agent.el (gnus-agent-synchronize-flags-server): Don't use
-	kill-line.
-
-2003-03-09  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-inews-insert-archive-gcc): Don't use
-	kill-line.
-
-2003-03-09  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-fetched-hook): New variable.  Just
-	fixing the code to match the documentation.
-	(gnus-agent-fetch-selected-article): Replaced
-	gnus-summary-update-article-line with gnus-summary-update-line as
-	the former did not correctly recalculate the thread indentation.
-	(gnus-agent-find-parameter): The agent-predicate, if not found
-	anywhere else, defaults to the value of gnus-agent-predicate.
-	(gnus-agent-fetch-session): Fixed typo; now executes
-	gnus-agent-fetched-hook rather than the undocumented
-	gnus-agent-fetch-hook.
-	(gnus-agent-fetch-group-1): Removed part of 2003-03-06 fix.  The
-	default agent predicate is now provided by
-	gnus-agent-find-parameter.
-	(gnus-agent-message): New macro.  This macro avoids potentially
-	costly parameter evaluation when the message's level is too high
-	to display.
-	(gnus-agent-expire-group-1): Disabled undo tracking in temp
-	overview buffer. Uses new gnus-agent-message macro to reduce
-	overhead of optional messages. Reversed message levels to
-	emphasize percent completion messages.  Detailed messages of
-	little use except when debugging code.
-
-2003-03-08  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-move-routine): use
-	spam-mark-ham-unread-before-move-from-spam-group
-	(spam-mark-ham-unread-before-move-from-spam-group): new variable
-
-2003-03-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el: load nnimap.el when compiling
-	(spam-setup-widening): use
-	nnimap-split-download-body-default instead of
-	nnimap-split-download-body which is a user-customizable variable
-
-2003-03-07  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-split-download-body-default): New, holds
-	default for n-s-d-b.
-	(nnimap-split-download-body): Add new setting (symbol default),
-	which uses contents of n-s-d-b-d, and made it the default.
-
-2003-03-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-use-hashcash): new variable
-	(spam-list-of-checks): added spam-use-hashcash with associated
-	spam-check-hashcash
-	(spam-check-hashcash): new function, installed iff hashcash.el is
-	loaded
-	(spam-setup-widening): don't use (return)
-
-2003-03-06  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-fetch-group-1): Added default
-	predicate of `false' to avoid an error when a group defines no
-	predicate. Fixed typo that disabled agent scoring (i.e. the
-	low/high predicates should now work).
-
-2003-03-06  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el: add spam-maybe-spam-stat-load to
-	gnus-get-top-new-news-hook, remove it from gnus-get-new-news-hook
-	(spam-bogofilter-register-with-bogofilter): use
-	spam-bogofilter-spam-switch and spam-bogofilter-ham-switch
-	(spam-bogofilter-spam-switch, spam-bogofilter-ham-switch): new
-	custom variables to replace "-s" and "-n"
-
-	* gnus-group.el (gnus-group-get-new-news): call the new
-	gnus-get-top-new-news-hook hook
-
-	* gnus-start.el (gnus-get-top-new-news-hook): new hook, run ONLY
-	by gnus-get-new-news, NOT by gnus-group-get-new-news-this-group
-
-2003-03-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mm-uu.el (mm-uu-pgp-encrypted-test): Fix message.
-
-2003-03-06  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-cus.el (gnus-group-customize): Don't use delete-if which is
-	a cl run-time function.
-
-2003-03-06  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-fetch-group-1): Added missing binding
-	on gnus-agent-short-article.
-	(gnus-category-read): Replaced CL function mapcar* with new macro:
-	gnus-mapcar.
-	* gnus-util.el (gnus-mapcar): New macro.  Generalizes mapcar to
-	support functions that accept multiple parameters.  A separate
-	sequence must be provided for each parameter in the function.
-	Iteration stops when the end of the shortest list is reached.
-
-2003-03-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* nnimap.el (nnimap-request-accept-article): Use delete-region.
-
-	* html2text.el (html2text-clean-dtdd, html2text-delete-tags)
-	(html2text-delete-single-tag, html2text-clean-anchor)
-	(html2text-remove-tags): Use delete-region.
-	(html2text-fix-paragraphs): Simplify.
-
-	* mml1991.el (mml1991-mailcrypt-sign, mml1991-mailcrypt-encrypt)
-	(mml1991-gpg-sign, mml1991-gpg-encrypt, mml1991-pgg-sign)
-	(mml1991-pgg-encrypt, mml1991-pgg-encrypt): Use delete-region, not
-	kill-region.
-
-2003-03-04  John Paul Wallington  <jpw@gnu.org>
-
-	* gnus-agent.el (gnus-agent-enable-expiration)
-	(gnus-agent-article-alist, gnus-agent-article-alist)
-	(gnus-agent-cat-defaccessor): Doc fixes.
-
-2003-03-04  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-function-implies-unread-1): Grok
-	byte-compiled functions.
-
-2003-03-04  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-sum.el (gnus-auto-goto-ignores): New variable. Provides
-	customization between new maneuvering (which permits selecting
-	undownloaded articles) and old maneuvering (which skipped over
-	undownloaded articles) behaviors.
-	(gnus-summary-find-next): Pass through the unread and subject
-	parameters when calling gnus-summary-find-prev.
-	(gnus-summary-find-next,gnus-summary-find-prev): Apply
-	gnus-auto-goto-ignores to filter out unacceptable articles.
-
-2003-03-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* mail-source.el (mail-source-read-passwd): Remove. `read-passwd'
-	exists in all supported Emacs versions, so we don't need this
-	compatibility function.
-	(mail-source-fetch-pop, mail-source-check-pop)
-	(mail-source-fetch-webmail): Use read-passwd.
-
-	* nntp.el (nntp-send-authinfo, nntp-send-nosy-authinfo)
-	(nntp-open-telnet, nntp-open-via-telnet-and-telnet): Use
-	read-passwd.
-
-	* nnwarchive.el (nnwarchive-open-server): Use read-passwd.
-
-	* imap.el (imap-read-passwd): Remove.
-	(imap-interactive-login): Use read-passwd.
-
-	* canlock.el (canlock-read-passwd): Remove.
-	(canlock-insert-header, canlock-verify): Use read-passwd.
-
-	* sieve-manage.el (sieve-manage-read-passwd): Remove.
-	(sieve-manage-interactive-login): Use read-passwd.
-
-	* pop3.el (pop3-read-passwd): Remove.
-	(pop3-movemail, pop3-get-message-count, pop3-apop): Use
-	read-passwd.
-
-	* pgg.el (pgg-read-passphrase): Simplify.
-
-2003-03-04  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-mode): Fixed the mode line reports
-	'plugged' when actually 'unplugged' bug.
-	(gnus-category-read): Ignore nil values when converting an
-	old-format category so that the new-format category will default
-	those attributes to the global variables.
-
-2003-03-03  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* mail-source.el (mail-source-delete-old-incoming-confirm): Fixed
-	doc-string.
-
-2003-03-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* nnrss.el (nnrss-decode-entities-unibyte-string): Use `buffer-string'.
-	* nndoc.el (nndoc-dissect-mime-parts-sub): do.
-	* nndb.el (nndb-request-accept-article, nndb-status-message): do.
-	* mm-url.el (mm-url-decode-entities-string): do.
-	* mml1991.el (mml1991-mailcrypt-sign, mml1991-gpg-sign): do.
-	* mm-decode.el (mm-find-raw-part-by-type): do.
-	* message.el (message-send-mail-partially)
-	(message-send-mail-with-sendmail): do.
-	* gnus-uu.el (gnus-uu-save-article, gnus-uu-reginize-string): do.
-	* gnus-kill.el (gnus-pp-gnus-kill): do.
-	* gnus-art.el (gnus-article-treat-unfold-headers)
-	(gnus-article-encrypt-body): do.
-
-2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* mail-source.el (mail-source-delete-incoming): Allow integer value.
-	(mail-source-delete-old-incoming-confirm): New variable.
-	(mail-source-delete-old-incoming): Use it.  New function.
-	(mail-source-callback): Call `mail-source-delete-old-incoming' if
-	`mail-source-delete-incoming' is a nonnegative integer.
-
-2003-03-03  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-msg.el (gnus-extended-version): Fix for 'emacs-gnus-config.
-	(gnus-user-agent): Fixed typo.
-
-2003-03-03  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-enable-expiration): Fixed documentation.
-	(gnus-agent-expire-group-1): Removed invalid (interactive) specifier.
-
-2003-03-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-fetch-articles): Fix nil message.
-	(gnus-agent-fetch-session): Allow debugging to take place.
-
-2003-03-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-highlight-selected-summary)
-	(gnus-article-get-xrefs, gnus-summary-show-thread): Use
-	`gnus-point-at-bol' and `gnus-point-at-eol' instead of
-	`(progn (beginning-of-line) (point))'.  It's shorter, faster,
-	and makes it clear that we don't need the side effect.
-	* gnus-util.el (gnus-delete-line): do.
-	* gnus-xmas.el (gnus-group-add-icon): do.
-	* nnmail.el (nnmail-article-group, nnmail-cache-fetch-group): do.
-	* nntp.el (nntp-send-authinfo-from-file): do.
-	* nnml.el (nnml-header-value): do.
-	* nnheader.el (nnheader-insert-references): do.
-	* gnus-cite.el (gnus-article-highlight-citation)
-	(gnus-cite-parse): do.
-	* gnus-score.el (gnus-score-followup): do.
-	* gnus-draft.el (gnus-draft-send): do.
-	* gnus-group.el (gnus-group-highlight-line): do.
-	* gnus-cache.el (gnus-cache-braid-nov): do.
-	* nnfolder.el (nnfolder-retrieve-headers)
-	(nnfolder-request-article): do.
-	* gnus-art.el (article-hide-boring-headers)
-	(gnus-article-hide-header): do.
-
-	* nnheader.el (nnheader-find-nov-line): Use gnus-delete-line.
-	* nnml.el (nnml-request-replace-article): do.
-	* nnmbox.el (nnmbox-request-move-article, nnmbox-delete-mail): do.
-	* nnfolder.el (nnfolder-request-move-article): do.
-	* gnus-cache.el (gnus-cache-possibly-remove-article): do.
-	* gnus-art.el (gnus-mm-display-part): do.
-
-	* gnus-art.el (gnus-article-goto-part): Use gnus-goto-char.
-
-2003-03-02  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* nntp.el (nntp-possibly-change-group): Avoid calling
-	process-buffer on nil (Which happened when you lost your
-	connection while fetching); instead signal a "Server Closed
-	Connection" error.
-
-2003-03-02  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-enable-expiration): New
-	variable. Either ENABLE or DISABLE.  Sets default behavior for
-	selecting which groups are expired.
-	(gnus-agent-cat-set-property, gnus-agent-cat-defaccessor,
-	gnus-agent-set-cat-groups): Provides abstract interface for
-	accessing agent category.  Category now implemented by an alist.
-	(gnus-agent-add-group, gnus-agent-remove-group,
-	gnus-category-insert-line, gnus-category-edit-predicate,
-	gnus-category-edit-score, gnus-category-edit-groups,
-	gnus-category-copy, gnus-category-add, gnus-group-category): Use
-	new agent category abstraction.
-	(gnus-agent-find-parameter): New function. Search for agent
-	configuration parameter first in the group's parameters, then its
-	topics (if any), and then the group's category.  If not found
-	anywhere, use the original defined constants.
-	(gnus-agent-fetch-headers, gnus-agent-fetch-group-1): Use new
-	gnus-agent-find-parameter.
-	(gnus-agent-fetch-headers, gnus-agent-uncached-articles): Clearing
-	gnus-agent-cache now blocks retrieving headers and articles from
-	the local cache.  Fetched content is still added to the cache
-	before being returned.
-	(gnus-agent-fetch-session): Use error-message-string to generate
-	displayed error message.
-	(gnus-agent-customize-category): New Command. 'e' in category
-	buffer opens category customization buffer.
-	(gnus-category-read): Reads either positional or alist format;
-	returns alist format.
-	(gnus-category-write): Writes category file compatible with
-	current, and previous, versions of gnus-agent.
-	(gnus-category-make-function, gnus-category-make-function-1):
-	Corrected documentation; parameter is predicate NOT category.
-	(gnus-predicate-implies-unread): Now works in more cases per the
-	todo comment.
-	(gnus-function-implies-unread-1): New function. Supports
-	gnus-predicate-implies-unread.
-	(gnus-agent-expire-group): Command now provides default of group
-	under point.
-	(gnus-agent-expire-group-1): Obeys new agent-enable-expiration and
-	agent-days-until-old parameters. No longer supports
-	gnus-agent-expire-days being set to an alist.
-	(gnus-agent-request-article): Now performs its own checks of
-	gnus-agent, gnus-agent-cache, and gnus-plugged rather than
-	assuming that the caller will do them correctly.
-	(): Added one-time hook to gnus-group-prepare-hook.  Detects when
-	gnus-agent-expire-days is set to an alist.  Converts said alist
-	into group parameter so that gnus-agent-expire-days will not be
-	needed.
-	* gnus-art.el (gnus-request-article-this-buffer): Conditional
-	checks surrounding gnus-agent-request-article removed; now
-	performed by gnus-agent-request-article.
-	* gnus-cus.el (gnus-agent-parameters): New variable. List of
-	customizable group/topic parameters that regulate the agent.
-	(gnus-group-customize): Uses gnus-agent-parameters.  Replaced
-	kill-buffer with gnus-kill-buffer to remove the killed buffer from
-	the list of gnus buffers.
-	(gnus-trim-whitespace): Removes leading and trailing whitespace
-	from multiline strings.
-	(gnus-agent-cat-prepare-category-field,
-	gnus-agent-customize-category): Constructs a category
-	customization buffer.
-	* gnus-int.el (gnus-retrieve-headers,
-	gnus-request-expire-articles): No longer checks gnus-agent-cache
-	as it is handled internally by the agent.
-	(gnus-request-head, gnus-request-body): Conditional checks
-	surrounding gnus-agent-request-article removed; now performed by
-	gnus-agent-request-article.
-
-	* gnus-start.el (): Added defvar statements to resolve compilation
-	warnings.
-	(gnus-long-file-names): New function. Isolates platform dependent
-	msdos-long-file-names.
-	(gnus-save-startup-file-via-temp-buffer): New variable. Provides
-	option of writing directly to file.  Avoids memory exhausted
-	errors when .newsrc.eld is huge.
-	(gnus-save-newsrc-file): Uses new
-	gnus-save-startup-file-via-temp-buffer.
-	(gnus-gnus-to-quick-newsrc-format): Rewritten to write to
-	standard-output.
-	(gnus-display-time-event-handler): Changed to alias from a defun
-	to avoid a compile-time warning when display-time-event-handler is
-	not defined.
-	* gnus-util.el (gnus-with-output-to-file): New macro. Binds
-	standard-output such that prin1 and princ will write directly to a
-	file.
-
-	* gnus.el (gnus-agent-cache): Expanded documentation.
-	(gnus-summary-high-undownloaded-face): Removed second bold keyword
-	so that this face is actually bold.
-
-	* nnkiboze.el (nnkiboze-request-article): Only use the cache when
-	gnus-use-cache has been set.
-
-2003-03-02  Jesper Harder  <harder@ifa.au.dk>
-
-	* nnvirtual.el (nnvirtual-update-xref-header): Simplify.
-
-2003-03-01  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-article-refer-article): Be more permissive.
-
-2003-03-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* spam.el: Fix typo.
-
-2003-03-01  Satyaki Das  <satyaki@theforce.stanford.edu>
-	(Trivial patch.)
-
-	* pgg-gpg.el (pgg-gpg-process-region): Insert process status into
-	errors-buffer. This produces a nicer error message in case of
-	problems.
-
-2003-03-01  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-maybe-spam-stat-load, spam-maybe-spam-stat-load):
-	load stats iff spam-use-stat is on
-
-	* spam.el: add spam-maybe-spam-stat-load to gnus-startup hook,
-	also use spam-maybe-spam-stat-load and spam-maybe-spam-stat-save
-	instead of spam-stat-load and spam-stat-save in the
-	gnus-get-new-news-hook and gnus-save-newsrc-hook, respectively
-
-2003-03-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-view.el (mm-inline-text): Ignore errors from enriched-decode.
-
-2003-03-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-make-fqdn): Protect against nil user-mail.
-
-2003-02-28  Vasily Korytov <deskpot@myrealbox.com>
-
-	* gnus-art.el (gnus-boring-article-headers): New values:
-	'to-list and 'cc-list.
-
-2003-02-28  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-setup-widening): new function to set
-	nnimap-split-download-body, we add it to gnus-get-new-news-hook
-	(spam-list-of-statistical-checks): list of statistical splitter
-	checks
-	(spam-split): added a widen call when a statistical check is
-	enabled
-
-2003-02-28  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-msg.el (gnus-user-agent): Changed default to
-	'emacs-gnus-type, renamed 'full.
-
-2003-02-28  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-request-accept-article): Don't use
-	mail-header-unfold-field.
-
-2003-02-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* imap.el (imap-ssl-open): Don't depend on ssl.el.
-	* nntp.el (nntp-open-ssl-stream): Don't depend on ssl.el.
-
-2003-02-26  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el: add spam-stat-load to gnus-get-new-news-hook
-	(spam-split): remove spam-stat-load call
-
-2003-02-26  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-toggle-header): Run
-	gnus-article-decode-hook instead of calling a-decode-encoded-words
-	directly (the latter is run as part of the former).
-
-2003-02-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-expire-group): Remove debug.
-
-2003-02-25  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-sendmail-envelope-from): New option.
-	(message-sendmail-envelope-from): New function.
-	(message-send-mail-with-sendmail): Use it.
-
-2003-02-25  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): Added
-	compensation for TDMA addresses.
-
-2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-msg.el (gnus-user-agent): New variable.
-	(gnus-version-expose-system): Removed.  Obsoleted by
-	`gnus-user-agent'.
-	(gnus-extended-version): Use `gnus-user-agent'.
-
-2003-02-24  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-stat-register-spam-routine,
-	spam-stat-register-ham-routine): remove spam-stat-save
-	(spam-stat hook): add spam-stat-save to the gnus-save-newsrc-hook
-
-2003-02-24  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-group.el (gnus-topic-mode-p): Fixed free variable
-	reference.
-
-2003-02-24  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* nnheader.el (nnheader-find-nov-line): Changed midpoint
-	calculation to avoid integer overflow.
-
-2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-start.el (gnus-backup-startup-file): Fixed custom type.
-
-2003-02-24  Ted Zlatanov <tzz@lifelogs.com>
-	* spam.el: disabled spam-get-article-as-filename
-
-	From Michael Shields  <shields@msrl.com>
-
-	* gnus-group.el (gnus-group-is-exiting-without-update-p): New.
-	* gnus-sum.el (gnus-summary-exit-no-update): Use it.
-	* gnus-sum.el (gnus-summary-expire-articles): Use it.
-	* spam.el (spam-summary-prepare-exit): Use it.
-	* gnus.el (gnus-install-group-spam-parameters): New.
-	* spam.el (spam-group-ham-processor-copy-p): New.
-	* spam.el (spam-summary-prepare-exit): Support for ham copying.
-	* spam.el (spam-mark-spam-as-expired-and-move-routine): Fix bug
-	that would cause the current message to be moved if the group had
-	no spam.
-	* spam.el (spam-ham-move-routine): New `copy' argument.
-
-2003-02-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-	From Martin Thornquist <martint@ifi.uio.no>
-
-	* gnus-topic.el (gnus-topic-select-group): Select last group if
-	after last group.
-	* gnus-group.el (gnus-group-select-group): Ditto.
-
-2003-02-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (popup-menu): Compiler macro for Emacs 20.
-	(gnus-article-refer-article): Use gnus-point-at-(b|e)ol instead of
-	point-at-(b|e)ol which aren't available in Emacs 20.
-
-	* gnus-registry.el (puthash): Alias to cl-puthash for Emacs 20.
-
-2003-02-23  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-start.el (gnus-activate-group): Re-enabled the catch error
-	clause of the condition-case statement.  Errors connecting to a
-	server no longer terminate gnus.
-
-	* gnus-agent.el (gnus-agent-toggle-plugged): Renamed parameter to
-	make its use obvious.  Added no-nothing case to avoid
-	opening(closing) servers when already open(closed).
-	(gnus-agent-while-plugged): Added macro to facilitate internal use
-	of gnus-agent-toggle-plugged.
-	(gnus-agent-fetch-group): Use new gnus-agent-while-plugged to
-	temporarily open servers.
-	(gnus-agent-get-undownloaded-list): Sort list of article numbers
-	as sorting gnus-newsgroup-headers is wrong.
-	(gnus-agent-summary-fetch-group): Use new gnus-agent-while-plugged
-	to temporarily open servers. Corrected logic to handle setting
-	gnus-agent-mark-unread-after-downloaded.
-	(gnus-agent-fetch-articles): Now handles headers with missing
-	article sizes and/or missing article lengths.  Now clears the
-	message buffer when finished.
-	(gnus-agent-fetch-group-1): Position point before calling
-	gnus-summary-set-agent-mark.
-	(gnus-get-predicate): Corrected description, parameter is
-	predicate not category.
-	(gnus-agent-expire-group): Adapted the gnus-agent-expire-* code to
-	provide a separate single group expiration function.
-	(gnus-agent-regenerate-group): Now clears the message buffer when
-	finished.
-
-2003-02-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus.el (gnus-agent-target-move-group-header): New variable.
-	* gnus-draft.el (gnus-draft-send): If special header
-	"X-Gnus-Agent-Target-Move-Group" is present, do like Gcc into
-	that group, instead of performing the regular sending functions.
-
-2003-02-23  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-xmas.el (gnus-xmas-mime-button-menu): Accept a prefix arg.
-
-2003-02-20  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-user-fqdn, message-valid-fqdn-regexp): New
-	variables.
-	(message-make-fqdn): Use it.  Improved validity check.
-
-2003-02-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-user-mail-address): Check whether
-	user-mail-address looks valid.
-
-	* gnus-msg.el (gnus-mailing-list-followup-to): New function.
-
-	* gnus-util.el (gnus-fetch-original-field): New function.
-
-2003-02-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* message.el (message-mode): \\(...\\) around additional
-	paragraph-separate alternative.
-
-2003-02-23  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-mime-button-commands): Add ellipsis.
-	(gnus-mime-button-menu): Define MIME popup menu with easy-menu to
-	display key bindings.
-	(gnus-mime-button-menu): Rewrite.
-
-2003-02-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-button-url-regexp): Removed `.
-
-2003-02-23  Max Froumentin  <mf@w3.org>
-
-	* gnus-art.el (gnus-button-url-regexp): Remove `, enter '.
-
-2003-02-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-mime-action-on-part): Require a match
-	interactively.
-
-	* gnus-start.el (gnus-save-newsrc-file): Use
-	gnus-backup-startup-file.
-	(gnus-backup-startup-file): New variable.
-
-2003-02-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-summary-buffer-name): Moved function here.
-
-	* gnus-draft.el (defun): Remove debug.
-
-2003-02-22  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-refer-article): Skip method if we
-	can't open server.
-
-2003-02-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-draft.el (defun): Configure posting styles.
-
-	* gnus-start.el (gnus-get-unread-articles-in-group): Make sure
-	the entry for the group exists before we alter it.
-
-2003-02-22  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* message.el (message-mode): MML tags separate paragraphs.  Small
-	change from David S Goldberg <david.goldberg6@verizon.net>.
-
-	* gnus-agent.el (gnus-agent-get-undownloaded-list): Sort
-	`gnus-newsgroup-headers'.
-
-	* gnus-art.el (gnus-article-refer-article): Grok more message id
-	formats.  From Karl Pfl,Ad(Bsterer <sigurd@12move.de>.
-
-2003-02-22  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-decode.el (mm-path-name-rewrite-functions): Doc fix: don't
-	use "path name".
-
-2003-02-21  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-sum.el (gnus-summary-move-article)
-	(gnus-summary-expire-articles): send data header for article, not
-	just article ID
-
-	* gnus-registry.el (gnus-registry-hashtb, gnus-register-action)
-	(gnus-register-spool-action): added hashtable of message ID keys
-	with message motion data
-
-2003-02-21  Florian Weimer  <fw@deneb.enyo.de>
-	From Reiner Steib  <Reiner.Steib@gmx.de>.
-
-	* gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): New
-	variable, used in `gnus-button-mid-or-mail-heuristic'.
-	(gnus-button-mid-or-mail-heuristic): New function derived from
-	Florian Weimer's Perl script.
-	(gnus-button-handle-mid-or-mail): Allow a function instead of
-	'guess.
-	(gnus-button-guessed-mid-regexp): Removed.
-
-2003-02-20  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-resend): Bind message-setup-hook to nil;
-	remove X-Draft-From header.
-
-2003-02-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-simplify-subject-fully, gnus-subject-equal)
-	(gnus-newsgroup-undownloaded)
-	(gnus-summary-save-parts-default-mime, gnus-auto-select-next):
-	Doc fixes.
-
-2003-02-17  John Paul Wallington  <jpw@gnu.org>
-
-	* gnus.el (gnus-shell-command-separator, gnus-email-address)
-	(gnus-default-charset, gnus-other-frame-parameters): Doc fixes.
-
-2003-02-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-spec.el (gnus-xmas-format): Use insert instead of
-	insert-string which is obsolete in Emacs 21.4.
-
-	* message.el (message-cross-post-followup-to-header): do.
-
-	* spam.el (spam-ifile-register-with-ifile)
-	(spam-stat-register-spam-routine)
-	(spam-stat-register-ham-routine)
-	(spam-bogofilter-register-with-bogofilter): do.
-
-	* mailcap.el (mailcap-mime-data): Fix typo.
-
-	* gnus-topic.el (gnus-topic-make-menu-bar): Add ellipsis.
-
-2003-02-19  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-cite.el (gnus-cite-unsightly-citation-regexp)
-	(gnus-cite-parse): Renamed `gnus-unsightly-citation-regexp' to
-	`gnus-cite-unsightly-citation-regexp'.
-
-2003-02-19  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-msg.el (gnus-copy-article-buffer): Copy an article header
-	even if there's just a header.
-
-2003-02-19  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-fix-before-sending): Fix highlighting of
-	illegible and invisible text.
-
-	* gnus-util.el (gnus-multiple-choice): Separate choices with
-	",,A (B".  Suggested by Dan Jacobson <jidanni@dman.ddts.net>.
-
-2003-02-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-exit-no-update): Use gnus-kill-buffer.
-
-2003-02-18  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-move-routine)
-	(spam-mark-spam-as-expired-and-move-routine): use
-	gnus-summary-kill-process-mark and gnus-summary-yank-process-mark
-	around process-mark manipulation on the group
-
-2003-02-17  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Add MIME/Multipart
-	submenu.
-
-2003-02-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mail-source.el (mail-source-fetch): Reverse the return value of
-	the continuation question.
-
-2003-02-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nndraft.el (nndraft-request-move-article): Bind
-	nnmh-allow-delete-final to t.
-
-2003-02-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-uu.el (mm-uu-uu-filename): Fix use of character constant.
-
-2003-02-11  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* nntp.el (nntp-accept-process-output): Don't use point-max to get
-	the buffer's size.
-
-2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
-
-	* nnheader.el: Added cygwin to system-type comparisons.
-
-2003-01-27  Juanma Barranquero  <lektu@terra.es>
-
-	* imap.el (imap-mailbox-status): Fix typo.
-
-2003-02-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-prepare): Don't set agent mark if
-	online.
-
-2003-02-14  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-group-make-menu-bar): Include all
-	commands.
-	* gnus-sum.el: Small change from Frank Weinberg
-	<frank@usenet-rundfahrt.de>:
-	(gnus-auto-center-group): New variable.
-	(gnus-summary-read-group-1): Use it.
-	(gnus-summary-next-group): Fix docstring.
-
-2003-02-13  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-util.el (gnus-faces-at): Simplify.
-
-2003-02-13  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-move-routine)
-	(spam-mark-spam-as-expired-and-move-routine): made the article
-	move conditional, so it's not called even if there's nothing to move
-
-2003-02-13  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* message.el (message-unix-mail-delimiter): Accept any whitespace
-	after the email address and before the date; do not require the
-	space character.  From Kurt B. Kaiser <kbk@shore.net>.
-
-2003-02-13  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-article-only-boring-p): Make sure that the
-	gnus-article-boring-faces variable is bound; use gnus-faces-at.
-
-	* gnus-util.el (gnus-faces-at): New macro.
-
-2003-02-13  Michael Shields  <shields@msrl.com>
-
-	* gnus-cite.el
-	(gnus-cite-attribution-suffix, gnus-cite-parse):
-	Better handling for Microsoft citation styles.
-	(gnus-unsightly-citation-regexp): New.
-
-2003-02-12  Michael Shields  <shields@msrl.com>
-
-	* gnus-art.el (article-strip-banner): Strip both per-group and
-	per-user-address banners.
-	(article-really-strip-banner): New.
-
-2003-02-12  Michael Shields  <shields@msrl.com>
-
-	* gnus-sum.el (gnus-article-goto-next-page,
-	gnus-article-goto-prev-page): Call gnus-summary-*-page, instead of
-	relying on the summary bindings of `n' and `p'.
-
-2003-02-12  Michael Shields  <shields@msrl.com>
-
-	* gnus-art.el (gnus-article-only-boring-p): New.
-	(gnus-article-skip-boring): New.
-	* gnus-cite.el (gnus-article-boring-faces): New.
-	* gnus-sum.el (gnus-summary-next-page): Use
-	gnus-article-only-boring-p.
-
-2003-02-12  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-mark-spam-as-expired-and-move-routine)
-	(spam-ham-move-routine): unmark all articles before marking those
-	of interest and calling gnus-summary-move-article
-
-2003-02-12  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus.el (gnus-kill-buffer): Move to gnus.el because it's
-	logically the complement of gnus-get-buffer-create and
-	gnus-add-buffer.
-
-	* gnus-util.el (gnus-kill-buffer): do.
-
-	* nnmail.el: Autoload gnus-kill-buffer.
-
-2003-02-11  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-summary-set-agent-mark): Added call to
-	gnus-summary-goto-subject as gnus-summary-update-mark operates on
-	the current LINE.
-	(gnus-agent-summary-fetch-group): Minimized the number of times
-	that the article is updated in the buffer.
-
-2003-02-11  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-move-routine): use the process-mark instead of
-	gnus-current-article when moving articles
-	(spam-mark-spam-as-expired-and-move-routine): ditto, use the process-mark
-
-2003-02-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-topic.el (gnus-topic-expire-articles): Recursive.
-	(gnus-topic-catchup-articles): Ditto.
-	(gnus-topic-mark-topic): Reverse recursive logic.
-
-2003-02-11  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-refer-thread): Handle case where
-	gnus-refer-thread-limit is t.
-
-2003-02-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-util.el (mm-mule-charset-to-mime-charset): Use
-	sort-coding-systems to prefer utf-8 over utf-16.
-
-2003-02-09  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-expire-days):
-	gnus-request-move-article depends on gnus-agent-expire to clean up
-	the cache after moving the article.  Therefore, g-a-e-d can NOT
-	default to nil or can gnus-agent-expire be disabled by doing so.
-	If you don't want to run gnus-agent-expire, don't call it.
-	(gnus-agent-expire): The broken test to disable gnus-agent-expire
-	when g-a-e-d was NOT nil was removed.
-	(gnus-agent-article-name): Removed unnecessary input test as
-	article IDs are always strings.
-	(gnus-agent-regenerate-group): Added check to protect against
-	servers that generate absurdly long article IDs.  Valid IDs are
-	less than 10 digits to avoid overflow errors.  Fixed logic error
-	when ensuring that the final article ID is present in the new
-	alist.
-
-2003-02-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-topic.el (gnus-topic-goto-missing-topic): Just move to the
-	next line after finding the parent.
-
-2003-02-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bumped.
-
-2003-02-08 23:23:27 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.15 is released.
-
-2003-02-08  Michael Welsh Duggan  <md5i@cs.cmu.edu>
-
-	* nnmail.el (nnmail-split-it): If a message ends up matching the
-	  same mailbox more than once, it will cause duplicates to appear
-	  in the mailbox.
-
-2003-02-08  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-select-article): Remove blink removal
-	code that only worked under Emacs.
-
-	* pgg-gpg.el (pgg-gpg-process-region): Don't blink.  From Satyaki
-	Das <satyaki@chicory.stanford.edu>.
-
-2003-02-08  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-article-refer-article): Use
-	gnus-replace-in-string.
-
-	* gnus-util.el (gnus-map-function): Remove unneeded let-binding.
-	(gnus-remove-duplicates): do.
-
-2003-02-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-int.el (gnus-internal-registry-spool-current-method): new variable
-	(gnus-request-scan): set
-	gnus-internal-registry-spool-current-method to gnus-command-method
-	before a request-scan operation
-
-	* gnus-registry.el (regtest-nnmail): use
-	gnus-internal-registry-spool-current-method
-
-2003-02-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mail-source.el (mail-source-fetch): Typo fix.
-
-2003-02-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* nnmail.el (nnmail-spool-hook): new hook
-	(nnmail-cache-insert): call nnmail-spool-hook
-
-	* gnus-registry.el: new file with examples of using the hooks
-
-	* gnus.el (gnus-registry): added registry customization group
-	(gnus-group-prefixed-name): improve function to return full group
-	name optionally
-	(gnus-group-guess-prefixed-name): shortcut to
-	gnus-group-prefixed-name, using just the group name
-	(gnus-group-full-name): always get a group's full name
-	(gnus-group-guess-full-name): shortcut, using just the group name
-
-	* gnus-sum.el (gnus-summary-article-move-hook)
-	(gnus-summary-article-delete-hook)
-	(gnus-summary-article-expire-hook): new hooks
-	(gnus-summary-move-article, gnus-summary-expire-articles)
-	(gnus-summary-delete-article): invoke the new hooks
-
-2003-02-07  Frank Weinberg  <frank@usenet-rundfahrt.de>
-
-	* gnus-art.el (gnus-article-refer-article): Strip leading "news:"
-	from message-ID
-
-2003-02-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-util.el (gnus-run-hooks): Use save-current-buffer.
-
-2003-02-07  John Paul Wallington  <jpw@gnu.org>
-
-	* mm-util.el (mm-delete-duplicates, mm-append-to-file)
-	(mm-write-region, mm-detect-coding-region): Doc fixes.
-
-2003-02-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mail-source.el (mail-source-fetch): Ignore errors.
-	(mail-source-ignore-errors): New variable.
-
-	* gnus-sum.el (gnus-summary-refer-thread): Don't re-fetch current
-	articles.
-
-	* gnus-msg.el (gnus-version-expose-system): Change default.
-
-2003-02-07  Vasily Korytov  <deskpot@myrealbox.com>
-
-	* gnus-msg.el (gnus-version-expose-system): New variable.
-
-2003-02-07  Simon Josefsson  <jas@extundo.com>
-
-	* mml-sec.el (mml-unsecure-message): Don't use kill-region.  Tiny
-	patch from deskpot@myrealbox.com (Vasily Korytov).
-
-2003-02-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (article-display-face): Get the Face header from
-	the current buffer.
-
-2003-02-06  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-mime-view-part-internally): Bind
-	buffer-read-only to nil.
-
-2003-02-05  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-agent.el (gnus-agent-expire-1,2): Pass the dir argument
-	from g-a-e-1 to g-a-e-2.
-
-2003-02-05  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-BBDB): no need to regexp-quote the argument
-	of bbdb-search-simple, use spam-use-BBDB-exclusive
-	(spam-check-whitelist): use spam-use-whitelist-exclusive
-	(spam-use-whitelist-exclusive): new variable affecting
-	spam-use-whitelist
-	(spam-use-BBDB-exclusive): new variable affecting spam-use-BBDB
-
-2003-02-05  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-agent.el (gnus-agent-expire-days): Change default to nil.
-	(gnus-agent-expire): Don't expire if g-a-e-d is nil.
-	(gnus-agent-expire): Move most code into gnus-agent-expire-1.
-	(gnus-agent-expire-1): New.
-	(gnus-agent-expire-1): Move code into gnus-agent-expire-2.
-	(gnus-agent-expire-2): New.
-
-2003-02-05  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-util.el (gnus-delete-if): Rename to gnus-remove-if.
-	"delete-if" is misleading because it isn't actually destructive.
-
-	* gnus-topic.el (gnus-group-prepare-topics): Use new name.
-
-	* nnmail.el (nnmail-purge-split-history): do.
-
-	* gnus-win.el (gnus-get-buffer-window): do.
-
-	* gnus-sum.el (gnus-simplify-whitespace): Remove unnecessary
-	let-binding.
-	(gnus-simplify-all-whitespace): do.
-
-2003-02-05  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-delay.el (gnus-delay-article): Fix binding of the
-	nndraft:delayed group.
-
-2003-02-04  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus.el (spam group parameters): change 'other to 'const in
-	the group parameter definitions to soothe XEmacs
-
-2003-02-04  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-delay.el (gnus-delay-article): Really create
-	nndraft:delayed group if it doesn't exist.
-
-2003-02-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-search-article): Speed up by
-	disabling various visual features while searching.
-	(gnus-summary-recenter): Test gnus-auto-center-summary first.
-
-2003-02-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* spam.el (spam-list-of-checks): Don't quote nil and t in
-	docstrings.  From the elisp manual:
-
-	   When a documentation string refers to a Lisp symbol, write
-	   it [..] with single-quotes around it.  [..] There are two
-	   exceptions: write t and nil without single-quotes.
-
-	* messcompat.el (message-from-style): do.
-
-	* message.el (message-send-mail): do.
-
-	* gnus-util.el (gnus-use-byte-compile): do.
-
-	* gnus-score.el (gnus-score-lower-thread): do.
-
-	* gnus-int.el (gnus-server-unopen-status): do.
-
-	* gnus.el (gnus-define-group-parameter, gnus-large-newsgroup)
-	(large-newsgroup-initial, gnus-install-group-spam-parameters): do.
-
-	* gnus-cus.el (gnus-group-customize, gnus-score-parameters)
-	(gnus-group-parameters): do.
-
-	* gnus-art.el (gnus-article-mime-match-handle-function): do.
-
-	* mm-decode.el (mm-text-html-renderer): do.
-
-2003-02-02  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nnheader.el (nnheader-directory-separator-character): Change the
-	way to compute the dafault value.
-
-2003-02-02  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-button-handle-describe-key): Implement it.
-	(gnus-button-alist): Fix regexp for describe-key.
-	(gnus-button-handle-describe-function)
-	(gnus-button-handle-describe-variable)
-	(gnus-button-handle-apropos, gnus-button-handle-apropos-command)
-	(gnus-button-handle-apropos-variable)
-	(gnus-button-handle-apropos-documentation): Docstring fix.
-
-	* gnus-util.el (gnus-kill-buffer): Use get-buffer.
-
-2003-02-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-draft.el (gnus-group-send-queue): Bind gnus-posting-styles
-	to nil.
-
-	* nnmail.el: Removed gnus-util autoload.
-
-	* gnus.el: Use gnus-prin1-to-string throughout.
-
-	* gnus-util.el (gnus-prin1-to-string): Bind print-length and
-	print-level.
-
-	* gnus-art.el (article-display-x-face): Removed grey x-face stuff.
-	(gnus-treat-display-grey-xface): Removed.
-
-	* gnus-fun.el (gnus-grab-cam-face): New.
-	(gnus-convert-image-to-gray-x-face): Removed.
-	(gnus-convert-gray-x-face-to-xpm): removed.
-	(gnus-convert-gray-x-face-region): Removed.
-	(gnus-grab-gray-x-face): Removed.
-
-	* nnmail.el (nnmail-expiry-wait-function): Doc indent.
-
-2003-01-31  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-util.el (gnus-kill-buffer): Functions in gnus-util
-	shouldn't depend on the rest of Gnus, so test if gnus-buffers is
-	bound.
-
-	* nnmail.el (nnmail-cache-close): Use gnus-kill-buffer.
-
-2003-01-30  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-cite.el (gnus-cite-reply-regexp, gnus-cite-always-check):
-	Remove -- these are bogus options which are never used.
-
-2003-01-29  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-article-mode): Use summary tool bar.
-
-2003-01-27  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-blackholes)
-	(spam-blackhole-good-server-regex): new variable to skip some IPs
-	when checking blackholes; use it
-	(spam-check-bogofilter-headers)
-	(spam-bogofilter-bogosity-positive-spam-header): new variable, in
-	case more X-Bogosity is used than just "Yes/No"
-	(spam-ham-move-routine): semi-fixed, only first article is
-	properly moved now
-
-2003-01-27  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-util.el (gnus-kill-buffer): Remove buffer from gnus-buffers
-	as well.
-
-	* gnus-sum.el (gnus-select-newsgroup): Use gnus-kill-buffer.
-
-	* gnus-score.el (gnus-score-headers, gnus-score-find-bnews): do.
-
-	* gnus-start.el (gnus-save-newsrc-file, gnus-clear-system): do.
-
-	* gnus-bcklg.el (gnus-backlog-shutdown): do.
-
-	* gnus-srvr.el (gnus-server-exit, gnus-browse-exit): do.
-
-2003-01-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-face-encode): New function.
-	(gnus-convert-png-to-face): Use it.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Added M-& to marks.
-
-2003-01-26  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-decode.el (mm-dissection-list): Remove.
-	(mm-dissect-singlepart): Don't push to mm-dissection-list, it's
-	only used in mm-remove-all-parts.
-	(mm-remove-all-parts): Remove it, it's never called.
-
-2003-01-25  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-make-group): Report errors.
-
-	* nnimap.el (nnimap-request-create-group): Ditto.
-
-	* sieve-manage.el (sieve-manage-is-okno): Parse literal strings.
-
-	* sieve.el (sieve-upload): Fix error printing.
-
-	* mm-encode.el (mm-qp-or-base64): Always QP iff
-	mm-use-ultra-safe-encoding and cleartext PGP.
-
-	* gnus-sum.el (gnus-summary-select-article): Inhibit
-	redisplay (mainly for secured messages).
-
-	* nnmail.el (nnmail-article-group): Copy body too (but don't
-	process it).
-
-2003-01-25  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-article-setup-buffer): Reset
-	gnus-button-marker-list.
-
-2003-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nntp.el (nntp-read-timeout): Default to using a second delay
-	under Microsoft Windows.
-
-2003-01-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnheader.el (nnheader-directory-separator-character): New
-	variable.
-
-2003-01-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-max-fetch-size)
-	(gnus-agent-article-alist, gnus-agent-get-undownloaded-list)
-	(gnus-agent-catchup, gnus-agent-summary-fetch-group)
-	(gnus-agent-fetch-articles, gnus-agent-backup-overview-buffer)
-	(gnus-agent-flush-cache, gnus-agent-fetch-headers)
-	(gnus-agent-braid-nov, gnus-agent-load-alist)
-	(gnus-agent-article-alist-save-format)
-	(gnus-agent-read-agentview, gnus-agent-save-alist)
-	(gnus-agent-fetch-group-1, gnus-agent-expire)
-	(gnus-agent-uncached-articles, gnus-agent-retrieve-headers)
-	(gnus-agent-regenerate-group): Reformat to keep under eighty
-	columns.  Reword docstrings so that first line is under eighty
-	chars and a complete sentence.  Still need to work on the rear
-	end of the file, in particular gnus-agent-expire.
-
-2003-01-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agentize): Indent.
-
-	* gnus.el (gnus-version-number): Bumped.
-
-2003-01-24 20:32:44 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.14 is released.
-
-2003-01-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-sum.el (gnus-summary-prepare-threads): Reset state for %B
-	before beginning.  Tiny patch from Mark Thomas
-	<swoon@bellatlantic.net>.
-
-2003-01-24  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-blackholes, spam-split)
-	(spam-mark-junk-as-spam-routine, spam-summary-prepare-exit): added
-	gnus-message calls to show to users what spam.el is doing
-
-2003-01-24  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-message-replysign)
-	(gnus-message-replyencrypt): Fix typo.
-
-2003-01-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-mime-security-show-details): Toggle showing
-	details.
-
-2003-01-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-press-button): let* -> let.
-	(gnus-mime-security-show-details): Cleaned up.
-	(gnus-mime-security-press-button): Save excursion.
-	(gnus-insert-mime-security-button): Clean up.
-
-	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): Doc fix.
-
-	* gnus-async.el (gnus-async-wait-for-article): Don't use a
-	timeout.
-
-	* nntp.el (nntp-accept-process-output): Removed timeout.
-	(nntp-read-timeout): New variable.
-	(nntp-accept-process-output): Use it.
-
-	* gnus-sum.el (gnus-data-find-list): Remove *.
-
-2003-01-23  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-sum.el (gnus-summary-first-subject): Fixed bug that I
-	introduced on 2002-01-22.
-	(gnus-summary-first-unseen-or-unread-subject): Ditto.
-
-2003-01-23  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-regex-headers, spam-list-of-checks)
-	(spam-regex-headers-spam, spam-regex-headers-ham): added spam/ham
-	checks of incoming mail based on simple header regexp matching
-
-2003-01-22  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* gnus-sum.el (gnus-spam-mark): set to `$'
-
-2003-01-22  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-get-undownloaded-list): Now computes
-	gnus-newsgroup-unfetched, the list of articles whose headers have
-	not been fetched from the server.
-
-	* gnus-sum.el (gnus-summary-find-next): Removed undownloaded
-	parameter as it never worked due to a bug.  Added check to prevent
-	selection of any article in the gnus-newsgroup-unfetched list.
-	(gnus-summary-find-prev): Added check to prevent selection of any
-	article in the gnus-newsgroup-unfetched list.
-	(gnus-summary-first-subject): Documented API. Modified
-	implementation so that constraints are handled independently.
-	Added check to prevent selection of any article in the
-	gnus-newsgroup-unfetched list.
-	(gnus-summary-first-unseen-subject): Updated parameters in
-	gnus-summary-first-subject call to match new API.
-	(gnus-summary-first-unseen-or-unread-subject): Ditto.
-	(gnus-summary-catchup): Do not mark unfetched articles as read.
-
-2003-01-22  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-treat-strip-pgp, gnus-article-hide-pgp-hook):
-	make-obsolete-variable allows only two arguments in XEmacs and
-	Emacs 20.
-
-	* gnus-sum.el (gnus-summary-wash-hide-map): Remove
-	gnus-article-hide-pgp.
-	(gnus-summary-make-menu-bar): do.
-
-	* gnus-art.el (gnus-treat-strip-pgp): Make obsolete.
-	(gnus-treatment-function-alist): Remove gnus-treat-strip-pgp and
-	gnus-article-hide-pgp.
-	(article-hide-pgp): Remove.
-	(gnus-article-hide): Remove gnus-article-hide-pgp.
-
-	* gnus.el: Remove gnus-article-hide-pgp
-
-2003-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-required-headers): Doc fix.
-
-2003-01-21  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-group-ham-processor-bogofilter-p): fixed bug
-	(spam-ifile-register-ham-routine, spam-ifile-ham-category): new
-	option to make ifile a purely binary classifier
-
-2003-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mml-sec.el (mml-secure-sign-pgpauto): Renamed.
-	(mml-secure-encrypt-pgpmime): Removed double.
-
-	* gnus-sum.el (gnus-summary-mark-article-as-replied): Added
-	debugging statements.
-
-2003-01-21  Andreas Fuchs  <asf@void.at>
-
-	* mml-sec.el (mml-sign-alist): Added pgpauto.
-
-2003-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bumped version number.
-
-2003-01-21 07:15:41 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.13 is released.
-
-2003-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-button-url-regexp): Removed |.
-
-	* message.el (message-send-hook): Doc fix.
-
-	* gnus-win.el (gnus-buffer-configuration): Display article
-	instead of article-copy when `reply'.
-
-2003-01-21  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus.el (gnus-format): Change customize group to gnus.
-	(gnus-cache): Add link.
-	(gnus-group-charter-alist): Fix docstring.
-
-2003-01-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* mailcap.el (mailcap-print-command): lpr-command might be
-	unbound in XEmacs.
-
-2003-01-18  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-regenerate-group): Added interactive form.
-
-	* gnus-sum.el (gnus-summary-update-article-line): Fixed
-	calculation of net characters added for use in the gnus-data
-	structure.
-
-2003-01-18  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* nnmail.el (nnmail-process-unix-mail-format): Improve error
-	message.  Suggested by Jari Aalto.
-
-2003-01-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-followup-with-original): Clean up.
-	(gnus-article-reply-with-original): Ditto.
-
-	* gnus-sum.el (gnus-summary-catchup): Make sure downloadable,
-	read articles don't become unread.
-
-2003-01-17  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-fun.el (gnus-x-face-from-file):
-	(gnus-face-from-file): Suggest image format in minibuffer prompt.
-
-	* gnus-fun.el (gnus-convert-image-to-x-face-command)
-	(gnus-convert-image-to-face-command): Doc fix.
-
-2003-01-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-convert-face-to-png): Protect against errors.
-
-2003-01-17  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-mime-print-part): Use mm-save-part-to-file to
-	avoid encoding problems.
-
-	* mailcap.el (mailcap-ps-command): New variable.
-	(mailcap-mime-data): Add print entry where applicable.  Use
-	pdftotext on a tty.
-
-2003-01-16  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-alter-header-function): Add type and group.
-
-2003-01-16  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-fun.el (gnus-convert-image-to-x-face-command)
-	(gnus-convert-image-to-face-command, gnus-x-face-from-file)
-	(gnus-face-from-file): Doc fix; don't mention image format.
-
-2003-01-16  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-get-article-as-filename): new function (unused for now)
-	(spam-get-article-as-buffer): new function
-	(spam-get-article-as-string): use spam-get-article-as-buffer
-	(spam-summary-prepare-exit): fixed bug, noticed by Malcolm Purvis
-
-2003-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el: Don't use `path'.
-	From the GNU coding standards:
-
-	    Please do not use the term ``pathname'' that is used in Unix
-	    documentation; use ``file name'' (two words) instead.  We use
-	    the term ``path'' only for search paths, which are lists of
-	    directory names.
-
-	* nnsoup.el (nnsoup-file-name): Ditto.
-
-	* nnmail.el (nnmail-pathname-coding-system): Ditto.
-	(nnmail-group-pathname): Ditto.
-
-	* nnimap.el (nnimap-group-overview-filename): Ditto.
-
-	* nnheader.el (nnheader-pathname-coding-system): Ditto.
-	(nnheader-group-pathname): Ditto.
-
-	* nnfolder.el (nnfolder-group-pathname): Ditto.
-
-	* gnus.el (gnus-home-directory): Ditto.
-
-	* gnus-group.el (gnus-group-icon-list): Ditto.
-
-2003-01-16  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-mime-print-part): Use mm-handle-media-type.
-
-	* message.el (message-mode-menu): Use it.
-	(message-mode-menu): Deactivate "Yank Original" if there's no
-	reply buffer.
-
-	* messagexmas.el (message-xmas-redefine): Redefine in XEmacs.
-
-	* message.el (message-mark-active-p): New function.
-
-2003-01-15  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-use-bogofilter-headers, spam-bogofilter-header)
-	(spam-bogofilter-database-directory): new variables
-	(spam-check-bogofilter-headers, spam-check-bogofilter)
-	(spam-bogofilter-register-with-bogofilter)
-	(spam-bogofilter-register-spam-routine)
-	(spam-bogofilter-register-ham-routine)
-	(spam-group-ham-processor-bogofilter-p): new functions for the new
-	Bogofilter interface
-	(spam-summary-prepare-exit): use the new Bogofilter functions
-	(spam-list-of-checks): added spam-use-bogofilter-headers
-	(spam-bogofilter-score): rewrote function
-	(spam-check-bogofilter): optional score parameter, uses
-	spam-check-bogofilter-headers better
-	(spam-check-bogofilter-headers): optional score parameter
-
-	* gnus.el (gnus-install-group-spam-parameters): new variable, t by
-	default, in the gnus-start customization group.  Used to disable
-	the spam-*/ham-* parameters.
-	(gnus-group-ham-exit-processor-bogofilter): new ham processor
-
-2003-01-15  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-xmas.el (gnus-xmas-redefine): Use region-exists-p in
-	XEmacs.
-
-	* gnus-ems.el (gnus-mark-active-p): do.
-
-2003-01-15  Kevin Ryde  <user42@zip.com.au>
-
-	* gnus.texi (Using MIME): Mention auto-compression-mode with
-	gnus-mime-copy-part.
-
-2003-01-15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-send): Don't warn about duplicates when
-	superseding.
-
-2003-01-15  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-split-download-body): New variable.
-	(nnimap-split-articles): Use it.
-
-2003-01-14  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-check-overview-buffer): This data
-	integrity checker was incorrectly flagging, and removing, articles
-	whose article number was negative.
-	(gnus-agent-fetch-group-1): When executed in the group's summary
-	buffer, refresh each downloaded line to update the status flag and
-	font.  Preserve the value of gnus-newsgroup-headers so that
-	gnus-agent-fetch-articles can split the requests by size.
-	(gnus-agent-expire): Corrected day calculation for when
-	gnus-agent-expire-days contains a list.
-
-2003-01-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-audio.el (gnus-audio-au-player): Use executable-find.
-
-2003-01-13  Jhair Tocancipa Triana <jhair_tocancipa@@gmx.net>
-
-	* gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use
-	  /usr/bin/play as default player.
-	  (gnus-audio-play): Added ARG-DESCRIPTOR to prompt for a file to play.
-
-2003-01-14  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-msg.el (gnus-inews-add-send-actions): Allow a list of
-	articles to be marked as well.
-
-2003-01-14  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-	* gnus-agent.el (gnus-agent-get-undownloaded-list): Include the
-	fictious headers generated by nnagent (ie. Undownloaded Article
-	####) in the list of articles that have not been downloaded.
-
-	* gnus-int.el (): Added require declarations to resolve
-	compile-time warnings.
-	(gnus-open-server): If the server status is set to offline,
-	recursively execute gnus-open-server to open the offline backend
-	(e.g. nnagent).
-
-2003-01-14  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (gnus-article-reply-with-original): Use
-	gnus-mark-active-p.
-	(gnus-article-followup-with-original): do.
-
-2003-01-13  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-sum.el: Removed `(when t ...)' around `gnus-define-keys'.
-
-2003-01-13  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-score.el (gnus-score-edit-file-at-point): New function.
-	(gnus-score-find-trace): Bind it to `e' key.  Added `q' for quit.
-
-2003-01-13  Romain FRANCOISE  <romain@orebokech.com>
-
-	* gnus-fun.el (gnus-x-face-from-file): Quote file name.
-	(gnus-face-from-file): Ditto.
-
-2003-01-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-articles-to-read): Don't just apply
-	gnus-alter-articles-to-read-function to the unread articles.
-
-2003-01-13  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* deuglify.el (gnus-article-outlook-unwrap-lines)
-	(gnus-article-outlook-repair-attribution)
-	(gnus-article-outlook-rearrange-citation): New function names,
-	renamed from "gnus-outlook-" to "gnus-article-outlook-".  Changed
-	doc-string.
-
-	* gnus-sum.el (gnus-summary-mode-map): Use new function names,
-	removed `W k' key binding (use `W Y f' instead).
-	(gnus-summary-make-menu-bar): Use new function names.
-
-2003-01-13  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-fun.el (gnus-random-x-face): Doc fix.
-	(gnus-insert-random-x-face-header): New function.
-
-2003-01-13  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Deactivate items if
-	mark is not active.
-
-	* gnus-msg.el (gnus-inews-do-gcc): Comment.
-
-	* gnus-ems.el (gnus-mark-active-p): New function.
-
-	* gnus-group.el (gnus-topic-mode-p): New function.
-	(gnus-group-make-menu-bar): Show more key bindings in topic mode.
-	Deactivate items if mark is not active.
-
-2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bumped version.
-	(gnus-summary-line-format): Doc fix.
-
-2003-01-12 22:02:49 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.12 is released.
-
-2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mail-source.el (mail-sources): Removed autoload to make it
-	compile under XEmacs.
-
-2003-01-12  Raymond Scholz  <ray-2003@zonix.de>
-
-	* gnus-msg.el (gnus-confirm-mail-reply-to-news):  May be a
-	regexp or a function too.
-	(gnus-confirm-treat-mail-like-news): New variable.  Ask for
-	confirmation even if the original article is mail.
-
-2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-msg.el (gnus-inews-add-send-actions): Get the right
-	articles to be marked when not yanking.
-
-2003-01-12  Fran,Ag(Bois-David Collin  <Francois-David.Collin@curie.fr>
-
-	* mm-decode.el (mm-get-part): Use mm-with-unibyte-current-buffer.
-
-2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-face-from-file): Autoload.
-
-	* gnus-cite.el (gnus-cite-delete-overlays): Protect against more
-	errors.
-
-2003-01-12  Simon Josefsson  <jas@extundo.com>
-
-	* sieve.el (sieve-upload-and-bury): New.  Suggested by
-	kai.grossjohann@uni-duisburg.de (Kai Gro,A_(Bjohann).
-
-	* sieve-mode.el (sieve-mode-map): Bind s-u-a-b to C-c C-c.
-	Suggested by kai.grossjohann@uni-duisburg.de (Kai Gro,A_(Bjohann).
-
-2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-ignored-headers): Don't include the ^ and :
-	in every string.
-
-	* gnus.el (gnus-version-number): Bumped version number.
-
-2003-01-12 13:46:20 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.11 is released.
-
-2003-01-12  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-fetch-reply-field): Narrow to headers.
-
-	* gnus-msg.el (gnus-inews-do-gcc): Don't try to mark GCC's as read
-	if Gnus isn't alive.
-
-2003-01-11  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-fetch-group-1): Remove downloadable
-	marks from articles that are already stored in the agent.
-	(gnus-agent-backup-overview-buffer): New debug tool.  Creates a
-	backup copy of an invalid .overview file for later analysis.
-
-2003-01-12  Gregorio Gervasio, Jr.  <gtgj@pacbell.net>
-
-	* gnus-sum.el (gnus-summary-exit): Reverse change to make group
-	exit work with two frames.
-
-2003-01-11  Fran,Ag(Bois-David Collin  <Francois-David.Collin@wanadoo.fr>
-
-	* message.el (message-forward-make-body): Use mule4.
-
-2003-01-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-mode-map): Move wide-reply command.
-
-2003-01-10  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* deuglify.el (gnus-outlook-deuglify-attrib-verb-regexp): Added
-	castellano.
-	(gnus-outlook-display-hook): New variable.
-	(gnus-outlook-display-article-buffer): New function.
-	(gnus-outlook-unwrap-lines, gnus-outlook-repair-attribution)
-	(gnus-outlook-deuglify-article): Made them interactive and added
-	optional arg.  Use `g-o-d-a-b'.
-	(gnus-article-outlook-deuglify-article): Use `g-o-d-a-b'.
-
-	* gnus-sum.el: Added autoloads.
-	(gnus-summary-mode-map): Added gnus-summary-wash-deuglify-map.
-	(gnus-summary-make-menu-bar): Added "(Outlook) Deuglify" menu.
-
-2003-01-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-display-mime): Use the mime emulation
-	variable.
-
-	* gnus-sum.el (gnus-article-emulate-mime): New variable.
-
-	* gnus-start.el (gnus-read-newsrc-el-file): Make sure that the
-	newsrc-alist is initialized properly.
-
-	* mail-source.el (mail-sources): Autoload.
-
-	* gnus-sum.el (gnus-summary-make-false-root-always): Default to
-	nil.
-
-	* gnus-msg.el (gnus-configure-posting-styles): Make sure we don't
-	insert two newlines.
-
-	* message.el (message-check-news-header-syntax): Compute the
-	header length correctly.
-
-2003-01-10  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-expire): Do not remove article from
-	alist when keeping fetched article file.
-	(gnus-agent-retrieve-headers): When parsing response for article
-	numbers, use the same algorithm as gnus-agent-braid-nov to protect
-	against garbage in the server's response.
-
-	* gnus-int.el (gnus-request-expire-articles,
-	gnus-request-move-article): Only expire when the group's server
-	has been agentized.
-
-2003-01-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-cite.el (gnus-cite-delete-overlays): Protect against
-	errors when deleting overlays.
-
-	* gnus-score.el (gnus-score-followup): Allow tracing.
-
-	* gnus-art.el (gnus-treat-display-face): New variable.
-	(article-display-face): New command.
-
-	* gnus-fun.el (gnus-face-from-file): New function.
-	(gnus-convert-face-to-png): Ditto.
-
-	* gnus-art.el (gnus-ignored-headers): Added Face.
-
-2003-01-10  Simon Josefsson  <jas@extundo.com>
-
-	* nndraft.el (nndraft-request-group): Avoid crash in
-	directory-files when draft directory doesn't exists.
-
-	* gnus-sum.el (gnus-select-article-hook): Add :option.
-
-2003-01-10  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-use-stat): new variable
-	(spam-group-spam-processor-stat-p)
-	(spam-group-ham-processor-stat-p): new convenience functions
-	(spam-summary-prepare-exit): add spam/ham processors to sequence
-	(spam-list-of-checks): add spam-use-stat to list of checks
-	(spam-split): conditionally load the spam-stat tables
-	(spam-stat-register-spam-routine, spam-stat-register-ham-routine,
-	spam-check-ifile): new functions
-
-	* spam-stat.el (spam-stat): typo fix
-	(spam-stat-install-hooks): new variable
-	(spam-stat-split-fancy-spam-group): added documentation clarification
-	(spam-stat-split-fancy-spam-threshhold): new variable
-	(spam-stat-install-hooks): make hooks conditional
-	(spam-stat-split-fancy): use spam-stat-split-fancy-spam-threshhold
-
-	* gnus.el (gnus-group-ham-exit-processor-stat, spam-process): add
-	spam-stat ham/spam processor symbols
-
-2003-01-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-start.el (gnus-read-newsrc-el-file): Make sure the .eld
-	file exists.
-
-2003-01-10  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-read-group-1): Don't select first
-	undownloaded/downloadable only when unplugged.
-
-2003-01-10  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-srvr.el (gnus-browse-foreign-server): Optimize inner loop.
-
-2003-01-09  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-ifile): fixed call-process-region to use the
-	db parameter only if it's set
-	(spam-ifile-register-with-ifile): ditto
-
-2003-01-09  Alex Schroeder  <alex@emacswiki.org>
-
-	* spam-stat.el (spam-stat-save): Set spam-stat-ngood and
-	spam-stat-nbad before creating the hash table.
-	(spam-stat-reset): Set spam-stat-ngood and spam-stat-nbad to 0.
-	Changed copyright statement to FSF.
-
-2003-01-09  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-catchup): Do not mark cached nor
-	processable articles as read.
-	(gnus-agent-summary-fetch-series): Remove processable and
-	downloadable marks on all downloaded articles in the series.
-
-	* nntp.el (nntp-report): Throw error after reporting the problem.
-	(nntp-accept-process-output): Corrected error check to report an
-	error when the process is nil.
-
-2003-01-09  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-tool-bar-map): Add preview.
-
-2003-01-09  Jesper Harder  <harder@ifa.au.dk>
-
-	* mml.el (mml-preview): Get rid of MIME handles and buffers after
-	previewing.
-
-2003-01-08  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir--grp-add-art): Fix wrong-type-argument
-	bug when the (n+1)th article to be added to a group has a smaller
-	number than the n articles already added.
-
-2003-01-08  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-mode-field-menu): Use backquote.
-
-2003-01-08  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el: fixed the BBDB autoloads again, using
-	bbdb-search-simple now (which is not a macro, thank god)
-
-	* lpath.el (bbdb-search): removed function from maybe-fbind list
-
-	* gnus.el (ham-process-destination): added new parameter for
-	destination of ham articles found in spam groups at summary exit
-
-	* spam.el (spam-get-ifile-database-parameter): use spam-ifile-database-path
-	(spam-check-ifile, spam-ifile-register-with-ifile): use spam-get-ifile-database-parameter
-	(spam-ifile-database-path): added new parameter for ifile's database
-	(spam-move-spam-nonspam-groups-only): new parameter to determine
-	if spam should be moved from all groups or only some
-	(spam-summary-prepare-exit): fixed logic to use
-	spam-move-spam-nonspam-groups-only when deciding to invoke
-	spam-mark-spam-as-expired-and-move-routine; always invoke that
-	routine after the spam has been expired-or-moved in case there's
-	some spam left over; use spam-ham-move-routine in spam groups
-	(spam-ham-move-routine): new function to move ham articles to the
-	ham-process-destinations group parameter
-
-2003-01-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-spec.el (gnus-parse-complex-format): %~ => ~*.
-
-	* gnus-agent.el (gnus-agent-fetch-selected-article): Use
-	gnus-summary-update-article-line.
-
-2003-01-08  Simon Josefsson  <jas@extundo.com>
-
-	* nnmail.el (nnmail-expiry-target-group): Request group, create it
-	not successful.
-
-2003-01-08  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el (bbdb-records): Fbind it for both Emacs and XEmacs.
-
-2003-01-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-ifile): fixed the spam-ifile-all-categories
-	logic, finally
-
-2003-01-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-spec.el (gnus-parse-format): %C is a complex format.
-	(gnus-parse-format): Change to %~.
-
-	* message.el (message-generate-headers): Don't generate optional
-	empty headers.
-
-2003-01-07  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-cross-post-default)
-	(message-cross-post-note-function, message-shoot-gnksa-feet)
-	(message-strip-subject-trailing-was, message-change-subject)
-	(message-mark-insert-file, message-cross-post-followup-to)
-	(message-cross-post-followup-to, message-mode-map)
-	(message-generate-unsubscribed-mail-followup-to)
-	(message-make-mail-followup-to): Minor changes to doc-strings and
-	error messages.  Updated copyright line.
-
-	* message.el (message-make-mail-followup-to,
-	message-generate-unsubscribed-mail-followup-to): New function
-	names.  Renamed functions: "-mft" -> "-mail-followup-to".
-	(message-make-mft, message-gen-unsubscribed-mft): Removed function
-	names.
-
-	* mml.el (mml-preview-insert-mail-followup-to): New function name.
-	(mml-preview-insert-mft): Removed function name.
-	(mml-preview): Use new function names.
-
-	* gnus-art.el (gnus-article-edit-mode-map): Use new function names.
-
-	* message.el (message-mode-field-menu): Moved header related
-	commands from "Message" to "Field" menu.
-
-2003-01-07  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-generate-headers-first): Added customization
-	if variable is a list.
-
-2003-01-07  Michael Shields  <shields@msrl.com>
-
-	* gnus-art.el (gnus-article-next-page): Correctly handle the case
-	where the last line of the article is the last line of the window.
-
-2003-01-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-msg.el (gnus-debug): Use ignore-errors.
-
-	* gnus-agent.el (gnus-agent-fetch-selected-article): Use
-	`gnus-summary-update-line'.
-
-2003-01-08  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-unbuttonized-mime-types)
-	(gnus-buttonized-mime-types): Doc fix.
-
-2003-01-08  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-decode.el (mm-inline-media-tests): .xpm is 'x-xpixmap'.
-
-2003-01-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-group-alist): Add and clear up.
-
-2003-01-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el: removed unnecessary condition-case for loading bbdb-com.el
-
-	* lpath.el (bbdb-search): added BBDB functions for a better way to
-	fix missing functions
-
-	* spam.el (spam-check-ifile): if should be an unless
-
-	* spam.el: define 'ignore alias for spam-BBDB-register-routine,
-	spam-enter-ham-BBDB, and bbdb-create-internal initially to hush up warnings
-	(spam-ifile-all-categories): doc string fixed to be less than 80 chars
-
-2003-01-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Added
-	gnus-summary-refer-thread to thread menu.
-
-2003-01-07  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-fetch-group-1): When fetching within a
-	summary buffer, articles that cannot be fetched are marked as
-	canceled.
-
-	* nntp.el (nntp-with-open-group): The quit signal handler must
-	propagate the quit signal to the next outer handler so that the
-	caller knows that the request aborted abnormally.
-
-2003-01-07  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-check-ifile, spam-ifile-register-with-ifile)
-	(spam-ifile-register-spam-routine)
-	(spam-ifile-register-ham-routine): added ifile functionality that
-	does not use ifile-gnus.el to classify and register articles
-	(spam-get-article-as-string): convenience function
-	(spam-summary-prepare-exit): added ifile spam and ham registration
-	(spam-ifile-all-categories, spam-ifile-spam-category)
-	(spam-ifile-path, spam-ifile): added customization options
-
-	* gnus.el (gnus-group-ham-exit-processor-ifile): added ifile ham
-	exit processor
-	(spam-process): added gnus-group-ham-exit-processor-ifile to the
-	list of choices
-
-2003-01-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-score.el (gnus-score-followup): Also score immediate
-	followups.
-
-2003-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnweb.el (nnweb-asynchronous-p): Changed to nil.
-
-2003-01-07  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-mode-menu): Fix receipt balloon help.
-
-2003-01-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-msg.el (gnus-group-post-news): Don't assume that "" will
-	always be interpreted as news.
-
-2003-01-07  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sieve.el (gnus-sieve-script): Use the crosspost argument to
-	gnus-sieve-script, instead of the global variable
-	gnus-sieve-crosspost.  One-line patch from Steinar Bang
-	<sb@dod.no>.
-
-2003-01-06  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus.el: Renamed gnus-summary-*-uncached-face as
-	gnus-summary-*-undownloaded-face to avoid confusing the agent with
-	the cache.
-
-	* gnus-sum.el: Ditto.
-
-2003-01-06  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-fetch-group): Modified to permit execution
-	in either the group or summary buffer.
-	New command "JS", in summary buffer, will fetch articles per the
-	group's category, predicate, and processable flags.
-	(gnus-agent-summary-fetch-series): Rewritten to call
-	gnus-agent-session-fetch-group once with all articles in the
-	series.
-	(gnus-agent-summary-fetch-group): Fixed bug and modified code to
-	return list of fetched articles.
-	(gnus-agent-fetch-articles): Split fetch list into sublists such
-	that the article buffer is only slightly larger than
-	gnus-agent-max-fetch-size.  Added unwind-protect to ensure that
-	the group's article alist is saved.
-	(gnus-agent-fetch-headers): The 'killed' and 'cached' marks no
-	longer result in the agent trying to fetch an article.
-	(gnus-agent-fetch-group-1): Can now be called in either the group
-	or summary buffer.  Removed the max-fetch-size code that I added
-	on 2002-12-13 as that capability is now part of
-	gnus-agent-fetch-articles.  Added code to update summary buffer.
-	When called in the group buffer, articles that can not be fetched
-	are AUTOMATICALLY MARKED AS READ.
-
-	* gnus-sum.el (): Modified eval-when-compile to minimize
-	misleading compilation warnings.
-	(gnus-update-summary-mark-positions): Changed code to use
-	gnus-undownloaded-mark rather than gnus-downloaded-mark.
-
-	* nnheader.el (nnheader-insert-nov-file): Do not try to insert an
-	empty file as the parser assumes that the file isn't empty.
-
-	* nntp.el (nntp-send-string): The process-send-string call can,
-	because it performs I/O on the process, change the process' state
-	from open to closed.  If this happens, call nntp-report
-	immediately to report the broken connection.
-	(nntp-report): Rewritten to avoid needing a global variable to
-	determine the appropriate course of action.  Instead, two function
-	implementations are provided and the nntp-report function value is
-	bound to the appropriate implementation.
-	(nntp-retrieve-data): Moved nntp-report call to end of implementation.
-	(nntp-with-open-group): Now binds nntp-report's function cell
-	rather than binding gnus-with-open-group-first-pass.  Added a
-	condition-case to detect a quit during a nntp command.  When the
-	quit occurs, the current connection is closed as a fetch articles
-	request could have several megabytes queued up for reading.
-	(nntp-retrieve-headers): Bind articles to itself.  If
-	nntp-with-open-group repeats this command, I must have access to
-	the original list of articles.
-	(nntp-retrieve-groups): Ditto for groups.
-	(nntp-retrieve-articles): Ditto for articles.
-	(*): Replaced nntp-possibly-change-group calls to
-	nntp-with-open-group forms in all, but one, occurrance.
-	(nntp-accept-process-output): Bug fix. Detect when called with
-	null process.
-
-2003-01-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-util.el (mm-find-mime-charset-region): Don't do Latin-9 hack
-	if we don't need to.
-	(mm-iso-8859-x-to-15-region): Fix misplaced parenthesis.
-
-2003-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-group.el (gnus-group-make-web-group): Pass the select
-	method on to group-create.
-	(gnus-group-line-format-alist): %U is an integer.
-
-	* gnus-sum.el (gnus-summary-exit-no-update): Don't update
-	ephemeral groups.
-	(gnus-summary-read-group-1): Ditto.
-	(gnus-group-make-articles-read): Ditto.
-
-	* mm-url.el (mm-url-program): Doc fix.
-
-	* message.el (message-mode-map): Rebound
-	message-insert-wide-reply.
-
-2003-01-05  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-xmas.el (gnus-xmas-group-startup-message): Bind the oort
-	color as `gnus-group-startup-message' does.
-
-2003-01-05  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el: fixed line lengths to 80 chars or less
-
-	* gnus-sum.el (gnus-read-mark-p): added the spam-mark as a
-	"not-read" mark
-	(gnus-summary-mark-forward): added the spam-mark to the list of
-	marks not to be marked as "read" when viewed
-
-2003-01-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-msg.el (gnus-inews-make-draft): Quote article-reply.
-
-	* gnus-group.el (gnus-number-of-unseen-articles-in-group):
-	Protect against unactive groups.
-
-	* message.el (message-check-news-header-syntax): Check long
-	header lines.
-	(message-check-news-header-syntax): Update `start'.
-
-	* gnus-group.el (gnus-group-expire-articles): Doc fix.
-	(gnus-group-line-format): %U.
-	(gnus-group-line-format-alist): ?U.
-	(gnus-number-of-unseen-articles-in-group): New function.
-
-	* nntp.el (nntp-accept-process-output): Use a 0.1 second timeout.
-
-	* gnus.el (gnus-version-number): Bump version number.
-
-2003-01-05 01:53:30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.10 is released.
-
-2003-01-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Fix version number.
-
-2003-01-05 01:40:09 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.08 is released.
-
-2003-01-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-util.el: Add mm-string-make-unibyte.
-
-	* gnus-group.el (gnus-group-jump-to-group): Make it work for
-	UTF-8 groups.
-
-2003-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-variable-list): Write gnus-format-specs last.
-
-	* gnus-sum.el (gnus-summary-goto-subjects): Fix typo.
-
-2003-01-04  Kevin Ryde  <user42@zip.com.au>
-
-	* gnus-art.el (gnus-mime-jka-compr-maybe-uncompress): New
-	function.
-
-2003-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-exit): Bind gnus-group-is-exiting-p.
-	(gnus-summary-read-group-1): Update group line.
-	(gnus-summary-exit-no-update): Update group on exit.
-
-	* gnus-group.el (gnus-group-line-format): Add %*.
-	(gnus-group-line-format-alist): Ditto.
-	(gnus-group-insert-group-line): Set it.
-	(gnus-group-is-exiting-p): New variable.
-	(gnus-group-insert-group-line): Use it.
-
-2003-01-03  Teodor Zlatanov  <tzz@beld.net>
-
-	* spam.el (spam-enter-ham-BBDB, spam-BBDB-register-routine):
-	enable BBDB ham processing
-	(spam-blacklist-register-routine): enable blacklist spam processing
-	(spam-whitelist-register-routine): enable whitelist ham processing
-	(spam-fetch-field-from-fast): fast fetching of the "from" field
-	from (gnus-data-list)
-	(spam-summary-prepare-exit): works completely now
-	(spam-use-blacklist): oops, should be nil by default
-	(spam-summary-prepare-exit): spam-use-PROCESSOR is only for
-	split processing now; before it was for summary exit as
-	well but that's done with the spam-contents and spam-process
-	parameters now
-
-2003-01-03  Jesper Harder  <harder@ifa.au.dk>
-
-	* mml.el (mml-insert-tag): Don't quote non-ASCII unibyte
-	characters.
-
-2003-01-02  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-group-spam-contents-p, spam-group-ham-contents-p)
-	(spam-group-processor-p, spam-group-processor-bogofilter-p)
-	(spam-group-processor-ifile-p, spam-group-processor-blacklist-p)
-	(spam-group-processor-whitelist-p, spam-group-processor-BBDB-p)
-	(spam-mark-spam-as-expired-and-move-routine)
-	(spam-generic-register-routine, spam-BBDB-register-routine)
-	(spam-ifile-register-routine, spam-blacklist-register-routine)
-	(spam-whitelist-register-routine): new functions
-	(spam-summary-prepare-exit): added summary exit processing (expire
-	or move) of spam-marked articles for spam groups; added slots for
-	all the spam-*-register-routine functions
-
-2003-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* pop3.el (pop3-retr): Wait 500 msecs.
-	(pop3-read-response): Ditto.
-
-	* gnus-msg.el (gnus-setup-message): Get the evaliation order
-	right.
-	(gnus-inews-make-draft): New function.
-	(gnus-setup-message): Use it.
-
-	* message.el (message-required-headers): Add From.
-
-2003-01-02  Katsumi Yamaoka  <yamaoka@jpl.org>
-	Trivial patch from Norbert Koch <nk@viteno.net>.
-
-	* gnus-msg.el (gnus-gcc-externalize-attachments): Fix typo.
-
-2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-generate-headers): Let header formatters do
-	their work.
-
-2003-01-02  Raymond Scholz  <ray-2003@zonix.de>
-
-	* deuglify.el (gnus-article-outlook-deuglify-article):
-	Rehighlight, reapply treatments and call
-	`gnus-article-prepare-hook'.  Suggested by Niels Olof Bouvin.
-	(gnus-outlook-repair-attribution-block): Recognize cited
-	attributions.  Suggested by Niklas Morberg.
-
-2003-01-02  Pete Kazmier  <pete@kazmier.com>
-
-	* gnus-art.el (gnus-treat-predicate): Check condition first.
-
-2003-01-02  Jesper Harder  <harder@ifa.au.dk>
-
-	* lpath.el: Add url-http-file-exists-p.
-
-	* gnus-group.el (gnus-group-fetch-charter): Use
-	http://TLH.news-admin.org/charters/GROUPNAME as a fallback.
-
-2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-draft-headers): Also generate From to get a
-	nicer draft buffer summary.
-
-	* gnus-xmas.el (gnus-xmas-read-event-char): Take an optional
-	parameter.
-
-	* gnus-art.el (article-wash-html): Clean up.
-	(article-wash-html): Typo fix.
-
-	* gnus-msg.el (gnus-summary-mail-forward): Clean up.
-	(gnus-summary-mail-forward): To many lists of lists.
-
-	* gnus-art.el (article-wash-html): Clean up.
-
-2003-01-02  pete-temp  <pete-temp-12-29-2002@kazmier.com>
-
-	* gnus-art.el (gnus-treat-wash-html): New variable.
-
-2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-check-news-header-syntax): Allow posting.
-	(message-check-news-header-syntax): Fix logic for sure, this
-	time.
-
-2003-01-02  Matthieu Moy  <Matthieu.Moy@imag.fr>
-
-	* message.el (message-check-news-header-syntax): Check syntax of
-	continuation headers.
-
-2003-01-02  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-url-regexp,
-	(gnus-button-mid-or-mail-regexp, gnus-button-alist,
-	(gnus-header-button-alist): Regexps are case insensitive here.
-
-2003-01-02  Simon Josefsson  <jas@extundo.com>
-
-	* dig.el (query-dig): Doc fix.
-
-2003-01-02  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-fetch-selected-article): Update whole
-	summary buffer line, not just the download mark.
-
-2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-goto-subjects): New function.
-	(gnus-summary-insert-dormant-articles): New command and
-	keystroke.
-
-	* gnus-cache.el (gnus-summary-insert-cached-articles): Use new
-	function for mass insertion of subjects.
-
-	* nndraft.el (nndraft-generate-headers): Don't move point.
-
-	* gnus.el (nnheader): Require nnheader.
-
-	* nndraft.el (nndraft-request-associate-buffer): Use
-	make-local-variable.
-
-2003-01-02  Michael Shields  <shields@msrl.com>
-
-	* nndraft.el (nndraft-request-associate-buffer): Make
-	write-contents-hooks buffer-local before setting it.
-
-2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-group-parameter-value): Take an extra param.
-	(gnus-group-fast-parameter): Let group param results be nil.
-
-	* gnus-art.el (gnus-article-forward-header): New function.
-	(article-date-ut): Use it to remove continuation date headers.
-
-	* gnus-sum.el (gnus-summary-walk-group-buffer): Supply prompt to
-	read-event.
-	(gnus-summary-remove-bookmark): Clean up.
-	(gnus-summary-set-bookmark): Clean up.
-
-	* gnus-util.el (gnus-read-event-char): Take an optional prompt.
-
-	* gnus.el (gnus-group-startup-message): Bind data-directory to
-	the Gnus etc directory.
-
-2003-01-01  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-summary-prepare-exit): added slots for spam- and
-	ham-processing of articles; use the new
-	spam-group-(spam|ham)-contents-p functions
-	(spam-group-spam-contents-p, spam-group-ham-contents-p): new
-	convenience functions
-	(spam-mark-junk-as-spam-routine): use the new
-	spam-group-spam-contents-p function
-
-	* gnus.el (spam-process, spam-contents, spam-process-destination):
-	added new parameters with corresponding global variables
-	(gnus-group-spam-exit-processor-ifile,
-	gnus-group-spam-exit-processor-bogofilter,
-	gnus-group-spam-exit-processor-blacklist,
-	gnus-group-spam-exit-processor-whitelist,
-	gnus-group-spam-exit-processor-BBDB,
-	gnus-group-spam-classification-spam,
-	gnus-group-spam-classification-ham): added new symbols for the
-	spam-process and spam-contents parameters
-
-	* spam.el (spam-ham-marks, spam-spam-marks): changed list
-	customization and list itself to store mark symbol rather than
-	mark character.
-	(spam-bogofilter-register-routine): added logic to generate mark
-	values list from spam-ham-marks and spam-spam-marks, so (member)
-	would work.
-
-2003-01-02  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-cross-post-followup-to): Fix comment.
-
-2003-01-01  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-ham-marks, spam-spam-marks): changed list
-	customization and list itself to store mark symbol rather than
-	mark character.
-	(spam-bogofilter-register-routine): added logic to generate mark
-	values list from spam-ham-marks and spam-spam-marks, so (member)
-	would work.
-
-2003-01-01  Raymond Scholz  <ray-2002@zonix.de>
-
-	* message.el (message-signature-insert-empty-line): New variable.
-
-2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el: Renamed functions and variables: "xpost" ->
-	"cross-post", "-fup2" -> "-followup-to".
-	(message-cross-post-old-target, message-cross-post-default,
-	message-cross-post-note, message-followup-to-note,
-	message-cross-post-note-function): New variables names.
-	(message-xpost-old-target, message-xpost-default,
-	message-xpost-note, message-fup2-note,
-	message-xpost-note-function): Removed variable names.
-	(message-cross-post-followup-to-header,
-	message-cross-post-insert-note, message-cross-post-followup-to):
-	New function names.
-	(message-xpost-fup2-header, message-xpost-insert-note,
-	message-xpost-fup2): Removed function names.
-
-2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-send-mail): Added message-cleanup-headers to
-	prevent newlines in headers.
-
-2003-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* dns.el (dns-make-network-process): Comment.
-
-	* gnus-sum.el (gnus-summary-display-while-building): Default to
-	nil.
-
-2003-01-01  Wes Hardaker  <wes@hardakers.net>
-
-	* gnus-sum.el (gnus-summary-display-while-building): New
-	variable.
-
-2003-01-01  Raymond Scholz  <ray-2003@zonix.de>
-
-	* deuglify.el (gnus-outlook-rearrange-article): Kill overlays
-	before rearranging the article.
-
-2003-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nndraft.el (nndraft-generate-headers): New function.
-	(nndraft-request-associate-buffer): Use it to write headers on
-	buffer save.
-
-	* message.el (message-generate-headers): Let the function be a
-	lambda form.
-	(message-draft-headers): New variable.
-
-	* gnus-msg.el (gnus-inews-make-draft-meta-information): New
-	function.
-	(gnus-setup-message): Use it.
-
-	* message.el (message-generate-headers-first): Doc fix.
-	(message-setup-1): Use new function for getting which headers to
-	generate.
-	(message-headers-to-generate): New function.
-
-2003-01-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-save-alist): Make directory.
-
-2002-12-31  Reiner Steib  <4uce.02.r.steib@gmx.net>
-
-	* gnus-sum.el (gnus-summary-limit-to-age): Make prompt string
-	mention negatives.
-
-2002-12-31  Raymond Scholz  <ray-2002@zonix.de>
-
-	* deuglify.el (gnus-outlook-rearrange-article): Use
-	`transpose-regions' instead of tempering the kill-ring.
-	(gnus-article-outlook-deuglify-article): Rehighlight article
-	instead of a complete redisplay.
-
-2002-12-31  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el: most defvars are defcustoms now
-
-	patches from Michael Shields  <shields@msrl.com>
-
-	* spam.el (spam-bogofilter-articles): Select the article
-	body using gnus-summary-show-article t instead of
-	gnus-summary-select-article; this presents the raw text
-	without running any hooks.
-
-	* spam.el (spam-bogofilter-articles): Use message-remove-header
-	to remove headers; the old way incorrectly removed just the first
-	line of folded headers.
-
-2002-12-31  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-start.el (gnus-load): Replace `ding-file' with `file'.
-
-2002-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-start.el (gnus-load): New function.
-	(gnus-read-newsrc-el-file): Use it.
-
-2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* gnus-art.el (gnus-button-valid-fqdn-regexp): New variable.
-	(gnus-button-handle-apropos-documentation): New function.
-	(gnus-button-handle-ctan): New function.
-	(gnus-button-alist): Use them.  Improve some regexps.
-	(gnus-button-prefer-mid-or-mail): Addition to doc-string.
-
-2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-subscribed-p): New function.
-	(message-send-mail): Use it.
-	* mml.el (mml-preview-insert-mft): New function.
-	(mml-preview): Use it.
-
-2002-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-thread-latest-date): Protect against errors
-	when sorting by date.
-
-	* gnus-art.el (gnus-article-edit-mode): New variable.
-	(gnus-article-setup-buffer): Warn user about discarding edits.
-
-	* gnus-sum.el (gnus-summary-pipe-output): Clean up.
-	(gnus-summary-pipe-output): Take a symbolic prefix to save all
-	headers.
-
-	* mm-uu.el (mm-uu-configure-list): Default to (shar . disabled).
-
-2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* message.el (message-completion-alist): Added "Mail-Followup-To"
-	and "Mail-Copies-To".
-
-2002-07-21  Jesper harder  <harder@ifa.au.dk>
-
-	* gnus-group.el: Add key bindings for
-	gnus-group-sort-groups-by-real-name and
-	gnus-group-sort-selected-groups-by-real-name.
-
-2002-07-21  Jesper harder  <harder@ifa.au.dk>
-
-	* gnus.texi (Sorting Groups): Add key bindings for
-	gnus-group-sort-groups-by-real-name and
-	gnus-group-sort-selected-groups-by-real-name.
-
-2002-12-30  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-use-dig): new variable for blackhole checking
-	through dig.el
-	(spam-check-blackholes): added dig.el checking functionality and
-	more verbose reporting; query-dig is autoloaded from dig.el
-	(spam-use-blackholes): disabled by default
-	(spam-blackhole-servers): removed rbl.maps.vix.com from the
-	blackhole servers list
-
-2002-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-required-headers): New variable.
-
-2002-12-30  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* dig.el (query-dig): new function
-
-2002-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* flow-fill.el (fill-flowed): Don't infloop on too long fill
-	prefixes.
-
-	* dns.el (query-dns): Protect against errors.
-
-	* gnus-msg.el (gnus-article-yanked-articles): New variable.
-	(gnus-inews-add-send-actions): Mark all answered messages as
-	answered.
-
-2002-08-10  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* nnmail.el (nnmail-split-it): Added tracing to
-	`:' split rule
-
-2002-08-13  Hrvoje Niksic  <hniksic@xemacs.org>
-
-	* mm-decode.el (mm-mailcap-command): Remove the quotes around '%s'
-	and "%s" so we don't overquote them.
-
-2002-08-13  Hrvoje Niksic  <hniksic@xemacs.org>
-
-	* (mm-display-external): Display the actual command that has been
-	executed in the echo area.
-
-2002-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-topic.el (gnus-topic-display-missing-topic): Bind entry.
-
-	* message.el (message-with-reply-buffer): New macro.
-	(message-fetch-reply-field): Use it.
-	(message-insert-wide-reply): New command and keystroke.
-	(message-carefully-insert-headers): New function.
-	(message-insert-to): Use new function.
-
-	* gnus-topic.el (gnus-topic-display-missing-topic): New function.
-	(gnus-topic-goto-missing-group): Use it.
-
-	* message.el (message-required-news-headers): Removed Lines.
-	(message-reply): Don't insert References first.
-	(message-followup): Ditto.
-	(message-make-references): New function.
-	(message-followup): Set message-reply-headers before generating
-	the buffer stuff.
-
-2002-12-29  Jesper Harder  <harder@ifa.au.dk>
-
-	* mml.el (mml-generate-mime-1): Reverse the order of
-	encoding/flowing.
-
-2002-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnmail.el (nnmail-expiry-target-group): Mark articles as read
-	after moving them.
-
-	* gnus-sum.el (gnus-summary-dummy-line-format): Update format to
-	fit with newer standard format.
-	(gnus-summary-make-false-root-always): New variable.
-	(gnus-gather-threads-by-subject): Use it.
-
-	* message.el (message-get-reply-headers): Take an address list
-	optional argument.
-
-2002-12-28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-keep-backlog): Change default to 20.
-
-	* gnus-agent.el (gnus-agent-check-overview-buffer): Start from
-	start.
-	(gnus-agent-check-overview-buffer): Remove negative article
-	numbers.
-
-	* nnmail.el (nnmail-split-fancy-with-parent-ignore-groups): Doc fix.
-	(nnmail-cache-ignore-groups): Doc fix.
-
-	* nnimap.el (nnimap-debug): Made into a flag and defcustomed.
-	(nnimap-debug-buffer): New variable.
-	(nnimap-debug): Use it.
-
-2002-12-28  Lars Magne Ingebrigtsen  <kgreiner@xpediantsolutions.com>
-
-	* gnus.el (gnus-summary-high-uncached-face): New color scheme.
-
-2002-12-28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-check-overview-buffer): Sort lines if
-	they aren't already sorted.
-
-2002-12-28  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-mode-menu): Add ellipses to menu items
-	expecting user interaction.
-	(message-mode-field-menu): do.
-
-2002-12-26  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-highlight-line): Don't bind `list' --
-	it isn't used any more.
-
-2002-12-22  Jesper Harder  <harder@ifa.au.dk>
-
-	* binhex.el (binhex-decoder-program): Fix docstring.
-
-2002-12-21  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* mm-decode.el (mm-mailcap-command): Do not backslash-quote
-	special chars if the mailcap file uses single quotes around %s.
-	From Laurent Martelli <laurent@bearteam.org>.
-
-2002-12-19  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus-int.el (gnus-request-update-info): nnchoke-r-u-i might not
-	return the info object.
-
-2002-12-18  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus-int.el (gnus-request-update-info): Artificially add
-	(1 . (1- min)) to the read range, in case the backend doesn't
-	store marks for nonexistent articles.
-
-2002-12-17  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* binhex.el (binhex-insert-char): Eval-and-compile.
-
-2002-12-17  Jesper Harder  <harder@ifa.au.dk>
-
-	* lpath.el: Add tool-bar-local-item-from-menu.
-
-	* message.el (message-tool-bar-local-item-from-menu): New function.
-	(message-tool-bar-map): Use it.
-
-2002-12-14  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-uu.el (gnus-uu-digest-headers): Mention nil value in docstring.
-
-	* gnus-art.el (gnus-article-header-rank): Last header in
-	gnus-sorted-header-list should have higher rank than non-members.
-
-2002-12-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-close-agent): Don't blank out the list of
-	covered methods.
-
-2002-12-12  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* nntp.el (nntp-with-open-group-first-pass): Do not wrap in
-	eval-when-compile.  Suggested by Kevin Greiner.
-
-2002-12-13  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-max-fetch-size): New, defcustom.
-	(gnus-agent-fetch-headers): Initialize gnus-agent-overview-buffer
-	even though no headers may have been fetched
-	(gnus-agent-fetch-group-1, and perhaps others, require this
-	behavior).
-	(gnus-agent-fetch-group-1): Fetch articles in chucks so that the
-	server buffer is constrained by gnus-agent-max-fetch-size.
-	Multiple chunks in the same group may perform arbitrarily large
-	updates.
-
-2002-12-12  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus-agent.el (gnus-agent-fetch-selected-article): Added call to
-	gnus-summary-update-download-mark to update the article in the
-	summary.
-
-2002-12-11  Kevin Greiner <kgreiner@xpediantsolutions.com>
-
-	* gnus.el (gnus-summary-high-uncached-face,
-	gnus-summary-normal-uncached-face, gnus-summary-low-uncached-face)
-	New faces.
-
-	* gnus-agent.el (gnus-agent-downloaded-article-face): REMOVED.  I
-	added this on 2002-11-23 but it just wasn't working out as
-	intended.  The idea isn't entirely dead, three new faces
-	gnus-summary-*-uncached-face are being added to gnus.el to provide
-	the basis for an improved implementation.
-	(gnus-agent-read-servers): Undo the change made on 2002-11-23. The
-	proper file to open is lib/servers.
-	(gnus-summary-set-agent-mark): Expanded documentation.  Unmarking
-	(i.e. removing the article from gnus-newsgroup-downloadable) will
-	now restore the article's default mark rather than simply setting
-	no mark.
-	(gnus-agent-get-undownloaded-list): Corrected documentation.
-	Added code to set new summary local variable,
-	gnus-newsgroup-agentized.  Reworked impl so that it doesn't create
-	a temporary list.  No longer sets gnus-newsgroup-downloadable.
-	(gnus-agent-summary-fetch-group): Keep gnus-newsgroup-undownloaded
-	up to date.  Call new gnus-summary-update-download-mark to keep
-	summary buffer up-to-date.
-	(gnus-agent-fetch-selected-article): Keep
-	gnus-newsgroup-undownloaded up to date.
-	(gnus-agent-fetch-articles): Return list of articles that were
-	successfully fetched.
-	(gnus-agent-check-overview-buffer): No more thingatpt.
-	(gnus-agent-expire): No longer deletes NOV entries of unread
-	articles.
-	(gnus-agent-unread-articles): New function.
-	(gnus-agent-regenerate-group): The article number must be
-	terminated by a tab character.  Added more messages to report
-	repairs.  Inhibit quits while writing changes so it is now safe
-	have to quit regeneration.  Renamed gnus-tmp-downloaded back to
-	downloaded to 1) resolve the unbound references and 2) avoid
-	confusing this list with the gnus-tmp-downloaded in gnus-sum.el
-
-	* gnus-art.el (gnus-article-prepare): The agent
-	downloaded/undownloaded mark is no longer stored as the article's
-	mark.
-
-	* gnus-salt.el (gnus-tree-highlight-node): Added uncached as
-	gnus-summary-highlight may use it.  Added downloaded as
-	gnus-summary-highlight was using it.
-
-	* gnus-sum.el (gnus-undownloaded-mark): Changed from ?@ to ?- as
-	the download mark now follows Kai's +/- convention.
-	(gnus-downloaded-mark): Added ?+ mark.
-	(gnus-summary-highlight): Added rules to select
-	gnus-summary-high-uncached-face,
-	gnus-summary-normal-uncached-face, and
-	gnus-summary-low-uncached-face.  Removed the
-	gnus-agent-downloaded-article-face.
-	(gnus-summary-line-format-alist): Implemented the download flag
-	format (?O) as named in the manual.  This implementation displays
-	either gnus-undownloaded-mark, gnus-downloaded-mark, or
-	gnus-no-mark.
-	(gnus-newsgroup-agentized): New local variable that identifies
-	which groups are agentized.  While the agent is now on by default,
-	you don't have to agentize every server that you use.
-	(gnus-update-summary-mark-positions): Completed support for the
-	download type of mark.
-	(gnus-summary-insert-line): Added undownloaded to the parameters.
-	(gnus-summary-prepare-threads): Set gnus-tmp-downloaded for
-	reference by the gnus-summary-line-format-spec.
-
-	* nntp.el (nntp-with-open-group): This macro handles dropped or
-	broken connections by opening a new connection and repeating the
-	failed command.
-	(nntp-retrieve-headers-with-xover): Some NNTP servers respond to
-	XOVER commands preceeding the active articles with the nov entry
-	of the first available article.  When gnus connected to such a
-	server, the unexpected nov entry would result in duplicate lines
-	in the agent's overview file.  This patch fixes the duplicate
-	lines problem and improves performance by skipping over all
-	articles IDs that preceed the first nov entry in the server's
-	reply.
-
-2002-12-11  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-tmp-downloaded): New internal variable.
-	(gnus-summary-highlight): Use it instead of `downloaded'.
-	(gnus-summary-highlight-line): Ditto.
-
-	* gnus-agent.el (gnus-agent-regenerate-group): Ditto.
-
-2002-12-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-variable-list): Add gnus-agent-covered-methods.
-
-	* gnus-agent.el (gnus-agent-check-overview-buffer): Remove debug
-	calls.
-
-	* gnus-sum.el (gnus-summary-highlight-line): Don't set the
-	downloaded variable if we're in an uncovered group.
-
-	* gnus-agent.el (gnus-agent-downloaded-article-face): Change the
-	font to soemthing less noticeable.
-	(gnus-agent-group-covered-p): New function.
-
-2002-12-09  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-braid-nov): Remove corrupted lines.
-	Because of an unknown bug, the group buffer is saved in .overview
-	file.
-
-2002-12-09  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* nntp.el (nntp-send-command): Braino in last commit.  Replace
-	`and' with `or'.
-
-2002-12-08  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* nntp.el (nntp-send-command): Assume that echo does not happen
-	when nntp-open-connection-function is nntp-open-network-stream.
-	Suggested by Sebastian D.B. Krause <krause@my.gnus.org>.
-
-2002-12-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-retrieve-headers-1): Update the parser.
-
-2002-12-06  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-request-group): bugfix: don't erase
-	nntp-server-buffer if we aren't going to write to it.
-
-2002-12-04  Katsumi Yamaoka  <yamaoka@jpl.org>
-	Trivial patch from Itai Zukerman <zukerman@math-hat.com>.
-
-	* mm-decode.el (mm-w3m-safe-url-regexp): Fix parenthesis.
-
-2002-12-04  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* rfc2047.el (rfc2047-decode-region): Remove newlines between
-	decoded words.
-
-2002-12-03  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus.el (fboundp): After loading mm-util, make sure it was the
-	right one.
-
-2002-11-29  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-art.el (gnus-inhibit-mime-unbuttonizing): Moved here from
-	gnus-sum.  Made into a user option.
-
-	* gnus-sum.el (gnus-simplify-ignored-prefixes)
-	(gnus-summary-mark-article-as-unread)
-
-2002-11-29  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* time-date.el (date-to-time): Typo.
-
-	* parse-time.el: Typo.
-
-	* nnsoup.el (nnsoup-retrieve-headers): Typo.
-
-	* nnmail.el (nnmail-split, nnmail-process-unix-mail-format): Typos.
-
-	* nnimap.el:
-	(nnimap-split-rule, nnimap-find-minmax-uid): Typos.
-
-	* mm-encode.el (mm-safer-encoding): Typo.
-
-	* messcompat.el: Typo.
-
-	* message.el (message-face-alist): Typo.
-
-	* imap.el (imap-interactive-login, imap-open): Typos.
-
-	* ietf-drums.el (ietf-drums-text-token, ietf-drums-qtext-token): Typos.
-
-	* gnus.el: Typo.
-
-	* gnus-win.el (gnus-configure-frame): Typo.
-
-	* gnus-util.el (gnus-atomic-progn-assign): Typo.
-
-	* gnus-topic.el (gnus-topic-sort-topics): Typo.
-
-	* gnus-sum.el (gnus-summary-article-number)
-	(gnus-summary-read-group-1, gnus-summary-mark-article)
-	(gnus-summary-fetch-faq, gnus-refer-article-methods): Typos.
-
-	* gnus-mule.el (gnus-mule-add-group): Typo.
-
-	* gnus-mlspl.el (gnus-group-split-fancy): Typo.
-
-	* gnus-group.el (gnus-group-fetch-faq): Typo.
-
-	* gnus-art.el (gnus-decode-header-methods): Typo.
-
-	* flow-fill.el: Typo.
-
-2002-11-19  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* binhex.el (binhex-decode-region): Don't hardcode point-min == 1.
-
-2002-11-29  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-sum.el (gnus-simplify-ignored-prefixes)
-	(gnus-summary-mark-article-as-unread)
-	(gnus-mark-article-as-unread, gnus-summary-highlight-line):
-	Reformatting to avoid long lines.
-	(gnus-inhibit-mime-unbuttonizing): Moved to gnus-art.
-
-2002-11-28  Daiki Ueno  <ueno@unixuser.org>
-
-	* gnus-agent.el (gnus-agent-fetch-group-1): Article numbers should
-	be accessed through `mail-header-number'.
-
-2002-11-27  Kevin Greiner  <kgreiner@xpediantsolutions.com>
-
-	* gnus-sum.el (gnus-summary-insert-old-articles): No longer passes
-	compressed range to gnus-summary-insert-articles.
-
-2002-11-26  Kevin Ryde <user42@zip.com.au>
-
-	* gnus-art.el (gnus-mime-copy-part): Look for filename
-	parameter under content-disposition, not content-type.
-
-	* gnus-sum.el (gnus-summary-find-uncancelled): New function.
-	(gnus-summary-reselect-current-group): Use it.
-
-2002-11-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-uncached-articles): if
-	gnus-agent-load-alist fails, return ARTICLES.
-
-	* nnrss.el (nnrss-group-alist): Update the link of Jabber.
-
-2002-11-26  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-sum.el (gnus-summary-insert-old-articles): Remove
-	superfluous function call.
-	(gnus-summary-catchup-all, gnus-summary-catchup-all-and-exit):
-	Add warning to docstring.
-
-2002-11-26  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-agent.el: Autoload number-at-point instead.
-	(gnus-agent-check-overview-buffer): No warning for deactivate-mark.
-
-2002-11-26  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-check-overview-buffer): Explicitly
-	require thingatpt (for number-at-point) and protect against
-	deactivate-mark being unbound (on XEmacs).
-
-2002-11-25  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-check-overview-buffer): Make debugger
-	print message on entry.
-
-	From Kevin Greiner <kgreiner@xpediantsolutions.com>.
-
-	* gnus-range.el (gnus-range-difference): New function.
-	* gnus-sum.el (gnus-summary-insert-old-articles): Use it.
-
-2002-11-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-sum.el (gnus-summary-insert-old-articles): Use
-	gnus-remove-from-range instead of gnus-range-difference which
-	doesn't exist.
-
-2002-11-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-	From Kevin Greiner <kgreiner@xpediantsolutions.com>.
-
-	* gnus-agent.el (gnus-agent-downloaded-article-face): New face,
-	used for showing which articles have been downloaded.
-	(gnus-agent-article-alist): Format change.  Add documentation.
-	(gnus-agent-summary-mode-map): New keybinding `J s' for fetching
-	process-marked articles.
-	(gnus-agent-summary-fetch-series): Command for `J s'.  Articles
-	in the series are individually fetched to minimize lose of
-	content due to an error/quit.
-	(gnus-agent-synchronize-flags-server, gnus-agent-add-server): Use
-	gnus-message instead of message.
-	(gnus-agent-read-servers): Use file lib/methods instead of
-	lib/servers.  TODO: Why?
-	(gnus-summary-set-agent-mark): Adapt to new agent-alist format.
-	(gnus-agent-get-undownloaded-list): Remove articles that appear to
-	come from the agent.  This means that they are not downloaded.
-	(gnus-agent-fetch-selected-article): Don't use history.
-	(gnus-agent-save-history, gnus-agent-enter-history)
-	(gnus-agent-article-in-history-p, gnus-agent-history-path):
-	Removed function; history is not used anymore.
-	(gnus-agent-fetch-articles): Fix handling of crossposted articles.
-	(gnus-agent-crosspost): Started rewrite then realized that a typo
-	in gnus-agent-fetch-articles ensures that this function is never
-	called.  This will need to be fixed later.
-	(gnus-agent-check-overview-buffer): Some sanity checks on the
-	agent overview buffer.  This is a safety net used during
-	development.
-	(gnus-agent-flush-cache): The gnus-agent-article-alist format has
-	changed, write a number to the file indicating this.
-	(gnus-agent-fetch-headers): Rewrite to respect
-	gnus-agent-consider-all-articles without relying on the
-	`.fetched' files.  Make it fast.
-	(gnus-agent-braid-nov): Change resulting from
-	gnus-agent-fetch-headers change.
-	(gnus-agent-load-alist, gnus-agent-save-alist): Don't use
-	`.fetched' files.
-	(gnus-agent-read-agentview): New function, used by
-	gnus-agent-load-alist.
-	(gnus-agent-load-fetched-headers): Remove.
-	(gnus-agent-save-alist): Rewrite to accomodate new format.
-	(gnus-agent-fetch-group-1): Make sure list of articles is in the
-	same order as in gnus-newsgroup-headers.
-	(gnus-agent-expire): Document and implement extra args ARTICLES,
-	GROUP, FORCE.  Do not restrict usage.
-	(gnus-agent-uncached-articles): New function.
-	(gnus-agent-retrieve-headers): Use it.
-	(gnus-agent-regenerate-group): No longer needs to be called from
-	gnus-agent-regenerate.  Individual groups may be regenerated. The
-	regeneration code now fixes duplicate, and mis-ordered, NOV entries.
-	The article fetch dates are validated in the article alist.  The
-	article alist is pruned of entries that do not reference existing
-	NOV entries.  All changes are computed then applied with
-	inhibit-quit bound to t.  As a result, it is now safe to quit out of
-	regeneration.  The optional clean parameter has been replaced with
-	an optional reread parameter.  Clean is no longer necessary as
-	regeneration gets the appropriate setting from
-	gnus-agent-consider-all-articles.  The new reread parameter will
-	result in fetched, or all, articles being marked as unread.
-	(gnus-agent-regenerate): Removed code to regenerate the history
-	file as it is no longer used.
-
-	* gnus-start.el (gnus-make-ascending-articles-unread): New
-	function, for efficient mass-marking.
-
-	* gnus-sum.el (gnus-summary-highlight): Use new face for
-	downloaded articles.
-	(gnus-article-mark): Prefer to indicate read/unread status over
-	downloaded status.
-	(gnus-summary-highlight-line-0): New function, maybe rehighlights
-	line.
-	(gnus-summary-highlight-line): Use new face for downloaded
-	articles.
-	(gnus-summary-insert-old-articles): Improved performance by
-	replacing the initial LIST of older articles with a compressed
-	RANGE of older articles.  Some servers appear to lie about
-	their active range so the original list could contain millions
-	of article numbers.  The range is not expanded into a list
-	until the optional ALL parameter has been applied.
-
-2002-11-18  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-category-mode): Typo in doc string.
-
-2002-11-21  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el:
-	added patch from Andreas Fuchs <asf@void.at> to prevent apply errors
-
-	* spam.el: added `M s t' and `M s x' key mappings
-
-2002-11-20  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-morse-message): Narrow to body.
-
-2002-11-19  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-morse-message): Load
-	morse.el (unmorse-region not autoloaded in Emacs 20 nor XEmacs).
-	(unmorse-region): Autoload it instead.
-
-2002-11-18  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-morse-message): New function.
-	(gnus-summary-wash-map): Bind to `W m'.
-	(gnus-summary-make-menu-bar): Add.
-
-	* nnimap.el (nnimap-request-expire-articles): Compress sequence
-	before storing \Deleted mark on expired articles.
-
-2002-11-17  Shenghuo Zhu <zsh@cs.rochester.edu>
-	Trivial patch from Markus Rost <rost@math.ohio-state.edu>
-
-	* gnus-sum.el (gnus-summary-goto-unread): Doc fix - escape open
-	parens in column 0.
-
-2002-11-17  Juanma Barranquero  <lektu@terra.es>
-
-	* nnweb.el (nnweb-google-create-mapping): Fix typo.
-
-	* nnlistserv.el (nnlistserv-kk-create-mapping): Likewise.
-
-	* gnus-nocem.el (gnus-nocem-liberal-fetch): Likewise.
-
-2002-11-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-set-auto-save-file-name): Use
-	make-directory, to avoid the dependence on gnus-util.
-
-2002-11-16  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-callback-callback-function):
-	(nnimap-callback-buffer): Removed, these cannot be global but must
-	be embedded into the callback.
-	(nnimap-make-callback): New.  Embedd article number, callback and
-	buffer in function.
-	(nnimap-callback, nnimap-request-article-part): Update.
-
-2002-11-15  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mml.el (mml-preview): Bind message-this-is-mail if it is mail.
-
-2002-11-13  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus.el (gnus-summary-line-format): Document %C.
-
-2002-11-11  Simon Josefsson  <jas@extundo.com>
-
-	* pgg.el (pgg-encrypt, pgg-decrypt, pgg-sign, pgg-verify): Display
-	output when called interactively.
-
-2002-11-08  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-article-edit-exit): Kill local variables.
-
-	* message.el (message-draft-coding-system): Improve comment; use
-	mm-auto-save-coding-system for the default value.
-
-	* nndraft.el (nndraft-request-article): Revert to the state before
-	2002-10-29; regexp-quote mail-header-separator.
-
-2002-11-06  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-draft.el (gnus-draft-setup): Set gnus-message-group-art to
-	allow editing of drafts from an nnvirtual group.
-
-2002-11-06  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nndraft.el (nndraft-request-article): Replace emacs-mule with
-	mm-auto-save-coding-system.
-
-	* message.el (message-draft-coding-system): Default to
-	iso-2022-7bit.
-
-	* mm-util.el (mm-auto-save-coding-system): Undo last change to
-	restore the default value to emacs-mule or escape-quoted.
-
-2002-11-05  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-article-encrypt-body): Inhibit encrypting of
-	a delayed or a queued article as well as a draft.
-
-	* gnus-sum.el (gnus-summary-edit-article): Inhibit editing of a
-	delayed or a queued article in the raw format; treat a delayed
-	article as a raw article as well as a draft.
-	(gnus-summary-setup-default-charset): Clear gnus-newsgroup-charset
-	for the delayed group.
-
-	* nndraft.el (nndraft-request-article): Ignore auto save files for
-	a delayed or a queued article; don't bother to decode a queued
-	article; don't bind nnmail-file-coding-system for a queued article.
-
-	* nnmail.el (nnmail-split-fancy-with-parent): Ignore the delayed
-	and the queue group.
-
-2002-11-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-group.el (gnus-group-delete-group):
-	gnus-cache-active-hashtb might be void.
-
-2002-11-02  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-gpg.el (pgg-gpg-encrypt-region): Makes PGG respect the
-	setting of the default user ID.  From Raymond Scholz
-	<ray-2002@zonix.de>.
-
-2002-11-01  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-bodies.el (mm-body-encoding): Don't return 8bit for 7bit
-	charset.
-
-2002-10-31  Ted Zlatanov <tzz@lifelogs.com>
-	From Alex Schroeder <alex@emacswiki.org>
-	* spam-stat.el (spam-stat-process-directory): add dir to message
-	(spam-stat-reduce-size): No longer remove words
-	with values close to 0.5, because the default value is 0.2.
-
-2002-10-31  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-util.el (gnus-user-date-format-alist): Clarify and correct
-	documentation.
-
-2002-10-28  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-fetched-headers)
-	(gnus-agent-load-fetched-headers)
-	(gnus-agent-save-fetched-headers): Remove variable and two
-	functions.  Kevin Greiner's version of gnus-agent-fetch-headers
-	works better.
-	(gnus-agent-fetch-headers): New implementation from Kevin
-	Greiner.  Uses gnus-agent-article-alist to store information
-	about fetched messages which aren't on the server anymore.  The
-	trick is to return a list of considered messages to the caller,
-	but to only fetch those which haven't been fetched yet.
-
-2002-10-30  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-def.el (pgg-passphrase-cache-expiry): New, defcustom.
-
-	* pgg.el (pgg-passphrase-cache-expiry): Removed.
-
-2002-10-30  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* mm-view.el (mm-w3m-local-map-property): Make it work with older
-	versions of emacs-w3m than 1.3.3.
-
-	* lpath.el: Bind w3m-minor-mode-map.
-
-	* mm-view.el (mm-w3m-mode-command-alist)
-	(mm-w3m-mode-dont-bind-keys, mm-w3m-mode-ignored-keys): Removed.
-	(mm-w3m-mode-map): Undefined for Emacs21 and XEmacs.
-	(mm-setup-w3m): Simplified.
-	(mm-w3m-local-map-property): New function.
-	(mm-inline-text-html-render-with-w3m): Use it.
-
-	* gnus-art.el (gnus-article-wash-html-with-w3m): Use
-	mm-w3m-local-map-property.
-
-2002-10-29  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-util.el (mm-auto-save-coding-system): Default to
-	iso-2022-7bit.
-
-	* nndraft.el (nndraft-request-article): Decode an article using
-	the coding-system emacs-mule if it seems to have been saved using
-	emacs-mule.
-	(nndraft-request-replace-article): Use message-draft-coding-system
-	instead of mm-auto-save-coding-system for the draft or delayed
-	group.
-
-2002-10-28  Josh  <huber@alum.wpi.edu>
-
-	* mml.el (mml-mode-map): Fixed keybindings for mml-secure-*
-	functions.
-
-2002-10-28  Katsumi Yamaoka  <yamaoka@jpl.org>
-	From mah@everybody.org (Mark A. Hershberger).
-
-	* mm-url.el (mm-url-insert-file-contents): Make it return the same
-	type values ("url" size) regardless of the values of
-	mm-url-use-external.
-
-2002-10-26  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* nnimap.el (nnimap-request-article-part): Try harder to show
-	group name in debugging message.
-
-2002-10-25  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-save-fetched-headers): Create
-	directory if it doesn't exist.
-	(gnus-agent-fetch-headers): Remove old cruft that tried to
-	abstain from downloading articles more than once if
-	gnus-agent-consider-all-articles was true.  This is now done
-	properly via the .fetched files.
-
-2002-10-25  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nndraft.el (nndraft-request-article): Treat delayed articles
-	like drafts.
-
-2002-10-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-agent.el (gnus-agent-load-alist): Fix parenthesis.
-
-2002-10-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-save-alist, gnus-agent-load-alist):
-	Remove unused optional arg DIR and corresponding code.
-
-	* nnimap.el (nnimap-request-article-part): Include group name in
-	debugging output.
-
-2002-10-24  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus-agent.el (gnus-agent-fetch-headers): Add some comments.
-
-2002-10-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
-
-	* gnus-agent.el (gnus-agent-fetched-headers): New variable,
-	contains range of headers that have been fetched by the agent
-	already.  Compare gnus-agent-article-alist.
-	(gnus-agent-file-header-cache): Like
-	gnus-agent-file-loading-cache, but for gnus-agent-fetched-headers.
-	(gnus-agent-fetch-headers): Improve comment.  Revert to old
-	seen/recent logic.
-	Remember which headers have been fetched before and don't fetch
-	them again the next time round.
-	(gnus-agent-load-fetched-headers)
-	(gnus-agent-save-fetched-headers): New functions, for remembering
-	which headers have been fetched before.
-
-2002-10-23  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el: Remove useless bindings.
-
-2002-10-22  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-execute-command): Disable visual
-	features while searching.
-
-2002-10-22  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* pgg.el (pgg-snarf-keys): Do not refer unbinded local variables.
-
-2002-10-22  Simon Josefsson  <jas@extundo.com>
-
-	* pgg.el (pgg-encrypt, pgg-decrypt, pgg-sign, pgg-verify)
-	(pgg-snarf-keys): Add.
-
-2002-10-22  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el: Fbind bbdb-records.
-
-	* spam.el: Don't autoload bbdb-records.
-
-2002-10-22  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* spam.el: Set autoload for bbdb-records after loading bbdb-com to
-	prevent inf-loop.
-
-2002-10-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnslashdot.el: Removed some test lines.
-	More test.
-
-2002-10-21  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-agent.el (gnus-agent-fetch-headers): Remove articles that
-	are known to be downloaded already.
-
-2002-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mm-view.el (mm-text-html-renderer-alist): Add w3m-standalone.
-	(mm-text-html-washer-alist): Ditto.
-
-2002-10-19  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* nnheader.el (nnheader-remove-body): Fix an error of detecting
-	boundary between headers and body.
-	* nnml.el (nnml-parse-head): Ditto.
-
-2002-10-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnslashdot.el (nnslashdot-generate-active): Ignore any bogus
-	entries.
-
-	* gnus-group.el (gnus-fetch-group): Allow an optional
-	specification of the articles to select.
-
-	* gnus-srvr.el (gnus-server-prepare): Removed superfluous cdr.
-
-2002-10-20  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-agent.el (gnus-agent-fetch-group-1): After fetching
-	headers from the group, update variable `articles' to contain
-	only those numbers where headers exist.  (When fetching all
-	articles in a group, Gnus creates lots of numbers where there is
-	no articles.)
-
-2002-10-20  Steve Youngs  <youngs@xemacs.org>
-
-	* pgg-parse.el (pgg-parse-public-key-algorithm-alist): XEmacs
-	doesn't have the 'alist custom type, use cons cells instead.
-	(pgg-parse-symmetric-key-algorithm-alist): Ditto.
-	(pgg-parse-hash-algorithm-alist): Ditto.
-	(pgg-parse-compression-algorithm-alist): Ditto.
-	(pgg-parse-signature-type-alist): Ditto.
-
-	* pgg-gpg.el (pgg-gpg-extra-args): Fix custom mismatch.
-
-	* pgg-pgp5.el (pgg-pgp5-extra-args): Ditto.
-
-	* pgg-pgp.el (pgg-pgp-extra-args): Ditto.
-
-2002-10-19  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-open-server): Check imap-state in IMAP server
-	buffer.
-
-2002-10-18  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-spec.el (gnus-make-format-preserve-properties)
-	(gnus-xmas-format, gnus-parse-simple-format): Preserve text
-	properties also on XEmacs.  `gnus-xmas-format' is like format but
-	preserves text properties on XEmacs (though it only understands
-	simple format specs).  The variable
-	`gnus-make-format-preserve-properties' controls whether the
-	function is used, and is checked in `gnus-parse-simple-format'.
-	Patch by Paul Moore <gustav@morpheus.demon.co.uk>.
-
-	* gnus-agent.el (gnus-agent-fetch-articles): More debugging
-	output.
-	(gnus-agent-consider-all-articles): New variable.
-	(gnus-agent-get-undownloaded-list): Comment that marks todo item.
-	(gnus-agent-fetch-headers): Depending on
-	gnus-agent-consider-all-articles, maybe get all articles.
-	(gnus-category-predicate-alist, gnus-agent-read-p): New predicate
-	`read'.
-	(gnus-predicate-imples-unread): New function.
-	(gnus-agent-fetch-headers): Optimize to call
-	gnus-list-of-unread-articles if that is sufficient.
-	Check unseen and recent instead of seen and recent.
-	(gnus-agent-fetch-headers): Abstain from calling
-	gnus-list-range-intersection if range (a . b) would have (> a b).
-
-2002-10-18  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-send-mail): Make it possible to perform
-	edebug-defun.
-
-2002-10-18  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-button-man-handler): Change default to
-	`manual-entry' (defined in both emacsen).
-	(gnus-button-man-handler): Remove emacsen difference and use
-	`manual-entry'.
-
-2002-10-18  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* spam.el: Wrap autoload settings for bbdb-records,
-	executable-find and ifile-spam-filter with eval-and-compile.
-	(spam-display-buffer-contents): Remove.
-	(spam-bogofilter-score): Merge spam-display-buffer-contents.
-
-2002-10-17  Ted Zlatanov  <tzz@lifelogs.com>
-
-	* spam.el (spam-display-buffer-contents): New function.
-	(spam-bogofilter-score): use spam-display-buffer-contents, patch
-	from Katsumi Yamaoka <yamaoka@jpl.org>.
-
-2002-10-17  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* nnheader.el (nnheader-parse-naked-head): New function.
-	(nnheader-parse-head): Use the above function, in order to handle
-	continuation lines properly.
-	(nnheader-remove-body): New function.
-	(nnheader-remove-cr-followed-by-lf): New function.
-	(nnheader-ms-strip-cr): Use the above function.
-
-	* gnus-agent.el (gnus-agent-regenerate-group): Call
-	`nnheader-remove-body'; use `nnheader-parse-naked-head' instead of
-	`nnheader-parse-head'.
-	* gnus-cache.el (gnus-cache-possibly-enter-article): Ditto.
-
-	* gnus-msg.el (gnus-inews-yank-articles): Do not unfold
-	continuation lines by itself; call `nnheader-parse-naked-head'
-	instead of `nnheader-parse-head'.
-	* nndiary.el (nndiary-parse-head): Ditto.
-	* nnfolder.el (nnfolder-parse-head): Ditto.
-	* nnimap.el (nnimap-retrieve-headers-progress): Ditto.
-	* nnmaildir.el (nnmaildir--update-nov): Ditto.
-	* nnml.el (nnml-parse-head): Ditto.
-
-2002-10-17  Steve Youngs  <youngs@xemacs.org>
-
-	* gnus-art.el (gnus-button-man-handler): Add 'manual-entry' for
-	XEmacs, default to it if featurep 'xemacs.
-
-2002-10-16  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* spam-stat.el: Check for the existence of hash functions instead
-	of the Emacs version to decide whether to load cl.  Suggested by
-	Kai Gro,A_(Bjohann.
-
-2002-10-15  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-agent.el (gnus-agent-fetch-selected-article): Open history
-	if it isn't open yet.
-
-2002-10-14  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-group.el: Require mm-url only when compiling.
-	(gnus-group-fetch-charter): Require mm-url.
-
-	* spam-stat.el: Require cl for the functions gethash,
-	hash-table-count, make-hash-table and mapc for Emacs 20.
-	(puthash): Alias to cl-puthash for Emacs 20.
-	(with-syntax-table): New macro for Emacs 20.
-
-2002-10-12  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-spec.el (gnus-pad-form): Use gnus-string-width-function.
-
-2002-10-11  Ted Zlatanov <tzz@lifelogs.com>
-
-	* spam.el (spam-check-ifile): added ifile as a spam checking
-	backend, and spam-use-ifle as the variable to toggle that check.
-
-2002-10-12  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-beginning-of-line): New variable.
-	(message-beginning-of-line): Use it.
-
-2002-10-11  Ted Zlatanov <tzz@lifelogs.com>
-
-	* spam.el: more compilation fixes for BBDB
-
-	* spam-stat.el added code from Alex Schroeder <alex@gnu.org>
-	(spam-stat-reduce-size): Interactive.
-	(spam-stat-reset): New function.
-	(spam-stat-save): Interactive.
-
-2002-10-11  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus.el: Autoload gnus-delay-initialize.
-
-	* message.el: Autoload gnus-delay-article.
-
-2002-10-11  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-spec.el (gnus-balloon-face-function): Use the help-echo
-	text property in Emacs.
-
-2002-10-11  Simon Josefsson  <jas@extundo.com>
-
-	* mml2015.el (mml2015-pgg-decrypt, mml2015-pgg-clear-decrypt)
-	(mml2015-pgg-verify, mml2015-pgg-clear-verify): Remove CR.
-
-	* mml1991.el (mml1991-pgg-sign): Remove CR.
-
-2002-10-10  Simon Josefsson  <jas@extundo.com>
-
-	* mml2015.el (mml2015-pgg-decrypt): Set gnus details even when
-	decrypt failed.
-	(mml2015-trust-boundaries-alist): Removed.
-	(mml2015-gpg-extract-signature-details): Don't use it.
-	(mml2015-unabbrev-trust-alist): New.
-	(mml2015-gpg-extract-signature-details): Use it.
-
-2002-10-10  Ted Zlatanov <tzz@lifelogs.com>
-
-	* spam.el: compilation fixes, spam-check-bbdb function is nil if no
-	BBDB installed
-
-	* spam-stat.el: added code from Alex Schroeder <alex@gnu.org> to do
-	statistical analysis of spam in Lisp only
-
-2002-10-10  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-open-server): Re-open server if it isn't in
-	auth, selected or examine state.
-
-	* pgg-gpg.el (pgg-gpg-verify-region): Filter out stuff into output
-	buffer and error buffer depending on type of information.
-
-	* mml2015.el (mml2015-gpg-extract-signature-details): Parse
-	--status-fd stuff even if gpg.el is not used (revert earlier
-	change).
-	(mml2015-pgg-{clear-,}verify): Store both output and errors as
-	gnus details.
-	(mml2015-pgg-{clear-,}verify): Extract signature info from errors
-	buffer.
-
-	* pgg.el (pgg-verify-region): Use it.
-
-	* pgg-def.el (pgg-query-keyserver): New variable.
-
-	* pgg.el (pgg-decrypt-region): Bind pgg-default-user-id to
-	key-identifier in packet.  Is this a good idea?
-
-	* mml.el (mml-mode-map): Add security commands that operates on
-	MIME parts.
-	(mml-menu): And menu items for them.
-
-	* mml1991.el (mml1991-pgg-encrypt): Remove headers.
-
-	* mml.el (mml-parse-1): Support sender in #secure tags.
-
-	* mml1991.el (mml1991-pgg-sign): Only use message-sender if it is
-	defined.
-
-	* mml-sec.el (mml-smime-encrypt-buffer): Warn about combined signing.
-	(mml-pgp-encrypt-buffer): Support combined signing.
-
-	* mml1991.el (mml1991-mailcrypt-encrypt): Support combined signing.
-	(mml1991-gpg-encrypt): Ditto.
-	(mml1991-pgg-encrypt): Ditto.
-	(mml1991-encrypt): Pass sign parameter.
-
-	* mml-sec.el (mml-signencrypt-style-alist): Defcustom.
-	(mml-signencrypt-style): Mention the variable.
-
-2002-10-09  Simon Josefsson  <jas@extundo.com>
-
-	* mml1991.el (mml1991-pgg-sign): Bind pgg-default-user-id, not
-	pgg-gpg-user-id.
-
-	* pgg.el (pgg-insert-url-with-w3): Ignore errors.
-	(pgg-fetch-key-function): Nil if w3 is not installed.
-
-2002-10-08  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-agent.el (gnus-agent-fetch-selected-article): Bind
-	gnus-agent-current-history.
-
-2002-10-06  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-parse-status): Don't use read to read token.
-
-2002-10-05  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-agent.el (gnus-agent-fetch-selected-article): Do nothing
-	for methods not covered by the agent, and when unplugged.
-
-2002-10-05  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-gpg.el (pgg-gpg-encrypt-region): Query passphrase when
-	signing.
-
-	* gnus-agent.el (gnus-agent-read-servers): If getting method from
-	a named server fails, ignore the server.
-
-	* mml1991.el (mml1991-pgg-sign): Do QP.
-
-	* pgg-gpg.el (pgg-gpg-encrypt-region): Make signencrypt really
-	work.
-
-2002-10-04  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-gpg.el (pgg-gpg-encrypt-region): Make signencrypt work.
-
-	* pgg-pgp.el (pgg-pgp-verify-region): Inline
-	binary-write-decoded-region from MEL.
-
-	* pgg.el (pgg-encrypt-region): Support sign.
-
-	* pgg-gpg.el (pgg-gpg-encrypt-region): Ditto.
-
-	* mml2015.el (mml2015-pgg-encrypt): Ditto.
-
-	* pgg.el, pgg-def.el, pgg-parse.el, pgg-gpg.el, pgg-pgp5.el,
-	pgg-pgp6.el: Moved from ../pgg/.  Modifications compared to EMIKO
-	branch where PGG was taken from in the ChangeLog entries below.
-
-2002-10-01  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-pgp.el: Don't require mel.  Don't use luna.
-	(pgg-scheme-pgp-instance, pgg-make-scheme-pgp): Remove.
-	(pgg-pgp-process-region): Use expand-file-name instead of concat.
-	(pgg-pgp-process-region): Don't use binary-funcall.
-
-	* pgg-pgp5.el (pgg-pgp5-process-region): Don't use binary-funcall.
-
-	* pgg-gpg.el (pgg-gpg-process-region): Use expand-file-name
-	instead of concat.
-
-	* pgg-pgp5.el (pgg-pgp5-process-region): Ditto.
-
-2002-09-29  Simon Josefsson  <jas@extundo.com>
-
-	* pgg-parse.el (pgg-char-int, pgg-string-as-unibyte): Prevent byte
-	compile warnings.
-
-	* pgg.el (pgg-decrypt-region): Don't parse packet.
-
-	* pgg.el, pgg-gpg.el, pgg-pgp5.el: Don't depend on luna.el.
-
-2002-09-29  Daiki Ueno <ueno@unixuser.org>
-
-	* pgg.el: Remove dependency on calist.el.
-
-2002-09-28  Simon Josefsson  <jas@extundo.com>
-
-	* pgg.el (pgg-temporary-file-directory): New variable.
-	(pgg-verify-region): Don't assume set-buffer-multibyte exists.
-
-	* pgg-pgp5.el (pgg-pgp5-process-region, pgg-scheme-verify-region)
-	(pgg-scheme-snarf-keys-region): Use pgg-temporary-file-directory.
-
-	* pgg-parse.el (pgg-char-int): Defalias.
-	(pgg-format-key-identifier, pgg-byte-after, pgg-read-byte)
-	(pgg-read-bytes, pgg-read-body): Use it.
-	(pgg-decode-packets): Don't use MEL, use base64-*.
-	(pgg-parse-armor): Don't assume set-buffer-multibyte exists.
-	(pgg-string-as-unibyte): Defalias.
-	(pgg-parse-armor-region): Use it.
-
-	* pgg-gpg.el (pgg-gpg-process-region): Use
-	pgg-temporary-file-directory.
-
-	* luna.el: Don't def-edebug.
-
-	* pgg-pgp5.el (pgg-scheme-verify-region): Inline
-	binary-write-decoded-region from MEL.
-
-	* pgg-pgp5.el, pgg-gpg.el: Don't require mel.
-
-	* alist.el, calist.el: Don't require product/APEL.
-
-	* pgg-parse.el (top-level): Remove dependency on static.el,
-	pccl.el, mel.el.
-	(pgg-parse-crc24, pgg-parse-crc24-string): Only define if
-	`define-ccl-program' is boundp, instead of using broken.
-
-2002-10-01  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-required-mail-headers): Remove Lines:.
-
-2002-10-03  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Jesper Harder.
-
-	* gnus-group.el (gnus-group-fetch-charter,
-	gnus-group-fetch-control): Prompt for group if given a prefix
-	argument.
-	* gnus-sum.el (t): Add gnus-group-fetch-charter and
-	gnus-group-fetch-control to summary key map and menu.
-
-2002-10-03  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir--group-maxnum-art): fix maximum article
-	number when there are no articles.
-
-2002-10-03  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-agent.el (gnus-agent-summary-fetch-group): Optional prefix
-	arg ALL means to fetch all articles, not only downloadable ones.
-	(gnus-agent-fetch-selected-article): New function for
-	gnus-select-article-hook or gnus-mark-article-hook.
-
-2002-10-02  Katsumi Yamaoka  <yamaoka@jpl.org>
-	From Peter von der Ahe <nospam2159@daimi.au.dk>.
-
-	* gnus-ems.el (gnus-x-splash): Set coding-system-for-read to
-	raw-text.
-
-2002-09-30  Ted Zlatanov <tzz@lifelogs.com>
-
-	* spam.el: merged changes from pinard@iro.umontreal.ca (Fran,Ag(Bois
-	Pinard).
-	Major revamp of the code, documentation is in comments in the file
-	for now.
-
-2002-09-30  Simon Josefsson  <jas@extundo.com>
-
-	* mml2015.el (mml2015-pgg-clear-verify): Verifying in a unibyte
-	buffer seem to be needed?
-
-2002-09-29  Simon Josefsson  <jas@extundo.com>
-
-	* mml1991.el (pgg-output-buffer, pgg-errors-buffer): Prevent byte
-	compile warnings.
-
-	* mml1991.el (mml1991-function-alist): Add pgg.
-	(mml1991-pgg-sign, mml1991-pgg-encrypt): New functions.
-	(mml1991-pgg-encrypt): Fix recipients querying.
-
-2002-09-28  Simon Josefsson  <jas@extundo.com>
-
-	* mml2015.el (autoload): Autoload correct files.  Trivial patch
-	from dme@dme.org.
-	(mml2015-pgg-decrypt, mml2015-pgg-verify): Make sure either nil or
-	handle is returned.
-
-2002-09-27  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-start.el (gnus-fixup-nnimap-unread-after-getting-new-news):
-	Protect against non-existent of `nnimap-mailbox-info'.
-
-2002-09-27  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-start.el (gnus-fixup-nnimap-unread-after-getting-new-news): New.
-	(gnus-setup-news-hook): Use it.
-	(gnus-after-getting-new-news-hook): Ditto.
-
-	* nnimap.el (nnimap-fixup-unread-after-getting-new-news): Remove.
-
-2002-09-27  Katsumi Yamaoka  <yamaoka@jpl.org>
-	From Mats Lidell <matsl@contactor.se>.
-
-	* gnus-art.el (gnus-article-mode-syntax-table): Replace "-" to " ".
-
-2002-09-27  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* gnus-sum.el (gnus-nov-parse-line): When an error is signaled in
-	the part to decode encoded words, use raw words instead of decoded
-	words.
-
-2002-09-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnimap.el (nnimap-update-unseen): Use gnus-gethash-safe.
-
-	* mm-view.el (mm-w3m-mode-ignored-keys): New variable.
-	(mm-setup-w3m): Use it.
-
-2002-09-27  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-article-mode-syntax-table): Make M-. work in
-	article buffers.
-
-	* nnimap.el (nnimap-fixup-unread-after-getting-new-news): Autoload
-	it just in case.
-	(nnimap-update-unseen): New function; update unseen count in
-	`n-m-info'.
-	(nnimap-close-group): Call it.
-
-	* gnus-start.el (gnus-setup-news-hook): Add n-f-u-a-g-n-n.
-	(gnus-after-getting-new-news-hook): Ditto.
-
-	* nnimap.el (nnimap-retrieve-groups): Move the quick mail check
-	message into verboselevel 9.  Change slow mail check message.
-	(nnimap-retrieve-groups): Use prefixed names in n-mailbox-info.
-	(nnimap-fixup-unread-after-getting-new-news): New function, to be
-	used as a hook after getting new mail.
-
-2002-09-26  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-parse-resp-text-code): The UNSEEN value in
-	SELECT/EXAMINE is first unseen article, not number of unseen
-	articles.  Make them distinct by renaming the former to
-	`first-unseen' instead of `unseen'.
-
-	* nnimap.el (nnimap-retrieve-groups): Get uidvalidity and unseen
-	too.
-	(nnimap-retrieve-groups): Don't used cached data if uidvalidity
-	changed.
-	(nnimap-retrieve-groups): Store uidvalidity and unseen data too.
-
-	* gnus-int.el (gnus-server-unopen-status): Defcustom.
-
-	* mml-sec.el (mml-signencrypt-style): Docstring to font-lock
-	better.
-
-	* mml2015.el (mml2015-pgg-decrypt): Only add security information
-	if dissecting resulting buffer actually had any information.
-
-2002-09-26  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-group.el (gnus-group-sort-by-method): Remove `symbol-name'
-	because the function `string<' allows symbols.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Ditto.
-
-2002-09-25  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-forward-make-body): Revert an early change
-	because 8-bit utf-8 emails.
-
-2002-09-25  Bj,Av(Brn Torkelsson  <torkel@acc.umu.se>
-
-	* gnus-agent.el (gnus-category-line-format): Doc fixes (mostly added
-	links to Info)
-	* gnus-art.el (gnus-treat-highlight-signature):
-	* gnus-art.el (gnus-treat-buttonize):
-	* gnus-art.el (gnus-treat-buttonize-head):
-	* gnus-art.el (gnus-treat-emphasize):
-	* gnus-art.el (gnus-treat-strip-cr):
-	* gnus-art.el (gnus-treat-unsplit-urls):
-	* gnus-art.el (gnus-treat-leading-whitespace):
-	* gnus-art.el (gnus-treat-hide-headers):
-	* gnus-art.el (gnus-treat-hide-boring-headers):
-	* gnus-art.el (gnus-treat-hide-signature):
-	* gnus-art.el (gnus-treat-fill-article):
-	* gnus-art.el (gnus-treat-hide-citation):
-	* gnus-art.el (gnus-treat-hide-citation-maybe):
-	* gnus-art.el (gnus-treat-strip-list-identifiers):
-	* gnus-art.el (gnus-treat-strip-pgp):
-	* gnus-art.el (gnus-treat-strip-pem):
-	* gnus-art.el (gnus-treat-strip-banner):
-	* gnus-art.el (gnus-treat-highlight-headers):
-	* gnus-art.el (gnus-treat-highlight-citation):
-	* gnus-art.el (gnus-treat-date-ut):
-	* gnus-art.el (gnus-treat-date-local):
-	* gnus-art.el (gnus-treat-date-english):
-	* gnus-art.el (gnus-treat-date-lapsed):
-	* gnus-art.el (gnus-treat-date-original):
-	* gnus-art.el (gnus-treat-date-iso8601):
-	* gnus-art.el (gnus-treat-date-user-defined):
-	* gnus-art.el (gnus-treat-strip-headers-in-body):
-	* gnus-art.el (gnus-treat-strip-trailing-blank-lines):
-	* gnus-art.el (gnus-treat-strip-leading-blank-lines):
-	* gnus-art.el (gnus-treat-strip-multiple-blank-lines):
-	* gnus-art.el (gnus-treat-unfold-headers):
-	* gnus-art.el (gnus-treat-fold-headers):
-	* gnus-art.el (gnus-treat-fold-newsgroups):
-	* gnus-art.el (gnus-treat-overstrike):
-	* gnus-art.el (gnus-treat-display-xface):
-	* gnus-art.el (gnus-treat-display-smileys):
-	* gnus-art.el (gnus-treat-from-picon):
-	* gnus-art.el (gnus-treat-mail-picon):
-	* gnus-art.el (gnus-treat-newsgroups-picon):
-	* gnus-art.el (gnus-treat-body-boundary):
-	* gnus-art.el (gnus-treat-capitalize-sentences):
-	* gnus-art.el (gnus-treat-fill-long-lines):
-	* gnus-art.el (gnus-treat-play-sounds):
-	* gnus-art.el (gnus-treat-translate):
-	* gnus-art.el (gnus-treat-x-pgp-sig):
-	* gnus-art.el (gnus-mime-button-line-format):
-	* gnus-art.el (gnus-button-man-level):
-	* gnus-art.el (gnus-button-emacs-level):
-	* gnus-cus.el (gnus-group-parameters):
-	* gnus-gl.el (bbb-build-mid-scores-alist):
-	* gnus-group.el (gnus-group-line-format):
-	* gnus-mlspl.el (gnus-group-split-setup):
-	* gnus-mlspl.el (gnus-group-split):
-	* gnus-msg.el (gnus-mailing-list-groups):
-	* gnus-msg.el (gnus-posting-styles):
-	* gnus-nocem.el (gnus-nocem-issuers):
-	* gnus-score.el (gnus-score-regexp-bad-p):
-	* gnus-srvr.el (gnus-server-line-format):
-	* gnus-topic.el (gnus-topic-line-format):
-	* gnus.el (gnus-summary-line-format):
-	* mail-source.el (mail-sources):
-	* message.el (message-subscribed-address-file):
-	* nnmail.el (nnmail-split-fancy):
-
-2002-09-24  Evgeny Roubinchtein  <zhenya@freeshell.org>
-
-	* mail-source.el(mail-source-run-script): use `functionp' to test
-	whether the argument `script' is in fact a function.
-	(mail-sources): adjust the defcustom to allow users to specify a
-	function or a string as the value of the `:prescript' and
-	`:postscript' arguments of the `file' and `pop3' mail sources.
-
-2002-09-25  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir--grp-add-art): fix minimum article
-	number when article 1 does not exist.
-
-2002-09-25  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-art.el (gnus-button-handle-apropos-variable): Fall back to
-	apropos if apropos-variable does not exist.
-	(gnus-button-guessed-mid-regexp)
-	(gnus-button-handle-describe-prefix, gnus-button-alist): Better
-	regexes.  From Reiner Steib.
-	(gnus-button-handle-describe-function)
-	(gnus-button-handle-describe-variable): Doc fix.  From Reiner Steib.
-	(gnus-button-handle-describe-key, gnus-button-handle-apropos)
-	(gnus-button-handle-apropos-command): Doc fix.  From Reiner Steib.
-
-2002-09-25  Mark A. Hershberger  <mah@everybody.org>
-	Trivial patch.
-
-	* nnrss.el (nnrss-save-server-data): Save nnrss-group-alist in
-	the file.
-
-2002-09-24  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-1): Create nndraft:queue, nndraft:drafts.
-
-2002-09-24  Simon Josefsson  <jas@extundo.com>
-
-	* mml2015.el (top-level): Require mm-util for mm-make-temp-file.
-	(mml2015-use): Prefer PGG if installed.
-	(mml2015-function-alist): Add PGG wrappers.
-	(mml2015-gpg-extract-signature-details): Check mml2015-use too.
-	(mml2015-gpg-extract-signature-details): PGG strips "gpg: "
-	prefix, make regexp optionally skip it.
-	(mml2015-pgg-decrypt, mml2015-pgg-clear-decrypt)
-	(mml2015-pgg-verify, mml2015-pgg-clear-verify, mml2015-pgg-sign)
-	(mml2015-pgg-encrypt): New functions.
-	(defvar, autoload): Prevent byte-compile warnings.
-
-2002-09-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-	From TSUCHIYA Masatoshi <tsuchiya@namazu.org>.
-
-	* gnus-art.el (article-strip-banner): Check for the existence of
-	from header.
-
-2002-09-23  Kai Gro,b_(Bjohann  <grossjoh@ls6.informatik.uni-dortmund.de>
-
-	* gnus-art.el (gnus-button-guessed-mid-regexp): Improved regexp.
-	(gnus-button-alist): Improved regexp for
-	gnus-button-handle-mid-or-mail (false positives), fixed
-	gnus-button-handle-man entries.
-	From Reiner Steib.
-
-2002-09-23  Paul Jarc  <prj@po.cwru.edu>
-	From Josh Huber.
-
-	* nnmaildir.el (nnmaildir--update-nov): fix wrong-type error when
-	nnmail-extra-headers is non-nil.
-
-2002-09-23  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el: Store article numbers persistently.  General
-	revision.
-	(nnmaildir-request-expire-articles): handle 'immediate and 'never
-	for nnmail-expiry-wait; delete instead of moving if 'force is
-	given.
-
-2002-09-23  Simon Josefsson  <jas@extundo.com>
-	Trivial fix from beaker@iavmb.pl (Krzysztof J,Bj(Bdruczyk).
-
-	* smime.el (smime-sign-buffer): Get key and extra certs.
-	(smime-get-key-with-certs-by-email): Utility function.
-
-2002-09-21  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	Trivial patch from Micha Wiedenmann <mw-u1@gmx.de>
-
-	* gnus-soup.el (gnus-soup-add-article): Mark as read only when the
-	article exists.
-
-2002-09-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-next-group): Switch to the summary buffer.
-
-2002-09-20  Kai Gro,b_(Bjohann  <grossjoh@ls6.informatik.uni-dortmund.de>
-	From Reiner Steib.
-
-	* gnus-art.el (gnus-button-handle-custom,
-	gnus-button-handle-mid-or-mail,
-	gnus-button-handle-describe-{function,variable,key},
-	gnus-button-handle-apropos{,command,variable}): New functions.
-	(gnus-button-prefer-mid-or-mail,gnus-button-guessed-mid-regexp,
-	gnus-button-{man,emacs,mail}-level): New variables.
-	(gnus-button-alist): Use the above to buttonize emacs and mail
-	related links.
-
-2002-09-18  Juanma Barranquero  <lektu@terra.es>
-
-	* gnus-int.el (gnus-status-message): Fix spacing.
-
-	* imap.el (imap-continuation): Fix typos.
-
-2002-09-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-configure-posting-styles): Sort results.
-
-	* gnus-art.el (gnus-article-reply-with-original): Correct
-	with-current-buffer scope.
-
-	* message.el (message-completion-alist): Add Reply-To, From, etc.
-
-2002-09-18  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-request-expire-articles): Make flag setting
-	conditional.  From Nevin Kapur <nevin@jhu.edu>.
-
-2002-09-17  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-expiry-target): Don't search for which
-	articles exists here.
-	(nnimap-request-expire-articles): Do it here instead.  Only expire
-	when articles are found.  Suggested by Nevin Kapur
-	<nevin@jhu.edu>.
-
-2002-09-17  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Reiner Steib <reiner.steib@gmx.de>.
-
-	* message.el (message-strip-subject-trailing-was)
-	(message-change-subject, message-add-archive-header)
-	(message-xpost-fup2-header, message-xpost-insert-note)
-	(message-xpost-fup2, message-reduce-to-to-cc): New functions
-	adopted from message-utils.el.  Add functions to the keymap, mode
-	describtion and menu.
-	(message-change-subject,message-xpost-fup2): Signal error if
-	current header is empty.
-	(message-xpost-insert-note): Changed insert position.
-	(message-archive-note): Ensure to insert note in message body (not
-	in head).
-	(message-archive-header, message-archive-note)
-	(message-xpost-default, message-xpost-note, message-fup2-note)
-	(message-xpost-note-function): New variables adopted from
-	message-utils.el.  Changed some doc-strings.
-	(message-mark-insert-{begin,end}): Rename from
-	message-{begin,end}-inserted-text-mark (message-utils.el), changed
-	values.
-	(message-subject-trailing-was-query)
-	(message-subject-trailing-was-ask-regexp)
-	(message-subject-trailing-was-regexp): New variables.
-	(message-to-list-only): Added doc-string and menu entry.
-
-	* message-utils.el: Removed.  Functions are now in message.el.
-
-2002-09-16  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-reply-with-original,
-	gnus-article-followup-with-original): Switch to
-	gnus-summary-buffer before reply/followup.
-
-2002-09-15  John Paul Wallington  <jpw@shootybangbang.com>
-
-	* gnus-sum.el (gnus-summary-toggle-header): The article window may
-	not exist. Toggle it anyway.
-
-2002-09-13  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-copy-article-buffer): Bind mail-header-separator.
-
-	* gnus-art.el (article-fill-long-lines): Fill-paragraph properly.
-	Trivial patch from Urban Engberg <ue@ccieurope.com>.
-
-	* rfc2047.el (message-posting-charset): Defvar it.
-	(rfc2047-charset-encoding-alist): Use B for iso-8859-7 and
-	iso-8859-8. Fix doc.  Suggested by Dave Love <fx@gnu.org>.
-
-	* mail-source.el (mail-source-fetch): Hide password.
-
-	* gnus-sum.el (gnus-summary-next-group): Semi-exit only when needed.
-
-2002-09-12  Katsumi Yamaoka  <yamaoka@jpl.org>
-	From John Paul Wallington <jpw@shootybangbang.com>.
-
-	* gnus.el (gnus-visual, gnus-meta): Fix typo.
-
-2002-09-11  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-article-address-banner-alist): Doc fix.
-
-2002-09-11  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-expiry-target): Only expiry-target existing articles.
-	(nnimap-split-rule): Doc fix.
-	(nnimap-request-expire-articles): Cleanup code.
-
-2002-09-11  Katsumi Yamaoka  <yamaoka@jpl.org>
-	From TSUCHIYA Masatoshi <tsuchiya@namazu.org>.
-
-	* gnus-art.el (gnus-article-address-banner-alist): New option.
-	(article-strip-banner): Refer the above option to split banners of
-	free mail servers, when no group parameter is specified.
-
-2002-09-10  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nntp.el (nntp-wait-for-string): Check for a process in the
-	current buffer instead of `nntp-server-buffer'.
-
-2002-09-09  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-button-man-handler): New variable.
-	(gnus-button-alist): Use g-b-handle-man.
-	(gnus-button-handle-man): New, call g-b-man-handler.
-
-2002-09-08  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-button-alist): Buttonize man page links.
-
-2002-09-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-dumbquotes-map): Add \230.
-
-2002-09-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-srvr.el (gnus-browse-make-menu-bar): Add "d".
-
-	* gnus-sum.el (gnus-summary-limit-to-unseen): New command and
-	keystroke.
-
-	* gnus-srvr.el (gnus-browse-describe-group): New command and
-	keystroke.
-
-2002-09-06  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-article-treat-body-boundary): Don't quote a
-	value for gnus-decoration property.
-
-2002-09-06  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* nnmail.el (nnmail-cache-fetch-group): Don't return "" (empty
-	string) as group name in case we have a CRLF in the file.
-
-2002-09-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* rfc1843.el (rfc1843-decode-loosely): Move to mime customization
-	group.
-	(rfc1843-decode-hzp): do.
-	(rfc1843-newsgroups-regexp): do.
-
-2002-09-04  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-canlock-generate): Make sure sha1 doesn't
-	call external programs.
-
-2002-09-03  Simon Josefsson  <jas@extundo.com>
-
-	* nntp.el (nntp-wait-for-string): Dont infloop if process died.
-
-	* gnus-agent.el (gnus-agent-batch): Add doc.
-
-2002-09-03  Josh Huber  <huber@alum.wpi.edu>
-
-	* gnus-msg.el (gnus-summary-handle-replysign): Change the order we
-	check for signed and encrypted parts.
-	* mml.el (mml-parse-1): Correct small typo which preventing
-	setting recipients in a secure tag.
-
-2002-09-03  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-util.el (mm-coding-system-priorities): Default to a list of
-	iso-2022-jp and others for the Japanese environment.
-
-2002-09-03  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-util.el (gnus-frame-or-window-display-name): Exclude
-	invalid display names.
-
-2002-08-30  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-fetch-control): Fix typo in last
-	commit.  From Reiner Steib <4uce.02.r.steib@gmx.net>.
-
-2002-08-26  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus.el (gnus-group-charter-alist): New option.
-	(gnus-group-fetch-control-use-browse-url): New option.
-
-	* gnus-group.el (gnus-group-fetch-charter): New function.
-	(gnus-group-fetch-control): New function.
-	Add them to the keymap and menu. Require mm-url.
-
-2002-08-30  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-mlspl.el (gnus-group-split-fancy): Doc fix.
-	From Alex Schroeder <alex@emacswiki.org>.
-
-2002-08-29  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-group.el (gnus-group-make-menu-bar): Add ellipses to menu
-	items expecting user interaction.
-
-	* gnus-topic.el (gnus-topic-make-menu-bar): do.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): do.
-
-	* gnus-srvr.el (gnus-server-make-menu-bar): do.
-
-	* mml.el (mml-menu): do.
-
-2002-08-28  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mail-source.el (mail-source-touch-pop): New function.
-
-	* message.el (message-smtpmail-send-it): New function.
-	(message-send-mail-function): Add it for a candidate.
-
-2002-08-27  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-msg.el (posting-charset-alist): Use
-	gnus-define-group-parameter instead of defcustom.
-	(gnus-put-message): Handle SPC in GCC.
-	(gnus-inews-insert-gcc): Ditto.
-	(gnus-inews-insert-archive-gcc): Ditto.
-
-2002-08-26  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-agent.el (gnus-agent-auto-agentize-methods): New variable.
-	(gnus-agentize): Auto agentize all nntp and nnimap groups.
-	(gnus-agent-possibly-save-gcc): Autoload.
-	Suggested by (KOSEKI Yoshinori) <kose@meadowy.org>.
-
-2002-08-26  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus.el (gnus-other-frame-function): New user option.
-	(gnus-other-frame): Use it; add a doc-string; make it work with
-	the gnuclient program.
-
-	* gnus-util.el (gnus-frame-or-window-display-name): New function.
-
-	* lpath.el: Fbind `frame-parameter', `make-frame-on-display',
-	`device-connection' and `dfw-device'.
-
-2002-08-22  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-art.el (gnus-emphasis-alist): Strikethru had a lot of false
-	positives, make it stricter.  From Jochen Hein (trivial change).
-
-2002-08-21  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus.el (gnus-other-frame): Trivial fix.
-
-2002-08-21  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus.el (gnus-other-frame-parameters): New user option.
-	(gnus-other-frame-object): New variable.
-	(gnus-other-frame): Make it search for existing Gnus frame; don't
-	read new news; delete frame on exit.
-
-	* gnus-util.el (gnus-select-frame-set-input-focus): New function.
-
-	* lpath.el: Fbind w32-focus-frame and x-focus-frame.
-
-2002-08-20  Katsumi Yamaoka  <yamaoka@jpl.org>
-	From $B>.4X(B $B5HB'(B (KOSEKI Yoshinori) <kose@meadowy.org>.
-
-	* message.el (message-set-auto-save-file-name): Add support for
-	the Cygwin Emacs; the system-type is `cygwin'.
-	* nnheader.el (nnheader-file-name-translation-alist): Ditto.
-
-2002-08-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-button-url-regexp): Use POSIX regexp if possible.
-
-	* nnmh.el (nnmh-request-list-1): Use %.0f instead of %d to
-	avoid arithmetic errors.
-
-2002-08-20  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el: Don't fbind `gnus-article-replace-with-quoted-text'.
-
-2002-08-19  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-ignored-supersedes-headers): Add X-Hashcash.
-	(message-ignored-resent-headers): Add envelope From.
-
-2002-08-18  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus.el (gnus-summary-line-format): Document %k specifier.
-
-2002-08-17  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-sum.el (gnus-summary-line-message-size): New function.
-	(gnus-summary-line-format-alist): Use it.
-
-2002-08-15  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (article-make-date-line): Refer to the value for
-	`gnus-article-time-format' in the summary buffer.
-
-	* message.el (message-cite-prefix-regexp): Exclude ":" and ",A;(B".
-
-2002-08-14  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-button-alist): Use ' not ` for default value
-	quoting.
-	(gnus-button-alist): Fix doc.
-	(gnus-header-button-alist): Use ' not ` for default value quoting.
-	(gnus-header-button-alist): Don't inline gnus-button-url-regexp,
-	rationale similar to 2002-05-01 change.
-	(gnus-article-add-buttons-to-head): Evaluate expression.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Add MIME button option.
-
-2002-08-14  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-font-lock-keywords): Refer to the value for
-	`message-cite-prefix-regexp' dynamically.
-
-2002-08-13  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-decode-header-methods): Doc fix.
-
-2002-08-12  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-shell-open): Allow non-list `imap-shell-program'.
-	(imap-shell-open): Skip initial junk before IMAP greeting.
-
-2002-08-11  Simon Josefsson  <jas@extundo.com>
-
-	* message-utils.el (message-xpost-default,
-	message-xpost-fup2-header, message-xpost-fup2): Fixed
-	Typos.  Trivial changes from Reiner Steib
-	<4uce.02.r.steib@gmx.net>.
-
-2002-08-09  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-canlock-password): Set
-	canlock-password-for-verify to newly generated canlock-password.
-	When Emacs is restarted, Custom makes sure this is set, but during
-	the same session we must set it manually.
-
-2002-08-07  Jesper Harder  <harder@ifa.au.dk>
-
-	* yenc.el: New file.
-
-	* mm-uu.el (mm-uu-yenc-decode-function): New variable.
-	(mm-uu-type-alist): Add yenc.
-	(mm-uu-yenc-filename): New function.
-	(mm-uu-yenc-extract): New function.
-
-	* mm-bodies.el (mm-decode-content-transfer-encoding): Add yenc.
-
-2002-08-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* dgnushack.el (merge): Don't use coerce.
-
-2002-05-27  Jesper Harder  <harder@ifa.au.dk>
-
-	* mailcap.el (mailcap-mime-data): Test window-system rather than
-	mm-device-type.
-	(mailcap-mime-data): Call xdvi and gv with "-safer".
-
-	* mm-util.el: Don't define mm-device-type.
-
-2002-08-05  Simon Josefsson  <jas@extundo.com>
-
-	* mm-util.el (mm-coding-system-priorities): coding-system type not
-	supported everywhere.
-
-2002-08-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bumped version number.
-
-2002-08-04 01:48:57 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.07 is released.
-
-2002-08-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-thread-sort-functions): Doc fix.
-	(gnus-article-sort-functions): Doc fix.
-	(t): New keystroke.
-	(gnus-article-sort-by-random): New function.
-	(gnus-thread-sort-by-random): New function.
-
-2002-08-02  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-logic.el (gnus-advanced-integer): Swap arguments in
-	funcall.  From Scott A Crosby <scrosby@cs.rice.edu>.
-
-2002-07-31  Danny Siu  <dsiu@adobe.com>
-
-	* nnimap.el (nnimap-split-articles): do not call nnmail-fetch-field
-	when splitting malformed messages without message-id
-
-2002-07-28  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Niklas Morberg <niklas.morberg@axis.com>.
-
-	* nnweb.el (nnweb-type, nnweb-type-definition)
-	(nnweb-gmane-create-mapping, nnweb-gmane-wash-article)
-	(nnweb-gmane-search, nnweb-gmane-identity): Added gmane
-	functionality.
-	* nnweb.el: Removed old non-functioning search engines.
-
-2002-07-27  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-forward-make-body): Don't use
-	`message-forward-ignored-headers' when doing a "raw" followup (it
-	is important to preserve e.g. CTE).
-
-	* flow-fill.el (fill-flowed): Disable filladapt-mode.
-
-	* gnus-sieve.el (gnus-sieve-guess-rule-for-article): Don't
-	regexp-quote, Cyrus Sieve is fixed.
-
-	* sieve-manage.el (sieve-manage-deletescript): New function.
-
-	* sieve.el (sieve-manage-mode-map): Fix down-mouse-2 and down-mouse-3.
-	(sieve-manage-mode): Fix menubar.
-	(sieve-activate): Change some messages.
-	(sieve-deactivate-all): New function.
-	(sieve-deactivate): New alias.
-	(sieve-remove): New function.
-	(sieve-help): Fix help.
-	All suggested by Ned Ludd.
-
-2002-07-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-decode.el (mm-inline-text-html-with-images): Doc fix.
-	(mm-w3m-safe-url-regexp): New user option.
-
-	* mm-view.el (mm-inline-text-html-render-with-w3m): Use
-	`mm-w3m-safe-url-regexp' to bind `w3m-safe-url-regexp'.
-
-2002-07-23  Karl Kleinpaste  <karl@charcoal.com>
-
-	* gnus-sum.el (gnus-summary-delete-article): Force
-	nnmail-expiry-target to 'delete, so that absolute deletion
-	happens when absolute deletion is requested.
-
-2002-07-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Nevin Kapur <nevin@jhu.edu>.
-
-	* nnmail.el (nnmail-fancy-expiry-target): Treat nonexisting
-	headers as empty headers.
-
-2002-07-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Jochen Hein <jochen@jochen.org>.
-
-	* gnus-art.el (gnus-emphasis-alist): Add strikethrough and
-	correct typo.
-	(gnus-emphasis-strikethru): New face.
-
-2002-07-20  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Jason Merrill <jason@redhat.com>.
-
-	* nnfolder.el (nnfolder-retrieve-headers): Avoid searching the
-	entire file for each of a sequence of missing articles.
-
-	* gnus-salt.el (gnus-binary-display-article): Respect an existing
-	value for gnus-view-pseudos.
-
-	* gnus-sum.el (gnus-summary-insert-new-articles): Count down to
-	avoid nreverse.
-
-2002-07-14  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Ted Zlatanov <teodor.zlatanov@divine.com>.
-
-	* gnus-sum.el (gnus-auto-expirable-marks): Remove `spam'.
-	(gnus-summary-mode-line-format-alist): Add %h for number of
-	spams.
-	(gnus-newsgroup-spam-marked): New variable.
-	(gnus-summary-local-variables): Add gnus-newsgroup-spam-marked.
-	(gnus-article-read-p, gnus-article-mark)
-	(gnus-set-global-variables, gnus-set-global-variables)
-	(gnus-article-marked-p, gnus-summary-mark-article-as-read)
-	(gnus-summary-mark-article-as-unread)
-	(gnus-summary-mark-article-as-unread, gnus-summary-mark-article)
-	(gnus-mark-article-as-read, gnus-mark-article-as-unread)
-	(gnus-mark-article-as-unread, gnus-summary-catchup): Grok spam.
-
-2002-07-10  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-split-to-groups): Allow group string to be a
-	function.  From KANEMATSU Daiji <kdaiji@bea.com>.
-
-2002-07-09  Nevin Kapur  <nevin@jhu.edu>
-
-	* gnus-sum.el (gnus-summary-delete-article): Respect group
-	parameters while expiring.
-
-2002-07-08  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (article-make-date-line): Fix string.  From Henrik
-	Enberg.
-
-2002-07-08  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-art.el (article-unsplit-urls): Only display MIME when this
-	function is called interactively.  From Niklas Morberg.
-
-2002-07-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-topic.el (gnus-topic-indent, gnus-topic-unindent): Change
-	cdaar to cdar and car.
-
-	* nnsoup.el (nnsoup-retrieve-headers, nnsoup-request-type)
-	(nnsoup-read-active-file, nnsoup-article-to-area): Ditto.
-
-2002-07-05  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-summary-toggle-header): Show headers anyway;
-	don't break a narrowed article.
-
-	* nntp.el (nntp-via-rlogin-command-switches): Doc fix.
-	(nntp-open-via-rlogin-and-telnet): Ditto.
-
-2002-07-02  Didier Verna  <didier@xemacs.org>
-
-	* nnmail.el (nnmail-split-methods): fix custom type.
-
-2002-07-02  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-art.el (article-unsplit-urls): Keep URL buttonized after
-	unsplitting.  From Niklas Morberg <niklas.morberg@axis.com>.
-
-2002-07-01  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-msg.el (gnus-summary-resend-default-address): New user option.
-	(gnus-summary-resend-message): Use it.
-
-2002-06-28  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nntp.el (nntp-via-rlogin-command-switches): New variable.
-	(nntp-open-via-rlogin-and-telnet): Re-revert; use the var above.
-
-2002-06-28  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-font-lock-keywords): Don't fontify
-	headers in the message body, only in the header.
-	(message-font-lock-make-header-matcher): New function, used by
-	message-font-lock-keywords.
-	From Katsumi Yamaoka <yamaoka@jpl.org>.
-
-2002-06-28  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nntp.el (nntp-open-via-rlogin-and-telnet): Revert last change.
-
-2002-06-28  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nntp.el (nntp-open-via-rlogin-and-telnet): Hide commandline args.
-
-2002-06-26  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-font-lock-keywords): Revert 2002-06-22
-	change.
-
-2002-06-24  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-font-lock-keywords): Put colon in header
-	name match.
-
-2002-06-22  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-font-lock-keywords): Don't use header faces
-	in the body.  Thanks to Stefan Monnier for the hint on the
-	implementation.
-
-2002-05-09  Miles Bader  <miles@gnu.org>
-
-	* gnus-cite.el (gnus-cite-blank-line-after-header): New variable.
-	(gnus-article-hide-citation): Respect it.
-
-2002-04-12  Juanma Barranquero  <lektu@terra.es>
-
-	* pop3.el (pop3-open-server): Fix typo.
-
-2002-06-18  Josh Huber  <huber@alum.wpi.edu>
-
-	* gnus.el (gnus-find-subscribed-addresses): Use add-to-list
-	instead of push to ignore duplicate to-(list|address) values.
-	* nnmail.el (nnmail-cache-ignore-groups): New.
-	* nnmail.el (nnmail-cache-insert): Obey nnmail-cache-ignore-groups
-
-2002-06-18  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el (gnus-delay-send-queue): Delete the delay header
-	before sending.  Suggested by Jan Rychter.
-
-2002-06-18  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el (remove): New compiler macro.
-	(last, coerce, subseq): Remove compiler macros for those built-in
-	or unused functions.
-
-2002-06-17  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-start.el (gnus-clear-system, gnus-read-newsrc-file): Make
-	sure to write byte-compiled versions of gnus-*-format-alist to
-	.newsrc.eld.  From Simon Josefsson.
-
-2002-06-16  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-agent.el (gnus-agent-read-servers)
-	(gnus-agent-write-servers): Put server name (string like
-	"nnchoke:frumple") in the file instead of a server specification
-	(Lisp expression like (nnchoke "frumple" ...parameters...)).
-	From Bj,Ax(Brn Mork <bmork@dod.no>.
-
-2002-06-16  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-cache.el (gnus-cache-remove-article): n is &optional.  From
-	Reiner Steib <4uce.02.r.steib@gmx.net>.
-
-2002-06-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnheader.el (nnheader-file-name-translation-alist): Set the
-	default value for MS Windows systems.
-
-	* gnus-ems.el (nnheader-file-name-translation-alist): Removed.
-
-2002-06-14  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-beginning-of-line): Keep the region active
-	in XEmacs.  Suggested by TAKAHASHI Kaoru <kaoru@kaisei.org>.
-
-2002-06-13  Josh Huber  <huber@alum.wpi.edu>
-
-	* gnus-msg.el (gnus-summary-followup): Use g-s-handle-replysign.
-	* gnus-msg.el (gnus-summary-reply): Ditto.
-	* gnus-msg.el (gnus-summary-handle-replysign): New.
-
-2002-06-12  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-send-mail-with-sendmail): Kill errbuf even
-	if sending failed.
-
-2002-06-11  Josh Huber  <huber@alum.wpi.edu>
-
-	* gnus-start.el (gnus-dribble-enter): Don't call set-window-point anymore
-	* mml2015.el (mml2015-mailcrypt-encrypt): Accept optional argument
-	to sign while encrypting.
-
-2002-06-11  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-int.el (gnus-request-move-article): Agent expire article if
-	successfuly moved.
-
-	* nnweb.el (nnweb-google-create-mapping): Honors the value of
-	nnweb-max-hits.  From Niklas Morberg <niklas.morberg@axis.com>.
-
-2002-06-10  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-int.el (gnus-request-expire-articles): Fix last change?
-
-2002-06-09  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-delete-article): Don't agent expire here.
-
-	* gnus-int.el (gnus-request-expire-articles): Do it here instead.
-
-2002-06-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* flow-fill.el (fill-flowed): Ignore errors.
-
-2002-06-06  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-send-mail-with-sendmail): Improve error message.
-
-2002-06-06  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-interactive): Change default from nil to t.
-	Better to be safe than to be fast.
-
-2002-06-05  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-send-mail-with-sendmail): Check return value
-	from call-process-region.
-
-2002-06-04  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-msg.el (gnus-group-mail, gnus-group-news)
-	(gnus-group-post-news, gnus-summary-mail-other-window)
-	(gnus-summary-news-other-window, gnus-summary-post-news): Bind
-	gnus-article-copy to nil, thereby inhibiting the `header' posting
-	style match to use data from last viewed article.
-	Suggested by Hrvoje Niksic.
-
-2002-06-04  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* spam.el (spam-point-at-eol): New alias.
-	(spam-parse-whitelist): Use it.
-
-2002-06-03  Simon Josefsson  <jas@extundo.com>
-
-	* nnmail.el (nnmail-mail-splitting-decodes): New variable.
-	(nnmail-article-group): Use it.
-
-2002-05-30  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-msg.el (gnus-inews-yank-articles): Merge split header lines
-	so that code reading them won't be surprised.  From Jesper Harder
-	<harder@ifa.au.dk>.
-
-2002-05-29  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-delete-article): Agent expire deleted
-	articles.
-
-	* gnus.el (gnus-agent-cache): Doc fix.
-	(gnus-agent): Change default to t.
-
-	* gnus-agent.el (gnus-agent-expire): Make it accept optional
-	ARTICLES, GROUP and FORCE parameters.
-
-2002-05-28  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-line-format): Doc fix.
-
-2002-05-28  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-msg.el (gnus-inews-yank-articles): Unfold headers of
-	original article before yanking.  From Jesper Harder
-	<harder@ifa.au.dk>.
-
-2002-05-26  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-menu-split): New function.
-	(gnus-summary-make-menu-bar): Split charset submenu.
-	(gnus-summary-menu-maxlen): New variable.
-	(gnus-summary-menu-split): Use it.
-
-2002-05-25  Simon Josefsson  <jas@extundo.com>
-
-	* mml.el (mml-preview): Generate some headers.
-
-	* gnus.el (gnus-large-newsgroup): Fix :type.
-
-	* nnimap.el (nnimap-nov-is-evil): Change default to t (because the
-	Agent cache NOV's by default now).
-	(nnimap-nov-is-evil): Make it default to `gnus-agent' instead.
-
-2002-05-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-dependencies-add-header): Avoid one unecessary
-	call to gnus-parent-id when we check for References loops.
-	(gnus-summary-prepare-threads): Avoid simplifying every Subject
-	twice by saving the simplified subject string in simp-subject.
-
-2002-05-23  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-msg.el (gnus-confirm-mail-reply-to-news): Typo.  Trivial
-	change from Benjamin Rutt <rutt+news@cis.ohio-state.edu>.
-
-	* nnweb.el (nnweb-type): Remove dejanewsold.  Trivial change from
-	Niklas Morberg <niklas.morberg@axis.com>.
-
-2002-05-22  Simon Josefsson  <jas@extundo.com>
-
-	* sieve.el (sieve-change-region): Define it before it is used.
-
-	* gnus-msg.el (gnus-confirm-mail-reply-to-news)
-	(gnus-summary-reply): Ask for confirmation when replying to news.
-	Defaults to not ask.  From Benjamin Rutt
-	<rutt+news@cis.ohio-state.edu>.
-
-	* nnimap.el (nnimap-nov-is-evil): Improve doc.
-
-2002-05-21  Simon Josefsson  <jas@extundo.com>
-
-	* sieve-mode.el (sieve-manage): Fix autoloads.
-
-	* sieve-manage.el (sieve-manage-cram-md5-auth): Just send the SASL
-	name (makes it work with recent Cyrus timsieved).
-
-2002-05-20  Jason  <jbaker@cs.utah.edu>
-	Trivial patch.
-
-	* gnus-art.el (gnus-request-article-this-buffer): Try
-	reconnecting if you don't get the message.
-
-2002-05-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-enter-digest-group): Only get
-	Reply-To headers from the headers.
-
-2002-05-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mm-url.el (mm-url-insert): Remove junk message.
-
-2002-05-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnslashdot.el (nnslashdot-request-list): Parse new html.
-	(nnslashdot-use-front-page): New variable.
-	(nnslashdot-request-list): Use it.
-
-	* mm-url.el (mm-url-timeout): New variable.
-	(mm-url-retries): Ditto.
-	(mm-url-insert): Use it.
-
-2002-05-16  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-simplify-all-whitespace): New function.
-	(gnus-simplify-subject-functions): Mention g-s-a-w.
-
-2002-05-15  Josh Huber  <huber@alum.wpi.edu>
-
-	* nnbabyl.el (nnbabyl-request-accept-article): Pass group to
-	nnmail-cache-insert.
-	* nndiary.el (nndiary-request-accept-article): Ditto.
-	* nnfolder.el (nnfolder-request-accept-article): Ditto.
-	* nnimap.el (nnimap-request-accept-article): Ditto.
-	* nnmail.el (nnmail-process-unix-mail-format): Ditto.
-	* nnmail.el (nnmail-check-duplication): Ditto. (from gnus-art)
-	* nnmbox.el (nnmbox-request-accept-article): Ditto.
-	* nnmh.el (nnmh-request-accept-article): Ditto.
-	* nnmail.el (nnmail-cache-insert): Change group to required,
-	removed code which tried to figure out the group.
-
-2002-05-13  Josh Huber  <huber@alum.wpi.edu>
-
-	* mml.el (mml-generate-mime-1): Fix mml generation for signed only
-	messages. From Hans de Graaff <hans@degraaff.org>.
-	* nnml.el (nnml-request-accept-article): Pass in the group name to
-	nnmail-cache-insert, since it's available.
-
-2002-05-10  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndoc.el (nndoc-mime-digest-type-p): Set proper file-end.
-
-2002-05-08  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Florian Weimer <fw@deneb.enyo.de>.
-
-	* gnus.el (subscribed): New group parameter.
-	(gnus-find-subscribed-addresses): Use it.
-
-2002-05-08  Josh Huber  <huber@alum.wpi.edu>
-
-	* mml-sec.el (mml-signencrypt-style-alist): Rename.  Also, changed
-	the default for pgpmime to support pgp v2.
-	* mml-sec.el (mml-signencrypt-style): New accessor function to
-	allow users to get/set the signencrypt style more easily without
-	frobbing the alist directly.
-	* mml.el (mml-generate-mime-1): Use accessor function.
-
-2002-05-08  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-art.el (gnus-article-mode-syntax-table): Specify matching
-	parenthesis for "<" and ">".  Suggested by Andreas Schwab
-	<schwab@suse.de>.
-
-2002-05-07  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* nnmail.el (nnmail-cache-insert): Prefer group-art over group
-	when intuiting the group the message is written to.  From Josh
-	Huber <huber@alum.wpi.edu>.
-
-2002-05-06  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-topic.el (gnus-group-topic-parameters): Work when group
-	buffer doesn't show group.  From Matt Armstrong <matt@lickey.com>.
-
-2002-05-06  Josh Huber  <huber@alum.wpi.edu>
-
-	* mml2015.el (mml2015-gpg-encrypt): Changed name of optional
-	argument, and fixed compiler warning. (added autoload for
-	gpg-encrypt).
-
-2002-05-04  Simon Josefsson  <jas@extundo.com>
-
-	* mml1991.el (mml1991-function-alist): Doc fix.
-
-	* mml.el (mml-preview): Bind gnus-newsrc-hashtb temporarily if it
-	doesn't exist (for previewing messages without having Gnus
-	started).
-
-	* mm-util.el (mm-coding-system-priorities): Defcustom.
-
-	* mm-encode.el (mm-content-transfer-encoding-defaults): Defcustom.
-
-2002-05-01  Josh Huber  <huber@alum.wpi.edu>
-
-	* gnus-msg.el (gnus-message-replysignencrypted): enabled by
-	default.
-	* mml-sec.el:
-	* mml-sec.el (mml-signencrypt-style): New.
-	* mml-sec.el (mml-pgpmime-encrypt-buffer): Accept optional
-	argument `sign'.
-	* mml-sec.el (mml-secure-message-encrypt-pgp): Changed default to
-	signencrypt.
-	* mml-sec.el (mml-secure-message-encrypt-pgpmime): Ditto.
-	* mml.el (mml-generate-mime-1): Changed logic so a part which is
-	both signed & encryped is processed in one operation. (rather than
-	two separate ops: sign, then encrypt)
-	* mml2015.el (mml2015-gpg-extract-signature-details): Give some
-	indication if a message is signed by an expired key.
-	* mml2015.el (mml2015-gpg-encrypt): Accept optional argument which
-	enables combined sign & encrypt operation. (this was always on
-	before).
-	* mml2015.el (mml2015-encrypt): Accept optional argument `sign'.
-
-2002-05-01  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-retrieve-groups): Use separate data for each
-	server.
-	(nnimap-mailbox-info): defvar instead of defvoo.
-
-2002-05-01 20:09:21 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.06 is released.
-
-2002-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* lpath.el: Bind url-package-version.
-
-2002-05-01  Simon Josefsson  <jas@extundo.com>
-
-	* nnfolder.el (nnfolder-request-delete-group): Figure out nov/mrk
-	filename before deleting the group itself, because the presence of
-	a group filename decides if long filenames are used or not.
-
-	* gnus-art.el (gnus-button-alist): Don't inline
-	gnus-button-url-regexp.  This makes it possible to change g-b-u-r
-	without also modifying g-button-alist.
-	(gnus-button-alist): Fix type to allow variable as well as regexp.
-	(gnus-article-add-buttons): Evaluate regexp.  Strings evaluate to
-	themselves, variables to its contents.
-	(gnus-button-entry): Ditto.
-
-2002-05-01  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-parse-resp-text-code, imap-parse-status): Treat
-	UIDNEXT as a string.
-
-	* nnimap.el (nnimap-string-lessp-numerical): New function.
-	(nnimap-retrieve-groups): Compare UIDNEXT as strings instead of
-	integers.
-
-2002-04-29  Simon Josefsson  <jas@extundo.com>
-
-	* nnmail.el (nnmail-cache-insert): Accept optional group
-	parameter.
-
-	* nnimap.el (nnimap-retrieve-groups): Don't send STATUS when
-	n-r-g-a is disabled.
-
-2002-04-29  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-split-fancy): Fix doc.
-	(nnimap-split-fancy): Fix doc.
-
-	* nnimap.el (nnimap-retrieve-groups-asynchronous): New variable.
-	(nnimap-mailbox-info): New internal variable.
-	(nnimap-retrieve-groups): Implement faster new mail check.
-
-	* nnimap.el (nnimap-split-articles): Support
-	nnmail-cache-accepted-message-ids.
-	(nnimap-request-accept-article): Ditto.
-
-	* imap.el (imap-mailbox-status-asynch): New command.
-
-2002-04-29  Nevin Kapur  <nevin@jhu.edu>
-
-	* gnus.el (gnus-find-subscribed-addresses): Return nil when there
-	are no subscribed mail groups.
-	- Strip quoted names when comparing addresses
-
-2002-04-28  Jesper Harder  <harder@ifa.au.dk>
-
-	* mm-decode.el (mm-text-html-renderer): Change customize type to
-	const.
-
-	* gnus-msg.el (gnus-discouraged-post-methods): Fix typo.
-	(gnus-debug-exclude-variables): do.
-
-2002-04-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-article-mail): Use gnus-msg-mail instead.
-	Trivial change from Karl Pfl,Ad(Bsterer <sigurd@12move.de>.
-
-2002-04-27  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dns.el (dns-make-network-process): New macro.
-	(query-dns): Use it.
-
-2002-04-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-summary-reply): Remove unbound variable
-	article-buffer.
-
-	* mm-url.el (mm-url-package-name): New variable.
-	(mm-url-package-version): New variable.
-	(mm-url-insert-file-contents): Bind url-package-name and
-	url-package-version here.
-	* nnrss.el (nnrss-insert-w3): Move the bindings.
-
-	* nnrss.el (nnrss-insert-w3): Bind url-package-name and
-	url-package-version. Trivial change from Andrew J Cosgriff
-	<ajc@polydistortion.net>
-
-	* mm-decode.el (mm-save-part): Fill in file name when GUI saving
-	attachments. Trivial change from Peter 'Luna' Runestig
-	<peter@runestig.com>.
-
-2002-04-19  Jesper Harder  <harder@ifa.au.dk>
-
-	* nnkiboze.el (nnkiboze-request-scan): Call
-	nnkiboze-possibly-change-group.
-	(nnkiboze-generate-group): Use mm-with-unibyte to avoid encoding
-	problems.
-	(nnkiboze-generate-group): Set newsrc to the *highest* article
-	number kibozed, not the lowest.
-
-2002-04-15  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-art.el (article-unsplit-urls): Allow trailing SPC.
-
-2002-04-24  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Dan Christensen <jdc+news@uwo.ca>.
-
-	* nndoc.el (nndoc-type-alist, nndoc-lanl-gov-announce-type-p)
-	(nndoc-transform-lanl-gov-announce, nndoc-generate-lanl-gov-head):
-	Recognize math postings.  Extract Date (now ignores "(15kb)").
-	Extract email address using gnus-extract-address-components
-	instead of just taking the first word.  Create Date and From
-	headers for message which are missing these headers.  Get rid
-	of spurious \\ lines (purely cosmetic).  Extend body-end and
-	file-end regexps, to exclude more garbage from the message.
-	Make URL rephrasing regexp more flexible, to match current
-	format.
-
-2002-04-23  Simon Josefsson  <jas@extundo.com>
-
-	* netrc.el: New file, functions copied from gnus-util.el by Ted
-	Zlatanov <tzz@lifelogs.com>.
-
-	* gnus-util.el: Require netrc.
-	(gnus-netrc-get, gnus-netrc-machine, gnus-parse-netrc): Aliased to
-	new code in netrc.el.
-
-2002-04-23  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-msg.el (gnus-summary-resend-message-edit): Remove
-	message-ignored-resent-headers, too.  From Matthieu Moy
-	<Matthieu.Moy@imag.fr>.
-
-2002-04-22  Bj,Av(Brn Torkelsson  <torkel@acc.umu.se>
-
-	* gnus-srvr.el (gnus-server-browse-in-group-buffer): it is a
-	boolean not a string
-	* gnus-group.el (gnus-group-line-format): add description of %C
-	* gnus-group.el (gnus-group-line-format-alist): add gnus-tmp-comment
-	  as %C
-	* gnus-group.el (gnus-group-insert-group-line): add gnus-tmp-comment
-
-2002-04-22  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-request-scan): typo: set
-	nnmaildir-get-new-mail, not nnmaildir-new-mail.  Don't call
-	nnmail-get-new-mail for 'find-new-groups.
-
-2002-04-21  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-request-update-info,
-	nnmaildir-request-group, nnmaildir-retrieve-groups): remove
-	unnecessary calls to nnmaildir-request-scan.
-
-2002-04-20  Josh Huber  <huber@alum.wpi.edu>
-
-	* gnus-msg.el:
-	* gnus-msg.el (gnus-message-replysign): New.
-	* gnus-msg.el (gnus-message-replyencrypt): New.
-	* gnus-msg.el (gnus-message-replysignencrypted): New.
-	* gnus-msg.el (gnus-summary-reply): Use the three new variables
-	(above) to automatically encrypt/sign to encrypted/signed
-	messages.
-	* message.el:
-	* message.el (message-mode-map): Add keybinding for
-	`message-to-list-only'
-	* message.el (message-mode): Add description for
-	`message-to-list-only'
-	* message.el (message-to-list-only): New.
-	* message.el (message-make-mft): Changed to use the cl loop macro,
-	and added optional flag to return only the matched list. (for use
-	in new message-to-list-only function)
-
-2002-04-20  Josh Huber  <huber@alum.wpi.edu>
-
-	* gnus-msg.el:
-	* gnus-msg.el (gnus-message-replysign):
-	* gnus-msg.el (gnus-replysign): New.
-	* gnus-msg.el (gnus-replyencrypt): New.
-	* gnus-msg.el (gnus-replysignencrypted): New.
-	* gnus-msg.el (gnus-summary-reply):
-	* message.el:
-	* message.el (message-mode-map):
-	* message.el (message-mode):
-	* message.el (message-to-list-only): New.
-	* message.el (message-make-mft):
-
-2002-04-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-win.el (gnus-configure-windows-hook): Fix typo.
-
-2002-04-18  Josh Huber  <huber@alum.wpi.edu>
-
-	* message.el (message-gen-unsubscribed-mft): accept a prefix
-	argument so CC can be included with C-u C-c C-f C-a
-
-2002-04-17  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Ted Zlatanov <teodor.zlatanov@divine.com>.
-
-	* spam.el (spam-whitelist, spam-blacklist, spam-enter-whitelist):
-	Improve docstring.
-	(spam-enter-blacklist): New command.
-
-	* gnus-sum.el (gnus-spam-mark): New mark.
-	(gnus-auto-expirable-marks): Add gnus-spam-mark.
-	(gnus-summary-make-tool-bar): Correct conditional.
-	(gnus-summary-limit-to-unread): Add gnus-spam-mark.
-	(gnus-summary-mark-as-spam): New command.
-
-2002-04-13  Josh Huber  <huber@alum.wpi.edu>
-
-	* mml-sec.el (mml-secure-message): changed to support arbritrary
-	modes.
-	* mml-sec.el (mml-secure-message-encrypt-(smime|pgp|pgpmime)):
-	changed to support "signencrypt" mode.
-	* mml.el (mml-parse-1): changed to support different secure modes
-	more easily. (for signencrypt)
-
-2002-04-11  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* gnus-sum.el (gnus-update-summary-mark-positions)
-	(gnus-summary-toggle-header):
-	* gnus-uu.el (gnus-uu-binhex-article, gnus-uu-reginize-string)
-	(gnus-uu-expand-numbers, gnus-uu-post-make-mime)
-	(gnus-uu-post-encoded):
-	* nnfolder.el (nnfolder-possibly-change-group):
-	* nnimap.el (nnimap-retrieve-headers):
-	* nnmbox.el (nnmbox-create-mbox): Don't assume point-min == 1.
-
-2002-04-08  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* nnml.el (nnml-save-nov, nnml-generate-nov-file):
-	* pop3.el (pop3-md5): Don't hardcode point-min == 1.
-
-2002-04-12  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-srvr.el (gnus-server-set-info): Clear
-	`gnus-server-method-cache' when `gnus-server-alist' is changed.
-	From Daiki Ueno <ueno@unixuser.org>.
-
-2002-04-11  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): Force
-	viewing of security buttons.  Thanks to Nicolas Kowalski
-	<Nicolas.Kowalski@imag.fr>.
-
-	* smime.el (smime-CA-directory): Fix doc.  Thanks to Arne
-	J,Ax(Brgensen <arne+usenet@daimi.au.dk>.
-	(smime-sign-buffer): Work in XEmacs.  Thanks to Nicolas Kowalski
-	<Nicolas.Kowalski@imag.fr>.
-	(smime-decrypt-buffer): Ditto.
-
-2002-04-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-prepare): Place point on the emtpy
-	header line.
-
-2002-04-11  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus.el (gnus-refer-article-method): Change `dejanews' to `google'.
-
-2002-04-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-delete-marked-with): Fix typo.
-
-2002-04-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-view.el (mm-inline-text-html-render-with-w3): Don't ignore
-	errors when debug.
-
-2002-04-07  Josh Huber  <huber@alum.wpi.edu>
-
-	* message.el (message-make-mft): Changed MFT code from using
-	message-recipients (which included Bcc) to use only the To and CC
-	headers.
-
-2002-04-05  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-art.el (gnus-treat-from-picon): Add to gnus-picon group and
-	add link.
-	(gnus-treat-mail-picon): Ditto.
-	(gnus-treat-newsgroups-picon): Ditto.
-	(gnus-picon-databases): Fix custom type.
-	(gnus-picon-databases): Add link.
-	(gnus-article-x-face-command): Add to gnus-picon group.
-
-2002-04-01  Jesper Harder  <harder@ifa.au.dk>
-
-	* message.el (message-buffer-naming-style): Remove.
-
-2002-04-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-make-tool-bar): Load tool-bar first.
-
-	* message.el (message-tool-bar-map): Ditto.
-
-	* gnus-sum.el (gnus-summary-make-tool-bar): Ditto.
-
-2002-04-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnwarchive.el (nnwarchive-mail-archive-article): Fix typo.
-
-2002-04-01  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el: fixed some buggy invocations of nnmaildir--pgname.
-
-2002-03-31  Andrew Cohen  <cohen@andy.bu.edu>
-	Trivial patch.
-
-	* dns.el: open-network-stream under XEmacs does udp.
-
-2002-03-31  Lars Magne Ingebrigtsen  <larsi@quimbies.gnus.org>
-
-	* spam.el (spam-enter-whitelist): New function.
-	(spam-parse-whitelist): Ditto.
-	(spam-refresh-list-cache): Ditto.
-	(spam-address-whitelisted-p): New function.
-
-	* dns.el (query-dns): Use TCP when make-network-process isn't
-	available.
-	(dns-servers): New variable.
-	(dns-parse-resolv-conf): New function.
-	(query-dns): Use it.
-
-	* spam.el: New file.
-
-	* dns.el (query-dns): Test.
-
-2002-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* lpath.el (featurep): Bind make-network-process.
-
-2002-03-31  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el: Use defstruct.  Use a single copy of
-	nnmail-extra-headers to save memory.  Store server's group name
-	prefix instead of each group's prefixed name.
-	* nnnil.el (nnnil-retrieve-headers, nnnil-request-list): Erase
-	nntp-server-buffer.
-
-2002-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* dns.el: New file.
-
-2002-03-28  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-dummy-line-format):
-	* gnus.el (gnus-summary-line-format): Fixing links to Info.
-	Trivial change from Bj,Av(Brn Torkelsson <torkel@pdc.kth.se>.
-
-2002-03-29  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-sum.el (gnus-summary-move-article)
-	(gnus-summary-copy-article): Mention `gnus-move-split-methods' in
-	the doc string.
-
-2002-03-28  Simon Josefsson  <jas@extundo.com>
-
-	* mml-sec.el (mml-secure-message): Search after
-	mail-header-separator from top of message.
-
-2002-03-28  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el: Cosmetic changes.
-	(nnmaildir--with-nntp-buffer, nnmaildir--with-work-buffer,
-	nnmaildir--with-nov-buffer, nnmaildir--with-move-buffer,
-	nnmaildir--group-ls): New macros/functions.  Use them.
-	(nnmaildir--unlink): Evalutate argument only once.
-
-2002-03-27  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-sum.el (gnus-summary-highlight): Use `eq' when comparing
-	symbols.
-	(gnus-summary-highlight-line): Use `gnus-point-at-bol' and
-	`gnus-point-at-eol'.
-
-2002-03-27  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir--subdir, nnmaildir--nov-dir,
-	nnmaildir--marks-dir): New macros.  Use them.
-	Use inhibit-quit for atomicity instead of in-memory journaling.
-	(nnmaildir--edit-prep): New function.
-	(Local Variables): Use it.
-
-2002-03-26  Pavel@Janik.cz (Pavel Jan,Am(Bk)
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Fix typo.
-
-2002-03-25  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-mode): Fix doc.
-
-2002-03-25  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-subject-re-regexp): Skip Re[42]: junk.  From
-	Matthieu Moy <Matthieu.Moy@imag.fr>.
-
-2002-03-24  Jesper Harder  <harder@ifa.au.dk>
-
-	* mml-sec.el (mml-unsecure-message): Add docstring.
-
-2002-03-23  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmail.el (nnmail-large-newsgroup): Fix doc, allow non-numeric
-	value.
-	Trivial change from andre@slamdunknetworks.com
-
-2002-03-22  Josh Huber  <huber@alum.wpi.edu>
-
-	* mml.el (mml-mode-map): Added a keybinding for
-	`mml-unsecure-message'.  Also, added a menu entry for said
-	function in the Attachments menu.
-
-2002-03-22  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* canlock.el (canlock-version): Remove.
-	(canlock-sha1-with-openssl): Don't use `canlock-string-as-unibyte'
-	here; simplify \x insertions.
-	(canlock-sha1): New function, always return a unibyte string.
-	(canlock-make-cancel-key): Use `canlock-sha1'; simplify truncation
-	of a password.
-	(canlock-insert-header): Use `canlock-sha1'.
-	(canlock-verify): Ditto.
-
-2002-03-21  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-fix-before-sending): Add an option that
-	ignores illegible text.
-	Trivial change from Mark Milhollan <mlm@attglobal.net>
-
-	* message.el (message-font-lock-keywords): Support multi-line MML
-	tags.
-
-	* gnus-sum.el (gnus-print-buffer): Remove gnus-decoration.
-	Trivial change from lorentey@elte.hu (L,Bu(Brentey K,Aa(Broly)
-
-2002-03-20  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Use intern'ed function
-	symbols for "View as different encoding" submenu.
-
-2002-03-19  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Add "View as different
-	encoding" submenu.
-
-2002-03-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-process-prefix): Make sure there is a mark.
-
-2002-03-19  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-sum.el (gnus-sum-thread-tree-root)
-	(gnus-sum-thread-tree-single-indent)
-	(gnus-sum-thread-tree-vertical, gnus-sum-thread-tree-indent)
-	(gnus-sum-thread-tree-leaf-with-other)
-	(gnus-sum-thread-tree-single-leaf): Make customizable.
-
-2002-03-16  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-util.el (gnus-extract-address-components): Don't break on
-	names such as James "Kibo" Parry.  From Francis Litterio
-	<franl@world.std.com>.
-
-2002-03-13  Simon Josefsson  <jas@extundo.com>
-
-	* pop3.el (pop3-open-server): Revert multibyte change.  From
-	Pavel@Janik.cz (Pavel Jan,Am(Bk).
-
-	* message.el (message-send-mail-with-qmail): Make it work.  From
-	Pavel@Janik.cz (Pavel Jan,Am(Bk).
-
-2002-03-13  Josh Huber  <huber@alum.wpi.edu>
-
-	* message.el (message-make-mft): Set case-fold-search while
-	generating the MFT.  Also, a little cleanup in the MFT code.
-
-2002-03-12  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-qmail-inject-args): May be function.
-	(message-send-mail-with-qmail): Call function if m-q-i-a is
-	function.  From fn@hungry.org (Faried Nawaz).
-
-2002-03-12  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-abbrevs-loaded): Remove.
-	(mailabbrev): Require it.
-
-	* nnslashdot.el (nnslashdot-request-article): Remove IFRAME.
-
-2002-03-12  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* pop3.el (pop3-open-server): Set process buffer unibyte.
-
-2002-03-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-subscribe-to-mailing-list): New function.
-
-2002-03-10  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-request-article): Remove javascript
-	too.
-
-2002-03-09  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-save-parts-default-mime): Remove
-	duplication.
-	(gnus-summary-save-parts-type-history): Ditto.
-	(gnus-summary-save-parts-last-directory): Ditto.
-	Trivial change from andre@slamdunknetworks.com
-
-2002-03-09  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus-start.el (gnus-auto-subscribed-groups): Include nnmaildir.
-
-2002-03-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-request-article): Use "<!-- no ad 6
-	-->" as the end of the first article.
-
-	* gnus-msg.el (gnus-summary-resend-message-edit): New function.
-	From Matthieu Moy <Matthieu.Moy@imag.fr>
-
-	* message.el (message-add-action): Use add-to-list.
-	(message-delete-action): New function.
-
-	* nndoc.el (nndoc-mail-in-mail-type-p): Break a long regexp into
-	pieces.
-
-2002-03-05  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnnil.el: New file.
-	* gnus.el (gnus-valid-select-methods): Include nnnil.
-
-2002-03-05  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-syntax-checks): Because canlock is
-	supported, we disable sender syntax check.
-	(message-shoot-gnksa-feet): Add cancel-messages option doc.
-
-	* gnus-draft.el (gnus-draft-send): If interactive, use its default
-	value of message-syntax-checks.
-
-	* qp.el (quoted-printable-decode-region): Doc addition.
-	From: Eli Zaretskii <eliz@is.elta.co.il>
-
-	* mail-source.el (make-source-make-complex-temp-name): Use
-	make-temp-file.
-
-	* mm-util.el (mm-make-temp-file): New function.
-	* nneething.el (nneething-file-name): Use it.
-	* mml-smime.el (mml-smime-encrypt): Ditto.
-	* mm-view.el (mm-inline-wash-with-file): Ditto.
-	* mm-decode.el (mm-display-external, mm-create-image-xemacs): Ditto.
-	* gnus-uu.el (gnus-uu-decode-binhex, gnus-uu-decode-binhex-view)
-	(gnus-uu-digest-mail-forward, gnus-uu-initialize): Ditto.
-	* gnus-start.el (gnus-slave-save-newsrc): Ditto.
-	* gnus-fun.el (gnus-convert-image-to-gray-x-face): Ditto.
-	* gnus-art.el (gnus-mime-print-part): Ditto.
-
-2002-03-04  Paul Jarc  <prj@po.cwru.edu>
-
-	* message.el (nnmaildir-article-number-to-base-name): New
-	function.
-	(nnmaildir-base-name-to-article-number): New function.
-
-2002-03-04  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* smime.el (smime-make-temp-file): Don't quote
-	`temporary-file-directory'.
-
-2002-03-04  Simon Josefsson  <jas@extundo.com>
-
-	* smime.el (smime-sign-region): Rename argument keyfiles to
-	keyfile. You only sign something with one key.
-	(smime-sign-buffer): Better completing-read prompt.
-	(smime-decrypt-buffer): Ditto.
-
-	* smime.el (smime-make-temp-file): Make it work under XEmacs.
-
-	* mm-view.el (mm-view-pkcs7-decrypt): Better prompt for
-	completing-read.
-	(mm-view-pkcs7-decrypt): CRLF->LF.
-
-2002-03-04  Paul Jarc  <prj@po.cwru.edu>
-
-	* message.el (message-hierarchical-addresses): New variable.
-	(message-get-reply-headers): Use it.
-	From Ted Zlatanov <teodor.zlatanov@divine.com>
-
-2002-03-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-mode): If buffer-file-name, don't set auto
-	save file name.
-	Trivial change from Geoff Greene <ggreene@wpi.edu>
-
-2002-03-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-multiple-choice): Use message. XEmacs only
-	takes one argument in read-char.
-
-	* message.el (message-fix-before-sending): Forward a char.
-	Check mmu-multibyte-p, add control-1.
-
-2002-03-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-read-init-file): Ditto.
-
-	* gnus-agent.el (gnus-agent-fetch-session): Ditto.
-
-	* dgnushack.el (dgnushack-make-load): Ditto.
-
-	* mail-source.el (mail-source-fetch): Extract the right error
-	code.
-
-	* message.el (message-fix-before-sending): Check illegible text.
-
-	* gnus-util.el (gnus-multiple-choice): New function.
-
-	* gnus-kill.el (gnus-score-insert-help): Removed, because it is
-	also defined in gnus-score.el.
-
-2002-03-01  Paul Jarc  <prj@po.cwru.edu>
-
-	* message.el (message-get-reply-headers): downcase email addresses
-	for comaparisons for duplicate removal.
-
-2002-03-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-view.el (mm-view-pkcs7-verify): New function. A bogus
-	implementation of PKCS#7, which just allows users read the
-	message.
-	(mm-view-pkcs7): Use it.
-
-2002-02-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (large-newsgroup-initial): New parameter.
-
-	* gnus-sum.el (gnus-articles-to-read): Use large-newsgroup-initial.
-	(gnus-summary-insert-old-articles): Ditto.
-
-2002-02-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-articles-to-read): `gnus-large-newsgroup' is
-	used as the default answer of the question, "How many articles?".
-	From TSUCHIYA Masatoshi <tsuchiya@namazu.org>
-
-	* nnagent.el (nnagent-retrieve-headers): Remove articles with
-	small numbers.
-
-2002-02-24  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* deuglify.el: Fix comments.
-
-2002-02-23  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* html2text.el (html2text-clean-anchor): If there is no HREF,
-	insert nothing.
-
-	* mml.el (mml-generate-mime-1): Add cdr.
-	From: andre@slamdunknetworks.com
-
-	* mm-view.el (mm-text-html-renderer-alist): Add html2text.
-	(mm-text-html-washer-alist): Ditto.
-
-	* mm-decode.el (mm-text-html-renderer): Add html2text.
-
-	* html2text.el: Face lift.
-
-	* html2text.el: New file from Joakim Hove <hove@phys.ntnu.no>.
-
-2002-02-22  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el: Add gnus-article-outlook-deuglify-article.
-
-	* deuglify.el: Change copy right. Add autoload. Add coding-system.
-
-	* deuglify.el: New file. The original file name is
-	gnus-outlook-deuglify.el from Raymond Scholz <rscholz@zonix.de>.
-
-	* mm-decode.el (mm-display-external): Use
-	mm-file-name-rewrite-functions.  From <andre@slamdunknetworks.com>
-
-2002-02-22  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-request-list): Report the highest
-	article number, not the total number of articles.
-
-2002-02-21  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el: Move uu key map here.
-	(gnus-summary-make-menu-bar): Add gnus-summary-save-parts.
-
-2002-02-21  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-request-expire-articles): Use
-	nnmail-expiry-wait* if expire-age parameter is not set.
-
-2002-02-21  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-sort-groups-by-real-name): New
-	function.
-	(gnus-group-sort-selected-groups-by-real-name): New function.
-	(gnus-group-make-menu-bar): Add sort by real name.
-
-	* gnus-sum.el (gnus-dependencies-add-header): If replaced, don't
-	rebuild.
-	(gnus-summary-edit-article-done): Gnus-get-newsgroup-headers takes
-	nil as dependencies as well.
-
-2002-02-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndoc.el (nndoc-dissect-mime-parts-sub): Fix MIME-Version header
-	for mime-parts.
-
-	* gnus-art.el (gnus-article-edit-done): Widen the buffer.
-
-	* gnus-group.el (gnus-group-name-decode): Don't test
-	multibyte-string, because it breaks XEmacs.
-	From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp>
-
-	* message.el (message-send-mail): Be talkative.
-
-	* mm-decode.el (mm-inlined-types): Add application/x-emacs-lisp.
-	(mm-automatic-display): Ditto.
-
-	* mailcap.el (mailcap-mime-data): Ditto.
-	From: Reiner Steib <4uce.02.r.steib@gmx.net>
-
-2002-02-20  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* many files: Remove trailing whitespaces, replace spc+tab with
-	tab, replace leading whitespaces with tabs.
-
-2002-02-19  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus-sum.el (gnus-summary-toggle-header): Fix handling of
-	articles with no body and no blank line after the header.
-
-2002-02-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-dissect-multipart): Consider the case of empty
-	parts.
-
-	* ietf-drums.el (ietf-drums-syntax-table): Modify syntax of
-	non-ascii chars.
-
-	* rfc2231.el (rfc2231-parse-string): Support non-ascii chars.
-
-	* gnus-art.el (gnus-article-wash-html-with-w3): Remove
-	w3-delay-image-loads.
-	* mm-view.el (mm-inline-text-html-render-with-w3): Ditto.
-	(mm-w3-prepare-buffer): Ditto.
-
-	* mail-source.el (mail-source-fetch-directory): Run scripts.
-
-2002-02-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-respond-to-confirmation): Do the right thing
-	for Majordomo confirmations.
-
-2002-02-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-respond-to-confirmation): New command.
-
-2002-02-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnultimate.el (nnultimate-retrieve-headers): Clean up.
-
-2002-02-18  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus-util.el (gnus-parent-id): Ignore trailing whitespace in the
-	References header field.  From Mark Thomas <mthomas@cmu.edu>.
-
-2002-02-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-view.el (mm-inline-render-with-file): With unibyte buffer.
-	(mm-inline-render-with-stdin): Ditto.
-	(mm-inline-render-with-function): Ditto.
-	(mm-inline-wash-with-file): Bind coding-system-for-write.
-	(mm-inline-wash-with-stdin): Ditto.
-
-2002-02-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	Suggested by Felix Natter <fnatter@gmx.net>
-
-	* gnus-art.el (gnus-mime-view-part-externally): Rename from
-	gnus-mime-externalize-view.
-	(gnus-mime-view-part-internally): Rename from
-	gnus-mime-internalize-view.
-	(gnus-article-view-part-externally): Rename from
-	gnus-article-externalize-part.
-	(gnus-mime-action-alist): Change correspondingly.
-	(gnus-mime-button-commands): Ditto.
-	(gnus-mime-action-alist): Remove duplication.
-
-	* gnus-sum.el (gnus-summary-mime-map): Change correspondingly.
-
-2002-02-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-dissect-buffer): Add loose-mime parameter.
-
-	* gnus-art.el (gnus-display-mime): Use it.
-
-	* mm-partial.el (mm-partial-find-parts): Use it.
-
-	* gnus-sum.el (gnus-article-loose-mime): Rename from
-	gnus-article-no-strict-mime.
-	(gnus-summary-save-parts): Use it.
-
-2002-02-18  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Remove unused
-	local variable.
-
-	* gnus-art.el (article-display-x-face): Don't sort multiple
-	X-Faces.
-
-2002-02-18  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Improved to speed
-	up.  Suggested by Yuuichi Teranishi <teranisi@gohome.org>.
-
-	* gnus-art.el (article-display-x-face): Sort gray X-Faces.
-
-2002-02-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	Some ideas is inspired by code from Hrvoje Niksic
-	<hniksic@arsdigita.com>
-
-	* gnus-art.el (gnus-article-wash-function): Set the default to
-	nil, so that we use mm-text-html-renderer instead.
-	(article-wash-html): Use mm-text-html-renderer.
-
-	* mm-decode.el (mm-inline-media-tests): Use mm-inline-text-*.
-	(mm-text-html-renderer): New variable.
-	(mm-inline-text-html-renderer): Set the default to nil, so that we
-	use mm-text-html-renderer instead.
-
-	* mm-view.el (mm-inline-text-html): New function.
-	(mm-text-html-renderer-alist): New variable.
-	(mm-inline-text-vcard): New function.
-	(mm-inline-text): Split.
-	(mm-links-remove-leading-blank): New function.
-	(mm-inline-render-with-file): New function.
-	(mm-inline-render-with-stdin): New function.
-	(mm-inline-render-with-function): New function.
-	(mm-text-html-washer-alist): New variable.
-	(mm-inline-wash-with-file): New function.
-	(mm-inline-wash-with-stdin): New function.
-
-2002-02-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message-utils.el: Fix installation doc.
-	From: Reiner Steib <4uce.02.r.steib@gmx.net>
-
-2002-02-16  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-discouraged-post-methods): New variable.
-	(gnus-post-method): Use it.
-	(gnus-summary-cancel-article): Find the correct post-method.
-
-	* gnus-soup.el (gnus-soup-send-packet): Via ... using ...
-	* message.el (message-send-news): Ditto.
-	Suggested by Lloyd Zusman <ljz@asfast.com> and IPmonger
-	<ipmonger@delamancha.org>
-
-	* gnus.el (gnus-select-method): Fix doc.
-	(gnus-server-string): Use 'using nntp'.
-
-	* gnus-agent.el (gnus-slave-unplugged): New command.
-	From: Felix Natter <fnatter@gmx.net>
-
-2002-02-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-edit-done): Kill-all-local-variables.
-	Call edit-done-function first, then change the window
-	configuration.
-	(gnus-article-edit-mode-map): Add message key bindings. Add menu.
-	(gnus-article-edit-mode): mml-mode.
-
-	* gnus-util.el (gnus-byte-compile): Work around a bug in XEmacs
-	21.4. Suggested by Russ Allbery <rra@stanford.edu> .
-
-	* message-utils.el: Adopt the file.
-
-	* message-utils.el: New file.
-	From Holger Schauer <Holger.Schauer@gmx.de>
-
-2002-02-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-move-article): Select-article only
-	when gnus-move-split-methods is non-nil. And we don't render or
-	mark the article.
-
-	* gnus-fun.el (gnus-shell-command-to-string): New function.
-	(gnus-shell-command-on-region): New function.
-	(gnus-random-x-face): Use them.
-	(gnus-x-face-from-file): Ditto.
-	(gnus-convert-image-to-gray-x-face): Ditto.
-	(gnus-convert-gray-x-face-to-xpm): Ditto.
-	(gnus-convert-image-to-x-face-command): Don't use 2>/dev/null.
-
-2002-02-14  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-treat-display-xface): Don't use
-	`shell-command-to-string' when compiling.
-	(gnus-treat-display-grey-xface): Ditto.
-
-2002-02-13  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir--article-count): If the group is
-	completely empty, report minimum article number as 1 instead of 0.
-
-2002-02-13  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-get-predicate): Use nconc.
-
-	* gnus-sum.el (gnus-summary-display-make-predicate): Use
-	gnus-summary-display-cache as cache.
-
-	* nndoc.el (nndoc-type-alist): Add mail-in-mail type.
-	(nndoc-mail-in-mail-type-p): New function.
-	(nndoc-mail-in-mail-article-begin): New function.
-
-2002-02-12  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mailcap.el (mailcap-mime-data): Use enriched-decode.
-
-	* gnus-cite.el (gnus-article-fill-cited-article): Bind
-	use-hard-newlines to nil.
-
-	* gnus-xmas.el (gnus-xmas-image-type-available-p): Assume that
-	image is not available if window-system is not available.
-
-	* gnus-sum.el (gnus-summary-display-make-predicate): Add unread.
-
-2002-02-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-article-unpropagated-mark-lists): Don't propagate
-	bookmark, because update-mark doesn't handle it correctly.
-
-2002-02-09  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-soup.el (gnus-soup-send-packet): Send news and mail
-	directly instead of calling message-send-mail.
-
-	* gnus-start.el (gnus-read-descriptions-file): Use
-	gnus-default-charset.
-
-	* mm-util.el (mm-guess-mime-charset): New function.
-
-	* gnus.el (gnus-default-charset): Use it.
-	(gnus-group-charset-alist): Remove .*, Let gnus-default-charset be
-	the default.
-
-2002-02-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-treat-display-grey-xface): New variable.
-	(article-display-x-face): Use it.  Disable grey xface, if
-	uncompface is not found.
-
-	* message.el (message-mode): Don't enable multibyte on an indirect
-	buffer.
-
-	* nnrss.el (nnrss-content-function): New variable.
-	(nnrss-request-article): Use it.
-
-2002-02-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el: Add article-unsplit-urls.
-	* gnus-sum.el: Ditto.
-	* gnus-art.el (gnus-treat-strip-cr): New variable.
-	(gnus-treatment-function-alist): Use it.
-	(article-unsplit-urls): New function.
-	(gnus-article-make-menu-bar): Use it.
-	From: Michael Cook <michael.cook@cisco.com>
-
-2002-02-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-braid-nov): Find the first article to
-	copy.
-
-2002-02-07  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus-util.el (gnus-split-references): Allow (broken) Message-IDs
-	with internal whitespace.
-	(gnus-parent-id): Ditto.
-
-2002-02-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-treat-body-boundary): Add
-	gnus-decoration property.
-	* gnus-msg.el (gnus-copy-article-buffer): Remove gnus-decoration.
-
-	* message.el (message-mode): Set local-abbrev-table.
-	From Matt Armstrong <matt@lickey.com>.
-
-	* gnus-art.el (gnus-article-treat-unfold-headers): Don't remove
-	too many spaces.
-
-	* rfc2047.el (rfc2047-unfold-region): Ditto.
-	(rfc2047-decode-region): Don't unfold. Let
-	gnus-article-treat-unfold-headers do it.
-
-	* gnus-sum.el (gnus-dependencies-add-header): Fix typo.
-	From: Jesper Harder <harder@ifa.au.dk>
-
-2002-02-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-msg.el (gnus-posting-styles): Add x-face-file.
-	(gnus-configure-posting-styles): Use it.
-	(gnus-configure-posting-styles): Remove trailing newspaces.
-
-2002-02-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-articles-to-read): Fetch all if the predicate
-	is non-nil.
-
-	* mm-util.el (mm-use-find-coding-systems-region): Add doc.
-
-	* gnus.el (gnus-server-to-method): Switch position with
-	gnus-server-get-method.
-	(gnus-agent): Add doc.
-
-	* gnus-sum.el (gnus-article-no-strict-mime): New variable.
-	(gnus-summary-save-parts): Use it.
-
-	* gnus-art.el (gnus-display-mime): Use it.
-	* mm-partial.el (mm-partial-find-parts): Use it.
-
-	* nnweb.el (nnweb-google-parse-1): Use a correct format of date.
-
-	* gnus-agent.el (gnus-agent-summary-make-menu-bar): Fix typo.
-	From Stefan Reich,Av(Br <xsteve@riic.at>.
-
-	* nnagent.el (nnagent-request-expire-articles): Don't delete
-	files.
-
-2002-02-05  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-gen-unsubscribed-mft): New function.
-	From Sriram Karra <karra@cs.utah.edu>.
-
-	* gnus.el (gnus-article-unpropagated-mark-lists): Backslash the
-	open parenthesis.
-
-	* mm-view.el (mm-w3-prepare-buffer): Bind url-gateway-unplugged.
-	(mm-inline-text-html-render-with-w3): Ditto.
-	* gnus-art.el (gnus-article-wash-html-with-w3): Ditto.
-	Suggested by Dave Love  <d.love@dl.ac.uk>.
-
-	* mm-url.el (mm-url-load-url): Require w3-vars for old versions.
-
-	* nntp.el (nntp-send-command-and-decode): Check PROCESS.
-	* nntp.el (nntp-send-command): Ditto.
-	* nntp.el (nntp-send-command-nodelete): Ditto.
-
-2002-02-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-url.el (mm-url-load-url): New function.
-	(mm-url-insert-file-contents): Use it.
-
-	* gnus-msg.el (gnus-summary-mail-forward): Use gnus-article-charset.
-
-	* message.el (message-forward-make-body): Correctly copy
-	forward-buffer.
-
-	* rfc2047.el (rfc2047-decode-region): Don't decode us-ascii characters.
-
-2002-02-04  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-article-followup-with-original): Mark with
-	force, prevent errors when following up from article buffer.
-	(gnus-article-reply-with-original): Ditto.
-
-	* binhex.el (binhex-decoder-switches): Fix doc.  From
-	Pavel@Janik.cz (Pavel Jan,Am(Bk).
-
-2002-02-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-treatment-function-alist): Move hide-citation,
-	highlight-citation after emphasize.
-
-2002-02-04  Simon Josefsson  <jas@extundo.com>
-
-	* nnfolder.el (nnfolder-open-marks):
-
-	* nnml.el (nnml-open-marks): Message when done.  From David
-	Edmondson <dme@sun.com>.
-
-2002-02-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* imap.el (imap-anonymous-auth): Fix typo.
-	From: Steinar Bang <sb@dod.no>
-
-	* gnus-cache.el (gnus-cache-braid-nov): Use set-buffer instead of
-	save-excursion.
-	(gnus-cache-braid-heads): Ditto.
-
-	* gnus-agent.el (gnus-agent-copy-nov-line): Move to the correct
-	line, because there are extra articles in the overview buffer.
-
-	* nntp.el (nntp-retrieve-groups): Check whether BUF is live.
-
-	* message.el (message-forward-rmail-make-body): Directly use
-	rmail-msg-restore-non-pruned-header to avoid calling
-	vertical-motion.
-
-2002-02-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-cache.el (gnus-summary-insert-cached-articles):
-	(gnus-summary-limit-include-cached): gnus-newsgroup-cached is sorted.
-
-	* gnus-group.el (gnus-group-mark-article-read): Nreverse
-	gnus-newsgroups-unselected.
-
-	* gnus-agent.el (gnus-summary-set-agent-mark): Use
-	gnus-add-to-sorted-list.
-
-	* gnus-sum.el (gnus-summary-update-info): gnus-newsgroup-unreads
-	gnus-newsgroup-unselected are sorted. Use gnus-sorted-union.
-	(gnus-build-all-threads): Use gnus-add-to-sorted-list.
-	(gnus-update-read-articles): UNREAD is sorted.
-	(gnus-newsgroup-unreads, gnus-newsgroup-unselected)
-	(gnus-newsgroup-marked, gnus-newsgroup-cached)
-	(gnus-newsgroup-expirable, gnus-newsgroup-downloadable)
-	(gnus-newsgroup-dormant): Require sorted.
-
-	* gnus-dired.el (gnus-dired-find-file-mailcap): Correctly handle
-	directories.
-	(gnus-dired-print): New function.
-
-	* gnus-art.el (gnus-mime-print-part): Add argument filename. Call
-	ps-despool.
-
-2002-02-02  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-dired.el (turn-on-gnus-dired-mode): Autoload.  Make defun.
-
-2002-02-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-1): Call gnus-agentize if gnus-agent is
-	t. This makes gnus-agent customizable without putting
-	gnus-agentize into .gnus.
-
-	* gnus.el (gnus-agent): Make it customizable.
-
-	* gnus-dired.el: New file.
-	From Benjamin Rutt <brutt@bloomington.in.us>
-
-	* gnus-cache.el (gnus-cache-articles-in-group): Remove from active
-	if no article.
-	(gnus-cache-possibly-remove-article): Ditto.
-	(gnus-cache-possibly-enter-article): Use gnus-add-to-sorted-list.
-
-2002-02-01  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-int.el (gnus-request-accept-article): Use gnus-get-function.
-
-2002-02-01  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-view.el (mm-w3m-mode-dont-bind-keys): New variable.
-	(mm-setup-w3m): Don't bind keys listed in the above.
-
-2002-02-01  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-view.el (mm-inline-text-html-render-with-w3m): Bind
-	`w3m-safe-url-regexp' with nil if `mm-inline-text-html-with-images'
-	is non-nil; bind `w3m-force-redisplay' with nil.
-
-	* gnus-art.el (gnus-article-wash-html-with-w3m): Ditto.
-
-	* mm-decode.el (mm-inline-text-html-with-images): Supplement docs.
-
-2002-01-31  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-request-replace-article): Unfold. Don't
-	use mail-header-unfold-field.
-
-	* gnus-cache.el (gnus-summary-insert-cached-articles): Use
-	gnus-summary-limit.
-
-	* gnus-range.el (gnus-add-to-sorted-list): New function.
-	* gnus-sum.el (gnus-mark-article-as-read): Use it.
-	(gnus-mark-article-as-unread): Ditto.
-	(gnus-summary-mark-article-as-unread): Ditto.
-	(gnus-build-get-header): Ditto.
-	(gnus-summary-prepare-threads): Ditto.
-	(gnus-summary-insert-pseudos): Ditto.
-	(gnus-articles-to-read): Use gnus-sorted-union and gnus-sorted-nunion.
-	(gnus-summary-insert-new-articles): Use gnus-sorted-nunion.
-	(gnus-summary-insert-old-articles): Ditto.
-
-	* gnus-msg.el (gnus-posting-styles): Add new format of header.
-	(gnus-configure-posting-styles): Support the new format.
-
-	* mail-source.el (mail-source-bind, mail-source-bind-common): Set
-	edebug-form-spec to (sexp body).
-	Suggested by Joe Wells <jbw@izanami.cee.hw.ac.uk>.
-
-	* message.el (message-reply-headers): Add doc.
-
-2002-01-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-delete-group): Nix the entry in
-	gnus-cache-active-hashtb.
-
-	* gnus-agent.el (gnus-agent-mark-unread-afer-downloaded): New variable.
-	(gnus-agent-summary-fetch-group): Use it.
-
-	* gnus-msg.el (gnus-debug-files): New variable.
-	(gnus-debug-exclude-variables): New variable.
-	(gnus-debug): Use them.
-
-	* gnus-range.el (gnus-range-length): Don't use gnus-uncompress-range.
-
-2002-01-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-cite-prefix-regexp): Use text-mode-syntax-table.
-	(message-mode-syntax-table): Move back the previous position.
-
-	* nnagent.el (nnagent-retrieve-headers): Use gnus-sorted-difference.
-
-	* gnus-agent.el (gnus-agent-retrieve-headers): Use
-	gnus-sorted-difference.
-
-	* nnsoup.el (nnsoup-request-expire-articles): Use
-	gnus-sorted-difference.
-
-	* nnheader.el: Autoload gnus-sorted-difference.
-
-	* nnfolder.el (nnfolder-request-expire-articles): Use
-	gnus-sorted-difference.
-
-	* gnus-cache.el (gnus-cache-retrieve-headers): Use
-	gnus-sorted-difference.
-
-	* gnus-range.el: Autoload cookies.
-	(gnus-sorted-difference): New function.
-	(gnus-sorted-ndifference): New function.
-	(gnus-sorted-nintersection): Rename from
-	gnus-set-sorted-intersection.
-	(gnus-sorted-nunion): Rename from gnus-set-sorted-union.
-	(gnus-list-range-difference): Rename from
-	gnus-inverse-list-range-intersection.
-	(gnus-inverse-list-range-intersection): Use defalias.
-
-	* gnus-sum.el (gnus-select-newsgroup): Use gnus-sorted-difference,
-	gnus-sorted-ndifference, and gnus-sorted-nintersection.
-	(gnus-articles-to-read): Use gnus-sorted-difference.
-	(gnus-summary-limit-mark-excluded-as-read): Use
-	gnus-sorted-intersection and gnus-sorted-ndifference.
-	(gnus-list-of-read-articles): Use gnus-list-range-difference.
-	(gnus-summary-insert-articles): Use gnus-sorted-difference.
-
-	* gnus-sum.el (gnus-summary-update-info): Use gnus-sorted-union.
-
-2002-01-30  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-article-wash-html-with-w3m): Add keymap
-	property to the buffer for using emacs-w3m command keys.
-
-	* mm-decode.el (mm-inline-text-html-with-w3m-keymap): New user
-	option.
-
-	* mm-view.el (mm-w3m-mode-map): New variable.
-	(mm-w3m-mode-command-alist): New variable.
-	(mm-w3m-minor-mode): Removed.
-	(mm-setup-w3m): Setup `mm-w3m-mode-map'; don't add minor mode.
-	(mm-inline-text-html-render-with-w3m): Add keymap property to the
-	buffer for using emacs-w3m command keys.
-
-2002-01-29  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-mode-syntax-table): Move forward.
-	(message-cite-prefix-regexp): Auto detect non word constituents.
-	(message-cite-prefix-regexp): Don't use with-syntax-table.
-
-	* gnus-sum.el (gnus-summary-update-info): Use
-	gnus-list-range-intersection.
-
-	* gnus-agent.el (gnus-agent-fetch-headers): Use
-	gnus-list-range-intersection.
-
-	* gnus-range.el (gnus-range-normalize): Use correct predicate.
-	(gnus-list-range-intersection): Use it.
-	(gnus-inverse-list-range-intersection): Ditto.
-	(gnus-sorted-intersection): Add doc.
-	(gnus-set-sorted-intersection): Add doc.
-	(gnus-sorted-union): New function.
-	(gnus-set-sorted-union): New function.
-
-	* gnus-range.el (gnus-list-range-intersection): Correct the logic.
-	(gnus-inverse-list-range-intersection): Ditto.
-
-2002-01-29  Karl Kleinpaste  <karl@charcoal.com>
-
-	* mm-uu.el (mm-uu-type-alist): Add optional leading `0'.
-
-	* gnus-uu.el (gnus-uu-shar-name-marker): Add optional leading `0'
-	and permit `:' and `\' in order to handle full Windows pathnames.
-	(gnus-uu-begin-string): Add optional leading `0'.  Leading `0' is
-	technically not correct per standard, but seems to have common use.
-
-2002-01-29  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-uu.el (gnus-uu-expand-numbers): Ignore errors when
-	replacing numbers.
-
-2002-01-28  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-followup-with-original): Use (mark).
-
-	* gnus-score.el (gnus-score-insert-help): Move to (point-min).
-	Don't split when the window is small, e.g. when a small *BBDB*
-	window is the lowest one.
-
-	* gnus-agent.el (gnus-agent-retrieve-headers): Use
-	nnheader-find-nov-line to speed up. Use nreverse, because it is
-	sorted. Use nnheader-insert-nov-file.
-
-2002-01-28  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-decode.el (mm-inline-text-html-with-images): New user option.
-
-	* mm-view.el (mm-inline-text-html-render-with-w3m): Bind the value
-	of `w3m-display-inline-images' with the value of
-	`mm-inline-text-html-with-images'.
-	From: TSUCHIYA Masatoshi <tsuchiya@namazu.org>.
-
-	* gnus-art.el (gnus-article-wash-html-with-w3m): Ditto.
-
-2002-01-27  Richard M. Stallman  <rms@gnu.org>
-
-	* time-date.el: Add autoload cookies.  Many doc fixes.
-	(time-add): New function.
-	(time-subtract): Renamed from subtract-time.
-	(subtract-time): New alias for time-subtract.
-
-2002-01-28  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-article-wash-html-with-w3m): Replace w3m to
-	emacs-w3m in doc-string.
-
-	* lpath.el: Bind `w3m-cid-retrieve-function-alist' and
-	`w3m-current-buffer'.
-
-2002-01-27  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* gnus-art.el (gnus-article-wash-html-with-w3m): Handle cid: URLs.
-
-	* mm-view.el (mm-setup-w3m): Add `mm-w3m-cid-retrieve' to
-	`w3m-cid-retrieve-function-alist' for `gnus-article-mode'.
-	(mm-w3m-cid-retrieve): New function.
-	(mm-inline-text-html-render-with-w3m): Handle cid: URLs.
-
-2002-01-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-fetch-articles): Don't save empty articles.
-
-2002-01-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-util.el (gnus-cache-file-contents): Don't use equalp.
-
-2002-01-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnheader.el (nnheader-insert-nov-file): Increased cutoff to
-	32K.
-
-	* gnus-sum.el (gnus-summary-expire-articles): Clean up.
-
-	* nnmail.el (nnmail-article-group): Decode headers before running
-	split rules over them.
-	(nnmail-mail-splitting-charset): New variable.
-
-	* smiley.el: Replaced with smiley-ems.el.
-
-2002-01-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-url.el (mm-url-predefined-programs): Add w3m.
-	(mm-url-program): Ditto.
-
-2002-01-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnml.el (nnml-use-compressed-files): New variable.
-	(nnml-filenames-are-evil): Removed.
-	(nnml-current-group-article-to-file-alist): Don't use.
-	(nnml-update-file-alist): Inhibit.
-	(nnml-article-to-file): Use new var.
-
-2002-01-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-parse-without-error): Add edebug-form-spec.
-
-	* nnagent.el (nnagent-retrieve-headers): loop until eobp.
-
-2002-01-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-load-alist): Use new caching
-	function.
-
-	* gnus-util.el (gnus-cache-file-contents): New function.
-
-	* gnus-agent.el (gnus-agent-file-loading-cache): New variable.
-	(gnus-agent-load-alist): Use it.
-
-	* nnagent.el (nnagent-retrieve-headers): Use optimized function.
-
-	* nnheader.el (nnheader-insert-nov-file): New function.
-
-	* gnus-util.el (gnus-parse-without-error): Correct the loop.
-
-	* gnus-sum.el (gnus-dependencies-add-header): Use in-reply-to if
-	there are no references.
-	(gnus-extract-message-id-from-in-reply-to): New function.
-	(gnus-nov-parse-line): Use in-reply-to if there are no
-	references.
-
-2002-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnagent.el (nnagent-retrieve-headers): Use new macro.
-
-	* gnus-util.el (gnus-parse-without-error): New macro.
-
-2002-01-25  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-wash-html-with-w3m): Call w3m-region.
-	(gnus-article-wash-function): use locate-library to decide which
-	to use.
-
-2002-01-25  Simon Josefsson  <jas@extundo.com>
-
-	* pop3.el (pop3-munge-message-separator): Work if no date.
-	Trivial patch from Marius Vollmer <mvo@zagadka.ping.de>.
-
-2002-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-save-alist): Fix.
-
-	* nnagent.el (nnagent-retrieve-headers): Must have cut too much by
-	mistake.  Reinstated lost code.
-
-2002-01-25  Josh Huber  <huber@alum.wpi.edu>
-
-	* mml2015.el (mml2015-mailcrypt-decrypt): Display a signature if
-	one exists in the case of an encrypted message with an internal
-	signature.
-
-2002-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-save-alist): Optimized.
-
-2002-01-25  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el: Commented out the experimental code.
-
-2002-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-range.el (gnus-inverse-list-range-intersection): Off-by-one
-	error.
-
-	* gnus.el (gnus-server-to-method): Made into subst.
-	(gnus-server-method-cache): New variable.
-	(gnus-server-to-method): Use it.
-	(gnus-group-method-cache): New variable.
-	(gnus-find-method-for-group-1): Renamed.
-	(gnus-find-method-for-group): New function.
-	(gnus-group-method-cache): Removed.
-
-	* gnus-sum.el (gnus-compute-unseen-list): Use new optimized
-	function.
-
-	* gnus-range.el (gnus-members-of-range): New function.
-	(gnus-list-range-intersection): Renamed.
-	(gnus-inverse-list-range-intersection): New function.
-
-	* gnus-sum.el (gnus-compute-unseen-list): Made into own function.
-
-	* nnagent.el (nnagent-retrieve-headers): New implementation.
-
-	* gnus-agent.el (gnus-agent-get-undownloaded-list): New, faster
-	implementation.
-
-2002-01-25  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el: Fbind `w3m-charset-to-coding-system'; bind
-	`w3m-meta-content-type-charset-regexp'.
-
-	* mm-view.el (mm-inline-text-html-render-with-w3m): Decode
-	charset-encoded html contents.
-
-2002-01-24  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-request-article): Make sure it is not
-	an empty file.
-
-	* nnweb.el (url): Ignore errors when request url.
-
-	* nnrss.el: Clean up the comments.
-
-2002-01-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* lpath.el: Fbind `w3m-region'; bind `w3m-mode-map'.
-
-	* mm-decode.el (mm-inline-text-html-renderer): New user option.
-	(mm-inline-media-tests): Test whether the value of
-	`mm-inline-text-html-renderer' is a function for text/html.
-
-	* mm-view.el (mm-inline-text-html-render-with-w3): New function
-	separated from `mm-inline-text'.
-	(mm-w3m-minor-mode): New variable.
-	(mm-w3m-setup): New variable.
-	(mm-setup-w3m): New function.
-	(mm-inline-text-html-render-with-w3m): New function.
-	(mm-inline-text): Funcall `mm-inline-text-html-renderer' for
-	text/html.
-
-2002-01-23  Paul Jarc  <prj@po.cwru.edu>
-
-	* lpath.el: fbind make-symbolic-link and unix-sync for nnmaildir.
-
-2002-01-23  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-xmas.el (gnus-xmas-redefine): Quote `gnus-completing-read'
-	and `gnus-xmas-completing-read'.
-
-2002-01-19  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* nneething.el (nneething-message-id-number): Abolished.
-	(nneething-encode-file-name): Not encode numerical characters.
-	(nneething-make-head): `nneething-message-id-number' is not
-	used to generate message IDs.
-
-2002-01-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-emphasis-alist): Include !? as sentence-ending
-	characters.
-
-2002-01-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-xmas.el (gnus-xmas-completing-read): New function.
-	(gnus-xmas-redefine): Redefine conditionally.
-
-2002-01-22  Josh Huber  <huber@alum.wpi.edu>
-
-	* mml.el (mml-parse-1): Fixed usage of recipients in the secure
-	tag.
-
-2002-01-22  Josh Huber  <huber@alum.wpi.edu>
-
-	* message.el (message-font-lock-keywords): Added the secure tag.
-	* mml-sec.el: Added functions to generate/modify/remove the secure
-	tag while in message mode.
-	* mml-sec.el (mml-secure-message): New.
-	* mml-sec.el (mml-unsecure-message): New.
-	* mml-sec.el (mml-secure-message-sign-smime): New.
-	* mml-sec.el (mml-secure-message-sign-pgp): New.
-	* mml-sec.el (mml-secure-message-sign-pgpmime): New.
-	* mml-sec.el (mml-secure-message-encrypt-smime): New.
-	* mml-sec.el (mml-secure-message-encrypt-pgp): New.
-	* mml-sec.el (mml-secure-message-encrypt-pgpmime): New.
-	* mml.el (mml-parse-1): Added code to recognise the secure tag and
-	convert it to either a part or multipart depending on if there are
-	other parts in the message.
-	* mml.el (mml-mode-map): Changed default sign/encrypt keybindings
-	to use the secure tag, rather than the part tag.
-	* mml.el (mml-preview): Added a save-excursion to keep cursor
-	position after doing an MML preview.
-
-2002-01-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnheader.el (nnheader-parse-overview-file): New function.
-	(nnheader-write-overview-file): New function.
-
-2002-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-group-fast-parameter): Check better if expansion
-	in wanted.
-
-	* nnweb.el (nnweb-type-definition): Clean up.
-
-2002-01-21  Alastair Burt  <burt@dfki.de>
-	Trivial patch.
-
-	* gnus-art.el (gnus-mm-display-part): Make sure that the summary
-	buffer exists before jumping to it.
-
-2002-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-wash-html-with-w3): Made into own
-	function.
-	(article-wash-html): Use it.
-	(gnus-article-wash-function): New variable.
-	(gnus-article-wash-html-with-w3m): New function.
-
-2002-01-20  Bj,Av(Brn Torkelsson  <torkel@acc.umu.se>
-
-	* dgnushack.el (dgnushack-compile): Compile smiley-ems for
-	XEmacs.
-
-2002-01-20  John H. Palmieri  <palmieri@math.washington.edu>
-
-	* gnus-fun.el (gnus-convert-image-to-gray-x-face): More standard
-	command line.
-
-2002-01-21  Simon Josefsson  <jas@extundo.com>
-
-	* canlock.el (base64-encode-string): Autoload it from base64.
-	(canlock-make-cancel-key): Base64 encode unibyte string.
-
-2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnfolder.el (nnfolder-request-accept-article): Unfold
-	x-from-line.
-	(nnfolder-request-replace-article): Ditto.
-
-2002-01-20  Nevin Kapur  <nevin@jhu.edu>
-
-	* gnus-group.el (gnus-group-best-unread-group): Use the right
-	positioning function.
-
-2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* smiley-ems.el (smiley-region): Use new function.
-	(smiley-update-cache): Use general image functions.
-	(smiley-region): Use general functions.
-
-	* gnus-util.el (gnus-graphic-display-p): New function.
-
-	* nnmail.el (nnmail-article-group): Allow outputting traces of
-	non-strings.
-
-	* nndoc.el (nndoc-type-alist): Rules for exim bounces.
-	(nndoc-exim-bounce-type-p): New function.
-
-	* message.el (message-dont-send): Doc fix.
-
-	* gnus-util.el (gnus-completing-read): Remove
-	inherit-input-method.
-
-	* gnus-art.el (gnus-treat-smiley): Doc fix.
-
-	* gnus-agent.el (gnus-agent-fetch-headers): Ignore seen and recent
-	articles.
-
-2002-01-19  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-gssapi-open): Don't wait for logout to complete.
-	(imap-kerberos4-open): Ditto.
-	(imap-open): Set port correctly, don't set auth.
-
-2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-version-number): Bump version number.
-
-2002-01-20 05:33:30 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.05 is released.
-
-2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnkiboze.el (nnkiboze-generate-group): Make sure the directory
-	exists.
-
-	* gnus-spec.el (gnus-string-width-function): New function.
-	(gnus-tilde-cut-form): Use it.
-	(gnus-tilde-max-form): Ditto.
-	(gnus-use-correct-string-widths): Default to (featurep 'xemacs).
-	(gnus-substring-function): Use it.
-	(gnus-tilde-cut-form): Ditto.
-	(gnus-substring-function): New function.
-
-	* message.el (message-check-news-header-syntax): New message.
-
-	* gnus.el (gnus-slave-no-server): Doc fix.
-
-	* gnus-spec.el (gnus-use-correct-string-widths): Default to t.
-
-2002-01-15  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-adjust-marked-articles): Fix the record for
-	`seen' if it looks like (seen NUM1 . NUM2).  It should be
-	(seen (NUM1 . NUM2)).
-
-2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-topic.el (gnus-topic-catchup-articles): Update article
-	number in closed topics.
-
-2002-01-19  Daniel Pittman  <daniel@rimspace.net>
-
-	* gnus-sum.el (gnus-summary-first-unseen-or-unread-subject): New
-	functions.
-
-2002-01-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-group-find-parameter): Clean up.
-
-	* gnus-sum.el (gnus-summary-goto-subject): Error on non-numerical
-	articles.
-
-	* gnus-util.el (gnus-completing-read-with-default): Renamed.
-
-	* nnmail.el (nnmail-article-group): Clean up.
-
-2002-01-19  Paul Stodghill  <stodghil@cs.cornell.edu>
-
-	* gnus-agent.el (gnus-category-name): Intern the category name.
-
-2002-01-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-topic.el (gnus-topic-move-group): Use gnus-topic-history.
-
-	* gnus-util.el (gnus-completing-read): New function.
-
-2002-01-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-add-wash-type): Use add-to-list.
-
-	* smiley-ems.el (smiley-region): Register smiley.
-	(smiley-toggle-buffer): Rewrite the function.
-	(smiley-active): Removed.
-
-2002-01-19  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-util.el (gnus-parent-id): Optimize null n case.  From
-	Jesper Harder <harder@ifa.au.dk>.
-
-2002-01-18  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* gnus-art.el (gnus-request-article-this-buffer): Call
-	`nneething-get-file-name' to extract the file name from the
-	message id.
-
-	* nneething.el (nneething-encode-file-name): New function.
-	(nneething-decode-file-name): Ditto.
-	(nneething-get-file-name): Ditto.
-	(nneething-make-head): Encode the file name and encapsulate it
-	into the field of the message id.
-
-2002-01-18  Simon Josefsson  <jas@extundo.com>
-
-	* nnml.el (nnml-request-update-info): Don't erase flags that isn't
-	stored in .marks.
-
-	* nnfolder.el (nnfolder-request-update-info): Ditto.
-
-2002-01-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-url-parse-query-string): Allow new line in value.
-
-2002-01-18  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-starttls-p): Don't check for binary.
-	(imap-gssapi-auth-p): Ditto.
-	(imap-kerberos4-auth-p): Ditto.
-	(imap-open): Change logic.  Iterate through all possible streams,
-	instead of bailing out after first failure.  Move authenticator
-	decision to `imap-authenticate'.
-	(imap-authenticate): Change logic, now finds the authenticator to
-	use, was previously in `imap-open'.
-	(imap-open): Return nil on failure.
-	(imap-open): Setup temp buffer correctly.
-	(imap-open): Return buffer only on success.
-	(imap-interactive-login, imap-interactive-login): Tell the user
-	which stream/authenticator is used for the queried
-	username/password.
-	(imap-open, imap-authenticate): Set variables.
-	(imap-gssapi-auth-p, imap-kerberos4-auth-p): Fix typo.
-	(imap-open): Don't assume how `with-temp-buffer' is implemented.
-
-2002-01-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-grab-cam-x-face): New function.
-
-2002-01-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-emphasis-alist): Allow matching "*this*.)".
-
-2002-01-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-toggle-group-plugged): New function.
-	(gnus-agent-group-mode-map): Bind it to "Jo".
-	(gnus-agent-group-make-menu-bar): Add it into menu bar.
-
-2002-01-17  Karl Kleinpaste  <karl@charcoal.com>
-
-	* gnus-xmas.el (gnus-group-toolbar): Add .newsrc save button.
-	(gnus-summary-mail-toolbar): Add mail article deletion button.
-
-	* smiley.el (smiley-deformed-regexp-alist): Eliminate noseless
-	false positives for lines of "^^^^".
-
-	* gnus-picon.el (gnus-picon-find-face): faces database is all
-	lowercase.
-
-2002-01-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-retrieve-headers): Use correct buffer.
-	(gnus-agent-braid-nov): Switch back to nntp-server-buffer. Remove
-	duplications.
-	(gnus-agent-batch): Bind gnus-agent-confirmation-function.
-
-2002-01-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-initial-limit): Inline
-	gnus-summary-limit-children.
-	(gnus-summary-initial-limit): Don't limit if
-	gnus-newsgroup-display is nil.
-	(gnus-summary-initial-limit): No, don't.
-
-	* gnus-util.el
-	(gnus-put-text-property-excluding-characters-with-faces): Inline
-	gnus-put-text-property.
-
-	* gnus-spec.el (gnus-default-format-specs): New variable.
-
-	* gnus-start.el (gnus-read-newsrc-file): Don't clear
-	gnus-format-specs.
-	(gnus-read-newsrc-el-file): Default to gnus-default-format-specs.
-
-	* gnus-spec.el (gnus-update-format-specifications): Really check
-	the Gnus version of the .newsrc.eld file.
-	(gnus-format-specs): Save the new default summary format.
-
-	* gnus-util.el (gnus-parent-id): Check whether references is empty
-	before splitting.
-
-	* gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Inline some
-	functions.
-	(gnus-gather-threads-by-references): Inline
-	`gnus-split-references'.
-
-	* gnus-spec.el (gnus-summary-line-format-spec): New, optimized
-	default value of gnus-summary-line-format-spec.
-
-2002-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-retrieve-headers-1): A better error
-	message.
-	(nnslashdot-request-list): Ditto.
-	(nnslashdot-sid-strip): Removed.
-
-2002-01-15  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-close-asynchronous): Enable.
-	(nnimap-close-group): Expunge.
-
-2002-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-user-date-format-alist): Typo.
-	From: Frank Schmitt <usereplyto@Frank-Schmitt.net>
-
-2002-01-15  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* nneething.el (nneething-request-article): Set
-	`nnmail-file-coding-system' to `binary' locally, in order to read
-	files without any conversion.
-
-2002-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-retrieve-headers): Use
-	nnheader-file-coding-system and nnmail-active-file-coding-system.
-	(gnus-agent-regenerate-group): Ditto.
-	(gnus-agent-regenerate): Ditto.
-	(gnus-agent-write-active): Ditto.
-	Suggested by Katsumi Yamaoka <yamaoka@jpl.org>
-
-2002-01-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-button-alist): Don't highlight <URL:.
-	Suggested by Ian Fitchet <ian.fitchet@lunanbay.com>
-
-2002-01-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el: We don't need gnus-article-show-all-headers.
-
-	* gnus-art.el (article-show-all, gnus-article-show-all-header):
-	Ditto.
-
-	* gnus-sum.el (gnus-summary-select-article): Don't call
-	show-all-headers, because hidden headers are not hidden text any
-	more.
-
-2002-01-13  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-newline-and-reformat): Use `newline' instead
-	of inserting \n, so that the newline is marked as hard.
-
-	* gnus-spec.el (gnus-pad-form): Don't evaluate EL multiple times.
-	From Jesper Harder <harder@ifa.au.dk>.
-
-2002-01-12  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* imap.el (imap-close): Keep going if quit.
-
-	* gnus-agent.el (gnus-agent-retrieve-headers): Erase
-	nntp-server-buffer.
-
-2002-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* mm-view.el (mm-display-inline-fontify): Require font-lock to
-	avoid unbinding shadowed variables.
-
-	* gnus-art.el (gnus-picon-databases): Moved here.
-	(gnus-picons-installed-p): Moved here.
-	(gnus-article-reply-with-original): Use `mark'.
-
-	* gnus.el (gnus-picon): Moved here and renamed.
-
-	* gnus-art.el (gnus-treat-from-picon): Only be on if picons are
-	installed.
-	(gnus-treat-mail-picon): Ditto.
-	(gnus-treat-newsgroups-picon): Ditto.
-
-	* gnus-picon.el (gnus-picons-installed-p): New function.
-
-2002-01-12  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-go-online): Fix doc.
-
-2002-01-12  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-need-unselect-to-notice-new-mail)
-	(nnimap-before-find-minmax-bugworkaround): Use it.
-	(nnimap-find-minmax-uid): Don't reselect current mailbox.
-	(nnimap-dont-close): New variable.
-	(nnimap-close-group): Use it.
-
-2002-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-reply-with-original): Use
-	`mark-active'.
-
-	* gnus-msg.el (gnus-summary-reply): Don't bug out on regions.
-
-	* gnus-logic.el (gnus-advanced-score-rule): Thinko fix.
-	(gnus-score-advanced): Clean up.
-	(gnus-score-advanced): Accept a multiple of the score.
-
-2002-01-12  Simon Josefsson  <jas@extundo.com>
-
-	* flow-fill.el (fill-flowed-display-column)
-	(fill-flowed-encode-columnq): New variables.  Suggested by
-	Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Gro,b_(Bjohann).
-	(fill-flowed-encode, fill-flowed): Use them.
-
-	* message.el (message-send-news, message-send-mail): Use
-	m-b-s-n-p-e-h-n.
-
-	* mml.el (autoload): Autoload fill-flowed-encode.
-	(mml-buffer-substring-no-properties-except-hard-newlines): New
-	function.
-	(mml-read-part): Use it.
-	(mml-generate-mime-1): Encode format=flowed if appropriate.
-	(mml-insert-mime-headers): Insert format=flowed.
-
-	* flow-fill.el (fill-flowed-encode): New function.
-	(fill-flowed): Bind fill-column to window width.
-
-2002-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-buffer-name): Return the dead name if
-	it exists.
-	(gnus-summary-setup-buffer): Wake up dead summary buffers.
-	(gnus-summary-buffer-name): Don't return the dead name after all.
-	(gnus-summary-setup-buffer): Kill the dead buffer.
-
-	* gnus-art.el (gnus-article-followup-with-original): Store the
-	value of the mark before deactivating it.
-
-2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-fun.el (gnus-display-x-face-in-from): Fake it.
-	From: Karl Kleinpaste <karl@charcoal.com>
-
-	* gnus-art.el (article-display-x-face): Ditto.
-	(gnus-article-reply-with-original): Use gnus-region-active-p.
-	(gnus-article-followup-with-original): Ditto.
-
-	* gnus-sum.el (gnus-summary-read-group-1): Don't select
-	downloadable article either.
-
-2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-display-x-face): Insert From:.
-
-	* gnus-sum.el (gnus-summary-move-article): Don't draw the
-	article. Bind gnus-display-mime-function and
-	gnus-article-prepare-hook.
-
-	* gnus-agent.el (gnus-agent-retrieve-headers): Load agentview.
-	(gnus-agent-toggle-plugged): Use gnus-agent-go-online. Move
-	gnus-agent-possibly-synchronize-flags to the last.
-	(gnus-agent-go-online): New function. New variable.
-
-2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-regenerate-group): Add clean option.
-	(gnus-agent-regenerate): Ditto.
-
-2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-ignored-news-headers)
-	(message-ignored-mail-headers): Add X-Gnus-Agent-Meta-Information:.
-	Suggested by ARISAWA Akihiro <ari@atesoft.advantest.co.jp>
-
-	* gnus.el (gnus-gethash-safe): New macro.
-
-	* gnus-agent.el (gnus-agent-regenerate-history): New function.
-	(gnus-agent-regenerate): Show messages.
-
-2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-regenerate-group): New function.
-	(gnus-agent-regenerate): New function.
-	(gnus-agent-save-alist): Sort.
-	(gnus-agent-copy-nov-line): Test eobp.
-	(gnus-agent-retrieve-headers): Erase buffer.
-
-2002-01-10  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-charset-to-coding-system): Change charset to cs.
-	From: Torsten Hilbrich <email@myrkr.in-berlin.de>
-
-	* gnus.el (gnus-agent-covered-methods): Move here.
-	(gnus-online): New function.
-	(gnus-agent-method-p): Move here.
-
-	* nnagent.el (nnagent-retrieve-headers): Check whether arts is
-	nil. Remove articles-alist.
-
-	* gnus-start.el (gnus-get-unread-articles): Check online.
-	(gnus-groups-to-gnus-format): Ditto.
-	(gnus-active-to-gnus-format): Ditto.
-
-	* gnus-agent.el (gnus-agent-get-function): Use it.
-	(gnus-agent-get-undownloaded-list): Ditto.
-	(gnus-agent-fetch-session): Only fetch online methods.
-
-	* gnus-srvr.el (gnus-server-make-menu-bar): Add offline.
-	(gnus-server-mode-map): Ditto.
-	(gnus-server-offline-face): New face.
-	(gnus-server-offline-face): New variable.
-	(gnus-server-font-lock-keywords): Add offline.
-	(gnus-server-insert-server-line): Ditto.
-	(gnus-server-offline-server): New function.
-
-	* gnus-int.el (gnus-open-server): Turn to offline.
-	(gnus-server-unopen-status): New variable.
-
-2002-01-10  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnkiboze.el (nnkiboze-request-article): Use
-	gnus-agent-request-article.
-
-	* nnagent.el (nnagent-retrieve-headers): Don't use nnml
-	function. Insert undownloaded NOV.
-
-	* gnus-agent.el (gnus-agent-retrieve-headers): New function.
-	(gnus-agent-request-article): New function.
-
-	* gnus.el (gnus-agent-cache): New variable.
-
-	* gnus-int.el (gnus-retrieve-headers): Use
-	gnus-agent-retrieve-headers.
-	(gnus-request-head): Use gnus-agent-request-article.
-	(gnus-request-body): Ditto.
-
-	* gnus-art.el (gnus-request-article-this-buffer): Use
-	gnus-agent-request-article.
-
-	* gnus-sum.el (gnus-summary-read-group-1): Don't show the first
-	article if it is undownloaded.
-
-2002-01-10  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-spec.el (gnus-spec-tab): Deal with wide characters.
-
-2002-01-09  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* canlock.el (canlock-string-as-unibyte): New macro.
-	(canlock-sha1-with-openssl): Return a unibyte string.
-	(canlock-make-cancel-key): Treat Message-ID as a unibyte string.
-
-2002-01-09  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-expand-group-parameters): Match \N or \& only.
-
-2002-01-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-encode.el (mm-content-transfer-encoding-defaults): Add
-	application/x-emacs-lisp.
-
-	* gnus-msg.el (gnus-bug): Use application/emacs-lisp.
-
-	* nntp.el (nntp-request-article): Add group parameter.
-	(nntp-request-head): Ditto.
-	(nntp-find-group-and-number): Add parameter group. Figure out
-	number if the status line doesn't give (e.g. quimby.gnus.org).
-
-2002-01-08  Simon Josefsson  <jas@extundo.com>
-
-	* mml.el (mml-generate-mime-1): Set recipient correctly.
-
-2002-01-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-read-from-minibuffer): Add parameter
-	initial-contents.
-	* gnus-msg.el (gnus-summary-resend-message): Use it.
-
-	* gnus-group.el (gnus-group-read-ephemeral-group): Restore the old
-	behavior of quit-config.
-
-	* message.el (message-make-from): Don't quote fullname.
-	From: Bj,Ax(Brn Mork <bmork@dod.no>
-
-	* gnus-group.el (gnus-group-suspend): Don't kill message buffers.
-	From: <andre@slamdunknetworks.com>
-
-2002-01-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-mark-article-read): Typo. Increase n.
-
-	* gnus-art.el (gnus-header-button-alist): Handle mailto.
-
-	* mml.el (mml-preview): Bind gnus-original-article-buffer because
-	article-decode-group-name uses it.  Bind gnus-article-prepare-hook
-	because bbdb may use it.
-
-2002-01-07  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* nneething.el (nneething-request-article): When a non-text file
-	is converted to an article, its data is encoded in base64.  Call
-	`nneething-make-head' with options to specify MIME types.
-	(nneething-make-head): Add optional arguments to specify MIME
-	types.
-
-2002-01-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-fun.el (gnus-display-x-face-in-from): Fake a "From: "
-	header if there is not.
-
-	* gnus-xmas.el (gnus-xmas-put-image): Insert " " if bobp.
-
-	* gnus-msg.el (gnus-gcc-mark-as-read): New variable.
-	(gnus-inews-mark-gcc-as-read): Obsolete variable.
-	(gnus-inews-do-gcc): Use them.
-
-	* gnus-group.el (gnus-group-mark-article-read): Put holes into
-	gnus-newsgroup-unselected.
-
-2002-01-06  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-ssl-open, imap-ssl-open, imap-parse-fetch): Use
-	condition-case, not ignore-errors.
-
-2002-01-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-insert-old-articles): Bind
-	gnus-fetch-old-headers.
-
-	* gnus-art.el (article-display-x-face): Use the current buffer
-	unless `W f'. Otherwise, X-Face may be shown in the header of a
-	forwarded part.
-	(gnus-treatment-function-alist): Treat xface before hiding
-	headers.
-
-2002-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-group.el (gnus-group-read-ephemeral-group): Fix
-	parameters.
-
-2002-01-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-multibyte-p): Define conditionally when load.
-	(mm-guess-charset): New function.
-	(mm-charset-after): Use it.
-	(mm-detect-coding-region): New function.
-	(mm-detect-mime-charset-region): New function.
-
-	* gnus-sum.el (gnus-summary-show-article): Use
-	mm-detect-coding-region.
-
-2002-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-make-fqdn): Be less violent.
-
-	* gnus.el (gnus-logo-color-style): Compute custom form
-	automatically.
-
-	* gnus-sum.el (gnus-summary-enter-digest-group): Feed the adaptive
-	score file of the parent to the document group.
-
-	* gnus-group.el (gnus-group-read-ephemeral-group): Add an optional
-	parameters parameter.
-
-	* gnus-score.el (gnus-score-load-file): Clean up.
-
-2002-01-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-thread-sort-by-most-recent-number): Fix typo.
-	From: Damien Wyart <damien.wyart@free.fr>
-
-	* gnus-util.el (gnus-local-map-property): In Emacs 21, use keymap.
-
-2002-01-05  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-select-group-hook): Typo.
-
-	* rfc2047.el (rfc2047-decode-string): Return immediately if there
-	is no quoted-printable-encoded STRING.
-	From: Jesper Harder <harder@ifa.au.dk>
-
-	(rfc2047-decode-string): Decode it.
-
-2002-01-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-logo-color-alist): Added more colors from Luis.
-
-2002-01-05  Keiichi Suzuki  <keiichi@nanap.org>
-	Trivial patch.
-
-	* nntp.el (nntp-possibly-change-group): Erase contents of nntp
-	buffer to get rid of junk line.
-
-2002-01-05  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-mode-map): Bind message-goto-from to C-c C-f
-	C-o.
-	(message-mode-map): Bind message-insert-or-toggle-importance to
-	C-c C-u.
-	(message-mode-map): Bind message-disposition-notification-to to
-	C-c M-n.
-	(message-mode-menu): Add m-d-n-t.
-	(message-mode-field-menu): Add m-goto-from.
-	(message-mode): Doc fix.
-	(message-goto-from): New function.
-	(message-insert-disposition-notification-to): New function.
-	(message-tool-bar-map): Add receipt button.
-
-2002-01-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-thread-latest-date): New function.
-	(gnus-thread-sort-by-most-recent-number): Renamed.
-	(gnus-thread-sort-functions): Doc fix.
-	(gnus-select-group-hook): Don't use setq on a hook.
-	(gnus-thread-latest-date): Use date, not number
-
-	* gnus-agent.el (gnus-agent-expire-days): Doc fix.
-	(gnus-agent-expire): Allow regexp of expire-days.
-
-	* gnus-art.el (gnus-article-reply-with-original): Deactivate
-	region.
-	(gnus-article-followup-with-original): Ditto.
-
-	* gnus-sum.el (gnus-thread-highest-number): Doc fix.
-
-	* gnus-art.el (gnus-mime-display-alternative): Use
-	gnus-local-map-property.
-	(gnus-mime-display-alternative): Ditto.
-	(gnus-insert-mime-security-button): Ditto.
-	(gnus-insert-next-page-button): Ditto.
-	(gnus-button-prev-page): Take optional args.
-	(gnus-insert-prev-page-button): widget-convert.
-
-	* gnus-util.el (gnus-local-map-property): New function.
-
-	* gnus-art.el (gnus-prev-page-map): Use parent map.
-	(gnus-next-page-map): Ditto.
-
-	* gnus-spec.el (gnus-parse-format): Clean up.
-	(gnus-parse-format): Do complex formatting for %=.
-
-	* gnus-fun.el (gnus-display-x-face-in-from): Add the string
-	"X-Face: " to the data in the built-in scenario.
-
-	* gnus-spec.el (gnus-parse-simple-format): Use gnus-pad-form.
-	(gnus-correct-pad-form): Renamed.
-	(gnus-tilde-max-form): Clean up.
-	(gnus-pad-form): Use gnus-use-correct-string-widths.
-
-	* gnus-fun.el (gnus-display-x-face-in-from): Use native xface
-	support if that is available.
-
-	* gnus-sum.el (gnus-thread-highest-number): New function.
-	(gnus-thread-sort-by-most-recent-thread): New function.
-	(gnus-thread-sort-functions): Doc fix.
-
-2002-01-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-select-article): Disable multibyte in
-	all cases.
-	(gnus-summary-mode): Enable it in all cases.
-	(gnus-summary-display-article): Ditto.
-	(gnus-summary-edit-article): Ditto.
-
-	* gnus-ems.el (gnus-put-image): Really return glyph.
-
-	* gnus-art.el (gnus-article-x-face-command): Fix :type.
-	(gnus-treat-smiley): Don't take "P" in the interactive form.
-
-2002-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* compface.el (uncompface): XEmacs and Emacs have differing
-	capabilities.
-
-	* gnus-fun.el (gnus-display-x-face-in-from): Use face.
-
-	* gnus-ems.el (gnus-article-xface-ring-internal): Removed.
-	(gnus-article-xface-ring-size): Removed.
-	(gnus-article-display-xface): Removed.
-	(gnus-remove-image): Cleaned up.
-
-	* gnus-xmas.el (gnus-xmas-create-image): Convert pbm to xbm.
-	(gnus-xmas-create-image): Take pbm files.
-	(gnus-x-face): Removed.
-	(gnus-xmas-article-display-xface): Removed.
-
-	* gnus-fun.el (gnus-display-x-face-in-from): Bind
-	default-enable-multibyte-characters.
-
-	* compface.el (uncompface): Doc fix.
-
-	* gnus-art.el (gnus-article-x-face-command): Use
-	gnus-display-x-face-in-from.
-
-	* gnus-xmas.el (gnus-xmas-put-image): Return the image.
-
-	* gnus-ems.el (gnus-put-image): Return the image.
-
-	* gnus-fun.el (gnus-display-x-face-in-from): New function.
-	(gnus-x-face): Moved here.
-
-2002-01-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-xmas.el (gnus-xmas-put-image): Don't insert SPC or make
-	invisible if string is nil.
-	(gnus-xmas-article-display-xface): Use it.
-
-	* gnus-ems.el (gnus-put-image): Explicitly use SPC, and add text
-	property when string is nil.
-	(gnus-article-display-xface): Use it.
-
-2002-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (article-display-x-face): Check whether valid grey
-	face was returned.
-	(article-display-x-face): Place image in the right spot.
-
-	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Get rid of
-	stderr.
-	(gnus-convert-gray-x-face-to-xpm): Check whether output is valid.
-
-2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-xmas.el (gnus-xmas-create-image): Take optional
-	parameters.
-	(gnus-xmas-put-image): Allow non-strings to be passed.
-
-	* gnus-art.el (article-display-x-face): Use optional parameters.
-
-	* gnus-ems.el (gnus-create-image): Take optional parameters.
-
-	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Use uncompface.
-
-	* compface.el (compface-xbm-p): Removed.
-
-	* gnus-ems.el (gnus-article-compface-xbm): Removed.
-	(gnus-article-display-xface): Use compface.
-
-	* compface.el: New file.
-
-	* gnus-fun.el (gnus-convert-pbm-to-x-face-command): Remove quotes.
-	(gnus-convert-image-to-x-face-command): Ditto.
-	(gnus-random-x-face): Quote argument.
-	(gnus-x-face-from-file): Ditto.
-
-2002-01-03  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-request-expire-articles): evaluate
-	the expire-group parameter once per article rather than once
-	per group; bind `nnmaildir-article-file-name' and `article'
-	for convenience.  Leave article alone when expire-group
-	specifies the current group.
-	(nnmaildir--update-nov): be more concurrency-friendly with
-	temp file names.
-
-2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-start.el (gnus-read-init-file): Cleaned up.
-
-2002-01-03  Dave Love  <d.love@dl.ac.uk>
-
-	* gnus-start.el (gnus-startup-file-coding-system): Removed.
-	(gnus-read-init-file): Don't use it.
-
-2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-fetch-session): Run hook.
-
-2002-01-03  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-start.el (gnus-read-init-file): Don't force coding system
-	for ~/.gnus.  From Dave Love <fx@gnu.org>.
-
-2002-01-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nntp.el (nntp-send-buffer): Use mm-with-unibyte-current-buffer.
-	* nnspool.el (nnspool-request-post): Ditto.
-
-	* mm-util.el (mm-use-find-coding-systems-region): New variable.
-	(mm-find-mime-charset-region): Use it.
-
-2002-01-03  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus.el (gnus-summary-line-format): Added :link.
-	* gnus-topic.el (gnus-topic-line-format): Ditto.
-	* gnus-sum.el (gnus-summary-dummy-line-format): Ditto.
-	* gnus-srvr.el (gnus-server-line-format): Ditto.
-	* gnus-group.el (gnus-group-line-format): Ditto.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Use correct syntax for
-	:keys, it works on both Emacsen.
-
-2002-01-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-charset-to-coding-system): Don't setq charset.
-
-2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-msg.el (gnus-summary-send-map): Fix binding for very-wide.
-
-2002-01-03  Reiner Steib  <reiner.steib@gmx.de>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Menu bar entries for
-	very wide reply.
-
-2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-picon.el (gnus-picon-transform-address): Cache stuff.
-	(gnus-picon-cache): New variable.
-	(gnus-picon-transform-newsgroups): Cache stuff.
-
-	* gnus-art.el (gnus-article-reply-with-original): New command.
-	(gnus-article-followup-with-original): New command.
-
-	* gnus-msg.el (gnus-copy-article-buffer): Take optional BEG and
-	END parameters.
-	(gnus-summary-followup): Take a list of list of articles.
-	(gnus-inews-yank-articles): Allow lists of article/regions.
-
-	* gnus-art.el (gnus-article-read-summary-keys): `R' and `F' are no
-	longer the usual commands.
-
-	* gnus-fun.el (gnus-convert-image-to-gray-x-face): Use pnmnoraw.
-	(gnus-convert-gray-x-face-to-xpm): Don't use six parameters to
-	shell-command-on-region.
-
-2002-01-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-picon.el (gnus-picon-transform-newsgroups): Fix for the case
-	  "Newsgroups: rec.music.beatles.moderated, rec.music.beatles".
-
-2002-01-03  Steve Youngs  <youngs@xemacs.org>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): XEmacs doesn't
-	understand ':keys', wrap it in an featurep 'xemacs.
-
-2002-01-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-ems.el (gnus-article-display-xface): Show xface in the
-	order of headers (Actually, it is called in a reversed order). Add
-	'gnus-image-text-deletable property.
-	(gnus-remove-image): Remove text with such a property.
-
-	* gnus-xmas.el (gnus-xmas-article-display-xface): Don't use
-	gnus-put-image.
-
-	* gnus-art.el (gnus-article-treat-fold-newsgroups): Replace ", *"
-	with ", "
-
-2002-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Renamed.
-
-	* gnus-art.el (gnus-ignored-headers): Hide all X-Faces.
-	(article-display-x-face): Display grey X-Faces.
-
-	* gnus-fun.el (gnus-convert-gray-x-face-region): New function.
-	(gnus-convert-gray-x-face-to-ppm): Ditto.
-	(gnus-convert-image-to-gray-x-face): Ditto.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Add a :keys to
-	gnus-summary-show-raw-article.
-
-2002-01-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	Display picons in XEmacs without showing text.
-
-	* gnus-xmas.el (gnus-xmas-create-image): Don't use
-	mm-create-image-xemacs to create xbm glyph, because it deletes
-	temporary files.
-	(gnus-xmas-put-image): Use end-glyph. Make text invisible.
-	(gnus-xmas-remove-image): Make text visible, remove glyph.
-
-	* gnus-picon.el (gnus-picon-transform-newsgroups)
-	(gnus-picon-transform-address): Insert spec backward, due to the
-	incompatibility of gnus-xmas-put-image.
-
-2002-01-02  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
-
-	* gnus-fun.el (gnus-convert-pbm-to-x-face-command): Doc fix.
-
-2002-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el: Doc fix.
-
-	* gnus-art.el: Doc fix.
-
-	* gnus-agent.el: Doc fix.
-
-2002-01-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-diary.el, gnus-delay.el: Fix copyright lines.
-
-2002-01-01  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir--update-nov): automatically parse
-	NOV data out of the message again if nnmail-extra-headers has
-	changed.
-
-2002-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-fun.el: New file.
-	(gnus-convert-image-to-x-face-command): New variable.
-	(gnus-insert-x-face): New function.
-	(gnus-random-x-face): Renamed.
-	(gnus-x-face-from-file): Renamed.
-
-	* gnus-art.el (gnus-body-boundary-delimiter): Changed default to
-	"_".
-	(gnus-body-boundary-delimiter): Typo fix.
-
-2002-01-02  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-article-treat-body-boundary): Handle nil.
-	(gnus-body-boundary-delimiter): Fix type.
-
-2002-01-01  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-treat-buttonize, gnus-treat-buttonize-head)
-	(gnus-treat-emphasize, gnus-treat-strip-cr)
-	(gnus-treat-leading-whitespace, gnus-treat-hide-headers)
-	(gnus-treat-hide-boring-headers, gnus-treat-hide-signature)
-	(gnus-treat-fill-article, gnus-treat-hide-citation)
-	(gnus-treat-hide-citation-maybe)
-	(gnus-treat-strip-list-identifiers, gnus-treat-strip-pgp)
-	(gnus-treat-strip-pem, gnus-treat-strip-banner)
-	(gnus-treat-highlight-headers, gnus-treat-highlight-citation)
-	(gnus-treat-date-ut, gnus-treat-date-local)
-	(gnus-treat-date-english, gnus-treat-date-lapsed)
-	(gnus-treat-date-original, gnus-treat-date-iso8601)
-	(gnus-treat-date-user-defined, gnus-treat-strip-headers-in-body)
-	(gnus-treat-strip-trailing-blank-lines)
-	(gnus-treat-strip-leading-blank-lines)
-	(gnus-treat-strip-multiple-blank-lines)
-	(gnus-treat-unfold-headers, gnus-treat-fold-headers)
-	(gnus-treat-fold-newsgroups, gnus-treat-overstrike)
-	(gnus-treat-display-xface, gnus-treat-display-smileys)
-	(gnus-treat-from-picon, gnus-treat-mail-picon)
-	(gnus-treat-newsgroups-picon, gnus-treat-body-boundary)
-	(gnus-treat-capitalize-sentences, gnus-treat-fill-long-lines)
-	(gnus-treat-play-sounds, gnus-treat-translate)
-	(gnus-treat-x-pgp-sig): Doc fix, add link to manual.
-
-	* gnus-art.el (gnus-body-boundary-delimiter): New variable.
-	(gnus-article-treat-body-boundary): Use it.
-
-	* message.el (message-mode): Fix doc.
-	(message-mode-menu): Fix names.
-
-2002-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-first-subject): Really go to unseen
-	articles.
-
-	* gnus-picon.el (gnus-picon-find-face): Search MISC for all types.
-	(gnus-picon-transform-address): Search for unknown faces as well.
-	(gnus-picon-find-face): Don't search "news" for MISC.
-	(gnus-picon-user-directories): Changed default back to exclude
-	"unknown".
-
-	* gnus-sum.el (gnus-summary-hide-all-threads): Reversed logic.
-
-	* gnus-picon.el (gnus-picon-find-face): Search through all
-	databases.
-	(gnus-picon-find-face): New implementation.
-
-	* gnus-topic.el (gnus-topic-goto-previous-topic): New command and
-	keystroke.
-	(gnus-topic-goto-next-topic): Ditto.
-
-	* gnus.el (gnus-summary-line-format): Changed default.
-
-	* nnmail.el (nnmail-extra-headers): Change default.
-
-	* gnus-sum.el (gnus-extra-headers): Change default.
-
-	* message.el (message-news-other-window): Changed "news" to
-	"posting".
-	(message-news-other-frame): Ditto.
-	(message-do-send-housekeeping): Ditto.
-
-	* gnus-sum.el (gnus-summary-maybe-hide-threads): Use predicate
-	function.
-	(gnus-article-unread-p): New function.
-	(gnus-article-unseen-p): New function.
-	(gnus-dead-summary-mode-map): Typo.
-
-	* gnus-util.el (gnus-make-predicate): New function.
-	(gnus-make-predicate-1): New function.
-
-	* gnus-sum.el: New function.
-	(gnus-map-articles): New function.
-
-	* gnus-art.el (gnus-treat-fold-headers): New variable.
-	(gnus-article-treat-fold-headers): New command and keystroke.
-
-	* gnus-sum.el (gnus-dead-summary-mode-map): Clean up.
-	(gnus-dead-summary-mode-map): Bind q to bury-buffer.
-
-2002-01-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-fcc-externalize-attachments): New variable.
-	(message-do-fcc): Use it.
-
-	* gnus-msg.el (gnus-gcc-externalize-attachments): New variable.
-	(gnus-inews-do-gcc): Use it.
-
-	* mml.el (mml-tweak-sexp-alist): New variable.
-	(mml-externalize-attachments): New variable.
-	(mml-tweak-part): Use mml-tweak-sexp-alist.
-	(mml-tweak-externalize-attachments): New function.
-
-2002-01-01  Steve Youngs  <youngs@xemacs.org>
-
-	* gnus-xmas.el (gnus-xmas-article-display-xface): Uncomment
-	'set-glyph-face' so x-face back/foreground can be set.
-
-2001-12-31  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-fix-before-sending): Fix a typo.
-
-2002-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-treat-smiley): Renamed command.
-	(gnus-article-remove-images): New command and keystroke.
-
-	* gnus-sum.el (gnus-summary-toggle-smiley): Removed.
-
-	* smiley-ems.el (gnus-smiley-display): Removed.
-
-	* gnus.el (gnus-version-number): Update version.
-
-	* message.el (message-text-with-property): Renamed and moved
-	here.
-	(message-fix-before-sending): Highlight invisible text and place
-	point there.
-
-2002-01-01 02:32:53 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.04 is released.
-
-2002-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-delay.el (gnus-delay-send-queue): Renamed.
-
-	* gnus-art.el (gnus-ignored-headers): More headers,
-
-	* ietf-drums.el (ietf-drums-parse-addresses): Use `error' instead
-	of `scan-error', since XEmacs doesn't seem to support that.
-
-2001-12-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-best-unread-article): Take a prefix
-	arg.
-	(gnus-summary-best-unread-subject): Ditto.
-	(gnus-summary-best-unread-subject): No, don't.
-	(gnus-summary-better-unread-subject): New command.
-
-	* gnus-xmas.el (gnus-xmas-put-image): Insert the string itself.
-
-	* lpath.el ((featurep 'xemacs)): fbind url function.
-
-	* gnus-xmas.el (gnus-xmas-article-display-xface): Use data, not
-	buffer.
-	(gnus-xmas-remove-image): Implementation that does something.
-	(gnus-xmas-article-display-xface): Mark images properly.
-
-	* gnus-art.el (gnus-mime-print-part): Use mm-temp-directory.
-
-2001-12-31  Florian Weimer  <fw@deneb.enyo.de>
-
-	* gnus.el (gnus): Warn if trying to run Gnus un-byte-compiled.
-
-2001-12-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-group.el (gnus-group-line-format): Added %O to the default
-	value.
-
-	* gnus-util.el (gnus-text-with-property): The smallest point is
-	point-min.
-
-	* smiley-ems.el (smiley-region): Return images.
-	(gnus-smiley-display): Allow toggling.
-	(smiley-region): Use text properties, not overlays.
-
-	* gnus-xmas.el (gnus-xmas-remove-image): New function, not
-	implemented yet.
-
-	* smiley-ems.el (smiley-update-cache): Check for valid types.
-
-	* gnus-art.el (gnus-with-article-buffer): New macro.
-
-	* gnus-picon.el (gnus-picon-transform-newsgroups): Keep the
-	strings as well as the glyphs.
-	(gnus-picon-transform-address): Ditto.
-	(gnus-picon-insert-glyph): Ditto.
-	(gnus-picon-transform-newsgroups): Toggle.
-	(gnus-picon-transform-address): Toggle.
-
-	* gnus-ems.el (gnus-remove-image): New function.
-	(gnus-put-image): Take an optional string.
-
-	* gnus-util.el (gnus-text-with-property): New function.
-
-	* gnus-art.el (gnus-delete-images): New function.
-
-	* gnus-ems.el (gnus-article-display-xface): Mark and store image.
-
-	* gnus-art.el (gnus-article-wash-status-entry): Renamed.
-	(gnus-article-wash-status): Use it.
-	(gnus-signature-toggle): Clean up.
-	(gnus-add-wash-status): New function.
-	(gnus-delete-wash-status): New function.
-	(gnus-article-hide-text-type): Use them throughout.
-	(gnus-add-image): New function.
-
-	* gnus-ems.el (gnus-article-display-xface): Use new interface.
-
-	* gnus-xmas.el (gnus-xmas-article-display-xface): Use new
-	interface.
-
-	* gnus-art.el (article-display-x-face): Cleaned up.
-
-	* rfc2047.el (rfc2047-field-value): New function.
-
-	* mail-parse.el (mail-header-field-value): New alias.
-
-	* gnus-art.el (gnus-mime-print-part): Fix typos.
-
-	* smiley-ems.el (gnus-smiley-file-types): New variable.
-	(smiley-update-cache): Use it.
-	(smiley-regexp-alist): Suffix-less smiley names.
-	(smiley-regexp-alist): Added more smileys.
-
-	* gnus-sum.el (gnus-print-buffer): Made into own function.
-	(gnus-summary-print-article): Use it.
-
-	* mailcap.el (mailcap-mime-info): Actually return the bit that we
-	looked for when REQUEST is a string.
-
-	* gnus-art.el (gnus-mime-button-commands): Add printing
-	keystroke.
-	(gnus-mime-copy-part): Doc fix.
-	(gnus-mime-print-part): New command.
-
-2001-12-31  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-parse-fetch): Notice empty flags responses.  From
-	Nic Ferrier <nferrier@tf1.tapsellferrier.co.uk>.
-
-2001-12-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-picon.el (gnus-treat-from-picon): Autoload.
-	(picon): Fix doc.
-
-	* gnus-win.el (gnus-window-to-buffer): gnus-picon-buffer-name no
-	longer exists. Remove those codes.
-	* gnus.el (gnus-use-picons): Ditto.
-
-2001-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-treat-fold-newsgroups): Don't
-	infloop.
-
-	* gnus-sum.el (t): New `W D' map.
-
-	* gnus-art.el (gnus-treat-fold-newsgroups): New variable.
-	(gnus-article-treat-body-boundary): Clean up.
-	(gnus-body-boundary-face): Removed.
-	(gnus-article-goto-header): Moved here.
-	(gnus-article-goto-header): Allow better regexps.
-	(gnus-article-treat-fold-newsgroups): New command.
-
-	* gnus-sum.el (gnus-summary-move-article): We have to select an
-	article to give `gnus-read-move-group-name' an opportunity to
-	suggest an appropriate default.
-
-	* rfc2047.el (rfc2047-fold-line): New function.
-	(rfc2047-unfold-line): Ditto.
-	(rfc2047-fold-region): Don't fold just after the header name.
-
-	* mail-parse.el (mail-header-fold-line): New alias.
-	(mail-header-unfold-line): Ditto.
-
-	* gnus-art.el (gnus-body-boundary-face): Renamed.
-	(gnus-article-treat-body-boundary): Use it.
-	(gnus-article-treat-body-boundary): Use an invisible header and a
-	line of underline characters.
-
-2001-12-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* ietf-drums.el (ietf-drums-parse-addresses): Recover from errors.
-
-	* gnus-picon.el (gnus-picon-transform-address): Skip bad addresses.
-	(gnus-picon-split-address): New function.
-	(gnus-picon-find-face): Use it.
-	(gnus-picon-transform-address): Use it. Set first to t for each
-	address.
-
-	* gnus-art.el (gnus-with-article-headers): Move to here. Define
-	the macro then use it.
-	(gnus-treatment-function-alist): Treat picons earlier.
-
-2001-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-body-separator-face): New variable.
-	(gnus-article-treat-body-boundary): Use a blank, colored line.
-
-	* gnus-picon.el (gnus-picon-find-face): Look into misc/MISC as
-	well.
-
-	* gnus-art.el (gnus-treat-body-boundary): New variable.
-	(gnus-article-treat-unfold-headers): Use helper macro.
-	(gnus-article-treat-body-boundary): New command.
-
-	* gnus.el (gnus-logo-color-style): Change the default color.
-	(gnus-splash-face): Gray, gray.
-
-	* gnus-xmas.el (gnus-xmas-group-startup-message): Use general
-	colors.
-
-	* gnus.el (gnus-logo-color-alist): Moved here and renamed.
-	(gnus-logo-color-style): Ditto.
-	(gnus-logo-colors): Ditto.
-
-	* gnus-picon.el (gnus-picon-create-glyph): Cache glyphs.
-
-	* gnus-art.el (gnus-treat-newsgroups-picon): New variable.
-
-	* gnus-picon.el (gnus-treat-newsgroups-picon): New function.
-	(gnus-picon-transform-newsgroups): New function.
-
-	* ietf-drums.el (ietf-drums-parse-addresses): Accept a nil
-	string.
-
-	* gnus-picon.el (gnus-treat-mail-picon): Renamed.
-
-	* gnus-art.el (gnus-treat-cc-picon): New variable.
-	(gnus-treat-mail-picon): Renamed.
-
-	* gnus-picon.el: New implementation.
-	(gnus-picon-find-face): Renamed.
-	(gnus-treat-from-picon): Use it.
-	(gnus-picon-transform-address): Renamed.
-	(gnus-treat-from-picon): Use it.
-	(gnus-picon-create-glyph): Renamed.
-	(gnus-picon-transform-address): Use it.
-	(gnus-treat-cc-picon): New command.
-
-	* mm-decode.el (mm-create-image-xemacs): Separated out into
-	function.
-	(mm-get-image): Use it.
-
-	* gnus-art.el (gnus-treat-display-picons): Simplify.
-	(gnus-treat-from-picon): Renamed.
-
-	* gnus-ems.el (gnus-create-image): New function.
-	(gnus-put-image): New function.
-
-	* gnus-art.el (gnus-article-treat-unfold-headers): Doc fix.
-	(gnus-with-article-headers): New macro.
-	(gnus-article-goto-header): New function.
-
-	* gnus-xmas.el (gnus-image-type-available-p): New function.
-
-	* gnus-ems.el (gnus-image-type-available-p): New function.
-
-2001-12-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-check-group): Find the correct tag, because
-	xml.el is changed.
-
-2001-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-article-treat-unfold-headers): Only fold when
-	lines are shorter than the window width.
-	(gnus-ignored-headers): More headers.
-
-2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-treat-unfold-lines): New variable.
-	(gnus-treat-unfold-headers): Renamed.
-	(gnus-article-treat-unfold-headers): New command and keystroke.
-
-	* rfc2047.el (rfc2047-encode-message-header): Clean up.
-
-	* gnus-int.el (gnus-open-server): Mark quit-ed server as denied.
-
-2001-12-29  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* sha1-el.el (sha1-use-external): New variable.
-	(sha1-region): Use it.
-	(sha1-string): Ditto.
-
-	* dgnushack.el (dgnushack-compile): Compile gnus-picon for Emacs.
-	* gnus-picon.el: Less warnings when compile.
-
-2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-picon.el (gnus-picons-news-directories): Removed obsolete
-	alias.
-	(gnus-picons-database): Default to list.
-	(gnus-picons-lookup-internal): Use it.
-
-	* nnmail.el (nnmail-article-group): Default nnmail-split-methods
-	to "bogus".
-
-	* gnus-win.el (gnus-configure-windows-hook): New hook.
-
-2001-12-29  Sascha L,A|(Bdecke  <sascha@meta-x.de>
-
-	* gnus-win.el (gnus-configure-windows): Minimize tree buffer.
-
-2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-update-marks): Don't uncompress the seen
-	lists.
-	(gnus-select-newsgroup): Don't append; push.
-	(gnus-adjust-marked-articles): Remove obsolete ranges from
-	`seen'.
-	(gnus-update-marks): Clean up.
-	(gnus-select-newsgroup): Don't stomp gnus-newsgroup-seen.
-
-2001-12-29  Frank Schmitt  <usereplyto@Frank-Schmitt.net>
-
-	* gnus-sum.el (gnus-summary-limit-to-age): Allow negative days.
-
-2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-auto-select-subject): New variable.
-	(gnus-summary-best-unread-subject): New function.
-	(gnus-summary-best-unread-article): Use it.
-	(gnus-summary-first-unseen-subject): New function and command.
-
-	* gnus-art.el (gnus-treatment-function-alist): Emphasize after
-	other treatments.
-
-	* gnus-util.el (gnus-put-overlay-excluding-newlines): New
-	function.
-
-	* gnus-art.el (gnus-article-show-hidden-text): Remove the type
-	from the list of hidden types.
-
-	* mm-view.el (mm-inline-text): Ditto.
-	(mm-inline-text): Ditto.
-	(mm-w3-prepare-buffer): Ditto.
-
-	* gnus-art.el (article-wash-html): Inhibit more remote fetching.
-
-2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-ignored-headers): Added more headers.
-
-2001-12-29  Jesper Harder  <harder@ifa.au.dk>
-
-	* gnus-srvr.el (gnus-browse-foreign-server): Compute the prefix
-	once.
-
-2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-srvr.el (gnus-server-browse-in-group-buffer): Doc fix.
-
-2001-12-28  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-srvr.el (gnus-browse-foreign-server): Fix typo.  From
-	Jesper Harder <harder@ifa.au.dk>.
-
-2001-12-27  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-select-newsgroup): Make
-	`gnus-newsgroup-unseen' sorted.  Make `gnus-newsgroup-unseen'
-	contain all articles (instead of none) when no seen marks have
-	been set for the group.
-	(gnus-update-marks): Use `gnus-range-add' on a uncompressed list
-	instead, it seems to result in shorter ranges.
-
-2001-12-26 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-iso-8859-x-to-15-region): Use
-	insert-before-markers.
-	From Jesper Harder <harder@ifa.au.dk>
-
-2001-12-26  Paul Jarc  <prj@po.cwru.edu>
-
-	* nnmaildir.el (nnmaildir-save-mail): create the destination
-	groups if they do not exist.
-
-2001-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* canlock.el (canlock-sha1-with-openssl): Remove unused variable.
-
-2001-12-22 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-read-ephemeral-group): Call
-	gnus-group-real-name.
-
-	* gnus-sum.el (gnus-decode-encoded-word-methods): Backslash paren.
-	(gnus-newsgroup-variables): Ditto.
-
-	* gnus.el (gnus-group-prefixed-name): If group name is prefixed,
-	return it.
-
-2001-12-21  Paul Jarc  <prj@po.cwru.edu>
-
-	* gnus.el (gnus-valid-select-methods): Include nnmaildir.
-	* nnmaildir.el (top-level): Add commentary.
-	(nnmaildir-version): Indicate that nnmaildir is now a standard
-	part of Gnus, not separately released.
-
-2001-12-21 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el, gnus-picon.el, gnus-sieve.el, gnus-sum.el:
-	* gnus-xmas.el, imap.el, mailcap.el, mm-util.el, nnfolder.el:
-	* nnheader.el, nnmail.el: Nil/NIL vs. nil.
-	From  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
-
-2001-12-20 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmaildir.el: Copyright changes. Require cl only at compile time.
-
-2001-12-20  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (top-level): Don't require cl.  Suggested by ShengHuo
-	ZHU <zsh@cs.rochester.edu>.
-	(nnimap-close-group): Don't quote KEYLIST items.  Suggested by
-	Brian P Templeton <bpt@tunes.org>.
-
-2001-12-19 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmaildir.el: New file.
-	From Paul Jarc <prj@po.cwru.edu>.
-
-2001-12-19 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndoc.el (nndoc-type-alist): Move forward to the end.
-
-2001-12-19  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus.el (gnus-find-subscribed-addresses): Replace `mapc' with
-	`dolist'.
-
-2001-12-19 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-win.el (gnus-frames-on-display-list): New function.
-	(gnus-get-buffer-window): Use it.
-
-2001-12-19 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnwarchive.el (nnwarchive-mail-archive-xover): Fix the regexp.
-
-2001-12-18 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-win.el (gnus-get-buffer-window): Use gnus-delete-if.
-
-2001-12-18 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	   From Harald Meland <Harald.Meland@usit.uio.no>
-
-	* gnus-win.el (gnus-get-buffer-window): New function.
-	(gnus-all-windows-visible-p): Use it.
-
-	* gnus-util.el (gnus-horizontal-recenter)
-	(gnus-horizontal-recenter, gnus-horizontal-recenter)
-	(gnus-horizontal-recenter, gnus-set-window-start): Use it.
-
-	* gnus-score.el (gnus-score-insert-help): Use it.
-
-	* gnus-salt.el (gnus-tree-recenter, gnus-generate-tree)
-	(gnus-generate-tree, gnus-highlight-selected-tree)
-	(gnus-highlight-selected-tree, gnus-tree-highlight-article): Use
-	it.
-
-	* gnus-art.el (gnus-article-set-window-start)
-	(gnus-mm-display-part, gnus-request-article-this-buffer)
-	(gnus-button-next-page, gnus-button-prev-page)
-	(gnus-article-button-next-page, gnus-article-button-prev-page):
-	Use it.
-
-2001-12-18  Josh Huber  <huber@alum.wpi.edu>
-
-	* ChangeLog, ChangeLog.1, nnwfm.el, smiley.el:
-	* gnus-cite.el, gnus-delay.el, gnus-spec.el, message.el:
-	* mml1991.el, nnultimate.el: Removed buffer-file-coding-system tag.
-
-2001-12-18 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* ChangeLog,  ChangeLog.1, nnwfm.el,  gnus-smiley.el:
-	* gnus-cite.el, gnus-delay.el, gnus-spec.el, message.el:
-	* mml1991.el, nnultimate.el: Add `coding'.
-
-2001-12-17  Josh Huber  <huber@alum.wpi.edu>
-
-	* ChangeLog: changed coding to buffer-file-coding-system
-	* ChangeLog.1: same
-	* nnwfm.el: same
-	* gnus-smiley.el: same
-	* gnus-cite.el: moved -*- magic cookie -*- to Local Variables
-	* gnus-delay.el: same
-	* gnus-spec.el: same
-	* message.el: same
-	* mml1991.el: same
-	* nnultimate.el: same
-
-2001-12-16  Simon Josefsson  <jas@extundo.com>
-	Inspired by code by Dirk Meyer <dischi@tzi.de>.
-
-	* gnus-sum.el (gnus-summary-muttprint-program): New variable.
-	(gnus-summary-save-map): Add muttprint.
-	(gnus-summary-make-menu-bar): Ditto.
-	(gnus-summary-muttprint): New function.
-
-	* gnus-art.el (gnus-summary-pipe-to-muttprint): New function.
-
-2001-12-14 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* uudecode.el (uudecode-decode-region-internal): Speedup by using
-	temporary list instead of buffer.
-
-	* mm-url.el (executable-find): autoload.
-
-2001-12-12  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
-
-	* gnus-mlspl.el (gnus-group-split-fancy): Doc fix (add reference
-	to variable, follow doc-string conventions).
-
-2001-12-13  Josh Huber  <huber@alum.wpi.edu>
-
-	* gnus-cus.el (gnus-extra-topic-parameters): added topic parameter
-	subscribe-level
-	* gnus-topic.el (gnus-subscribe-topics): use it.
-
-2001-12-13 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-summary-mail-forward): Forward all marked
-	messages. (A small patch with indentation)
-	From Sean Neakums <sneakums@zork.net>.
-
-	* gnus-uu.el (gnus-uu-grab-articles): Set gnus-current-article to
-	nil after shooting down the gnus-original-article-buffer.
-
-2001-12-13 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* uudecode.el (uudecode-use-external): New variable.
-	(uudecode-decode-region): Automatically detect external program.
-
-	* binhex.el (binhex-use-external): New variable.
-	(binhex-decode-region-internal): New function.
-	(binhex-decode-region): Automatically detect external program.
-
-	* mm-uu.el (mm-uu-decode-function,mm-uu-binhex-decode-function):
-	Use them.
-
-2001-12-12  Simon Josefsson  <jas@extundo.com>
-
-	* nnvirtual.el (nnvirtual-always-rescan)
-	(nnvirtual-component-regexp): Fix doc.
-
-	* nnoo.el (defvoo): Add doc to defvoo variables.
-
-	* nnml.el (nnml-directory, nnml-active-file)
-	(nnml-newsgroups-file, nnml-get-new-mail, nnml-nov-is-evil)
-	(nnml-marks-is-evil, nnml-filenames-are-evil)
-	(nnml-prepare-save-mail-hook, nnml-inhibit-expiry): Fix doc.
-
-	* nnmh.el (nnmh-directory, nnmh-get-new-mail)
-	(nnmh-prepare-save-mail-hook, nnmh-be-safe): Fix doc.
-	(nnmh-possibly-change-directory): Use `nnheader-report' instead of
-	`error'.
-
-	* nnmbox.el (nnmbox-mbox-file, nnmbox-active-file)
-	(nnmbox-get-new-mail, nnmbox-prepare-save-mail-hook):
-
-	* nnfolder.el (nnfolder-directory, nnfolder-active-file)
-	(nnfolder-newsgroups-file, nnfolder-get-new-mail)
-	(nnfolder-save-buffer-hook, nnfolder-inhibit-expiry)
-	(nnfolder-nov-is-evil, nnfolder-marks-is-evil): Fix doc.
-
-	* nnbabyl.el (nnbabyl-mbox-file, nnbabyl-active-file)
-	(nnbabyl-get-new-mail, nnbabyl-prepare-save-mail-hook): Fix doc.
-
-	* imap.el, nnimap.el: Fix indentation.
-
-	* gnus-sieve.el (gnus-sieve-article-add-rule): Autoload it.
-
-2001-12-12  Didier Verna  <didier@xemacs.org>
-
-	* gnus-msg.el (gnus-group-news): New function.
-	* gnus-group.el (gnus-group-mode-map): bind it to `i'.
-	* gnus-group.el (gnus-group-make-menu-bar): add a menu item for it.
-	* gnus-salt.el (gnus-carpal-group-buffer-buttons): add a button
-	for it.
-	* gnus-msg.el (gnus-summary-news-other-window): New function.
-	* gnus-msg.el ((gnus-summary-send-map "S" gnus-summary-mode-map)):
-	bind it to `i'.
-	* gnus-sum.el (gnus-summary-mode-map): bind it to `i'.
-	* gnus-sum.el (gnus-summary-make-menu-bar): add a menu item for it.
-	* gnus-salt.el (gnus-carpal-summary-buffer-buttons): add a button
-	for it (called with a prefix).
-	* gnus-msg.el (gnus-configure-posting-styles): add an optional
-	group-name argument.
-	* gnus-msg.el (gnus-setup-message): use it.
-
-2001-12-12 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-show-article): Fix doc.
-
-2001-12-10 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mime-to-mml): Remove Content-Disposition too.
-
-2001-12-09 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-buffer-name): Decode group name.
-	* gnus-group.el (gnus-group-name-decode): Decode unibyte
-	strings only.
-	From TSUCHIYA Masatoshi <tsuchiya@namazu.org>
-
-2001-12-08  Nevin Kapur  <nevin@jhu.edu>
-
-	* nnmail.el (nnmail-fancy-expiry-targets): New variable.
-	(nnmail-fancy-expiry-target): Use it.
-	Suggestions from Simon Josefsson <jas@extundo.com>.
-
-2001-12-07 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-show-article): Recount lines if not exist.
-
-2001-12-07 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnwfm.el (nnwfm-create-mapping): Use gnus-url-unhex-string.
-
-	* gnus-util.el (gnus-url-unhex-string): Move here.
-
-2001-12-07 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-decode-entities-unibyte-string): Use
-	mm-url-decode-entities-nbsp.
-
-	* nnlistserv.el, nnultimate.el, nnwarchive.el, nnweb.el:
-	* webmail.el, nnwfm.el: Use mm-url.
-
-	* mm-url.el (mm-url-fetch-form): Move from nnweb.
-	(mm-url-remove-markup): Move from nnweb.
-	(mm-url-fetch-simple): Move from webmail.
-
-	* nnslashdot.el (nnslashdot-request-post): Use mm-url-fetch-form.
-
-2001-12-07 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-print-truncate-and-quote): New function.
-	(gnus-summary-print-article): Use it.
-
-	* gnus-util.el (gnus-replace-in-string): Typo.
-
-2001-12-06 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnweb.el (nnweb-replace-in-string): Removed.
-
-	* gnus-util.el (gnus-replace-in-string): New function.
-	(gnus-mode-string-quote): Use it.
-
-	* nnrss.el (nnrss-format-string): Use gnus-replace-in-string.
-	* nnwfm.el (nnwfm-create-mapping): Ditto.
-
-2001-12-06 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* dgnushack.el (dgnushack-compile): nnrss.el and
-	nnslashdot.el don't depend on nnweb, url, w3.
-
-	* nnrss.el: Use mm-url.
-
-2001-12-06 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-url.el (mm-url-insert-file-contents): Support file:.
-
-2001-12-05 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-view.el: Lower case for the description line. Sync from the
-	Emacs CVS.
-
-2001-12-05 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-find-new-groups): Fix doc.
-	From:  Stefan Monnier  <monnier@cs.yale.edu>
-
-2001-12-05  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* mm-view.wl (mm-inline-text): Decode a charset-encoded rich text.
-
-2001-12-04 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-url.el: Require executable.
-	Suggested by Katsumi Yamaoka <yamaoka@jpl.org>.
-
-2001-12-03 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* pop3.el (pop3-munge-message-separator): Only use valid date.
-	Trivial patch from Michael Welsh Duggan <md5i@cs.cmu.edu>.
-
-	* Makefile.in: gnus-load.elc may not be generated.
-
-2001-12-03 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-url.el: New file.
-	* nnslashdot.el: Use it.
-	* mm-extern.el (mm-extern-url): Use it.
-
-2001-12-01 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-save-article): Nix
-	gnus-display-mime-function and gnus-article-prepare-hook.
-
-	* gnus-spec.el (gnus-parse-complex-format): Properly handle %C at
-	the beginning of lines.
-	(gnus-complex-form-to-spec): Ditto.
-
-2001-12-01 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-make-mft): Fix the m-s-a-file regexp.
-	From Paul Jarc <prj@po.cwru.edu>.
-
-2001-11-30 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el: New variable message-subscribed-address-file;
-	use it in message-make-mft.  From Paul Jarc <prj@po.cwru.edu>.
-
-2001-11-30 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-tab-body-function): Set to nil.
-	(message-tab): Use text-mode-map or global-map.
-	Suggested by Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>.
-
-2001-11-30  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-agent.el (gnus-agent-fetch-headers): Use gnus-range-add
-	instead of gnus-union, for speed.  Suggested by Christoph Conrad
-	<christoph.conrad@gmx.de>.
-	(gnus-agent-fetch-group-1): Add verbose message.
-
-2001-11-29 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-write-active): Make sure sym is a cons
-	of integers.
-
-2001-11-29  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-newgroups-header-regexp)
-	(message-completion-alist, message-tab-body-function): Use
-	defcustom rather than defvar.
-	(message-tab): Mention `message-tab-body-function' in doc.
-	Suggested by Karl Eichwalder.
-
-2001-11-28 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-uu.el (gnus-uu-save-article): Use #part instead of #mml.
-
-2001-11-28 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnheader.el (nnheader-find-nov-line): Don't use macro
-	gnus-delete-line.
-
-	* gnus-group.el (gnus-group-name-decode): Defun instead of defsubst.
-	(gnus-group-name-charset): Ditto.
-
-	* gnus-util.el (gnus-buffer-live-p): Ditto.
-
-2001-11-28 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* sieve-manage.el (sieve-manage-stream-alist): Backslash before
-	open parenthesis in doc.
-	(sieve-manage-authenticator-alist): Typo in doc.
-	* imap.el (imap-authenticator-alist): Typo in doc.
-	(imap-stream-alist): Backslash.
-
-	* gnus-sum.el (gnus-summary-limit-to-author): Missing arguments.
-	  Thanks to david.goldberg6@verizon.net (David S. Goldberg)
-
-2001-11-27 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-topic.el (gnus-topic-mode): Add LOCAL for add-hook.
-
-	* message.el (message-mode): make-local-hook is harmless in Emacs 21.
-
-	* gnus-msg.el (gnus-configure-posting-styles): use
-	make-local-hook. Add LOCAL for add-hook.
-
-2001-11-27  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-mode): Use `make-local-hook' unless
-	obsolete.
-	Patch by Katsumi Yamaoka <yamaoka@jpl.org>.
-
-2001-11-26  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* canlock.el: Remove sha1.el and base64.el stuff.
-
-2001-11-26  Didier Verna  <didier@xemacs.org>
-
-	* nnmbox.el (nnmbox-create-mbox): create the mbox file directory
-	if needed.
-
-2001-11-21  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-tamago-not-in-use-p): New function.
-	(message-strip-forbidden-properties): Use it.
-
-2001-11-26  Didier Verna  <didier@xemacs.org>
-
-	* gnus-start.el (gnus-check-first-time-used): only check for
-	existence of .el[d] files.
-
-2001-11-25 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-coding-system-priorities): Add backslash in the doc.
-
-	* message.el (message-setup-1): Clean up mc-*.
-
-2001-11-25 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-directory-sep-char-regexp): New variable.
-	* gnus-score.el (gnus-score-find-bnews): Use it.
-
-	* gnus-sum.el (gnus-summary-limit-to-subject): An exclusion version.
-	(gnus-summary-limit-to-author): Ditto.
-	(gnus-summary-limit-to-extra): Ditto.
-	(gnus-summary-find-matching): Support not-matching argument.
-
-2001-11-25  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-wash-subject): Use `insert' rather than
-	`insert-string', which is deprecated.
-
-2001-11-24  Simon Josefsson  <jas@extundo.com>
-
-	* mm-encode.el (mm-encode-content-transfer-encoding): Fix error
-	message. (Gnus does not "default" to using 8bit for the message,
-	it default to use 8bit encoding and the user-supplied CTE
-	value. Calling this behaviour "treating it as 8bit" is perhaps
-	better.)
-
-	* mm-bodies.el (mm-body-encoding): Intern encoding if needed
-	(compare mm-charset-to-coding-system).
-
-2001-11-23 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* canlock.el (canlock-sha1-with-openssl): Use unibyte
-	buffer. Correctly decode hex.
-
-2001-11-21 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-category-insert-line): Convert category
-	names to strings.
-
-2001-11-20 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (sha1): eval-and-compile.
-
-2001-11-20  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-allow-no-recipients): New variable.
-	(message-send): Use it, customize the prompting when posting to
-	Gcc/Fcc alone.  From prj@po.cwru.edu (Paul Jarc).
-
-2001-11-20 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-coding-system-priorities): New variable.
-	(mm-sort-coding-systems-predicate): New function.
-	(mm-find-mime-charset-region): Resort coding systems if needed.
-	Suggested by Katsumi Yamaoka <yamaoka@jpl.org>.
-
-2001-11-20  Didier Verna  <didier@xemacs.org>
-
-	* gnus-group.el (gnus-group-make-help-group): new optional
-	argument to control the error behavior.
-	* gnus-start.el (gnus-check-first-time-used): use it to avoid
-	erroring.
-
-2001-11-19  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-mode-map): Use C-c C-f C-i for Importance:
-	instead of C-c C-u.  Suggested by Per Abrahamsen
-	<abraham@dina.kvl.dk>.
-
-2001-11-18 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-read-folder): Use group instead of
-	nnfolder-current-group.
-	Suggested by Lorentey Karoly <lorentey@elte.hu>.
-
-2001-11-17  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-send): Ask user if Fcc/Gcc should be
-	performed when no other sender was specified.
-	Suggested by prj@po.cwru.edu (Paul Jarc).
-
-2001-11-17  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-mode, message-mode-map): Use C-c C-u for
-	Importance: instead of C-c C-p (used by SC).
-
-2001-11-16  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-insert-importance-high)
-	(message-insert-importance-low): Save point.
-
-	* mail-source.el (mail-source-fetch-imap): Fix BODY.PEEK return
-	value.
-
-2001-11-16  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-strip-special-text-properties): New option.
-	(message-strip-forbidden-properties): Obey it.
-
-2001-11-14  Sam Steingold  <sds@gnu.org>
-
-	* gnus-score.el: Fixed some doc strings to properly quote symbols.
-
-2001-11-15  Simon Josefsson  <jas@extundo.com>
-
-	Support "Importance:" header in Message.
-
-	* message.el (message-mode-map): Bind C-c C-p to
-	`message-insert-or-toggle-importance'
-	(message-mode-menu): Add message-insert-importance-{high,low}.
-	(message-insert-importance-high, message-insert-importance-low)
-	(message-insert-or-toggle-importance): New functions.
-	(message-tool-bar-map): Add {un,}important.
-	(message-mode): Doc fix.
-
-2001-11-15  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-tool-bar-map): Fix attach toolbar tooltip.
-
-	* mml.el (mml-menu): Fix toolbar tooltip.
-
-2001-11-15 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-save-marks): gnus-prin1 takes one argument.
-	* nnml.el (nnml-save-marks): Ditto.
-
-	* gnus-sum.el (gnus-newsgroup-variables): Fix doc.
-
-2001-11-15  Simon Josefsson  <jas@extundo.com>
-
-	* nnml.el (nnml-save-marks):
-	* nnfolder.el (nnfolder-save-marks): Use `gnus-prin1'.
-	Suggested by Istvan Marko <mi-gnus@imarko.dhs.org>.
-
-2001-11-15  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-art.el (gnus-article-wash-status-strings): Use
-	`copy-sequence', not `copy-seq'.
-
-2001-11-15  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-art.el (gnus-article-wash-status-strings): New constant.
-	(gnus-gnus-article-wash-status-entry): New function.
-	(gnus-article-wash-status): Use it.
-
-2001-11-13 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml1991.el: Add coding header.
-
-2001-11-12  Simon Josefsson  <jas@extundo.com>
-
-	* mml1991.el (mml1991-use, mml1991-function-alist): New variables.
-	(mml1991-gpg-sign, mml1991-gpg-encrypt): Renamed, from
-	`mml1991-sign' and `mml1991-encrypt'.
-	(mml1991-encrypt, mml1991-sign): New glue functions.
-	(mml1991-mailcrypt-sign, mml1991-mailcrypt-encrypt): New functions.
-
-	* mml.el (mml-mode-map): `C-c RET o' map for PGP.
-	(mml-menu): Add PGP to menu.
-
-	* mml-sec.el (top-level): Require mml1991.  Don't require smime.
-	(mml-sign-alist, mml-encrypt-alist): Add "pgp".
-	(mml-pgp-sign-buffer, mml-pgp-encrypt-buffer)
-	(mml-secure-sign-pgp, mml-secure-encrypt-pgp): New glue functions.
-
-	* mml2015.el: Mention RFC 3156.
-
-	* mml1991.el: New file.  From Sascha L,A|(Bdecke <sascha@meta-x.de>.
-
-2001-11-12 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-auto-subscribed-groups): Use ^nnml.
-
-	* gnus-sum.el (gnus-summary-move-article): Use number-to-string.
-	  From <Michael.Cook@cisco.com>
-
-2001-11-11  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (top-level): Autoload sha1.
-	(message-canlock-generate): Use sha1 instead of md5 (sha1 used by
-	canlock, no need to require two different hash algs).  Suggested
-	by Ferenc Wagner <wferi@bolyai1.elte.hu>.
-
-2001-11-09  Simon Josefsson  <jas@extundo.com>
-
-	* gnus.el (gnus-local-domain): Fix doc.  From Pavel Jan,Am(Bk
-	<Pavel@Janik.cz>.
-
-2001-11-09  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-point-in-header-p): New function.
-	(message-do-auto-fill): Use it.
-	(message-beginning-of-line): New function.  Goes to beginning of
-	header value (i.e., end of header name), or to beginning of line
-	if already at beginning of value.  Behaves like
-	`beginning-of-line' when in message body.
-	(message-mode-map): Bind it.
-
-2001-11-08  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-msg.el (gnus-posting-styles): Add doc.
-
-2001-11-07  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sieve.el (gnus-sieve-generate): Don't invoke sieve-mode.
-
-	* sieve-mode.el (sieve-control-commands-face)
-	(sieve-control-commands-face, sieve-action-commands-face)
-	(sieve-test-commands-face, sieve-tagged-arguments-face): New
-	faces.
-	(sieve-font-lock-keywords): Use them.
-	(sieve-mode): Only set font-lock-defaults in emacs.
-
-	* gnus-art.el (gnus-default-article-saver): Add
-	gnus-summary-save-body-in-file.
-	(gnus-summary-write-to-file): Fix doc.
-
-2001-11-07  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-art.el (gnus-treat-highlight-signature): Add cross
-	reference to the correct chapter in the manual.
-
-	* mml.el (mml-mode): Add cross reference to Emacs MIME manual.
-	Suggested by "Golubev I. N." <gin@mo.msk.ru>.
-
-2001-11-07 06:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-preview): Bind mail-header-separator.
-
-2001-11-07  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el: Always require canlock.
-	(message-ignored-supersedes-headers): Include Cancel-Lock and
-	Cancel-Key.
-	(message-insert-canlock): Don't require canlock.
-	(message-cancel-news): Don't check whether canlock is available.
-	(message-supersede): Support cancel-locks.
-
-	* gnus-art.el: Don't autoload canlock.
-
-2001-11-06 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mail-source.el (mail-source-fetch-imap): ASYNC param.
-	From: <andre@slamdunknetworks.com>
-
-2001-11-06 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* many files: Fix copyright lines.
-
-2001-11-05 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-generate-mime-1): Use mm-with-unibyte-current-buffer.
-	Suggested by Dave Love  <fx@gnu.org>.
-
-2001-11-04 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-kill-buffer): Remove auto-save file after
-	confirm.
-
-	* message.el (message-send-mail): Call message-generate-headers
-	once.  Suggested by Matt Armstrong <matt@lickey.com>.
-
-	* gnus-topic.el (gnus-topic-rename): Initial-input.
-	Suggested by Katsuhiro Hermit Endo <hermit@koka-in.org>.
-
-2001-11-03  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-forbidden-properties): New constant.
-	(message-strip-forbidden-properties): New function.
-	(message-mode): Activate it.
-
-2001-11-02 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-iso-8859-15-compatible): Fix doc.
-	(mm-hack-charsets): Fix doc.
-
-2001-11-02  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-int.el (gnus-check-server): Message "...done" when done.
-
-	* imap.el (imap-close): Don't message (imap-send-command-wait
-	returns if the connection is dropped).
-	(imap-wait-for-tag): Nix out message only when necessary.
-
-	* gnus-sieve.el (gnus-sieve-script): Use "stop" instead of "elsif"
-	for non-crossposting.
-	(gnus-sieve-crosspost): Default to t to be consistent with other
-	parts of Gnus.
-
-2001-11-01 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-iso-8859-15-compatible): Add inconvertible chars.
-	(mm-iso-8859-x-to-15-table): Ditto.
-	(mm-iso-8859-x-to-15-region): Ditto.
-	(mm-find-mime-charset-region): Ditto.
-
-2001-11-01  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-close-asynchronous): New variable.
-	(nnimap-close-group): Use it.
-	(nnimap-expunge): Don't use it.
-
-	* imap.el (imap-callbacks): New variable.
-	(imap-remassoc): Copied from `gnus-remassoc'.
-	(imap-add-callback): New function.
-	(imap-mailbox-expunge, imap-mailbox-close): Support asynchronous
-	behaviour.
-	(imap-parse-response): Call the callback.
-
-	* message.el (message-insert-canlock): New variable.
-	(message-canlock-generate, message-canlock-password)
-	(message-insert-canlock): New functions.
-	(message-send-news): Call `message-insert-canlock'.
-	(top-level): Require canlock when compiling.
-	(message-insert-canlock): Require canlock before we need it.
-
-2001-11-01 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-copy-article-buffer): Copy sequence.
-
-2001-11-01 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* dgnushack.el (dgnushack-make-load): A workaround for
-	custom-add-loads bug in some versions of XEmacs.
-
-2001-11-01 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-charset-synonym-alist): Revert (some).
-
-2001-11-01 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-iso-8859-x-to-15-region): New function.
-	(mm-hack-charsets): New variable.
-	(mm-iso-8859-15-compatible): New variable.
-	(mm-iso-8859-x-to-15-table): New variable.
-	(mm-find-mime-charset-region): Add parameter hack-charsets.
-
-	* mm-bodies.el (mm-encode-body): Use it.
-	* mml.el (mml-parse-1): Ditto.
-
-2001-11-01  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-make-menu-bar): Add Sieve.
-
-2001-11-01 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-charset-to-coding-system): Return nil, if charset
-	is nil.
-
-2001-11-01 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* smiley-ems.el (smiley-update-cache): Auto detect file type.
-
-	* message.el (message-forward-rmail-make-body): Use
-	save-window-excursion.
-	(message-encode-message-body): Search with noerror.
-	(message-setup-1): Convert compose-mail send-actions to
-	message-send-actions.
-
-2001-11-01  Simon Josefsson  <jas@extundo.com>
-
-	* sieve.el: Don't require easy-mmode. Suggested by Katsumi Yamaoka
-	<yamaoka@jpl.org>.
-
-2001-10-31 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* sieve-manage.el (sieve-string-bytes): No complain.
-
-2001-11-01  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-mode-map): Bind "D u" to
-	`gnus-sieve-update' and "D g" to `gnus-sieve-generate'. (Functions
-	has autoload cookies, so no `require' should be necessary.)
-
-	* sieve.el, sieve-mode.el, sieve-manage.el, gnus-sieve.el: New
-	files.
-
-2001-10-31  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-cus.el (gnus-group-parameters): Support integer `display'
-	parameter.
-
-	* gnus-sum.el (gnus-select-newsgroup): If group parameter
-	`display' is a number (and C-u wasn't used to enter group), only
-	fetch that number of articles.
-
-2001-10-31  Matt Armstrong  <matt@lickey.com>
-
-	* gnus.el (gnus-find-subscribed-addresses): Doc fix:
-	not-subscribed -> subscribed.
-
-2001-10-31 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From: Josh Huber <huber@alum.wpi.edu>
-
-	* message.el (message-subscribed-address-functions): New variable.
-	(message-subscribed-addresses): New variable.
-	(message-subscribed-regexps): New variable.
-	(message-goto-mail-followup-to): New function.
-	(message-send-mail): Add Mail-Followup-To.
-	(message-make-mft): New function.
-
-	* gnus.el (gnus-find-subscribed-addresses): New function.
-
-2001-10-31 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mail-source.el (mail-source-fetch): If debug, don't regain signals.
-	(mail-source-fetch-pop): Ditto.
-	(mail-source-check-pop): Ditto.
-
-	* gnus-start.el (gnus-read-init-file): Ditto.
-	(gnus-activate-group): Ditto.
-	(gnus-read-newsrc-el-file): Ditto.
-
-2001-10-30 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-get-reply-headers): Make sure there is ", ".
-
-	* mm-util.el (mm-mime-mule-charset-alist): Move down and call
-	mm-coding-system-p. Don't correct it only in XEmacs.
-	(mm-charset-to-coding-system): Use mm-coding-system-p and
-	mm-get-coding-system-list.
-	(mm-emacs-mule, mm-mule4-p): New variables.
-	(mm-enable-multibyte, mm-disable-multibyte,
-	mm-enable-multibyte-mule4, mm-disable-multibyte-mule4,
-	mm-with-unibyte-current-buffer,
-	mm-with-unibyte-current-buffer-mule4): Use them.
-	(mm-find-mime-charset-region): Treat iso-2022-jp.
-
-	From  Dave Love  <fx@gnu.org>:
-
-	* mm-util.el (mm-mime-mule-charset-alist): Make it correct by
-	construction.
-	(mm-charset-synonym-alist): Remove windows-125[02].  Make other
-	entries conditional on not having a coding system defined for
-	them.
-	(mm-mule-charset-to-mime-charset): Use
-	find-coding-systems-for-charsets if defined.
-	(mm-charset-to-coding-system): Don't use
-	mm-get-coding-system-list.  Look in mm-charset-synonym-alist
-	later.  Add last resort search of coding systems.
-	(mm-enable-multibyte-mule4, mm-disable-multibyte-mule4)
-	(mm-with-unibyte-current-buffer-mule4): Just treat Mule 5 like
-	Mule 4.
-	(mm-find-mime-charset-region): Re-write.
-	(mm-with-unibyte-current-buffer): Restore buffer as well as
-	multibyteness.
-
-2001-10-30 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* canlock.el, sha1-el.el, hex-util.el: Move from contrib
-	directory. Thanks to Katsumi Yamaoka <yamaoka@jpl.org> and Shuhei
-	KOBAYASHI <shuhei@aqua.ocn.ne.jp>.
-
-2001-10-30 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-display-x-face): Nix buffer-read-only
-	again.
-
-	* mml2015.el (mml2015-gpg-verify): Convert <LF> to <CR><LF>.
-
-2001-10-30 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-spec.el (gnus-parse-simple-format): Use
-	  buffer-substring-no-properties.
-
-2001-10-30  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (article-verify-cancel-lock): New function.
-
-	* nnheader.el (nntp-process-response): New variable.
-	(nnheader-init-server-buffer): Make `nntp-process-response'
-	buffer-local in `nntp-server-buffer'.
-
-	* nntp.el (nntp-prepare-post-hook): New hook.
-	(nntp-wait-for): Save a server's ID in `nntp-process-response'.
-	(nntp-async-trigger): Ditto.
-	(nntp-request-post): Insert a server's ID if there's no Message-ID
-	header; run `nntp-prepare-post-hook'.
-
-2001-10-30 04:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-decode-group-name): Use nnmail-fetch-field
-	instead.
-
-	* message.el (message-forward-subject-author-subject): Don't use
-	message-news-p, which widens the buffer.
-	(message-forward-make-body): New function.
-	(message-forward): Use it.
-	(message-insinuate-rmail): New function.
-	(message-forward-rmail-make-body): New function.
-
-2001-10-30 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-extern.el (mm-extern): Provide it.
-
-	* mm-partial.el (mm-partial): Provide it.
-
-2001-10-28 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-setup-message): Call post-command-hook.
-
-2001-10-29  Simon Josefsson  <jas@extundo.com>
-
-	* mml.el (mml-preview): Bind message-this-is-news if it is
-	news. From Jesper Harder <harder@myrealbox.com>.
-
-2001-10-28  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-group-make-articles-read): Inline group.
-
-2001-10-29  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* smiley-ems.el (smiley-regexp-alist): Add support for sad and
-	ironic smilies.
-
-2001-10-27  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-indent-citation): Don't add trailing
-	whitespace when citing text.
-
-	* gnus.el (gnus-group-faq-directory): Fix.  From Jesper Harder
-	<harder@ifa.au.dk>.
-
-2001-10-26 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnweb.el (nnweb-possibly-change-server): Create nnweb-hashtb if
-	not available.
-	(nnweb-request-scan): Nix nnweb-hashtb if ephemeral.
-	(nnweb-type-definition): Add google as alias of dejanews.
-	(nnweb-google-parse-1): Forward 1 line.
-
-2001-10-26  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-msg.el (gnus-summary-mail-forward): Doc fix: add pointer to
-	variable `message-forward-ignored-headers'.
-
-2001-10-24  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus.el (gnus-expand-group-parameter): New function.
-	(gnus-expand-group-parameters): Call it.
-	(gnus-group-fast-parameter): New function.
-	(gnus-group-find-parameter): Call it.
-
-2001-10-23  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus.el (gnus-news-group-p): Rewrote.  Now accepts a header
-	vector (it didn't before because of a bug).
-	* gnus-msg.el (gnus-post-news): Use header vector directly, if
-	available.  Before it converted it to an article number.
-
-	This makes followup to news articles with negative numbers in
-	nnvirtual groups use news instead of mail.
-
-2001-10-23  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus.el (post-method): Use `native' instead of `nil'.
-
-	* gnus-msg.el (gnus-post-method): Ditto.
-
-2001-10-23  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus.el (gnus-define-group-parameter): Grammar fix.
-
-2001-10-22  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-msg.el (gnus-extended-version): Include
-	system-configuration.
-	Suggested by Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Gro,b_(Bjohann).
-
-2001-10-22  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus.el (post-method): Customization fix: `native' is not a
-	valid value.
-	* gnus-msg.el (gnus-post-method): Doc and customization fix:
-	`native' is not a valid value.
-
-2001-10-21  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap): Defgroup
-	(nnimap-strict-function, nnimap-strict-function-match): New
-	widget, from Per Abrahamsen  <abraham@dina.kvl.dk>.
-	(nnimap-split-crosspost, nnimap-split-inbox)
-	(nnimap-split-rule, nnimap-split-predicate)
-	(nnimap-split-predicate): Defcustom.
-	(nnimap-split-inbox, nnimap-expunge-search-string)
-	(nnimap-importantize-dormant): Remove "*" from doc.
-
-2001-10-20  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-sum.el (gnus-summary-limit-to-score): Prompt for score if
-	not supplied via prefix arg.  From Lisp, make arg mandatory.
-	Suggested by Frank Schmitt.
-
-2001-10-20  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-do-auto-fill): Avoid calling
-	'rfc822-goto-eoh'.
-
-2001-10-20  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Paul Jarc <prj@po.cwru.edu>.
-
-	* message.el (message-get-reply-headers): Restructure the logic
-	and add comments.  From Paul Jarc <prj@po.cwru.edu>.
-
-2001-10-20  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-cancel-news): Support cancel-locks.
-	Suggested by Per Abrahamsson.
-
-	* nnml.el (nnml-marks-changed-p): Use `equal' when comparing
-	conses.  From David Z Maze <dmaze@MIT.EDU>.
-
-	* nnfolder.el (nnfolder-marks-changed-p): Ditto.
-
-2001-10-19  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* mm-decode.el (mm-default-directory): Fix customize type.
-
-	* message.el (message-setup-fill-variables): Kludge to use
-	normal-auto-fill-function even if auto fill is already activated.
-
-2001-10-19  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-do-auto-fill): New version that does not
-	rely on text properties, by Simon Josefsson <jas@extundo.com>.
-	(message-setup-1): Removed the `message-field' property.
-
-	* gnus-draft.el (gnus-draft-edit-message): Removed the
-	`message-field' property.
-
-2001-10-19  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-draft.el (gnus-draft-edit-message): Change `field' to
-	`message-field'.  The `field' property has a special significance in
-	Emacs 21.
-
-	* message.el (message-send, message-setup-1): Ditto.
-
-2001-10-18  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-group-make-articles-read): Call g-r-set-mark
-	when undoing.
-
-2001-10-18  Simon Josefsson  <jas@extundo.com>
-	From Frank Schmitt <usereplyto@Frank-Schmitt.net>
-
-	* gnus-sum.el (gnus-summary-limit-to-display-predicate): Fix typo.
-	(gnus-summary-make-menu-bar): Ditto.
-
-2001-10-17  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-expiry-target): Make sure it is back to the
-	server. Suggested by ShengHuo ZHU <zsh@cs.rochester.edu>.
-
-2001-10-17 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-line-format-alist): user-date entry.
-	* gnus-util.el (gnus-user-date): New function.
-	From Frank Schmitt <usenet@Frank-Schmitt.net>.
-
-2001-10-17  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-check-news-header-syntax): Special case
-	nnvirtual groups.
-
-	* gnus-sum.el (gnus-summary-respool-default-method): Changed
-	customize type to `symbol'.
-
-2001-10-17 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-spec.el (gnus-parse-simple-format): Support extended spec
-	%&foo;.
-	(gnus-parse-simple-format): Support user extended spec too.
-	%u&foo; invokes gnus-user-format-function-foo.
-
-2001-10-17 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnml.el (nnml-request-expire-articles): Make sure it is back to
-	the server.
-	* nnmbox.el (nnmbox-request-expire-articles): Ditto.
-	* nnfolder.el (nnfolder-request-expire-articles): Ditto.
-	* nnbabyl.el (nnbabyl-request-expire-articles): Ditto.
-	* nndiary.el (nndiary-request-expire-articles): Ditto.
-	(nndiary-schedule): Defsubst it before use it.
-	(nndiary-error): eval-and-compile.
-
-2001-10-17  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-msg.el (gnus-post-method): Changed two instances of
-	`active' to `current' and one `null' to `not'.
-
-2001-10-16  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Katsumi Yamaoka <yamaoka@jpl.org>.
-
-	* message.el (message-setup-fill-variables): Use
-	`normal-auto-fill-function' instead of `auto-fill-function'.
-
-2001-10-16  Simon Josefsson  <jas@extundo.com>
-
-	* mml2015.el (mml2015-fix-micalg): Fix for Mutt-bug.
-	(mml2015-gpg-decrypt-1): Decanonicalize decrypted MIME
-	body. (Mailcrypt seem to do this, but gpg.el doesn't.)
-
-2001-10-16  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	Patch by Oliver Scholz <oscholz@my.gnus.org>.
-
-	* gnus-draft.el (gnus-draft-edit-message): Add text property
-	`field' with value `header' to message headers.
-	* message.el (message-setup-1): Really add text property to all of
-	the header, not just part of it.
-
-2001-09-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-group.el (gnus-group-sort-by-server): Use it.
-
-	* gnus.el (gnus-method-to-full-server-name): New, bogus function.
-
-	* gnus-topic.el (gnus-topic-sort-groups-by-server): New command
-	and keystroke.
-
-2001-10-14  Simon Josefsson  <jas@extundo.com>
-
-	* dig.el: Doc fix.
-
-	* smime.el: Doc fix.
-
-	* gnus-msg.el (gnus-inews-do-gcc): Port header encoded-word
-	charset magic from message.el.
-
-2001-10-12  Simon Josefsson  <jas@extundo.com>
-	Suggested by david.goldberg6@verizon.net (David S. Goldberg)
-
-	* gnus-cite.el (gnus-article-toggle-cited-text): Don't remove
-	'cite from g-a-wash-types.
-	(gnus-cite-toggle): Ditto.  Add 'cite.  Set modeline.
-	(gnus-article-hide-citation): Fix.
-
-	* gnus-cite.el (gnus-article-hide-citation): Add `c' mode line
-	character.
-	(gnus-article-toggle-cited-text): Toggle `c' mode line character.
-
-	* gnus-art.el (gnus-treat-hide-citation-maybe): Remove duplicate
-	definition.
-	(gnus-signature-toggle): Toggle `s' mode line character.
-
-	* gnus-art.el (article-emphasize): Set `g-a-wash-types' after
-	doing stuff that clears it.
-
-2001-10-12  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-cache.el (gnus-summary-limit-include-cached): Rewrite.
-	From Eric Marsden <emarsden@laas.fr>.
-
-2001-10-12 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-do-auto-fill): Use gnus-point-at-bol.
-	(autoload): Add some autoloads.
-
-2001-10-12  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	Suggested by Oliver Scholz <epameinondas@gmx.de>.
-
-	* message.el (message-do-auto-fill): New function.  Like
-	`do-auto-fill' but don't fill when in the message header.
-	(message-setup-1): Put a text property on the message header.
-	(message-setup-fill-variables): Use `message-do-auto-fill'.
-
-2001-10-10 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-send-mail-partially): Insert an empty line
-	first, because of the change of message-make-lines.
-
-2001-10-10  Florian Weimer  <fw@deneb.enyo.de>
-
-	* mm-util.el (mm-charset-synonym-alist): If Emacs doesn't support
-	iso-8859-15, make it an alias for iso-8859-1.
-
-2001-10-10  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-send-news): Don't modify the value of
-	`message-syntax-checks' if it is not a list (possibly it is
-	`dont-check-for-anything-just-trust-me').
-
-2001-10-10  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-group.el (gnus-group-name-charset-group-alist): Use
-	`find-coding-system' for XEmacs to check whether the coding-system
-	`utf-8' is available.
-
-2001-10-09 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* dgnushack.el (dgnushack-compile): Detect mh-e and xml.
-
-2001-10-09  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-send-news): Oops, missed case with no
-	"Followup-To" header...
-
-2001-10-09  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-send-news): Allow
-	`gnus-group-name-charset-group-alist' to affect encoding of the
-	"Newsgroups" and "Followup-To" headers.
-
-2001-10-07 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* Makefile.in (install-el): Depend on gnus-load.el.
-
-2001-10-07 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* Makefile.in (install-el): Use -f.
-	From: Amos Gouaux <amos+lists.ding@utdallas.edu>
-
-2001-10-07  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-send-news): Don't encode Followups-To when
-	`gnus-group-name-charset-group-alist is' ".*".  [Yuck]
-
-	* gnus-util.el (gnus-decode-newsgroups): No space in newsgroup
-	header.
-
-	* gnus-art.el (article-decode-group-name): Also decode
-	"Followup-To".
-
-	* rfc2047.el (rfc2047-encode-message-header): Encode without
-	asking for null methods.
-
-	* gnus-group.el (gnus-group-name-charset-group-alist): Make utf-8
-	default charset for newsgroup names in accordance with USEFOR.
-
-	* gnus-group.el (gnus-group-name-charset-method-alist,
-	gnus-group-name-charset-group-alist): Removed "*" from doc
-	strings, "*" should not be used for complex variables.
-
-2001-10-06  Simon Josefsson  <jas@extundo.com>
-
-	Support UTF-8 group names better.
-
-	* message.el (message-check-news-header-syntax): Encode group
-	names before comparison.
-
-	* gnus-msg.el (gnus-copy-article-buffer): Run all
-	`gnus-article-decode-hook's except `article-decode-charset'
-	instead of hardcoding call to one of them.
-
-	* gnus-art.el (gnus-article-decode-hook): Add
-	`article-decode-group-name'.
-	(article-decode-group-name): New function, use `g-d-n'.
-
-	* gnus-group.el (gnus-group-insert-group-line): Decode
-	gnus-tmp-group using `g-d-n'.
-
-	* gnus-util.el (gnus-decode-newsgroups): New function.
-
-2001-10-06  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-srvr.el (gnus-browse-foreign-server): Fixed bug non-nil
-	`gnus-group-name-charset-group-alist'.
-
-2001-10-06 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* Makefile.in: Install el in install. Add uninstall.
-
-2001-10-05  Simon Josefsson  <jas@extundo.com>
-
-	* nnheader.el (gnus-verbose-backends, gnus-nov-is-evil): Custom.
-
-	* gnus-sum.el (gnus-summary-move-article): Also activate new groups.
-
-	* nnfolder.el (nnfolder-normalize-buffer): Don't insert \n\n in
-	empty folders.
-
-	* gnus-sum.el (gnus-select-newsgroup): Don't enable `display'
-	limiting if read-all (C-u RET) was used.
-
-2001-10-04  Simon Josefsson  <jas@extundo.com>
-
-	* mail-source.el (mail-source-movemail-program): New variable.
-	(mail-source-movemail): Use it.  Suggested by Taylor Hutt
-	<thutt@thutt.vmware.com>.
-
-2001-10-03  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): New param.
-	(gnus-summary-line-format-alist): Fix param.
-
-2001-10-02  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-request-move-article): Use imap.el directly,
-	don't go through `nnimap-request-expire-articles' to delete the
-	article.  Thanks to prj@po.cwru.edu (Paul Jarc).
-
-2001-10-02 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-write-active): The min in the
-	agent/active may be larger than that in the server/active.
-
-2001-10-01  Simon Josefsson  <jas@extundo.com>
-
-	* mail-source.el (mail-source-fetch-imap): Use BODY.PEEK if server
-	is IMAP4rev1.
-
-	* nnml.el (gnus-article-unpropagatable-p): Autoload gnus-sum.
-
-	* nnfolder.el: Ditto.
-
-2001-09-30  Dan Christensen  <jdc@uwo.ca>
-
-	* gnus-sum.el (gnus-summary-extract-address-component): New function.
-	(gnus-summary-from-or-to-or-newsgroups): Optimize.
-
-2001-09-29  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-mode-map): Keybinding for `gnus-delay-article'.
-	(message-mode-menu): Menu item for same.
-
-	* gnus-group.el (gnus-group-make-menu-bar): Menu item for sending
-	delayed articles.
-
-	* gnus-delay.el (gnus-delay-send-drafts): Do nothing if
-	nndraft:delayed does not exist.
-	(gnus-delay-initialize): Don't set up keymap, that's done from
-	message.el now.
-	(gnus-delay, gnus-delay-group, gnus-delay-header)
-	(gnus-delay-default-delay, gnus-delay-default-hour): Customize.
-
-2001-09-29  Simon Josefsson  <jas@extundo.com>
-
-	* mm-util.el (mm-mime-mule-charset-alist): Encode mule-utf-8 as
-	utf-8, not eight-bit-control.
-
-	* imap.el (imap-shell-host, imap-default-user, imap-use-utf7)
-	(imap-log, imap-debug): Custom.
-	(imap-log-buffer, imap-debug-buffer): New constants.
-	(imap-kerberos4-open, imap-gssapi-open, imap-ssl-open)
-	(imap-network-open, imap-shell-open, imap-starttls-open)
-	(imap-send-command-1, imap-send-command, imap-arrival-filter)
-	(imap-debug): Use imap-*-buffer.
-
-	* nndoc.el (nndoc-article-type): Add mailman.
-	(nndoc-type-alist): Ditto.
-	(nndoc-mailman-type-p): New function.
-
-2001-09-28 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-xmas.el (gnus-article-x-face-command): Merge it into
-	gnus-art.el.
-
-2001-09-27  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-topic.el (gnus-topic-mode-map): Add catchup.
-	(gnus-topic-catchup-articles): New function. Suggested by Robin
-	S. Socha <robin-dated-1001857693.185e29@socha.net>.
-
-2001-09-27 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Gerd M,Av(Bllmann <gerd@gnu.org>.
-
-	* gnus-ems.el (gnus-article-display-xface): Insert xface after
-	previous ones.
-
-2001-09-27 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Daiki Ueno  <ueno@unixuser.org>
-
-	* gnus-sum.el (gnus-summary-show-article): The arglist of
-	detect-coding-region is incompatible.
-
-2001-09-26 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Katsuhiro Hermit Endo <hermit@koka-in.org>
-
-	* gnus-group.el (gnus-group-delete-group): Typo.
-
-2001-09-26  Simon Josefsson  <jas@extundo.com>
-
-	* nnmail.el (nnmail-expiry-target-group): Add doc warning.
-
-	* nnimap.el (nnimap-expiry-target): Use temp buffer.
-
-2001-09-26 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-cus.el (gnus-group-parameters): Display as sexp.
-
-2001-09-22  Simon Josefsson  <jas@extundo.com>
-
-	* nnml.el (nnml-open-marks): Remove unpropagatable marks.
-
-	* nnfolder.el (nnfolder-open-marks): Ditto.
-
-	* gnus-sum.el (gnus-article-unpropagatable-p): New function.
-	(gnus-update-marks): Use it.
-	(gnus-update-marks): Use `gnus-article-mark-to-type' instead of
-	hardcoded list.
-
-	* gnus.el (gnus-article-special-mark-lists): Add killed.
-	(gnus-article-unpropagated-mark-lists): New constant.
-
-2001-09-22  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-mode-hook): Add gnus-pick-mode as
-	custom option.
-
-2001-09-23  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-draft.el (gnus-draft-setup): Add mark in backend as well.
-
-2001-09-23 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-button-mailto): Hack save-selected-window-window.
-
-2001-09-22  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-group.el (gnus-group-sort-function): Fix customize type to
-	accept lists of functions.
-
-2001-09-20  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-catchup): Update expire marks in
-	backend.  Also, if ALL also set expire marks on tick/dormant.
-
-2001-09-20  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-tab-body-function): New variable.
-	* message.el (message-tab): Use it.
-
-2001-09-19  Sam Steingold  <sds@gnu.org>
-
-	* gnus-win.el (gnus-buffer-configuration): Respect
-	`gnus-bug-create-help-buffer'.
-
-2001-09-18  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-spec.el (gnus-correct-pad-form): Re-revert.
-	(gnus-parse-simple-format): Re-revert.
-
-2001-09-16  Katsuhiro Hermit Endo  <hermit@koka-in.org>
-	Trivial patch.
-
-	* gnus-spec.el (gnus-parse-complex-format): Don't fold search
-	case.  (Thanks to Daiki Ueno <ueno@unixuser.org>.)
-
-2001-09-18  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-spec.el (gnus-correct-pad-form): Remove until papers are
-	signed.
-	(gnus-parse-simple-format): Don't use it.
-
-2001-09-17  Miles Bader  <miles@gnu.org>
-
-	* gnus-srvr.el (gnus-server-insert-server-line): Don't let an
-	error querying a backend abort the whole process.
-
-2001-09-17 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-srvr.el (gnus-server-mode): Fix bogus fontification.
-	From Gerd M,Av(Bllmann <gerd@gnu.org>.
-
-2001-09-17  Didier Verna  <didier@xemacs.org>
-
-	* nndiary.el: version 0.2-b14.
-	* gnus-diary.el (gnus-diary-check-message): fix `read-string'
-	compatibility problem with XEmacs 21.1.
-
-2001-09-15  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-line-format): Document %c.
-
-	* nnml.el (nnml-parse-head): Handle CRLF files.
-	(nnml-generate-nov-file): Ditto.
-	(nnml-retrieve-headers): Ditto.
-
-2001-09-15  Michael Welsh Duggan  <md5i@cs.cmu.edu>
-
-	* gnus-spec.el (gnus-parse-format): Don't treat %c as %C.
-
-2001-09-13  Martin Kretzschmar  <Martin.Kretzschmar@inf.tu-dresden.de>
-
-	* gnus-spec.el (gnus-correct-substring): Still stopped one
-	character before we wanted (never included last character).
-	(gnus-tilde-max-form, gnus-tilde-cut-form) Made readable again,
-	add missing "," (once per function)
-
-2001-09-14  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-start.el (gnus-group-mode-hook): Moved from gnus-group
-	(otherwise e.g. gnus-agentize in .gnus overrides the customized
-	default before gnus-group is loaded and the variable set.)
-
-	* nnimap.el (nnimap-request-set-mark): Do not store bookmark,
-	killed or unsent marks.
-
-	* gnus-draft.el (gnus-draft-setup): Don't set mark when there
-	isn't an article to set it on (e.g. when you `a' in a group).
-
-2001-09-12  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
-
-	* mm-util.el (mm-charset-synonym-alist): add windows-1250 so we
-	can read e-mails from Microsoft Outlook users not using ISO
-	8859-2 character set.
-
-2001-09-12 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-diary.el: Minor modifications to avoid warnings.
-	(gnus-summary-misc-menu): defvar.
-	(gnus-diary-check-message): Use gnus-point-at-eol.
-	(gnus-diary-kill-entire-line): eval-and-compile.
-
-2001-09-12  Didier Verna  <didier@xemacs.org>
-
-	* nndiary.el: new version (0.2-b13).
-	* nndiary.el (nndiary-mail-sources): doc update.
-	* nndiary.el (nndiary-split-methods): ditto.
-	* nndiary.el (nndiary-request-accept-article-hooks): New.
-	* nndiary.el (nndiary-request-accept-article): use it, check
-	message validity.
-	* nndiary.el (nndiary-get-new-mail): changed default to nil.
-	* nndiary.el (nndiary-schedule): fix bug (misplaced
-	condition-case): it didn't return nil on error.
-	* gnus-diary.el: new version.
-	* gnus-diary.el (gnus-diary-summary-line-format): removed %I.
-	* gnus-diary.el (gnus-diary-header-value-history): New.
-	* gnus-diary.el (gnus-diary-narrow-to-headers): New.
-	* gnus-diary.el (gnus-diary-add-header): New.
-	* gnus-diary.el (gnus-diary-check-message): New.
-	* gnus-diary.el (message-mode-map): bind the above to `C-c D c'.
-	* gnus-diary.el (gnus-article-edit-mode-map): ditto.
-
-2001-09-10 TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
-
-	* gnus-sum.el (gnus-select-newsgroup): Make
-	`gnus-current-select-method' buffer-local.
-
-	* gnus-art.el (gnus-request-article-this-buffer): Refer
-	`gnus-current-select-method' in the current summary buffer.
-
-2001-09-10  Simon Josefsson  <jas@extundo.com>
-	From Daniel Pittman <daniel@rimspace.net>
-
-	* gnus-spec.el (gnus-correct-pad-form): Fix.
-
-2001-09-09  Simon Josefsson  <jas@extundo.com>
-
-	* mm-decode.el (mm-inline-media-tests): Add
-	application/x-emacs-lisp.
-	(mm-attachment-override-types): Add
-	application/{x-,}pkcs7-signature.
-
-	* gnus-srvr.el (gnus-server-mode-hook, gnus-server-exit-hook)
-	(gnus-server-line-format, gnus-server-mode-line-format)
-	(gnus-server-browse-in-group-buffer): Customize.
-
-2001-09-08 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnml.el (nnml-marks-changed-p): Typo.
-	(nnml-save-marks, nnml-open-marks): Use gnus-sethash.
-	(nnml-marks-changed-p): Use gnus-gethash.
-	(nnml-marks-modtime): Use gnus-make-hashtable.
-
-	* nnfolder.el (nnfolder-marks-changed-p): Typo.
-	(nnfolder-request-expire-articles, nnfolder-save-marks)
-	(nnfolder-open-marks): Typo.
-	(nnfolder-save-marks, nnfolder-open-marks): Use gnus-sethash.
-	(nnfolder-marks-changed-p): Use gnus-gethash.
-	(nnfolder-marks-modtime): Use gnus-make-hashtable.
-
-2001-09-08  Simon Josefsson  <jas@extundo.com>
-
-	* nnfolder.el (nnfolder-marks-modtime): New variable.
-	(nnfolder-marks-changed-p): New function.
-	(nnfolder-save-marks, nnfolder-open-marks): Save modtime.
-	(nnfolder-request-update-info): Don't update if marks didn't change.
-
-	* nnml.el (nnml-marks-modtime): New variable.
-	(nnml-marks-changed-p): New function.
-	(nnml-save-marks, nnml-open-marks): Save modtime.
-	(nnml-request-update-info): Don't update if marks didn't change.
-
-	* gnus-agent.el (gnus-agent-any-covered-gcc)
-	(gnus-agent-add-server, gnus-agent-remove-server): Use
-	gnus-agent-method-p.
-
-	* gnus-art.el (gnus-buttonized-mime-types): New variable.
-	(gnus-unbuttonized-mime-type-p): Use it.
-
-	* gnus-agent.el (gnus-agent-fetch-group): If online, actually
-	fetch group.
-
-2001-09-08  Simon Josefsson  <jas@extundo.com>
-	From Daniel Pittman <daniel@rimspace.net>
-
-	* gnus-spec.el (gnus-correct-pad-form): New function.
-	(gnus-parse-simple-format): Use it.
-
-2001-09-07  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-group-sort-groups): Unmark all groups.
-	(gnus-group-sort-selected-groups): Ditto.  Suggested by Harry
-	Putnam <reader@newsguy.com>.
-	(gnus-group-sort-selected-groups): Touch dribble file.
-
-2001-09-07 Raja R Harinath  <harinath@cs.umn.edu>
-
-	* nnml.el (nnml-filenames-are-evil): New variable.
-	(nnml-article-to-file-alist): Rename to ...
-	(nnml-current-group-article-to-file-alist): ... this.
-	Respect `nnml-filenames-are-evil'.
-	(nnml-active-number): Update.
-	(nnml-update-file-alist): Update.
-	(nnml-request-article): Use nnheader-article-to-file-alist.
-	(nnml-request-rename-group): Likewise.
-
-2001-09-06  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-summary-insert-line): Fix.
-
-2001-09-06  Bj,Av(Brn Torkelsson  <torkel@acc.umu.se>
-
-	* gnus-sum.el: Bind g-s-t-s to "W g".
-	* gnus-sum.el (gnus-summary-make-menu-bar): Add g-s-t-s.
-	* gnus-sum.el (gnus-summary-toggle-smiley): New function. Toggles
-	display of graphical smilies.
-
-2001-09-07 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-setup-news): A typo.
-	From Bill White <billw@wolfram.com>.
-
-2001-09-06  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-insert-line): Insert forwarded, recent
-	and unseen marks.
-
-2001-09-05  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* nnmail.el (nnmail-split-fancy): Document `junk'.
-
-2001-09-04  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-search): Don't error if server is broken.
-
-2001-09-02  Benjamin Rutt  <brutt@bloomington.in.us>
-
-	* nnmbox.el (nnmbox-find-article): Fix infinite loop when
-	searching for an article that isn't in the mbox.
-
-2001-09-02 23:12:48  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnslashdot.el (nnslashdot-retrieve-headers-1): Get references
-	right, and get all the comments.
-
-2001-09-02  Simon Josefsson  <jas@extundo.com>
-	Suggested by Dan Christensen <jdc+news@uwo.ca>
-
-	* nnfolder.el (nnfolder-request-update-info): Fix message.
-
-	* nnml.el (nnml-request-update-info): Ditto.
-
-2001-09-01  Simon Josefsson  <jas@extundo.com>
-
-	* nnml.el (nnml-request-expire-articles): Also bind
-	`nnml-current-group' and `nnml-article-file-alist' when using
-	expiry-target. (Otherwise nnml will be in a inconsistent internal
-	state causing all kind of problems.)
-	(nnml-request-expire-articles): If `nnml-article-to-file' or
-	`file-attributes' failes, return article as un-expirable instead
-	of treating it as expired.
-
-2001-08-31  Sam Steingold  <sds@gnu.org>
-
-	* imap.el (imap-mailbox-examine, imap-mailbox-examine-1): Fix a
-	typo: `exmine' --> `examine'.
-
-2001-08-30 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndoc.el (nndoc-forward-type-p): It is not a digest.
-
-2001-08-30 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnml.el (nnml-check-directory-twice): Remove.
-	(nnml-retrieve-headers): Ditto.
-	(nnml-article-to-file): Use nnheader-directory-files-is-safe.
-
-2001-08-30  Andrew Innes  <andrewi@gnu.org>
-
-	* nnheader.el (nnheader-directory-files-is-safe): No need to read
-	directory twice on Windows, or on GNU Emacs-21.
-
-2001-08-30  Andrew Innes  <andrewi@gnu.org>
-
-	* nnml.el (nnml-request-article): Use nnml-article-to-file-alist.
-	(nnml-request-rename-group): Ditto.
-	(nnml-active-number): Ditto.
-	(nnml-request-create-group): Use nnml-directory-articles.
-	(nnml-request-expire-articles): Use nnml-directory-articles, which
-	gets list from nov database if available.
-	(nnml-get-nov-buffer): New function.
-	(nnml-open-nov): Use it.
-	(nnml-update-file-alist): Use nnml-article-to-file-alist, which
-	gets alist from nov database if available.
-	(nnml-directory-articles): New function.
-	(nnml-article-to-file-alist): New function.
-
-2001-08-30  Andrew Innes  <andrewi@gnu.org>
-
-	* mm-decode.el (mm-display-external): Use `name' as filename, if
-	`filename' attribute is not present.
-
-2001-08-30  Andrew Innes  <andrewi@gnu.org>
-
-	* mail-source.el (mail-source-flash): New defcustom.
-	(mail-source-new-mail-p): Ring visible bell if appropriate.
-	(mail-source-start-idle-timer): Use unwind-protect to ensure idle
-	timer is cleared even if mail check signals an error.
-
-2001-08-29 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-move-article): Only update marks of
-	type 'list.
-
-2001-08-29 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* flow-fill.el (fill-flowed): eol might be point-max.
-
-2001-08-27  Simon Josefsson  <jas@extundo.com>
-
-	* nnml.el (nnml-request-update-info): Fix message.
-	(nnml-open-marks): Ditto.
-
-	* nnfolder.el (nnfolder-request-update-info):
-	(nnfolder-open-marks): Fix message.
-
-2001-08-25  Simon Josefsson  <jas@extundo.com>
-
-	* nnfolder.el (nnfolder-save-marks): Don't create directory named
-	after group in ~/.
-
-2001-08-25  Simon Josefsson  <jas@extundo.com>
-	From Andreas Jaeger  <aj@suse.de>
-
-	* nnfolder.el (nnfolder-open-marks): Fix typo.
-	* nnml.el (nnml-open-marks): Likewise.
-
-2001-08-25  Simon Josefsson  <jas@extundo.com>
-
-	Make nnfolder groups self-contained as far as marks are concerned.
-
-	* nnfolder.el (nnfolder-marks-directory, nnfolder-marks-is-evil)
-	(nnfolder-marks, nnfolder-marks-file-suffix): New variables.
-	(nnfolder-open-server): Make marks directory.
-	(nnfolder-request-delete-group): Delete marks file.
-	(nnfolder-request-delete-group): Check of nov/marks file exist
-	before deleting.
-	(nnfolder-request-rename-group): Rename marks file.
-	(nnfolder-request-rename-group): Only rename nov/mark if they exists.
-	(nnfolder-request-set-mark, nnfolder-request-update-info)
-	(nnfolder-group-marks-pathname, nnfolder-save-marks)
-	(nnfolder-open-marks): New functions.
-	(top-level): Require gnus.
-
-2001-08-25 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnweb.el (nnweb-type-definition): Use google raw file.
-	(nnweb-google-parse-1): Ditto.
-	(nnweb-google-identity): Ditto.
-	(nnweb-reference-wash-article): Move nnweb-decode-entities here.
-	(nnweb-altavista-wash-article): Ditto.
-	(nnweb-request-article): Remove nnweb-decode-entities.
-
-	* nnml.el: Require 'gnus.
-
-2001-08-25  Simon Josefsson  <jas@extundo.com>
-
-	* nnml.el (nnml-marks-is-evil): Add doc.
-
-2001-08-25  Simon Josefsson  <jas@extundo.com>
-
-	* nnml.el (nnml-save-marks): Wrap saving marks in a
-	condition-case, to allow user to start Gnus if saving marks failed
-	for some reason.
-
-2001-08-24 16:05:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-spec.el (gnus-compile): Don't compile gnus-version.
-
-	* gnus-group.el (gnus-update-group-mark-positions): Bind
-	gnus-group-update-hook to nil.
-
-2001-08-24 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-generate-mime-1): Force as multibyte string.
-
-2001-08-24 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-insert-line)
-	(gnus-summary-prepare-threads): gnus-tmp-lines should be a string.
-	From Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
-
-	* gnus-spec.el (gnus-correct-substring): Take optional END.
-
-	* nnrss.el (nnrss-request-article): Remove \n.
-	(nnrss-retrieve-headers): Lines number is -1.
-
-2001-08-24  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-group.el (gnus-info-clear-data): Call
-	nnfoo-request-set-mark to propagate marks.  Fix bug:
-	`gnus-group-update-line' doesn't update read range unless we call
-	`gnus-get-unread-articles-in-group' first.
-
-	* nnimap.el (nnimap-request-set-mark): Don't propagate seen flags
-	to server.
-
-2001-08-23 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-create-info-command): Return an interactive
-	function.
-
-2001-08-23 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Katsumi Yamaoka <yamaoka@jpl.org>
-
-	* gnus-spec.el (gnus-parse-complex-format): Use equal.
-
-2001-08-23 18:43:05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-select-newsgroup): Use it.
-
-	* gnus-util.el (gnus-not-ignore): New function.
-
-	* lpath.el (featurep): Don't fbind char-int.
-
-	* gnus-util.el (gnus-create-info-command): New function.
-
-	* gnus-group.el (gnus-group-edit-group): Make C-c C-i go to the
-	right node.
-
-	* gnus-sum.el (gnus-select-newsgroup): Clean up.
-	(gnus-summary-limit-children): Use 'identity instead of `all'.
-	(gnus-summary-limit-to-display-predicate): New command and
-	keystroke.
-
-2001-08-23 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-group-alist): Use fm-releases.rdf.
-
-	* gnus-spec.el (gnus-format-specs): Miss a right parenthesis.
-
-2001-08-23 18:43:05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-spec.el: Add the Gnus version.
-	(gnus-update-format-specifications): If the Gnus version changes,
-	nix out the format spec cache.
-
-	* gnus.el (gnus-continuum-version): Made into a command and
-	optionalize the VERSION.
-
-	* gnus-spec.el (gnus-parse-complex-format): Remove %C specs from
-	the start of the lines.
-
-2001-08-22 00:06:52  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-visual-p): Define function before use of
-	function.
-
-2001-08-21 23:28:02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-adjust-marked-articles): Use new variable.
-	(gnus-article-mark-to-type): New function.
-	(gnus-update-missing-marks): Only update marks of type 'list.
-
-	* gnus.el (gnus-article-special-mark-lists): New variable.
-
-2001-08-21 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-limit-children): Check 'all.
-	(gnus-select-newsgroup): Still use 'all.
-	(gnus-summary-initial-limit): Comparing with 'all.
-
-2001-08-20 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-activate-group): If dont-check, don't update
-	active.
-
-2001-08-20 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-retrieve-headers-1): Replace
-	nnslashdot-*-retrieve-headers.
-	(nnslashdot-request-article): Fix for slashcode 2.2.
-	(nnslashdot-make-tuple): New function.
-	(nnslashdot-read-groups): Use it.
-
-2001-08-20 01:34:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-expand-group-parameters): Don't alter the variable
-	list.
-
-	* gnus-sum.el (gnus-summary-move-article): Don't select article.
-
-2001-08-20  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-msg.el (gnus-inews-do-gcc): If archive server can't be
-	opened, error instead of continuing (and exploding later).
-
-2001-08-20 01:34:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus.el (gnus-expand-group-parameters): Return the parameter
-	list.
-
-	* gnus-sum.el (gnus-summary-show-article): Doc fix.
-	(gnus-summary-show-article): Guess at charset if required.
-
-	* gnus-spec.el (gnus-correct-substring): Stopped one character
-	before we wanted.
-
-2001-08-19  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
-
-	* earcon.el (earcon-auto-play): Remove unused option.
-
-2001-08-19 16:14:41  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-score.el (gnus-score-headers): Move the "Scoring..."
-	message down in levels, since it happens very fast.
-
-	* smiley-ems.el (smiley-update-cache): Respect the symbol version
-	of smiley-regexp-alist.
-
-	* mm-view.el (mm-inline-text): Ignore vcard errors.
-
-	* gnus-art.el (gnus-ignored-headers): Added more junk headers.
-
-	* gnus-score.el (gnus-all-score-files): Use append instead of
-	nconc.
-
-	* gnus.el (gnus-splash-face): Doc fix.
-
-	* mm-decode.el (mm-mailcap-command): Use
-	mm-path-name-rewrite-functions.
-	(mm-path-name-rewrite-functions): New variable.
-
-	* gnus-spec.el (gnus-parse-complex-format): React to ?=.
-	(gnus-complex-form-to-spec): Insert tab.
-	(gnus-spec-tab): New function.
-
-	* gnus-sum.el (gnus-select-newsgroup): Set the marks before
-	entering the group.
-
-	* gnus-spec.el (gnus-complex-form-to-spec): Insert Lisp to match
-	the positional spec.
-	(gnus-parse-complex-format): React to %C.
-
-	* gnus-ems.el (gnus-char-width): Moved here.
-
-	* gnus-sum.el (gnus-select-newsgroup): Set
-	gnus-newsgroup-articles.
-	(gnus-unseen-mark): New variable.
-	(gnus-newsgroup-unseen): Ditto.
-	(gnus-newsgroup-seen): Ditto.
-	(gnus-adjust-marked-articles): Use them.
-	(gnus-update-marks): Use them.
-	(gnus-summary-update-secondary-mark): Display.
-	(gnus-summary-prepare-threads): Display.
-
-	* gnus-msg.el (gnus-inews-group-method): Use and return the
-	method, not the server.
-
-2001-08-19  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-srvr.el (gnus-server-agent-face): New.
-	(gnus-server-agent-face): New.
-	(gnus-server-mode): Turn on font-lock-mode.
-
-	* gnus.el (gnus-server-visual): Add defgroup.
-
-2001-08-19  Simon Josefsson  <jas@extundo.com>
-	From Joe Casadonte <jcasadonte@northbound-train.com>
-
-	* gnus-srvr.el (gnus-server-opened-face, gnus-server-closed-face,
-	gnus-server-denied-face): New.
-	(gnus-server-opened-face, gnus-server-closed-face,
-	gnus-server-denied-face): New.
-	(gnus-server-font-lock-keywords): Add.
-
-2001-08-19  Simon Josefsson  <jas@extundo.com>
-
-	* nnml.el (nnml-request-set-mark): Return nil.
-	(nnml-save-marks): Use nnml-possibly-create-directory.
-	(nnml-open-marks): Only work in temp buffer when inserting/reading
-	.marks file.
-
-2001-08-18 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-expand-group-parameters): Fix.
-
-	* gnus-spec.el (gnus-char-width): New function.
-	(gnus-correct-substring, gnus-correct-length): Use it.
-
-	* message.el (message-required-mail-headers): Fix doc.
-
-2001-08-18 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-group-make-articles-read): gnus-request-set-mark.
-
-	* mm-decode.el (mm-save-part-to-file): Insert the handle.
-
-2001-08-18 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-threaded-retrieve-headers):
-	slashdot 2.2 (not fully fixed yet).
-	(nnslashdot-request-article): Ditto.
-
-2001-08-18  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-util.el (gnus-remassoc, gnus-update-alist-soft): Moved from
-	nnimap.
-
-	* nnimap.el (nnimap-remassoc, nnimap-update-alist-soft): Moved to
-	gnus-util.
-	(nnimap-request-update-info-internal): Use new functions.
-
-	* nnml.el (nnml-request-set-mark, nnml-request-update-info): Use
-	new functions.
-
-2001-08-18  Simon Josefsson  <jas@extundo.com>
-
-	Make nnml groups self-contained as far as marks are concerned.
-
-	* nnml.el (nnml-request-delete-group): Delete marks file.
-	(nnml-request-rename-group): Move marks file.
-	(nnml-marks-file-name, nnml-marks-is-evil, nnml-marks): New server
-	variables.
-	(nnml-request-set-mark, nnml-request-update-info): New server
-	functions.
-	(nnml-save-marks, nnml-open-marks): New functions.
-
-2001-08-18  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-sum.el (gnus-summary-move-article): Use `add' instead of
-	`set' when setting marks.
-
-2001-08-17 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-info-find-node): Take an argument.
-
-	* gnus-art.el (gnus-button-handle-info): New function.
-	(gnus-url-unhex-string): Replace "+" with " ".
-
-2001-08-17 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-check-news-header-syntax): Check bad From.
-
-2001-08-18 00:14:45  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-spec.el (gnus-correct-length): New function.
-	(gnus-correct-substring): New function.
-	(gnus-tilde-max-form): Use it.
-
-2001-08-17  Nevin Kapur  <nevin@jhu.edu>
-
-	* nnmh.el: Docstring changes as below.
-
-	* nnml.el: Docstring changes as below.
-
-	* nnbabyl.el: Docstring changes as below.
-
-	* nnmbox.el: Docstring changes as below.
-
-	* nnfolder.el: Added docstrings identifying each virtual server
-	parameter.
-
-2001-08-18  Simon Josefsson  <jas@extundo.com>
-
-	* mml.el (mml-menu): Collapse Attach, Insert and Security submenu.
-
-2001-08-17  Bj,Av(Brn Torkelsson  <torkel@acc.kth.se>
-
-	* message.el: rename "Abort Message" to "Postpone Message".
-	Remove "Attach file as MIME" from Message menu, it's already in
-	the MIME menu.
-
-2001-08-17 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* smime.el (smime-point-at-eol): eval-and-compile.
-	(smime-make-temp-file): New function.
-	(smime-sign-region, smime-encrypt-region, smime-decrypt-region):
-	Use it.
-
-2001-08-17 10:41:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-fetch-group): Go online if offline.
-	(gnus-agent-summary-fetch-group): New command and keystroke.
-
-	* gnus-art.el (gnus-insert-mime-button): Tiny clean-up.
-	(gnus-mime-display-security): Make it respect
-	gnus-unbuttonized-mime-type-p.
-
-	* gnus-sum.el (gnus-articles-to-read): Comments.
-	(gnus-article-marked-p): New function.
-	(gnus-summary-display-make-predicate): New function.
-	(gnus-select-newsgroup): Use them.
-
-	* mm-decode.el (mm-save-part-to-file): Made it not error.
-
-2001-08-17  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-wait-for-tag): If process-status isn't open or
-	run, return nil instead of sit-for looping.
-
-2001-08-17 10:41:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* lpath.el (featurep): fbind xml-parse-region.
-
-	* gnus.el (gnus-message-archive-method): Default to "archive".
-	(gnus-message-archive-method): Doc fix.
-	(gnus-parameters-get-parameter): Cleaned up.
-	(gnus-expand-group-parameter): New function.
-
-	* gnus-start.el (gnus-setup-news): Push the archive server only
-	the server list.
-
-	* mml.el (mml-menu): Changed name to "Attachments".
-
-	* mm-decode.el (mm-destroy-postponed-undisplay-list): Only message
-	when there is something to detroy.
-
-2001-05-21 17:11:46  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-srvr.el (gnus-server-browse-in-group-buffer): Default to
-	nil.
-
-2001-08-15  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el (gnus-delay-article): Allow "01:23" time spec,
-	which specifies a time today or tomorrow.
-
-2001-08-15  Simon Josefsson  <jas@extundo.com>
-	From Pavel@Janik.cz (Pavel Jan,Am(Bk)
-
-	* gnus-agent.el (gnus-agent-make-mode-line-string)
-	(gnus-agent-toggle-plugged): Use new API.
-
-2001-08-14  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el (gnus-delay-send-drafts): Fix check whether
-	deadline has expired.
-
-2001-08-12  Simon Josefsson  <jas@extundo.com>
-	Suggested by Kai.Grossjohann@CS.Uni-Dortmund.DE
-
-	Support `recent' mark indicating newly arrived messages (to
-	separate from old but unread messages).
-
-	* nnimap.el (nnimap-retrieve-groups): Push dummy article into
-	`nnmail-split-history' if recent is > 0.
-	(nnimap-request-update-info-internal): Update `recent' marks.
-	(nnimap-request-set-mark): Never set `recent' marks.
-	(nnimap-mark-to-predicate-alist, nnimap-mark-to-flag-alist): Add
-	recent.
-
-	* gnus-sum.el (gnus-recent-mark): New mark.
-	(gnus-newsgroup-recent): New variable.
-	(gnus-summary-local-variables): Add gnus-newsgroup-recent.
-	(gnus-summary-prepare-threads): Mark recent articles.
-	(gnus-summary-add-mark): Support recent.
-	(gnus-summary-update-secondary-mark): Support recent.
-
-	* gnus.el (gnus-article-mark-lists): Add recent.
-
-2001-08-12  Simon Josefsson  <jas@extundo.com>
-
-	* mm-bodies.el (mm-decode-content-transfer-encoding): Returns
-	whether successful decoding took place.  Add doc.
-
-2001-08-12  Simon Josefsson  <jas@extundo.com>
-	Suggested by Per Abrahamsen <abraham@dina.kvl.dk>
-
-	* gnus.el (gnus-summary-line-format, gnus-parameters):
-	* gnus-gl.el (gnus-summary-grouplens-line-format):
-	* gnus-salt.el (gnus-summary-pick-line-format):
-	* gnus-spec.el (gnus-format-specs): %n is 23 chars.
-
-2001-08-11 09:40:00  Karl Kleinpaste  <karl@charcoal.com>
-	Committed by Kai Gro,b_(Bjohann.
-
-	* gnus-score.el (gnus-score-string): Fix `match' regexp
-	for `extra' header case.
-
-2001-08-10 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmbox.el (nnmbox-read-mbox): No warning.
-
-2001-08-10 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndoc.el (nndoc-article-type): Fix doc.
-	(nndoc-generate-article-function): New variable.
-	(nndoc-dissection-function): New variable.
-	(nndoc-type-alist): Add oe-dbx.
-	(nndoc-oe-dbx-type-p): New function.
-	(nndoc-oe-dbx-dissection): New function.
-	(nndoc-oe-dbx-generate-article): New function.
-
-2001-08-11  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el (gnus-delay-send-drafts): Cleaner way to check
-	whether deadline has been reached.  Patch from Dan Nicolaescu
-	<dann@godzilla.ics.uci.edu>.
-
-2001-08-10 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-ml.el (turn-on-gnus-mailing-list-mode): Use
-	gnus-group-find-parameter. Suggested by Janne Rinta-Manty
-	<rintaman@cs.Helsinki.FI>.
-
-	* mail-source.el (mail-source-movemail): The error buffer is
-	modified, but nothing in it.
-
-2001-08-10 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-bogus-system-names): New variable.
-	(message-make-fqdn): Use it.
-
-2001-08-09 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndraft.el (nndraft-request-group): Use
-	nndraft-auto-save-file-name.
-
-2001-08-09  Simon Josefsson  <jas@extundo.com>
-
-	* mm-view.el (mm-view-pkcs7-decrypt): Operate in current buffer.
-	Don't ask whether to decrypt.  Just leave result in buffer (don't
-	call mm).
-
-	* mm-decode.el (mm-dissect-buffer): Possibly verify/decrypt single
-	parts as well.
-	(mm-inline-media-tests): Ignore application/{x-,}pkcs7-mime.
-	(mm-possibly-verify-or-decrypt): Support application/{x-,}pkcs7-mime.
-
-2001-08-09  Simon Josefsson  <jas@extundo.com>
-
-	* mm-decode.el (mm-insert-part): Return decoding success status.
-	(mm-save-part-to-file): Error if decoding failed.
-
-2001-08-09 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-tab): Use indent-relative.
-	(message-mode): Don't bind indent-line-function to indent-relative.
-
-2001-08-09  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-get-reply-headers): Fix string. Suggested by
-	Christoph Conrad <cc@cli.de>.
-
-2001-08-08 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-tab): Use the current value of
-	indent-line-function.
-	(message-mode): Bind indent-line-function to indent-relative.
-
-2001-08-08  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-gssapi-auth-p, imap-kerberos4-auth-p): Also check
-	whether `imtest' is installed.
-
-2001-08-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	Trivial patch from Nuutti Kotivuori  <nuutti.kotivuori@smarttrust.com>
-
-	* gnus-sum.el (gnus-summary-show-article): Call
-	gnus-summary-update-secondary-secondary-mark.
-	* gnus-sum.el (gnus-summary-edit-article-done): Ditto.
-	* gnus-sum.el (gnus-summary-reparent-thread): Ditto.
-
-2001-08-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Misc -> Gnus.
-
-	* gnus-group.el (gnus-group-make-menu-bar): Ditto.
-
-	* mm-uu.el (mm-uu-dissect): Autoload. From Gerd M,Av(Bllmann
-	<gerd@gnu.org>.
-
-	* gnus-art.el (gnus-output-to-file): Bind file-name-coding-system.
-
-	* gnus-util.el (gnus-output-to-rmail): Ditto.
-	(gnus-output-to-mail): Ditto.
-
-	* nnmail.el (nnmail-pathname-coding-system): Set default to nil.
-
-2001-08-06  Florian Weimer  <fw@deneb.enyo.de>
-
-	* message.el (message-indent-citation): Use
-	`message-yank-cited-prefix' for empty lines.
-
-2001-08-05  Florian Weimer  <fw@deneb.enyo.de>
-
-	* message.el (message-indent-citation): Quote only lines starting
-	with ">" using `message-yank-cited-prefix'.
-
-2001-08-05  Nuutti Kotivuori  <nuutti.kotivuori@smarttrust.com>
-	Trivial patch.
-
-	* gnus-cache.el (gnus-cache-possibly-enter-article): Use
-	gnus-cache-fully-p.
-
-2001-08-04  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-cache.el (gnus-cache-possibly-update-active): Create active
-	file if it doesn't exist (by calling gnus-cache-read-active).
-
-2001-08-04  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-cache.el (gnus-cache-possibly-enter-article): Revert.
-	(gnus-cache-passively-or-fully-p): Removed.
-	(gnus-cache-fully-p): Fix it.
-
-	* mm-view.el (mm-pkcs7-signed-magic): Support more ASN.1 lengths.
-
-2001-08-04  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-cache.el (gnus-cache-fully-p)
-	(gnus-cache-passively-or-fully-p): New functions.
-	(gnus-cache-possibly-enter-article): Cosmetic change, use
-	`g-c-p-o-f-p'.
-	(gnus-cache-possibly-enter-article): Use `g-c-p-u-a'; last change
-	was bogus (`g-c-p-a-a' does not change active info, just change
-	the functions parameters).
-	(gnus-cache-possibly-remove-articles-1): Make sure articles are
-	not removed in groups that match `gnus-uncacheable-groups'.
-
-	Reported and modifications based on discussions with Nuutti
-	Kotivuori <nuutti.kotivuori@smarttrust.com>.
-
-2001-08-04  Simon Josefsson  <jas@extundo.com>
-	Trivial patch from Nuutti Kotivuori  <nuutti.kotivuori@smarttrust.com>
-
-	* gnus-cache.el (gnus-cache-possibly-update-active): New function;
-	calls `gnus-cache-update-active' if bounds has been extended.
-
-2001-08-04 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-security-verify-or-decrypt): Insert
-	before remove.
-	(gnus-mime-security-show-details): Ditto.
-
-2001-08-04  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* nnmail.el (nnmail-split-fancy-with-parent): Correct `mapconcat'
-	syntax.  Protect string-match against nil string and regexp.
-
-2001-08-03 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-find-charset-region): Remove control-1.
-
-2001-08-03 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-readable-p): Emacs 20 takes one argument.
-
-2001-08-04  Simon Josefsson  <jas@extundo.com>
-
-	* smime.el (smime-sign-region, smime-encrypt-region): Fix details
-	buffer.  Delete MIME-Version header.
-
-2001-08-03  Simon Josefsson  <jas@extundo.com>
-
-	* gnus-cache.el (gnus-cache-possibly-enter-article): The article
-	that is entered does not necessarily have the highest article
-	number in the group, so use `gnus-cache-possibly-alter-active'
-	instead of `gnus-cache-update-active'.
-
-2001-08-03 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-gpg-extract-signature-details): Don't barf.
-
-2001-08-03  Simon Josefsson  <jas@extundo.com>
-
-	* mml.el (mml-menu): Rename from MML to Mime. Collapse Security
-	menu.
-
-2001-08-02  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus.el (post-method): New group parameter.  It also provides
-	the user option `gnus-post-method-alist' and the internal function
-	`gnus-parameter-post-method'.
-
-	* gnus-msg.el (gnus-post-method): Bind the value of
-	`gnus-post-method' to the group parameter if it is defined.
-
-2001-08-02  Simon Josefsson  <jas@extundo.com>
-
-	* smime.el (smime-extra-arguments): Removed.
-	(smime-call-openssl-region): Don't use it.
-
-2001-08-02  Simon Josefsson  <jas@extundo.com>
-
-	* smime.el (smime-sign-region): Handle stderr.
-	(smime-encrypt-region): Ditto.
-
-	* mm-view.el (mm-pkcs7-signed-magic): Make it a regexp.  Don't
-	match the ASN.1 length bytes.
-	(mm-pkcs7-enveloped-magic): Ditto.
-	(mm-view-pkcs7-get-type): Don't regexp quote.
-
-2001-08-01 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Andreas Fuchs <asf@void.at>
-
-	* mml2015.el (mml2015-trust-boundaries-alist): Typo.
-
-2001-08-01 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-header-button-alist): References regexp.
-
-2001-08-01  Gerd Moellmann  <gerd@gnu.org>
-
-	* mm-view.el (autoload): Don't autoload `diff-mode' if it's
-	already fboundp.  Add INTERACTIVE arg to autoload form.
-
-2001-08-01 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-init): Add as gnus buffer.
-
-	* nnmail.el (nnmail-cache-open): Ditto.
-
-2001-07-31 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-button-fetch-group): Fix the regexp.
-
-2001-07-31  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-msg.el (gnus-post-method): Refer to `gnus-parameters'.
-
-2001-07-31 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	Originally from Pavel Jan,Am(Bk <Pavel@Janik.cz>
-
-	* gnus-agent.el (gnus-agent-make-mode-line-string): New function.
-	(gnus-agent-toggle-plugged): Use it.
-
-2001-07-31  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-startup-file-coding-system): Revert to binary.
-	(gnus-ding-file-coding-system): New variable.
-	(gnus-read-newsrc-el-file, gnus-save-newsrc-file)
-	(gnus-slave-save-newsrc): Use it.
-
-2001-07-31  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el (gnus-delay-initialize): Use standard define-key
-	syntax.
-
-2001-07-30 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	Originally from Andreas Fuchs <asf@void.at>
-
-	* mml2015.el (mml2015-trust-boundaries-alist): New variable.
-	(mml2015-gpg-pretty-print-fpr): New function.
-	(mml2015-gpg-extract-signature-details): More details, rename from
-	`m-g-e-from'.
-	(mml2015-gpg-verify): Use them.
-	(mml2015-gpg-clear-verify): Use them.
-
-2001-07-31  Simon Josefsson  <jas@extundo.com>
-
-	* mml-smime.el (mml-smime-sign, mml-smime-encrypt): Goto end of
-	buffer when done.
-
-2001-07-30  Simon Josefsson  <jas@extundo.com>
-
-	* smime.el (smime-call-openssl-region): Revert previous change,
-	just pass on buf to `call-process-region'.
-	(smime-verify-region): Doc fix.  Don't message stuff.  Use
-	`smime-new-details-buffer'.  Inserts error messages into buffer.
-	(smime-noverify-region): Ditto.
-	(smime-decrypt-region): Ditto.  Handles stderr separately.
-	(smime-verify-buffer, smime-noverify-buffer)
-	(smime-decrypt-buffer): Doc fix.
-	(smime-new-details-buffer): New function.
-	(smime-pkcs7-region, smime-pkcs7-certificates-region)
-	(smime-pkcs7-email-region): Use `smime-new-details-buffer'.
-	(smime-sign-region, smime-encrypt-region): Don't use
-	`insert-buffer'.
-
-	* mml-smime.el (mml-smime-verify): Fix security button strings.
-
-2001-07-30 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-save-part-and-strip): Save
-	gnus-article-mime-handles.
-
-2001-07-29  Simon Josefsson  <jas@extundo.com>
-
-	* mail-source.el (top-level): Require message for message-directory.
-	(mail-source-directory): Change default to message-directory.
-
-	* smime.el (smime-keys, smime-CA-directory, smime-CA-file)
-	(smime-certificate-directory, smime-openssl-program)
-	(smime-encrypt-cipher, smime-dns-server): Fix doc (leading "*").
-	(smime-extra-arguments): New variable.
-	(smime-dns-server): Fix customize group.
-	(smime-call-openssl-region): Use `smime-extra-arguments'.
-
-2001-07-29  Simon Josefsson  <jas@extundo.com>
-	From Vladimir Volovich <vvv@vsu.ru>
-
-	* smime.el (smime-call-openssl-region): Ignore stderr.
-
-2001-07-29  Simon Josefsson  <jas@extundo.com>
-	From Christoph Conrad <christoph.conrad@gmx.de>
-
-	* gnus-agent.el (gnus-agent-save-group-info): Don't destroy active
-	file.
-
-2001-07-29  Simon Josefsson  <jas@extundo.com>
-
-	* mm-view.el (mm-view-pkcs7-decrypt): Adhere to `mm-decrypt-option'.
-
-	Support S/MIME decryption.
-
-	* mm-decode.el (mm-inline-media-tests):
-	(mm-inlined-types):
-	(mm-automatic-display):
-	(mm-attachment-override-types): Add application/{x-,}pkcs7-mime.
-
-	* mm-view.el (mm-pkcs7-signed-magic):
-	(mm-pkcs7-enveloped-magic): New variables.
-	(mm-view-pkcs7-get-type): New function; identify PKCS#7 type.
-	(mm-view-pkcs7): New function; mm viewer for PKCS#7 blobs.
-	(mm-view-pkcs7-decrypt): New function; mm viewer for encrypted
-	PKCS#7 blobs.
-
-	* smime.el (smime-decrypt-region): Expand keyfile.
-
-2001-07-29  Simon Josefsson  <jas@extundo.com>
-
-	* nntp.el (nntp-open-ssl-stream): Don't mess with internal
-	`ssl.el' variables.
-
-	* gnus-agent.el (gnus-agent-save-group-info): Delete everything
-	but line instead of narrowing to it, because `nnmail-parse-active'
-	calls widen.  Thanks to Christoph Conrad
-	<christoph.conrad@gmx.de>.
-
-2001-07-29  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus.el (gnus-summary-line-format): Mention `gnus-sum-thread-*'
-	for %B spec.
-
-	* gnus-sum.el (gnus-summary-prepare-threads): If
-	gnus-sum-thread-tree-root is nil, use subject instead.
-	(gnus-sum-thread-tree-root, gnus-sum-thread-tree-single-indent)
-	(gnus-sum-thread-tree-vertical, gnus-sum-thread-tree-indent)
-	(gnus-sum-thread-tree-leaf-with-other)
-	(gnus-sum-thread-tree-single-leaf): Documentation.
-	(gnus-sum-thread-tree-single-indent): Allow nil.
-
-2001-07-28 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-fill-paragraph): Do nothing if the user
-	wants filladapt-mode.
-
-2001-07-27 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-image-type-from-buffer): New function.
-	(mm-get-image): Use it.
-
-2001-07-27 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-large-newsgroup): Add doc, "If it is nil, ..."
-
-	* gnus-art.el (gnus-mime-view-all-parts): buffer-read-only covers
-	mm-display-parts too.
-
-2001-07-27 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-request-accept-article): Bind
-	nntp-server-buffer.
-
-	* nnmail.el (nnmail-parse-active): Read from buffer instead of
-	nntp-server-buffer.
-
-2001-07-27 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-check-news-header-syntax): Use
-	message-post-method.
-	(message-send-news): Bind message-post-method.
-
-2001-07-27 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-tweak-type-alist): New variable.
-	(mml-tweak-function-alist): New variable.
-	(mml-tweak-part): New function.
-	(mml-generate-mime-1): Use it.
-
-2001-07-26 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-request-accept-article): Replace
-	nnfolder-request-list.
-
-2001-07-27  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-open-server): Set nnimap-server-buffer if
-	nnoo-change-server failed to do it.
-
-2001-07-26 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-parameters): Make it customizable.
-
-2001-07-26 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mm-display-part): Narrow to point if eobp.
-
-	* message.el (message-set-auto-save-file-name): More
-	poor-system-types.
-
-	* mailcap.el (mailcap-parse-mimetypes): poor-system-types.
-
-	* gnus-ems.el (nnheader-file-name-translation-alist): M$Windows-NT
-	supports +.
-
-2001-07-26 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-readable-p): New function.
-	(mm-inline-media-tests): Fix the default testers.
-
-2001-07-26  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-version): Bump version number.
-
-2001-07-26 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Steven E. Harris <seh@speakeasy.org>
-
-	* nnheader.el (nnheader-translate-file-chars): cygwin32 is running
-	in M$Windows too.
-
-2001-07-26  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el (gnus-delay-send-drafts): Don't `error'.
-
-2001-07-25 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-bcklg.el (gnus-backlog-shutdown): Make interactive.
-
-	* mm-decode.el (mm-get-image): Guess then use the type.
-
-	* gnus-art.el (gnus-mime-view-part-as-type): Don't copy cache.
-
-2001-07-25 12:54:00  Danny Siu  <dsiu@adobe.com>
-
-	* gnus-sum.el (gnus-summary-prepare-threads): Shouldn't do tree
-	display (%B) for threads if threading is off.
-
-2001-07-25 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Henrik Enberg <henrik@enberg.org>
-
-	* gnus-msg.el: Customization patch.
-
-2001-07-25 22:22:22  Raymond Scholz  <rscholz@zonix.de>
-
-	* nnmail.el (nnmail-split-fancy-with-parent-ignore-groups): New
-	variable.
-	(nnmail-split-fancy-with-parent): Ignore certain groups.
-
-2001-07-25 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-byte-compile): New function.
-	(gnus-use-byte-compile): New variable.
-	(gnus-make-sort-function): Use it.
-
-	* nnmail.el (nnmail-get-new-mail): Use it.
-
-	* gnus-agent.el (gnus-category-make-function): Simple function or
-	compiled function.
-	(gnus-agent-fetch-group-1): Don't use (caaddr predicate).
-
-	* gnus-gl.el (bbb-build-rate-command): Remove quote before lambda.
-	* gnus-topic.el (gnus-topic-sort-topics-1): Ditto.
-	(gnus-topic-sort-topics-1): Use gnus-byte-compile.
-
-	* message.el (message-check-news-header-syntax): Remove quote.
-
-2001-07-24 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-use-mail-followup-to): `t' is not a
-	documented value.
-
-2001-07-24 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-display-arrow): Test fboundp.
-
-2001-07-24 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-encode.el (mm-encode-buffer): Don't use 7bit encoding if
-	there are long lines.
-
-2001-07-24  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el (copy-list): New compiler macro.
-
-2001-07-24 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-bounce): If no Return-Path, the whole
-	content is considered as the original message.
-
-	* nnml.el (nnml-check-directory-twice): New variable.
-	(nnml-article-to-file): Use it.
-	(nnml-retrieve-headers): Hack it.
-
-2001-07-24 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-win.el (gnus-buffer-configuration): New configure.
-
-	* gnus-art.el (gnus-mm-display-part): Don't select-window if it is
-	not alive.
-
-	* mm-decode.el (mm-remove-part): Don't murder the current window (nil).
-	(mm-display-external): Use display-term configure.
-
-2001-07-24  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el (gnus-delay-default-hour): New variable.
-	(gnus-delay-article): Allow specific date in YYYY-MM-DD format.
-
-2001-07-23 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Karl Kleinpaste <karl@charcoal.com>
-
-	* gnus-sum.el (gnus-summary-line-format-alist): Add %B.
-	(gnus-summary-prepare-threads): Ditto.
-
-	* gnus.el (gnus-summary-line-format): Add %B.
-
-2001-07-23 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-articles-to-read): Use gnus-group-decoded-name.
-
-	* mm-util.el (mm-string-as-multibyte): New function.
-
-	* nnmh.el (nnmh-request-list-1): Encode, not decode!
-
-2001-07-23 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-universal-coding-system): New variable.
-
-	* gnus-start.el (gnus-startup-file-coding-system): Use it.
-
-	* score-mode.el (score-mode-coding-system): Use it.
-
-2001-07-23  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-start.el (gnus-setup-news): Call
-	`gnus-check-bogus-newsgroups' just after the native server is
-	opened.
-
-2001-07-23  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* nnmail.el (nnmail-do-request-post): Util function to be used by
-	`nnchoke-request-post' for all nnmail-derived backends.
-
-	* nnml.el (nnml-request-post): Use it.
-
-	* gnus.el (gnus-valid-select-methods): nnml is a post-mail
-	backend, for it groks nnml-request-post.
-
-	* gnus-group.el (gnus-group-highlight, gnus-group-highlight-line):
-	Treat `mail-post' backends like `mail' backends, not like `news'
-	backends.
-
-2001-07-22 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-setup-message): make-local-hook.
-
-2001-07-22  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el (gnus-delay-article): Fix `read-string' for
-	XEmacs.  Allow more units.  Submitted by Karl Kleinpaste
-	<karl@charcoal.com>, slightly changed by Kai.
-
-	* message.el (message-check-news-header-syntax): When checking
-	whether the groups exist, check the right server based on
-	`gnus-post-method'.
-
-2001-07-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-delay.el: New file.
-
-2001-07-21 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-read-coding-system): Take two arguments.
-
-	* gnus-sum.el (gnus-summary-show-article): Use
-	mm-read-coding-system.
-
-	* gnus-art.el (article-de-quoted-unreadable):
-	(article-de-base64-unreadable, article-wash-html):
-	(gnus-mime-inline-part, gnus-mime-view-part-as-charset): Ditto.
-
-2001-07-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* nnml.el (nnml-request-post): New function.  Can be used for
-	annotations in nnml groups.
-
-2001-07-19  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* nntp.el (nntp-request-newgroups): Use UTC date for NEWGROUPS
-	command.
-
-	* gnus-start.el (gnus-find-new-newsgroups): Use
-	`message-make-date' instead of `current-time-string'.
-	(gnus-ask-server-for-new-groups): Ditto.
-	(gnus-check-first-time-used): Ditto.
-
-2001-07-20 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-score.el (gnus-home-score-file): nnheader-translate-file-chars.
-
-2001-07-18  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* message.el (message-shorten-references): Change `maxcount' and
-	`cut' to obey USEFOR draft 5.
-
-2001-07-12  Colin Walters  <walters@cis.ohio-state.edu>
-
-	* gnus-sum.el (gnus-summary-display-arrow): New variable.
-	(gnus-summary-set-article-display-arrow): New function.
-	(gnus-summary-goto-subject): Use it.
-
-2001-07-18 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-import-article): Insert date if
-	doesn't exist.
-
-2001-07-18 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-content-type-parameters): New variable.
-	(mml-content-disposition-parameters): New variable.
-	(mml-insert-mime-headers): Use them.
-	(mml-parse-1): Accept charset.
-
-2001-07-17 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-select-group): Doc fix.
-
-	* gnus-eform.el (gnus-edit-form-done): Return nil if end-of-file.
-
-2001-07-17  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* dgnushack.el (dgnushack-make-auto-load): Advise `make-autoload'
-	to handle `define-derived-mode'.
-
-2001-07-16 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From:  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* message.el (message-mode): Use define-derived-mode.
-	(message-tab): message-completion-alist.
-
-	* imap.el (imap-interactive-login): Use make-local-variable.
-	(imap-open): Ditto.
-	(imap-authenticate): Ditto.
-
-	* gnus-msg.el (gnus-setup-message): Change-major-mode-hook.
-
-	* gnus-art.el (gnus-article-edit-mode): Use define-derived-mode.
-
-2001-07-16  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-citation-line-function): Refer to
-	gnus-cite-attribution-suffix.
-
-2001-07-15  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
-
-	* gnus-art.el,...: Error convention changes.
-
-2001-07-13 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-rebuild-thread): Count hidden lines too.
-
-2001-07-13 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-read-group-data): Nuke emacs-lisp-mode-hook.
-	(nnrss-read-server-data): Ditto.
-
-2001-07-13 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-setup.el (gnus-use-installed-gnus): Typo.
-	* Cleanup files.
-	From Pavel@Janik.cz (Pavel Jan,Am(Bk).
-
-2001-07-13 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-summary-line-format): Add %o.
-
-	* gnus-sum.el (gnus-summary-pipe-output): Don't configure as pipe
-	unless shell outputs something.
-
-2001-07-13 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-boring-article-headers): Better doc.
-	(article-hide-headers): Better regexp.
-	Suggested by Matt Swift <swift@alum.mit.edu>.
-
-	* nnheader.el (nnheader-max-head-length): Better doc.
-	(nnheader-header-value): Skip spaces.
-	(nnheader-parse-head): Remove space.
-	Suggested by Matt Swift <swift@alum.mit.edu>.
-
-	* gnus-sum.el (gnus-summary-show-raw-article): New function.
-	(gnus-get-newsgroup-headers): Remove space.
-
-2001-07-12 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-msg-treat-broken-reply-to): Add force.
-	(gnus-summary-reply): Use it.
-	(gnus-summary-reply-broken-reply-to): New function.
-	(gnus-msg-force-broken-reply-to): New function.
-
-	* mm-view.el (mm-inline-text): Showing as text/plain when error.
-
-2001-07-12 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-draft.el (gnus-draft-setup): Restore gnus-newsgroup-name.
-
-2001-07-12 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-external-terminal-program): New variable.
-	(mm-display-external): Use it. Use term to display when no
-	window-system.
-
-2001-07-12  Bj,Av(Brn Torkelsson  <torkel@hpc2n.umu.se>
-
-	* gnus-srvr.el (gnus-browse-make-menu-bar): Changed one of the
-	Browse->Next entries to Browse->Prev
-
-2001-07-11 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-inews-do-gcc): Don't test gnus-alive-p.
-
-2001-07-11 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-encode.el (mm-content-transfer-encoding-defaults): Use base64
-	for the default encoding.
-
-	* nnrss.el (nnrss-url-field): New field.
-	(nnrss-request-article): Add newsgroups.
-
-	* nnfolder.el (nnfolder-read-folder): Force to use a multibyte buffer.
-
-2001-07-11 04:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndraft.el (nndraft-request-restore-buffer): Don't remove Date.
-
-	* gnus-draft.el (gnus-draft-edit-message): Remove Date here.
-	(gnus-draft-setup): Remove backlog.
-
-2001-07-10  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
-
-	* gnus-logic.el, gnus-srvr.el, gnus-vm.el, nnheaderxm.el, nnoo.el:
-	Cleanup.
-
-2001-07-09 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-bug): Erase buffer.
-
-	* nnfolder.el (nnfolder-possibly-change-group): Don't create group.
-
-2001-07-09 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-attachment-override-p): Fix typo.
-
-2001-03-19 05:28:00  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-kill.el (gnus-execute): Work with the extra headers.
-	* gnus-sum.el (gnus-summary-execute-command): Ditto.
-
-2001-07-09 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-view.el (mm-inline-text): w3-coding-system-for-mime-charset
-	may not defined. From: Raja R Harinath <harinath@cs.umn.edu>.
-
-	* message.el (message-send-mail-real-function): New variable.
-	(message-send-mail-partially, message-send-mail):
-
-	* nngateway.el (nngateway-request-post): Use it.
-
-	* gnus-agent.el (gnus-agentize): Use it.
-
-	* nnsoup.el (nnsoup-old-functions, nnsoup-set-variables)
-	(nnsoup-revert-variables): Use it.
-
-2001-07-09  Colin Walters  <walters@cis.ohio-state.edu>
-
-	* mm-decode.el (mm-inline-media-tests): Default to displaying as
-	text/plain if the type doesn't match any other media types.
-	(mm-inlined-types): Doc fix.
-	(mm-display-inline): Revert previous change (now handled by a
-	default type in `mm-inline-media-tests'.
-	(mm-inlinable-p): Revive.
-	(mm-display-part): Call `mm-inlinable-p'.
-	(mm-attachment-override-p): Ditto.
-	(mm-inlined-p): Doc fix.
-
-	* gnus-art.el (gnus-mime-display-single): Call `mm-inlinable-p' as
-	well as `mm-inlined-p'.
-
-2001-07-09 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nntp.el (nntp-send-command, nntp-send-command-nodelete):
-	(nntp-send-command-and-decode): Use gnus-point-at-bol.
-
-2001-07-09 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From  Paul Jarc <prj@po.cwru.edu>
-
-	* message.el (message-use-mail-followup-to): New variable.
-	(message-get-reply-headers): Use it.
-
-2001-07-04  Gerd Moellmann  <gerd@gnu.org>
-
-	* nnheader.el (nnheader-init-server-buffer): Make sure the
-	*nntpd* buffer is made multibyte instead of a random buffer.
-
-2001-07-09 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-get-newsgroup-headers-xover): Get headers only
-	when it returns headers.
-
-2001-07-07  Simon Josefsson  <jas@extundo.com>
-
-	* rfc2047.el (rfc2047-encode-message-header): Skip header when
-	trying to fold. Thanks to Colin Walters
-	<walters@cis.ohio-state.edu>
-
-2001-07-06  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-parse-address-list, imap-parse-flag-list)
-	(imap-parse-body-extension, imap-parse-body-ext, imap-parse-body):
-	Add information in `assert's.
-
-	* nnimap.el (nnimap-possibly-change-group): Ignore uidvalidity
-	changes. (From nnimaps' point of view, `nnimap-verify-uidvalidity'
-	and `nnimap-group-overview-filename', should handle all
-	change-of-uidvalidity related issues.  But there may be other
-	problems.)
-
-2001-07-05  Colin Walters  <walters@cis.ohio-state.edu>
-
-	* rfc2047.el (rfc2047-encode-message-header): Don't include the
-	header name when folding.
-
-2001-07-05  Colin Walters  <walters@cis.ohio-state.edu>
-
-	* mm-decode.el (mm-inlined-types): Document relationship with
-	`mm-inline-media-tests'.
-	(mm-display-inline): Default to displaying as plain text if no
-	inlining handler is available.
-	(mm-inlinable-p): Remove.
-	(mm-inlined-p): Don't call `mm-inlinable-p'.
-	(mm-automatic-display-p): Ditto.
-	(mm-attachment-override-p): Ditto.
-
-2001-07-04  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-importantize-dormant): New variable.
-	(nnimap-request-update-info-internal): Use it.
-	(nnimap-request-set-mark): Ditto.
-
-2001-07-04  Didier Verna  <didier@lrde.epita.fr>
-
-	* nntp.el (nntp-send-command): don't pass a buffer argument to
-	`point'. Only XEmacs accepts this.
-	* nntp.el (nntp-send-command-nodelete): ditto.
-	* nntp.el (nntp-send-command-and-decode): ditto.
-
-2001-07-04  Didier Verna  <didier@lrde.epita.fr>
-
-	* nntp.el (nntp-open-connection-function): doc update.
-	* nntp.el (nntp-pre-command): New.
-	* nntp.el (nntp-via-rlogin-command): New.
-	* nntp.el (nntp-via-telnet-command): New.
-	* nntp.el (nntp-via-telnet-switches): New.
-	* nntp.el (nntp-via-user-name): New.
-	* nntp.el (nntp-via-user-password): New.
-	* nntp.el (nntp-via-address): New.
-	* nntp.el (nntp-via-envuser): New.
-	* nntp.el (nntp-via-shell-prompt): New.
-	* nntp.el (nntp-open-telnet-stream): New.
-	* nntp.el (nntp-open-via-rlogin-and-telnet): New.
-	* nntp.el (nntp-open-via-telnet-and-telnet): New.
-	* nntp.el (nntp-wait-for): check for possibly echo'ed commands.
-	* nntp.el (nntp-send-command): ditto.
-	* nntp.el (nntp-send-command-nodelete): ditto.
-	* nntp.el (nntp-send-command-and-decode): ditto.
-
-2001-06-30  YAGI Tatsuya  <yagi@is.titech.ac.jp>
-	Trivial patch.
-
-	* gnus-start.el (gnus-check-first-time-used): Use `if' instead of
-	`when'.
-
-2001-07-03  Simon Josefsson  <jas@extundo.com>
-	From Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com>
-
-	* flow-fill.el (fill-flowed): Use (1+ (point-at-eol)) instead.
-
-2001-07-03  Simon Josefsson  <jas@extundo.com>
-
-	* flow-fill.el (fill-flowed): If `fill-region' inserts empty line,
-	remove it (workaround XEmacs `fill-region' bug).
-
-2001-07-01  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-date-days-ago): Defeat locale.
-
-2001-06-28 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-format-error): New function.
-	(mml2015-mailcrypt-decrypt, mml2015-mailcrypt-clear-decrypt)
-	(mml2015-mailcrypt-verify, mml2015-gpg-clear-verify)
-	(mml2015-mailcrypt-clear-verify, mml2015-gpg-verify): Use it.
-
-2001-06-26 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-retrieve-headers): The description may not exist.
-	Suggested by Christoph Conrad <C.Conrad@cli.de>.
-
-	* gnus-sum.el (gnus-summary-set-local-parameters): Don't override
-	group variables.
-
-2001-06-25 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-write-groups): Use gnus-prin1.
-
-	* nnrss.el (nnrss-save-server-data): Bind print-level and print-length.
-	(nnrss-save-group-data): Ditto.
-
-	* gnus-agent.el (gnus-agent-save-alist): Ditto.
-
-2001-06-25  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-do-send-housekeeping): Narrow to headers.
-
-2001-06-24  Simon Josefsson  <jas@extundo.com>
-
-	* rfc2047.el (rfc2047-fold-region): The check to skip WSP
-	insertion when breaking lines looked for " \t" instead of "[ \t]".
-	(rfc2047-encode-message-header): Fold lines even if
-	no QP encoding is done.
-
-2001-06-23  Simon Josefsson  <jas@extundo.com>
-	From Samuel Tardieu <sam@inf.enst.fr>
-
-	* smime.el (smime-keys): Support additional certificates.
-	(smime-make-certfiles): New function.
-	(smime-sign-region): Use previous variables.
-	(smime-get-certfiles): New function.
-	(smime-sign-buffer): Use it.
-	(smime-verify-region): Support both CAfile and CApath.
-
-2001-06-23  Simon Josefsson  <jas@extundo.com>
-
-	* smime.el (smime-decrypt-region): Perhaps work.
-
-2001-06-22 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-copy-article-buffer): Typo.
-
-2001-04-06  Ralph Schleicher  <rs@nunatak.allgaeu.org>
-
-	* mm-decode.el (mm-save-part): Rewrite file name.
-	(mm-file-name-rewrite-functions): New variable.
-	(mm-file-name-delete-whitespace): New function.
-	(mm-file-name-trim-whitespace): New function.
-	(mm-file-name-collapse-whitespace): New function.
-	(mm-file-name-replace-whitespace): New variable and function.
-
-2001-06-22  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-make-date): Workaround locale for weekdays.
-
-2001-06-21 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-goto-body): Return nil if not found. (revert!)
-
-2001-06-21 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Fremlin <chief@bandits.org>
-
-	* message.el (message-goto-body): Some messages have no header.
-
-	* gnus-msg.el (gnus-copy-article-buffer): Use it.
-
-2001-06-21  Ralph Schleicher  <rs@nunatak.allgaeu.org>
-
-	* nnultimate.el (nnultimate-retrieve-headers): Date fix.
-
-2001-06-21 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-make-date): Add week day.
-	Suggested by Jason R. Mastaler <jason@mastaler.com>.
-
-2001-06-19  Simon Josefsson  <jas@extundo.com>
-
-	* message.el (message-yank-prefix): Doc fix.
-	(message-yank-cited-prefix): Ditto.
-	(message-delete-not-region): Keep citation prefix on first line,
-	if possible and appropriate.
-
-2001-06-19  Simon Josefsson  <jas@extundo.com>
-
-	* imap.el (imap-process-connection-type): New variable.
-	(imap-kerberos4-open, imap-gssapi-open): Use it.  This makes
-	recent `imtest's work completely (no line length issues), while
-	making making old `imtest's unusable.  Thanks to NAGY Andras
-	<nagya@inf.elte.hu> for his work.
-
-2000-12-30  NAGY Andras  <nagya@inf.elte.hu>
-
-	* imap.el (imap-ssl-program): Add -quiet to shut up
-	OpenSSL/SSLeay's internal debug talk.
-
-2001-06-19  Matt Armstrong  <matt@lickey.com>
-
-	* imap.el (imap-parse-flag-list): Workaround bug in Courier IMAP
-	server.
-
-2001-06-19 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmail.el (nnmail-article-buffer): New variable.
-	(nnmail-split-incoming): Use it.
-
-2001-06-15  Eli Zaretskii  <eliz@is.elta.co.il>
-
-	* qp.el (quoted-printable-decode-region): If called interactively,
-	use coding-system-for-read.
-
-2001-06-16 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-check-news-header-syntax): Check Reply-To.
-
-2001-06-16 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-parse-1): Use message options.
-
-	* message.el (message-do-fcc): Don't do anything if there is no
-	FCC.
-
-2001-06-16  Simon Josefsson  <jas@extundo.com>
-
-	* nnimap.el (nnimap-split-articles): Support 'junk to-groups.
-	(nnimap-expunge-search-string): New variable.
-	(nnimap-request-expire-articles): Use it.
-
-2001-06-15 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-send-mail-with-qmail): wrong exit status is
-	100 not 1. Reported by Paul Jarc <prj@po.cwru.edu>.
-
-2001-06-15 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-strip-multiple-blank-lines): Use
-	delete-region instead of replace-match.
-
-2001-06-14 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnweb.el (nnweb-google-parse-1): Fix Google content regexp.
-	(nnweb-google-wash-article): Ditto.
-
-2001-06-14 Ferenc Wagner  <wferi@bolyai1.elte.hu>
-
-	* nnweb.el (nnweb-google-parse-1): Fix Google url regexp.
-
-2001-06-13  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus.el (gnus-define-group-parameter): Don't quote the defcustom
-	specs.
-
-2001-06-13 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-email-address): Move it here.
-
-	* gnus-art.el (article-de-quoted-unreadable): Read charset if
-	requested.
-	(article-de-base64-unreadable): Ditto.
-	(article-wash-html): Ditto.
-
-2001-06-12 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-options-set-recipient): Don't add ", "
-	unless necessary. Suggested by Josh Huber <huber@alum.wpi.edu>.
-
-2001-06-12 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-group-alist): Use |fr| instead of [fr].
-
-2001-06-12 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-plain-save-name): Use file-relative-name.
-	From Marc Lefranc <Marc.Lefranc@univ-lille1.fr>.
-
-	* nnrss.el (nnrss-node-text): Node might be nil.
-
-2001-06-11 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-uu.el (gnus-uu-save-article): Use mml tag instead of
-	part. From Katsumi Yamaoka <yamaoka@jpl.org>.
-
-	* nnrss.el (nnrss-group-alist): More items.
-
-2001-06-09 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-node-text): Use cddr instead xml-node-children.
-
-2001-06-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	Trivial patch from Dale Hagglund  <rdh@best.com>
-
-	* gnus-mlspl.el (gnus-group-split-fancy): Fix generation of split
-	restrict clauses.
-
-2001-06-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	From Benjamin Rutt <brutt+news@bloomington.in.us>
-
-	* message.el (message-wide-reply-confirm-recipients): New variable.
-
-2001-06-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	Trivial patch from Mark Thomas  <mthomas@edrc.cmu.edu>
-
-	* nnmail.el (nnmail-fix-eudora-headers): Change the In-Reply-To
-	fix so it works with XEmacs.
-
-2001-06-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-retrieve-headers): Support description as extra
-	headers.
-
-2001-06-07 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el: Fix a few bugs.
-
-2001-06-05  Simon Josefsson  <jas@extundo.com>
-
-	* mm-decode.el (mm-handle-set-external-undisplayer): Don't
-	generate compiler warnings.  From Alex Schroeder <alex@gnu.org>.
-
-2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
-
-	* mm-decode.el (mm-pipe-part): Bind coding-system-for-write to
-	binary so that we don't transmit ISO 2022 garbage to the process.
-	This is needed under XEmacs.
-
-2001-06-03  Simon Josefsson  <simon@josefsson.org>
-
-	* imap.el (imap-ssl-open): Require ssl. (Otherwise ssl.el is
-	autoloaded incorrectly below because ssl-program-* is bound.)
-	Thanks to Amos Gouaux for report.
-
-2001-06-02  Simon Josefsson  <simon@josefsson.org>
-
-	* imap.el (imap-kerberos4-open):
-	(imap-gssapi-open):
-	(imap-ssl-open):
-	(imap-network-open):
-	(imap-shell-open):
-	(imap-starttls-open): Set buffer to workaround spurious
-	`accept-process-output' buffer changes.  Thanks to Mats Lidell
-	<Mats.Lidell@contactor.se> for report and partial patch and Jake
-	Colman <colman@ppllc.com> for report.
-
-2001-05-31 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-catchup): New argument.
-	(gnus-summary-catchup-from-here): New function.
-
-2001-05-30  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* mm-view.el (mm-inline-image-xemacs): Insert newline, then move
-	back, then insert glyph.  (Before, the glyph was inserted first,
-	then the newline.)  This works around a behavior in XEmacs where
-	it is not possible to insert a character after a glyph which is at
-	the end of a buffer.  Patch by Lloyd Zusman <ljz@asfast.com>.
-
-2001-05-28  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	From Jaap-Henk Hoepman (jhh@xs4all.nl).
-
-	* mm-decode.el (mm-keep-viewer-alive-types): New variable.
-	(mm-keep-viewer-alive-p, mm-handle-set-external-undisplayer,
-	mm-destroy-postponed-undisplay-list): New functions.
-	(mm-display-external): Use them.
-
-2001-05-27  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-salt.el (gnus-tree-highlight-node): Bind `default-high' and
-	`default-low' when evaluating `gnus-summary-highlight'.
-	From Raja R Harinath <harinath@cs.umn.edu>.
-
-2001-05-27  Simon Josefsson  <simon@josefsson.org>
-
-	* message.el (message-yank-cited-prefix): New variable.
-	(message-indent-citation): Use it.
-
-	* mml2015.el (mml2015-mailcrypt-verify): Store gpg stderr output
-	as details.
-	(mml2015-mailcrypt-clear-verify): Ditto.
-
-2001-05-24  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-	From Nevin Kapur <nevin@jhu.edu>.
-
-	* gnus-sum.el (gnus-summary-default-high-score,
-	gnus-summary-default-low-score): New variables.
-	(gnus-summary-highlight): Use them.
-
-2001-05-16  Didier Verna  <didier@lrde.epita.fr>
-
-	* message.el (message-mail): pass the 'send-actions argument to
-	`message-setup'.
-
-2001-05-16  Simon Josefsson  <simon@josefsson.org>
-	From Raymond Scholz <ray-2001@zonix.de>
-
-	* gnus-art.el (gnus-mime-view-part-as-charset):
-	(gnus-mime-internalize-part): Doc fixes.
-
-2001-05-11  Simon Josefsson  <simon@josefsson.org>
-
-	* gnus-start.el (gnus-ignored-newsgroups): Also ignore NNTP type
-	status lines without any text ("^215$").
-
-2001-05-06 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-check-group): Reverse.
-
-2001-05-07  Simon Josefsson  <simon@josefsson.org>
-
-	* message.el (message-get-reply-headers):
-	(message-followup): Fix typo, suggested by David Green
-	<dgreen@uab.edu>
-
-2001-05-05 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-request-expire-articles): Fix.
-
-	* nnrss.el (nnrss-open-server): Read server data when it is called.
-	(nnrss-request-expire-articles): Fix.
-
-2001-05-05 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-do-send-housekeeping): mail-abbrevs may
-	rename buffer behind Gnus.
-
-2001-05-04 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-check-group): Use nnheader-translate-file-chars.
-	(nnrss-group-alist): Add more resources.
-	(nnrss-check-group): Ignore errors.
-
-2001-05-04 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-request-expire-articles): Correct the return value.
-
-	* nnslashdot.el (nnslashdot-request-list): Add time.
-	(nnslashdot-request-expire-articles): New function.
-
-	* gnus-start.el (gnus-check-bogus-newsgroups): Remove bogus
-	secondary methods too.
-
-2001-05-03 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-use-followup-to): Set default value to t.
-
-2001-05-03  Florian Weimer  <fw@deneb.enyo.de>
-
-	* message.el (message-dont-reply-to-names): Fix documentation.
-	(message-get-reply-headers): Use Mail-Followup-To only for wide
-	replies.
-
-2001-05-03 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-request-expire-articles): Calculate # of days
-	correctly.
-	(nnrss-check-group): Use time.
-
-2001-05-01 19:21:19 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.03 is released.
-
-2001-05-01 19:06:21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnultimate.el (nnultimate-topic-article-to-article): Use the
-	group.
-
-2001-04-24 19:50:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-srvr.el (gnus-server-insert-server-line): Add a space.
-
-2001-04-15 14:55:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnultimate.el (nnultimate-retrieve-headers): Return all
-	available headers.
-
-	* gnus-sum.el (gnus-read-all-available-headers): New variable.
-	(gnus-get-newsgroup-headers-xover): Use it.
-
-2001-04-14 15:47:26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnultimate.el (nnultimate-retrieve-headers): Clean up.
-
-2001-04-30 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nntp.el (nntp-retrieve-groups): Use throw instead of error.
-
-2001-04-29 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el (nnrss-insert-w3): Use cache before I figure out how to
-	disable it.
-
-	* gnus.el (gnus-info-nodes): Remove a few The's.
-
-2001-04-29 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mail-source.el (mail-source-movemail): Call-process may return a
-	signal description string.
-
-	* gnus-start.el (gnus-read-newsrc-el-file):
-	gnus-newsrc-file-version may be nil.
-
-	* nnmail.el (nnmail-get-new-mail): Use the exact file only.
-	Suggested by Michael Sperber [Mr. Preprocessor]
-	<sperber@informatik.uni-tuebingen.de>.
-
-2001-04-25  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* mm-uu.el (mm-uu-configure-list): Fixed customize type.
-
-2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
-
-	* mm-view.el (mm-display-inline-fontify): Allow XEmacs to fully
-	fontify HANDLE.
-
-2001-04-18  Simon Josefsson  <simon@josefsson.org>
-
-	* smime.el (smime-ask-passphrase): Rework to return value.
-	(smime-sign-region): Rework to bind value and use it.
-	(smime-decrypt-region): Ditto.
-
-2001-04-18  Simon Josefsson  <simon@josefsson.org>
-	Trivial patch from Mathias Herberts  <Mathias.Herberts@iroise.net>
-
-	* smime.el (smime-ask-passphrase): New function.
-	(smime-sign-region): Use it.
-	(smime-encrypt-cipher): New variable.
-	(smime-decrypt-region): Ditto.
-
-2001-04-12  Jason Merrill  <jason_merrill@redhat.com>
-	Committed by Simon Josefsson  <simon@josefsson.org>
-
-	* imap.el (imap-shell-open): Erase the buffer *after* copying it into
-	the log.
-
-2001-04-14 01:14:42 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
-
-	* gnus.el: Oort Gnus v0.02 is released.
-
-2001-04-14 00:48:42  Lars Magne Ingebrigtsen  <larsi@quimby.gnus.org>
-
-	* gnus.el: Oort Gnus v0.01 is released.
-
-2001-04-13 22:01:46  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-highlight): Highlight read
-	undownloaded articles as read articles.
-
-	* gnus-agent.el (gnus-agent-get-undownloaded-list): Clean up.
-	(gnus-agent-get-undownloaded-list): Mark all undownloaded
-	articles, even read ones, as such.
-
-	* gnus-sum.el (gnus-summary-find-matching): Clean up.
-	(gnus-find-matching-articles): New function.
-	(gnus-summary-limit-include-matching-articles): New command.
-	(gnus-summary-limit-include-thread): Include articles that have
-	matching subjects.
-	(gnus-offer-save-summaries): Clean up.
-
-2001-04-13  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* nnmail.el (nnmail-split-fancy-with-parent): Add docstring.
-
-2001-04-12 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Jason Merrill <jason_merrill@redhat.com>
-
-	* gnus-sum.el (gnus-summary-insert-new-articles): Reverse the articles.
-
-2001-04-10 08:01:15  Katsumi Yamaoka  <yamaoka@jpl.org>
-	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-post-news): Fill the Newsgroups header by the
-	newsgroup names when the original article is a news message.
-
-2001-04-12 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-cite-prefix-regexp): Use POSIX regexp if
-	supported. Suggest by Jim Meyering <jim@meyering.net>.
-
-2001-04-02  Nevin Kapur  <nevin@jhu.edu>
-	Committed by Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>.
-
-	* nnmail.el (nnmail-split-it): Added check for .* at the end of
-	regexp in nnmail-split-fancy.
-
-2001-04-10  Simon Josefsson  <simon@josefsson.org>
-
-	* message.el (message-options-set-recipient): Look at Cc and Bcc too.
-
-2001-04-10  Colin Marquardt  <colin@marquardt-home.de>
-
-	* message.el (message-send-mail): Improve the interaction with the
-	user.
-
-2001-04-10  Simon Josefsson  <simon@josefsson.org>
-
-	* imap.el (imap-message-copy): Work around buggy servers that
-	doesn't send TRYCREATE tags.
-
-2001-04-09 01:15:54  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-start.el (gnus-read-newsrc-el-file): Work with Semi-gnusae.
-
-2001-04-05 21:43:25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-update-summary-mark-positions): Use a valid
-	date.
-
-2001-04-04 16:13:17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-group.el (gnus-group-quit): Check that the dribble buffer
-	lives.
-
-2001-04-02 00:40:12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-parse-news-url): New function.
-	(gnus-button-handle-news): New function.
-	(gnus-button-alist): Point to new functions.
-
-	* gnus-group.el (gnus-group-quit): Only mark buffer in non-empty.
-
-	* gnus-start.el (gnus-read-newsrc-el-file): Nix out
-	gnus-format-specs.
-
-	* message.el (message-check-news-header-syntax): Question even
-	when Gnus doesn't know the group names.
-	(message-send-news): Clean up.
-
-	* gnus-start.el (gnus-dribble-read-file): Say whether Gnus was
-	exited on purpose without saving.
-
-	* gnus-group.el (gnus-group-quit): Mark the dribble file as `Q'.
-
-2001-04-01 00:37:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-score.el (gnus-score-orphans): Clean up.
-
-	* gnus-win.el (gnus-remove-some-windows): Leave one Gnus window.
-
-	* gnus-sum.el (gnus-summary-exit): Kill the summary buffer a bit
-	later.
-
-	* gnus-start.el (gnus-close-all-servers): Find the right items to
-	close.
-
-	* qp.el (quoted-printable-decode-region): Just message
-	malformation; don't quit.
-
-2001-03-31 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Gerd Moellmann <gerd@gnu.org>.
-
-	* gnus.el (gnus-interactive): A typo.
-
-2001-03-26  Juanma Barranquero  <lektu@uol.com.br>
-	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-delete-alist): Declare it as an alias of
-	`assq-delete-all', if that function exists; otherwise use the old
-	definition. Documentation changed to match the one in
-	`assq-delete-all'.
-
-2001-04-01 00:37:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-start.el (gnus-close-all-servers): New function.
-
-	* gnus-srvr.el (gnus-server-close-all-servers): Clean up.
-	(gnus-server-remove-denials): Clean up.
-
-	* gnus-sum.el (gnus-summary-sort-by-original): New command and
-	keystroke.
-
-2001-03-31 02:56:55  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-send-news): Message where we are sending.
-	(message-send-mail): Ditto.
-
-	* gnus.el (gnus-server-string): New function.
-
-	* gnus-sum.el (gnus-summary-up-thread): Doc fix.
-
-	* mm-decode.el (mm-default-directory): Customized.
-	(mm-tmp-directory): Ditto.
-
-	* gnus-sum.el (gnus-summary-catchup-and-exit): Doc fix.
-	(gnus-get-newsgroup-headers): Return -1 for articles without Lines
-	or Chars.
-	(gnus-summary-line-format-alist): ?l is now a string.
-	(gnus-summary-prepare-threads): Output ? for unknown lines.
-	(gnus-summary-insert-line): Ditto.
-	(gnus-summary-print-article): Unbalanced parentheses.
-
-	* gnus-msg.el (gnus-inews-do-gcc): Check group to allow it to find
-	out whether new stuff has arrived.
-
-2001-03-31 02:14:38  Alan Shutko  <ats@acm.org>
-
-	* gnus-sum.el: Let printing work on ttys on Emacs.
-
-2001-03-31 01:11:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-msg.el (gnus-post-news): Add an empty Newsgroups header
-	when forcing news.
-
-	* gnus-sum.el (gnus-summary-mark-article-as-replied): Make into a
-	command.
-
-2001-03-31 01:04:54  Francis Litterio  <franl@world.std.com>
-
-	* message.el (message-set-auto-save-file-name): Don't use
-	asterisks under nt.
-
-2001-03-31 00:03:42  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-msg.el (gnus-inews-insert-draft-meta-information): Allow
-	lists of articles.
-
-	* gnus-uu.el (gnus-uu-digest-mail-forward): Mark as forwarded.
-
-	* gnus-msg.el (gnus-put-message): Clean up.
-	(gnus-summary-reply): Mark all replied-to articles as replied to.
-	(gnus-inews-add-send-actions): Also mark as forwarded.
-	(gnus-summary-mail-forward): Mark as forwarded.
-
-	* gnus-sum.el (gnus-summary-mark-article-as-replied): Take a list
-	of articles.
-	(gnus-summary-mark-article-as-forwarded): Ditto.
-
-	* gnus-msg.el (gnus-summary-resend-message): Mark article as
-	forwarded.
-	(gnus-summary-mail-forward): Clean up.
-
-	* gnus.el (gnus-article-mark-lists): Added forward.
-
-	* gnus-sum.el (gnus-forwarded-mark): New variable.
-	(gnus-summary-prepare-threads): Use it.
-	(gnus-summary-update-secondary-mark): Ditto.
-	(gnus-newsgroup-forwarded): New variable.
-
-2001-03-30 23:13:37  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-msg.el (gnus-summary-reply): Allow very wide replies.
-	(gnus-summary-very-wide-reply): New command and keystroke.
-	(gnus-summary-very-wide-reply-with-original): Ditto.
-
-	* gnus-score.el (gnus-adaptive-word-length-limit): New variable.
-	(gnus-score-adaptive): Use it.
-
-	* gnus-start.el (gnus-get-unread-articles): Clean up.
-
-2001-03-21 20:00:43  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnultimate.el (nnultimate-retrieve-headers): Work for other
-	boards.
-
-2001-03-21  Didier Verna  <didier@lrde.epita.fr>
-
-	* gnus-start.el (gnus-subscribe-newsgroup-hooks): New.
-	* gnus-start.el (gnus-subscribe-newsgroup): use it.
-
-2001-03-15 09:47:23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnultimate.el (nnultimate-retrieve-headers): Understand
-	long-form month names.
-
-2001-03-18 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-show-all-headers):
-	gnus-article-show-all-headers is broken. Use
-	gnus-summary-toggle-header instead.
-
-	* mml2015.el (mml2015-gpg-extract-from): No error.
-
-2001-03-18 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Bj,Ax(Brn Mork <bmork@dod.no>.
-
-	* mml2015.el (mml2015-gpg-extract-from): New function.
-	(mml2015-gpg-verify): Use it.
-	(mml2015-gpg-clear-verify): Use it.
-
-2001-03-17 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-setup-fill-variables): Use
-	fill-paragraph-function.
-	(message-fill-paragraph): Take an argument.
-	(message-newline-and-reformat): Take another argument.
-
-2001-03-16 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (rmail-output): It is in rmailout.el not rmail.el.
-
-2001-03-16 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-forward): local-variable-p takes an extra
-	argument in XEmacs.
-
-2001-03-16  Simon Josefsson  <simon@josefsson.org>
-
-	* nnimap.el (nnimap-dont-use-nov-p): Renamed from
-	`nnimap-use-nov-p' (it really tested the negative).
-	(nnimap-retrieve-headers): Use it.
-
-2001-03-11  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-generate-headers-first): Update doc.
-
-2001-03-10  Matthias Wiehl  <mwiehl@gmx.de>
-	Trivial patch.
-
-	* gnus.el (gnus-summary-line-format): Typo.
-
-2001-03-11  Simon Josefsson  <simon@josefsson.org>
-
-	* mailcap.el (mailcap-mime-data): Add application/sieve.
-	(mailcap-mime-extensions): Add .siv, .xls.
-
-2001-03-14 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Christoph Conrad <christoph.conrad@gmx.de>
-
-	* gnus-score.el (gnus-summary-lower-thread): Typo.
-
-2001-03-14 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-forward-decoded-p): New variable.
-	(message-forward-subject-author-subject): Use it.
-	(message-make-forward-subject): Use it.
-	(message-forward): Use it.
-
-	* gnus-uu.el (gnus-uu-digest-mail-forward): Use it.
-
-	* mm-util.el, message.el, rfc2047.el, gnus-sum.el, gnus-score.el:
-	Sync with Emacs 21 (tag EMACS_PRETEST_21_0_100).
-
-;;Has been fixed -- zsh.
-;;2001-03-05  Dave Love  <fx@gnu.org>
-;;
-;;	* mm-util.el (mm-mime-mule-charset-alist): Fix utf-8 case.
-;;	Move it after definition of mm-coding-system-p.
-;;
-2001-03-01  Dave Love  <fx@gnu.org>
-
-	* mm-util.el (mm-inhibit-file-name-handlers): Add
-	image-file-handler.
-
-2001-02-11  Dave Love  <fx@gnu.org>
-
-	* message.el (message-signature-file): Fix doc, :type.
-
-2001-02-08  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (rfc2047-fold-region): Don't forward-char at EOB.
-	(message-posting-charset): Defvar when compiling again.
-	(rfc2047-encodable-p): Require message.
-
-	* gnus-sum.el (gnus-alter-articles-to-read-function):
-	* gnus-score.el (gnus-score-after-write-file-function): Fix :type.
-
-2001-03-08 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnrss.el: New file.
-
-2001-03-08 02:41:36  Katsumi Yamaoka  <yamaoka@jpl.org>
-	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2047.el (rfc2047-unfold-region): Fix arg of
-	`skip-chars-forward'.
-
-2001-03-07 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndraft.el (nndraft-request-group): Restore auto save files if
-	the original files do not exist.
-
-2001-03-07 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-score.el (gnus-score-find-bnews): Print messages on illegal
-	SCORE paths.
-
-	* mm-decode.el (mm-dissect-buffer): Call
-	mail-extract-address-components only if necessary.
-
-2001-03-06 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-score.el (gnus-score-find-bnews): Maybe there is no
-	directory part.
-	(gnus-score-search-global-directories): Use file-directory-p.
-
-	* gnus-score.el (gnus-score-score-files-1): Use
-	gnus-kill-files-directory.
-	From Adrian Aichner <adrian@xemacs.org>.
-
-2001-03-05 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (charset): Move here from gnus-sum.el.
-
-2001-03-04 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-preview): Disable local map.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Make
-	gnus-article-post-menu here.
-
-	* gnus-art.el (gnus-article-make-menu-bar): Make summary-menu bar
-	if it has not been made.
-
-2001-03-02 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-describe-key): Map key to event.
-	(gnus-article-describe-key-briefly): Ditto
-
-2001-03-01 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-limit-include-expunged): Fix.
-
-2001-03-01 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Katsumi Yamaoka <yamaoka@jpl.org>.
-
-	* dgnushack.el (coerce, merge, subseq): defmacro.
-
-2001-03-01 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* lpath.el (nndraft-request-group): Move it here from nndraft.el.
-	A fake defalias in nndraft.el results a not-activated bug in
-	uncompiled versions.
-
-2001-02-26 11:27:27  Paul Jarc  <prj@po.cwru.edu>
-	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-split-references): Handle malformed References:.
-
-2001-02-26 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-mime-part-status): 1 part.
-
-2001-02-25 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From NAGY Andras <nagya@inf.elte.hu>.
-
-	* gnus.el (gnus-parameters): Typo.
-
-2001-02-24 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-read-method): Remove redundancy.
-
-2001-02-23 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnslashdot.el (nnslashdot-backslash-url): New variable.
-	(nnslashdot-request-list): Use it.
-
-2001-02-23 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnml.el (nnml-generate-active-info): Fix the case when there is
-	no file.
-
-	* gnus-sum.el (gnus-summary-import-article): Display it. Enable edit.
-	(gnus-summary-create-article): New function.
-
-	* gnus-group.el (gnus-group-mark-article-read): New function.
-
-	* gnus-msg.el (gnus-inews-do-gcc): Use it.
-
-	* gnus-art.el (gnus-article-edit-article): Set modified-p nil.
-
-2001-02-23 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-edit-done): Don't use
-	gnus-article-edit-exit.
-	(gnus-article-edit-exit): Confirm and insert original-article-buffer.
-
-	* gnus.el (gnus-parameters): New variable.
-	Suggested by NAGY Andras <nagya@inf.elte.hu>.
-	(gnus-parameters-get-parameter): New function.
-	(gnus-group-find-parameter): Use it.
-
-2001-02-23  Simon Josefsson  <simon@josefsson.org>
-
-	* gnus-msg.el (gnus-post-method): Fix documentation to reflect
-	change of default value to `current'.
-
-2001-02-23 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nneething.el (nneething-get-head): Insert unreadable file too.
-
-2001-02-22 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-insert-articles): Remove fetched headers.
-
-	* webmail.el (webmail-type-definition): Deja is bought by google.
-
-2001-02-22 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-fetch-headers): New function.
-	(gnus-select-newsgroup): Use it.
-	(gnus-summary-insert-articles): New function.
-	(gnus-summary-insert-old-articles): New function.
-	(gnus-summary-insert-new-articles): New function.
-
-	* gnus-group.el (gnus-group-prepare-flat-list-dead): Use decoded-name.
-	(gnus-group-list-active): Ditto.
-	* gnus-sum.el (gnus-set-mode-line): Ditto.
-	(gnus-summary-read-group-1): Ditto.
-
-2001-02-21 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-topic.el (gnus-topic-get-new-news-this-topic): Redraw the
-	current topic.
-
-2001-02-21 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* smiley.el (gnus-smiley-display): Don't do widening.
-
-	* smiley-ems.el (gnus-smiley-display): Don't do widening. Smiley
-	within body.
-
-	* gnus-msg.el (gnus-inews-do-gcc): Activate group anyway.
-
-	* gnus-art.el (gnus-mime-display-multipart-alternative-as-mixed):
-	New variable.
-	(gnus-mime-display-multipart-related-as-mixed): New variable.
-	(gnus-mime-display-part): Use them.
-
-2001-02-20 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-setup-news): Allow gnus-group-line-format to be
-	something special.
-
-2001-02-20 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnweb.el (nnweb-request-group): Set nnweb-group anyway.
-	(nnweb-request-article): Call reference if exists.
-	(nnweb-type-definition): Dejanews is bought by google.com.
-	Beta!
-
-2001-02-19 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-draft.el (gnus-draft-reminder): "Confirm to exit?"
-
-2001-02-19  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-sum.el (gnus-thread-sort-functions): Doc fix.  Refer to
-	gnus-article-sort-functions.
-	(gnus-article-sort-functions): Doc fix.  Refer to
-	gnus-thread-sort-functions.
-
-2001-02-18 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	From Paul Jarc <prj@po.cwru.edu>.
-
-	* message.el (message-get-reply-headers): More fixes.
-
-2001-02-17  Paul Jarc  <prj@po.cwru.edu>
-	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-get-reply-headers): Fix bug with
-	Mail-Followup-To/to-address interaction.
-
-2001-02-17 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-configure-posting-styles): Match header in
-	gnus-article-copy.
-
-2001-02-16 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-do-send-housekeeping): Rename to a better
-	name.
-
-2001-02-16 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-cancel-news): Check article first, then ask
-	yes or no.
-
-2001-02-16 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-uu.el (mm-uu-type-alist): Add emacs-sources.
-
-2001-02-16 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-range.el (gnus-range-normalize): New function.
-
-2001-02-15  NAGY Andras  <nagya@inf.elte.hu>
-
-	* imap.el (imap-gssapi-open): Set imap-c-l-s-first.
-
-2001-02-14 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-srvr.el (gnus-server-regenerate-server): Use gnus-get-function.
-
-	* nnagent.el (nnagent-request-regenerate): New function.
-
-	* nnfolder.el (nnfolder-request-regenerate): New deffoo.
-
-	* nnml.el (nnml-generate-nov-databases): Accept argument
-	server. Don't open server if it is opened.
-	(nnml-request-regenerate): Use it. Change to deffoo.
-
-2001-02-14  Katsumi Yamaoka  <yamaoka@jpl.org>
-	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-define-group-parameter): Fix.
-
-2001-02-14 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-define-group-parameter): Improved.
-
-	* gnus-sum.el (charset): Define parameter.
-	(ignored-charsets): Ditto.
-	(gnus-summary-setup-default-charset): Use them.
-
-	* gnus-start.el (gnus-read-descriptions-file): Use them.
-
-	* gnus-cus.el (gnus-group-parameters): Remove them.
-
-2001-02-14 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-print-article): Redo highlight.
-
-2001-02-13 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-read-group-1): Remove
-	gnus-summary-set-local-parameters.
-	(gnus-summary-setup-buffer): Put it here.
-
-2001-02-13 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (to-address): Define parameter.
-	(to-list): Ditto.
-	* gnus-art.el (article-hide-boring-headers): Use them.
-	* gnus-msg.el (gnus-post-news): Ditto.
-	* gnus-cus.el (gnus-group-parameters): Remove them.
-
-2001-02-13 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-draft.el (gnus-draft-reminder): New function.
-
-	* gnus-art.el (gnus-sender-save-name): New function.
-
-2001-02-13 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-mime-charset): Error message.
-
-2001-02-13 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-check-news-body-syntax): Don't check mml lines.
-
-2001-02-12 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-topic.el (gnus-subscribe-topics): Return nil if not
-	subscribe.
-
-	* gnus-start.el (gnus-call-subscribe-functions): New function.
-	(gnus-find-new-newsgroups): Use it.
-	(gnus-ask-server-for-new-groups): Use it.
-	(gnus-check-first-time-used): Use it.
-	(gnus-subscribe-newsgroup-method): Grok a list of functions.
-	(gnus-subscribe-options-newsgroup-method): Ditto.
-	(gnus-subscribe-hierarchically): Return gnus-subscribe-newsgroup's
-	return .
-
-2001-02-12  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-cus.el (gnus-score-customize): Doc fix.
-
-2001-02-11  Jesper Harder  <harder@ifa.au.dk>
-
-	* dgnushack.el (my-getenv): Typo.
-
-2001-02-11 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* dgnushack.el (dgnushack-make-load): Don't autoload smiley functions.
-
-2001-02-11 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-suspend): Offer save summaries.
-
-	* gnus-art.el (gnus-treat-leading-whitespace): New variable.
-	(gnus-treatment-function-alist): Use it.
-	(article-remove-leading-whitespace): New function.
-	(gnus-article-make-menu-bar): Use it.
-
-	* gnus-sum.el (gnus-summary-wash-empty-map): Add
-	remove-leading-whitespace.
-	(gnus-summary-wash-map): Bind strip-headers-in-body to `W a',
-	because of conflict.
-
-2001-02-09 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* Makefile.in: Hack generating gnus-load.el.
-	* dgnushack.el: Ditto.
-	* gnus-load.el: Remove it.
-
-2001-02-09 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* dgnushack.el : Add URLDIR.
-
-	* Makefile.in (EMACS_COMP): Ditto.
-
-2001-02-09 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-cus.el (gnus-score-customize): Error on no score file.
-
-2001-02-09 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-merge-handles): New function.
-
-	* mm-view.el (mm-inline-message): Use it.
-	(mm-view-message): Ditto.
-
-	* mm-partial.el (mm-inline-partial): Ditto.
-
-	* mm-extern.el (mm-inline-external-body): Ditto.
-
-	* gnus-art.el (gnus-mime-view-part): Ditto.
-	(gnus-mime-view-part-as-type): Ditto.
-	(gnus-mime-save-part-and-strip): Prevent users to strip in some
-	cases.
-
-2001-02-08 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-cancel-news): Allow to shoot foot.
-	(message-supersede): Ditto.
-
-2001-02-08  Tommi Vainikainen  <thv@iki.fi>
-	Trivial patch.
-
-	* gnus-sum.el (gnus-simplify-subject-re): Use
-	message-subject-re-regexp.
-
-2001-02-08 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmail.el (nnmail-expiry-target-group): Bind
-	nnmail-cache-accepted-message-ids to nil.
-
-	* gnus-xmas.el (gnus-xmas-article-display-xface): Use binary
-	coding system.
-
-2001-02-07 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* qp.el (quoted-printable-encode-region): Make sure characters are
-	between 00 and FF.  Don't check charset.
-
-	* mm-encode.el (mm-encode-content-transfer-encoding): Use unibyte
-	in Emacs 20.
-	* rfc2047.el (rfc2047-q-encode-region): Ditto.
-
-2001-02-07 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-make-forward-subject): Argument decoded.
-	(message-forward): Use it when digest.
-
-	* gnus-uu.el (gnus-uu-grab-articles): Shoot down original article
-	buffer.
-
-2001-02-07  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* message.el (message-generate-headers-first): Doc fix.
-
-2001-02-07 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-make-date-line): Error proof.
-
-2001-02-06 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-listing-limit): New variable.
-	(gnus-group-prepare-flat-list-dead): Use old trick to speed up.
-
-	* gnus-topic.el (gnus-group-prepare-topics): Use gnus-killed-hashtb.
-
-2001-02-06 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-newline-and-reformat): Special case for
-	breaking at BOL.
-
-2001-02-06  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-uu.el (gnus-uu-save-article): Make the topics summary a
-	message/rfc822.
-
-2001-02-06 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-encode-message-body): Don't insert
-	Content-Type if it is inside a mail.
-
-2001-02-06 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-xmas.el (gnus-xmas-article-menu-add): Add
-	gnus-article-commands-menu.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Don't share menu bar
-	in Emacs.
-
-	* gnus-start.el (gnus-read-descriptions-file): Use
-	gnus-group-name-charset and gnus-group-charset-alist.
-
-2001-02-04 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-mark-as-processable): Understand
-	active region.
-
-	* gnus-start.el (gnus-group-change-level): Remove from both
-	gnus-zombie-list and gnus-killed-list.
-
-2001-02-04 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-subscribe-options-newsgroup-method): Add
-	gnus-subscribe-topics.
-
-	* gnus-cus.el (gnus-extra-topic-parameters): Fix doc.
-
-2001-02-04 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-make-menu-bar): Make
-	gnus-article-post-menu.
-
-	* gnus-xmas.el (gnus-xmas-article-menu-add): Add post menu.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Use t if XEmacs.
-
-	* gnus-group.el (gnus-group-make-menu-bar): Ditto.
-
-	* message.el (message-mode-menu): Ditto.
-
-	* gnus-art.el (defvar): eval-when-compile.
-
-2001-02-02 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agentize): Fix doc.
-
-2001-02-02  Karl Kleinpaste  <karl@charcoal.com>
-
-	* mml.el (mml-preview): Bind `q'.
-
-2001-02-02 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-mime-mule-charset-alist): non-Mule case.
-
-2001-01-31  Dave Love  <fx@gnu.org>
-
-	* mm-util.el (mm-mime-mule-charset-alist)
-	(mm-find-mime-charset-region): Consider mule-utf-8.
-
-2001-01-31  Dave Love  <fx@gnu.org>
-
-	* gnus-art.el (gnus-article-x-face-command)
-	(gnus-treat-display-xface, gnus-treat-display-smileys): Add
-	:version.
-
-2001-01-26  Dave Love  <fx@gnu.org>
-
-	* mm-util.el (mm-multibyte-string-p): New.
-
-;;	* qp.el: Remove un-logged bogus changes from 2000-12-20.
-;;	(quoted-printable-encode-region): Doc fix.  Don't call
-;;	string-as-multibyte on class.  Clarify line-folding.
-	(quoted-printable-encode-string): Make temp buffer inherit
-	string's multibyteness.
-
-2001-01-23  Gerd Moellmann  <gerd@gnu.org>
-
-	* nnheader.el (toplevel): Don't require `gnus-util' at
-	compile-time; this creates a circular dependency, and prevents
-	a bootstrap.
-
-2001-01-22  Andreas Schwab  <schwab@suse.de>
-
-	* nnheader.el (gnus-delete-line): Autoload it as a macro.
-
-2001-01-31 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmail.el (nnmail-remove-list-identifiers): Use consp.
-
-	* gnus-art.el (article-hide-list-identifiers): Ditto.
-
-	* gnus-sum.el (gnus-summary-remove-list-identifiers): Ditto.
-
-2001-01-31 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-remove-list-identifiers): Similar.
-
-	* gnus-art.el (article-hide-list-identifiers): Similar.
-
-2001-01-31  Karl Kleinpaste  <karl@charcoal.com>
-
-	* nnmail.el (nnmail-remove-list-identifiers): Improved.
-
-2001-01-31 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-score.el (gnus-summary-score-entry): match may be an integer.
-
-2001-01-30 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-string-equal): New function.
-
-	* gnus-art.el (article-hide-boring-headers): Use it.
-
-2001-01-27  Karl Kleinpaste  <karl@charcoal.com>
-
-	* gnus-art.el (gnus-article-banner-alist): eGroups new banner.
-
-2001-01-27 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-msg-mail): Support switch-action.
-
-2001-01-26 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-summary-save-in-pipe): Prompt for saving
-	command if there is not last-saver.
-
-2001-01-24 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nntp.el (nntp-open-connection): 201 is possible.
-
-2001-01-24 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2047.el (rfc2047-encode): MIME charset is not coding system.
-	(rfc2047-charset-encoding-alist): Add big5.
-
-2001-01-24 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-add-server): Redraw the line.
-	(gnus-agent-remove-server): Ditto.
-	(autoload): gnus-server-update-server.
-
-	* gnus-srvr.el (gnus-server-line-format): Add %a.
-	(gnus-server-line-format-alist): Add gnus-tmp-agent.
-	(gnus-server-insert-server-line): Use it.
-
-2001-01-24 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-mime-mule-charset-alist): Preferred MIME names
-	GB2312 and Big5.
-
-2001-01-24  Simon Josefsson  <sj@extundo.com>
-
-	* mail-source.el (mail-sources): Add :program specifier to IMAP
-	mail source.
-	(mail-source-fetch-imap): Map :program to `imap-shell-program'.
-
-2001-01-24 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-score.el (gnus-score-lower-thread): Fix a doc typo.
-
-2001-01-24 12:22:47  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nntp.el (nntp-wait-for): Return the success code.
-	(nntp-open-connection): Use it.
-
-2001-01-11 11:49:02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-int.el (gnus-check-server): Allow breaking the opening.
-
-2001-01-23 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-print-article): Remove process mark.
-
-2001-01-22 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-print-article): Take one prefix
-	argument. Allow to print several articles in one file.
-
-2001-01-21 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* webmail.el (webmail-type-definition): netaddress changes.
-
-2001-01-21 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el: Fix copyright. Remove trailing spaces.
-
-	* message.el (message-forward): Use mule4.
-
-2001-01-20 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-string-as-unibyte): New function.
-
-	* message.el (message-forward): Use it.
-
-2001-01-19 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-cite-original-without-signature): Don't peel
-	off the blank line.
-	(message-get-reply-headers): Add Cc if it is not in follow-to.
-
-2001-01-20  Simon Josefsson  <sj@extundo.com>
-
-	* mm-decode.el (mm-handle-multipart-from): Add.
-	(mm-dissect-buffer): Save From: header value.
-	(mm-security-from): Remove.
-	(mm-possibly-verify-or-decrypt): Don't set mm-security-from.
-
-	* mml-smime.el (mml-smime-verify): Use `mm-handle-multipart-from'
-	instead of `mml-security-from'.  Protect null from value.
-
-2001-01-20  Simon Josefsson  <sj@extundo.com>
-
-	* mailcap.el (mailcap-mime-data): Run `gnumeric' on
-	application/vnd.ms-excel attachments.
-
-2001-01-19  Simon Josefsson  <sj@extundo.com>
-
-	* gnus-art.el (gnus-button-alist): Add `?=' to mailto URL regexp.
-
-2001-01-19 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-ignored-mail-headers): Ditto.
-
-2001-01-19  Simon Josefsson  <sj@extundo.com>
-
-	* message.el (message-ignored-news-headers): Only search beginning
-	of line.
-
-2001-01-19  ShengHuo Zhu  <zsh@cs.rochester.edu>
-	Trivial patch from Alberto Lusiani  <a.lusiani@noemail.org>
-
-	* message.el (message-send-mail): Content-Type may not be there.
-
-2001-01-18 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-ems.el (gnus-article-display-xface): Add BUFFER.
-	* gnus-xmas.el (gnus-xmas-article-display-xface): Ditto.
-
-	* gnus-art.el (article-display-x-face): Insert X-Face if there is
-	not.
-
-2001-01-18 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-read-group-1): Don't test dead
-	non-native groups.
-
-2001-01-18 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-yank-original): Understand
-	universal-argument.
-
-2001-01-18 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-boring-article-headers): Add to-address.
-	(article-hide-boring-headers): Ditto.
-
-	* mm-view.el (mm-inline-message): Insert a newline unless bolp.
-
-2001-01-18 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2047.el (rfc2047-fold-region): Don't insert LWSP if there is
-	one.
-
-2001-01-16  Simon Josefsson  <simon@josefsson.org>
-
-	* message.el (message-make-in-reply-to): Add comment to message-id
-	(old syntax, see 2000-08-02 change).
-
-2001-01-16 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-url-mailto): Use gnus-msg-mail.
-	(gnus-button-mailto): Setup message. Moved to gnus-msg.el.
-	(gnus-button-reply): Ditto.
-
-2001-01-16  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (article-display-x-face): Fix.
-
-2001-01-15 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-display-x-face): Use
-	gnus-original-article-buffer.
-
-2001-01-15  Jack Twilley  <jmt@tbe.net>
-
-	* message.el (message-add-header): Move to point-max.
-
-2001-01-15  Simon Josefsson  <simon@josefsson.org>
-
-	* smime.el (smime-CA-directory, smime-CA-file): Change default to
-	nil, improve documentation.
-	(smime-certificate-directory): Comment out false hints (until it
-	is implemented).
-
-	* mml-smime.el (mml-smime-sign): Place user in customize buffer if
-	there aren't any keys.
-	(mml-smime-verify): If smime-CA-{file,directory} set, also try to
-	verify certificate.  Default is changed to only check integrity.
-	Improved security status texts.  If a certificate doesn't contain
-	a email address, don't fail.
-
-	* smime.el (smime-noverify-region):
-	(smime-noverify-buffer): New functions.  Verifies integrity only.
-
-2001-01-12 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-sort-by-score): Reverse order.
-
-2001-01-12 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-win.el (gnus-configure-windows): switch-to-buffer in XEmacs.
-	(gnus-remove-some-windows): Ditto.
-
-2001-01-12 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-make-date-line): 11th.
-
-2001-01-11 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-gpg-encrypt): Remove CR.
-	(mml2015-gpg-sign): Ditto.
-
-2001-01-10 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el: Sync with EMACS_PRETEST_21_0_95.
-	* gnus.el (gnus-default-posting-charset): Bogus. Removed.
-
-2001-01-08  Dave Love  <fx@gnu.org>
-
-	* mm-encode.el (mm-qp-or-base64): Don't base64 for the sake of a
-	single character.
-
-	* mm-util.el (mm-mime-mule-charset-alist): Add Latin-{8,9}.
-
-	* message.el: Doc and message fixes.
-	(message-send-rename-function)
-	(message-make-forward-subject-function)
-	(message-send-mail-function, message-reply-to-function)
-	(message-wide-reply-to-function, message-followup-to-function)
-	(message-distribution-function, message-auto-save-directory): Fix
-	:type.
-
-	* gnus/mml.el (mml-parse-1): Frob mml-confirmation-set when
-	proceeding after warnings.  Amend multipart warning message.
-
-2001-01-04  Dave Love  <fx@gnu.org>
-
-	* gnus-util.el (nnmail-pathname-coding-system): Defvar when
-	compiling.
-	(gnus-make-directory): Require nnmail.
-
-	* mm-decode.el (mm-inline-media-tests): Add
-	image/x-portable-bitmap.
-	(mm-get-image): Grok pbm.
-
-2001-01-10  Paul Stevenson  <p.stevenson@surrey.ac.uk>
-
-	* nnvirtual.el (nnvirtual-request-expire-articles): delq nil.
-
-2001-01-09  Didier Verna  <didier@xemacs.org>
-
-	* dgnushack.el (dgnushack-compile): give a dummy value to
-	`gnus-xmas-glyph-directory' for the time of compilation.
-	* gnus-agent.el: moved some XEmacs specific hook add-ons from
-	`gnus-xmas-[re]define' to avoid loosing user custom settings.
-	* gnus-art.el: ditto.
-	* gnus-group.el: ditto.
-	* gnus-salt.el: ditto.
-	* gnus-sum.el: ditto.
-	* gnus-topic.el: ditto.
-	* gnus-xmas.el (gnus-xmas-define): see above.
-	* gnus-xmas.el (gnus-xmas-redefine): see above.
-	* gnus-xmas.el (gnus-xmas-glyph-directory): generate a
-	non-continuable error when the directory can't be found.
-
-2001-01-09 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-interactively-view-part): Don't copy-sequence
-	handle.
-	* gnus-art.el (gnus-mime-view-part): Copy it.
-	(gnus-mime-view-part-as-type): Add into gnus-article-mime-handles.
-
-2001-01-09  Michael Downes  <mjd@ams.org>
-
-	* gnus-sum.el (gnus-summary-read-group-1): More useful message.
-
-2001-01-08 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmail.el (nnmail-get-new-mail): Find group only if file is not
-	orig-file. Use ',source.
-
-2001-01-08 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-xmas.el (gnus-xmas-modeline-glyph):
-	(gnus-xmas-group-startup-message):
-	Detect gnus-xmas-glyph-directory when it is nil.
-
-2001-01-08 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* pop3.el (pop3-get-message-count): Andrew Innes
-	<andrewi@gnu.org>'s patch of 1999-12-01 was not fully committed.
-
-2001-01-05 06:49:37  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-agent.el (gnus-agent-fetch-session): Say what we quit.
-
-	* time-date.el (time-to-number-of-days): New function.
-
-2001-01-04 11:06:14  Gregory Chernov  <greg@visiontech-dml.com>
-	Trivial patch.
-
-	* nnslashdot.el (nnslashdot-request-list): Always get the right
-	sid.
-
-2001-01-05 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-minibuffer-local-map): New keymap.
-	(message-read-from-minibuffer): Use it.
-	* gnus-msg.el (gnus-summary-resend-message): Use it
-
-2001-01-04 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-display-time-event-handler): New function.
-	(gnus-after-getting-new-news-hook): Use it.
-
-2001-01-03 07:26:58  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* message.el (message-ignored-mail-headers): Add draft header.
-
-2001-01-02 06:28:28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-expire-articles): Don't save
-	excursion.
-
-	* nnslashdot.el (nnslashdot-request-list): Get the right year.
-
-2001-01-01 00:52:44  Ed L. Cashin  <ecashin@coe.uga.edu>
-	A revoked patch.
-
-	* gnus-sum.el (gnus-summary-expire-articles): Save excursion.
-
-2000-12-31 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* qp.el (quoted-printable-decode-region): Don't backward-char.
-
-2000-12-31 03:57:31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-draft.el: Mark articles as replied.
-
-	* gnus-sum.el (gnus-summary-add-mark): New function.
-
-	* gnus-group.el (gnus-add-mark): New function.
-
-	* gnus-sum.el (gnus-summary-buffer-name): New function.
-	(gnus-summary-setup-buffer): Use it.
-
-	* gnus-draft.el: Set things up with the right post method and
-	stuff.
-
-	* message.el (message-ignored-news-headers): Remove X-Draft-From.
-
-	* gnus-msg.el (gnus-inews-insert-draft-meta-information): New function.
-
-	* gnus.el (gnus-draft-meta-information-header): New variable.
-
-2000-12-30 00:17:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-treatment-function-alist): Move the date
-	functions before the header sorting functions.
-
-	* mm-uu.el (mm-uu-pgp-signed-extract-1): Unquote "- " quotes.
-
-	* dgnushack.el (dgnushack-compile): Message whether there is w3.
-	Don't (push "/usr/share/emacs/site-lisp" load-path).
-
-	* gnus-cite.el (gnus-article-fill-cited-article): Don't add space
-	to empty fill prefixes.
-
-2000-12-30 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nntp.el (nntp-open-connection): Kill pbuffer if process is nil.
-	Suggested by Christoph Conrad <christoph.conrad@gmx.de>.
-
-2000-12-30 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnheader.el (autoload): Autoload gnus-sorted-intersection.
-
-	* nnml.el (autoload): Move to nnheader.el.
-
-	* nnfolder.el (nnfolder-existing-articles): Reversed, i.e. sorted.
-	(nnfolder-request-expire-articles): Use gnus-sorted-intersection.
-	(nnfolder-retrieve-headers): Use intersection. Suggested by Jonas
-	Kvarnstr,Av(Bm <jonkv@ida.liu.se>.
-
-2000-12-30 00:17:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (article-make-date-line): Get the hours right.
-	(gnus-ignored-headers): More hiding.
-
-	* nnmail.el (nnmail-expiry-wait): Not an integer.
-
-	* message.el (message-goto-body): Only expand abbrev when called
-	interactively.
-	(message-make-lines): Use it.
-
-2000-12-29 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-inews-yank-articles): Reparse headers.
-
-2000-12-30 00:17:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-sum.el (gnus-summary-limit-include-expunged): Really
-	include the expunged articles.
-
-	* gnus-group.el (gnus-group-sort-by-server): New function.
-
-	* gnus.el (gnus-method-to-server-name): New function.
-	(gnus-group-prefixed-name): Use it.
-
-	* gnus-group.el (gnus-group-sort-function): Doc fix.
-	(gnus-group-sort-groups-by-server): New command.
-
-2000-12-29 13:25:10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* gnus-art.el (gnus-treat-date-english): New variable.
-	(article-date-english): New command.
-	(gnus-english-month-names): New variable.
-	(article-make-date-line): Do 'english.
-
-	* gnus-cite.el (gnus-article-fill-cited-article): Add a space
-	after the fill prefix.
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Removed "Enter
-	score...".
-
-	* gnus-art.el (gnus-ignored-headers): Hide more headers.
-
-	* message.el (message-mode-map): Bind comment-region.
-
-	* gnus-art.el (gnus-mime-display-part): Let w3 display
-	multipart/related.
-
-	* mm-bodies.el (mm-long-lines-p): New function.
-	(mm-body-encoding): Use it.
-	(mm-body-encoding): Encode articles with lines longer than 1000
-	characters.
-
-2000-12-29 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-enable-multibyte): Use
-	default-enable-multibyte-characters.
-	(mm-enable-multibyte-mule4): Ditto.
-	(mm-disable-multibyte): Test XEmacs.
-	(mm-disable-multibyte-mule4): Ditto.
-	(mm-with-unibyte-current-buffer): Simplified.
-	(mm-with-unibyte-current-buffer-mule4): Ditto.
-
-2000-12-28 19:44:56  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnheaderxm.el (nnheader-string-as-multibyte): New alias.
-
-	* nnheader.el (nnheader-string-as-multibyte): New alias.
-
-	* mm-view.el (mm-inline-text): Warn when bugging out in w3.
-
-	* gnus-uu.el (gnus-message-process-mark): New function.
-	(gnus-uu-mark-by-regexp): Use it.
-	(gnus-new-processable): New function.
-
-2000-12-28 19:21:57  Inge Frick  <inge@nada.kth.se>
-	 Trivial patch.
-
-	* gnus-sum.el (gnus-no-mark): New variable.
-
-2000-11-01 01:12:29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnwfm.el (nnwfm-create-mapping): Remove quote marks and
-	backslashes.
-
-2000-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (gnus-article-banner-alist): Remove duplicate
-	definition.
-
-2000-12-25 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* dgnushack.el (dgnushack-compile): elc is in the current directory.
-
-	* qp.el (quoted-printable-encode-region): Don't check multibyte in
-	XEmacs.
-
-2000-12-25  Lloyd Zusman  <ljz@asfast.com>
-	Trivial patch.
-
-	* mml.el (mml-read-tag): Save tag location.
-
-2000-12-25  Simon Josefsson  <simon@josefsson.org>
-
-	* starttls.el: Sync with Emacs 21.
-
-2000-12-24 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-mail): Support yank-action.
-
-	* message.el (message-setup): Revoke the last change.
-
-2000-12-24 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-setup): Use cons. Suggested by Johan Vromans
-	<jvromans@squirrel.nl>.
-
-2000-12-24  Simon Josefsson  <sj@extundo.com>
-
-	* mm-bodies.el (mm-decode-content-transfer-encoding): Preserve
-	mailing list junk at end of part.
-
-2000-12-23  Simon Josefsson  <sj@extundo.com>
-
-	* nnimap.el (nnimap-expiry-target): New function.
-	(nnimap-request-expire-articles): Use it.
-
-2000-12-22 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-group-parameters-more): New variable.
-	* gnus-cus.el (gnus-group-customize): Use it.
-
-	* gnus.el (gnus-define-group-parameter): New macro.
-	(auto-expire): Use it
-	(total-expire): Use it.
-	* gnus-art.el (banner): Use it.
-
-	* mml.el (mml-parse): save-excursion. Suggested by Lloyd Zusman
-	<ljz@asfast.com>.
-
-2000-12-22 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-topic.el (gnus-topic-create-topic): Use list.
-
-	* gnus-vm.el (gnus-summary-save-article-vm): Require gnus-art
-	before binding gnus-default-article-saver.
-
-	* gnus-sum.el (gnus-summary-save-article):
-	(gnus-summary-pipe-output):
-	(gnus-summary-save-article-mail):
-	(gnus-summary-save-article-rmail):
-	(gnus-summary-save-article-file):
-	(gnus-summary-write-article-file):
-	(gnus-summary-save-article-body-file): Ditto.
-
-	* gnus-mh.el (gnus-summary-save-article-folder): Ditto.
-
-2000-12-22 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-security-button-map):
-	(gnus-mime-button-map): Add parent.
-
-2000-12-22 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* messagexmas.el (message-xmas-redefine): New function.
-
-	* message.el: Use it.
-
-	* gnus-art.el (gnus-article-check-hidden-text): Return t.
-
-	* gnus-util.el (gnus-remove-text-properties-when): Return t.
-
-2000-12-22 03:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-dissect-multipart): Avoid errors owing to
-	malformatted messages.
-
-2000-12-22 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-image-load-path): New function.
-
-	* gnus-group.el (gnus-group-make-tool-bar): Use it.
-
-	* gnus-sum.el (gnus-summary-make-tool-bar): Use it.
-
-	* message.el (message-tool-bar-map): Use it.
-
-	* Makefile.in (install-el): New rule.
-
-2000-12-21  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-art.el (article-treat-dumbquotes): Quote \.
-
-2000-12-21 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-treat-emphasize): Don't treat emphasis if
-	Emacs 20 runs on a terminal.
-
-2000-12-21 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-bug): Revert to save-excursion.
-
-	* mml.el (gnus-add-minor-mode): Autoload.
-
-	* message.el (message-forward): Save-restriction.
-
-2000-12-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-art.el (article-treat-dumbquotes): More doc, provided by
-	Paul Stevenson <p.stevenson@surrey.ac.uk>
-
-2000-12-21 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-ml.el (gnus-mailing-list-mode-map): Use C-c C-n prefix.
-
-	* mml.el (gnus-ems): Don't require.
-
-	* gnus.el (gnus-decode-rfc1522): Removed.
-	(gnus-set-text-properties): Define.
-
-2000-12-21 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-*): handle may be nil.
-
-	* gnus-sum.el (gnus-summary-mode): Turn on gnus-mailing-list-mode.
-
-	* gnus.el (gnus-group-remove-excess-properties): Not defined
-	in gnus-xmas.
-
-2000-12-20 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-mail-user-agent): Add :version.
-
-2000-12-21  Miles Bader  <miles@gnu.org>
-
-	* message.el (message-mode): Set `comment-start' to the  yank prefix.
-
-2000-12-20 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-mail-user-agent): New variable.
-	(message-setup): Renamed to message-setup-1. Support
-	mail-user-agent.
-	(message-mail-user-agent): New function.
-	(message-mail): Use it.
-	(message-reply): Use it.
-	(message-resend): Use it.
-	(message-mail-other-window): Use it.
-	(message-mail-other-frame): Use it.
-
-	* gnus-msg.el (gnus-bug): Support mail-user-agent.
-
-2000-12-20 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-tool-bar-map): Simplify.
-	(message-narrow-to-head-1): New function.
-	(message-narrow-to-head): Use it.
-	(message-reply): Ditto.
-	(message-cancel-news): Ditto.
-	(message-supersede): Ditto.
-	(message-make-forward-subject): Ditto.
-	(message-bounce): Ditto.
-
-2000-12-20 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* uudecode.el (uudecode-decode-region-external): make-temp-file
-	may not be defined.
-
-	* binhex.el (defalias): eval-and-compile.
-
-	* message.el (message-tool-bar-map): New function.
-	(message-mode): Use it.
-
-2000-12-20 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nntp.el (nntp-find-connection): Remove the entry.
-	(nntp-retrieve-groups): (gnus-buffer-live-p buf).
-
-2000-12-20 05:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-summary-mail-forward): Use original buffer.
-
-	* message.el (message-forward): Copy buffer in unibyte mode.
-
-2000-12-20 04:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-make-forward-subject): Don't widen. Decode.
-	(message-forward): Don't decode subject.
-
-2000-12-20  Christoph Conrad  <C.Conrad@cli.de>
-
-	* qp.el (quoted-printable-encode-region): Upcase QP.
-
-2000-12-20 03:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-possibly-verify-or-decrypt): Use
-	mail-extract-a-c instead. Don't depend on Gnus.
-
-	* mml.el (gnus-ems): Require it.
-
-	* gnus-msg.el (gnus-summary-mail-forward):
-
-	* message.el (message-forward):  Move mime-to-mml here.
-
-2000-12-20 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el, gnus-sum.el, message.el: Add :help unless Emacs.
-	* gnus-art.el (gnus-insert-mime-button): Simplify.
-	(gnus-mime-display-alternative): Ditto.
-	(gnus-insert-mime-security-button): Ditto.
-
-2000-12-20 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-add-text-properties-when): In XEmacs,
-	text-property-not-all doesn't return nil when start=mark(end).
-	(gnus-remove-text-properties-when): Ditto.
-
-2000-12-20 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-group-change-level): Remove group from
-	gnus-active-hashtb if real killed.
-
-2000-12-19 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-insert-mime-button): Emacs20 needs local-map.
-	(gnus-mime-display-alternative): Ditto.
-	(gnus-insert-mime-security-button): Ditto.
-
-2000-12-19 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-start.el (gnus-group-change-level): Don't add it into
-	killed-list if it was killed.
-
-2000-12-19 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmbox.el (nnmbox-file-coding-system): Use binary.
-	(nnmbox-active-file-coding-system): Ditto.
-
-	* gnus-cus.el (gnus-group-parameters): Add posting-style.
-
-2000-12-19 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-version):
-	(gnus-version-number): Set to Oort Gnus 0.01.
-
-	* gnus-art.el (gnus-mime-security-button-map):
-	(gnus-insert-mime-security-button): Fix for Emacs21.
-
-2000-12-19 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el, gnus-sum.el, message.el: Comment out :help in
-	easymenu, because XEmacs doesn't understand :help.
-
-	* mm-uu.el: Require binhex.
-
-2000-12-19 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el: Merged. Emacs21 CVS tag is zsh-merge-ognus-1.
-
-2000-12-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-charset-synonym-alist): Fix a typo.
-
-2000-12-18  Gerd Moellmann  <gerd@gnu.org>
-
-	* *.xpm, *.pbm: Convert icons icons to size 24x24.
-
-2000-12-18  Dave Love  <fx@gnu.org>
-
-	* gnus-msg.el (news-setup, news-reply-mode): Don't autoload
-	(unused).
-
-2000-12-13  Miles Bader  <miles@gnu.org>
-
-	* smiley-ems.el (smiley-region): Bind `inhibit-point-motion-hooks'
-	to t, so that we don't get stuck while trying to smilefy
-	intangible text.
-
-2000-12-12  Gerd Moellmann  <gerd@gnu.org>
-
-	* smiley-ems.el (smiley-regexp-alist): Make regexps match
-	at the end of the buffer.
-	(smiley-region): In the loop, move to the end of the submatch
-	matching the smiley instead of using the end of the match
-	of the whole regexp.
-
-2000-12-12  Eli Zaretskii  <eliz@is.elta.co.il>
-
-	* message.el (message-mode): Doc fix.
-
-2000-12-12  Gerd Moellmann  <gerd@gnu.org>
-
-	* smiley-ems.el (smiley-region): Doc fix.
-
-2000-12-11  Miles Bader  <miles@gnu.org>
-
-	* gnus-sum.el (gnus-summary-recenter): When trying to keep the
-	bottom line visible, check to see if it's partially obscured, and
-	if so, either scroll one more line to make it fully visible, or
-	revert to showing the second line from the top.
-
-2000-12-07  Dave Love  <fx@gnu.org>
-
-	* mailcap.el (mailcap-download-directory)
-	* gnus-audio.el (gnus-audio-directory)
-	* smiley-ems.el (smiley-data-directory): Fix :type.
-
-2000-11-30  Dave Love  <fx@gnu.org>
-
-	* message.el (message-auto-save-directory): Use
-	file-name-as-directory.
-	(message-set-auto-save-file-name): Create
-	message-auto-save-directory if necessary.
-	(message-replace-chars-in-string): Removed -- unused.
-	(message-mail-alias-type): Customize.
-	(message-headers): Remove duplicate defgroup.
-
-2000-11-29  Dave Love  <fx@gnu.org>
-
-	* qp.el (quoted-printable-decode-region): Use error, not message
-	to report malformed text (like base64).  Amend message.
-
-2000-11-29  Miles Bader  <miles@gnu.org>
-
-	* message.el (message-header-lines): Fontify tag.
-
-2000-11-27  Dave Love  <fx@gnu.org>
-
-	* nnlistserv.el: Ignore errors when requiring nnweb and avoid a
-	compiler warning.
-
-;2000-11-26  Dave Love  <fx@gnu.org>
-;
-;	* mm-uu.el (mm-uu-configure-list): Fix typo in :type.
-;
-2000-11-23  Dave Love  <fx@gnu.org>
-
-	* uu-post.pbm, uu-decode.pbm: new files from XPMs.
-
-	* mm-uu.el (uudecode): Require.
-	(uudecode-decode-region, uudecode-decode-region-external): Don't
-	autoload.
-	(mm-uu-copy-to-buffer): Doc fix.
-	(mm-uu-decode-function, mm-uu-binhex-decode-function): Doc, custom
-	type fix.
-
-	* mailcap.el: Doc fixes.
-	(mailcap-mime-data): Various adjustments.
-	(mailcap): New group.
-	(mailcap-download-directory): Customize.
-	(mailcap-generate-unique-filename, mailcap-binary-suffixes)
-	(mailcap-temporary-directory): Deleted (unused).
-	(mailcap-unescape-mime-test): Simplify slightly.
-	(mailcap-viewer-passes-test): Use functionp.
-	(mailcap-command-p): Aliased to executable-find.
-
-	* rfc2047.el (rfc2047-encode-message-header): Don't encode if
-	default-enable-multibyte-characters is nil.
-
-2000-11-22  Gerd Moellmann  <gerd@gnu.org>
-
-	* gnus-group.el (gnus-group-make-tool-bar): Fix a paren typo.
-
-2000-11-21  Dave Love  <fx@gnu.org>
-
-	* gnus-art.el (gnus-mime-button-map): Don't inherit from
-	gnus-article-mode-map.
-;	(gnus-mime-button-menu): Use mouse-set-point.
-	(gnus-insert-mime-button, gnus-mime-display-alternative)
-	(gnus-mime-display-alternative): Don't use local-map property.
-
-2000-11-17  Dave Love  <fx@gnu.org>
-
-	* uudecode.el (uudecode-insert-char): Fix bogus feature test.
-	(uudecode-decode-region-external): Doc fix.  Use with-temp-buffer
-	and make-temp-file.
-	(uudecode-decode-region): Doc fix.
-
-2000-11-14  Dave Love  <fx@gnu.org>
-
-	* cu-exit.pbm, exit-summ.pbm, followup.pbm, fuwo.pbm:
-	* mail-reply.pbm, next-ur.pbm, post.pbm, prev-ur.pbm:
-	* reply-wo.pbm, reply.pbm, rot13.pbm, save-aif.pbm, save-art.pbm:
-	New files, derived from the XPMs.
-
-2000-11-10  Dave Love  <fx@gnu.org>
-
-	* gnus-agent.el (gnus-agent-confirmation-function): Add :version.
-	(gnus-agent-lib-file, gnus-agent-load-alist)
-	(gnus-agent-save-alist, gnus-agent-article-name): Use
-	expand-file-name.
-
-	* gnus-group.el (gnus-group-name-charset-method-alist): Add
-	:version.
-	(nnkiboze-score-file): Defvar when compiling.
-
-	* gnus-start.el (gnus-read-newsrc-file): Add :version.
-
-	* gnus-art.el (gnus-article-banner-alist)
-	(gnus-emphasize-whitespace-regexp, gnus-ignored-mime-types)
-	(gnus-article-date-lapsed-new-header)
-	(gnus-article-mime-match-handle-function, gnus-mime-action-alist)
-	(gnus-treat-strip-list-identifiers, gnus-treat-date-iso8601)
-	(gnus-treat-strip-headers-in-body)
-	(gnus-treat-capitalize-sentences, gnus-treat-play-sounds)
-	(gnus-treat-translate): Add :version.
-	(gnus-article-mime-part-function): Fix defcustom.
-
-	* nnmail.el (nnmail-expiry-target)
-	(nnmail-scan-directory-mail-source-once, nnmail-extra-headers)
-	(nnmail-split-header-length-limit): Add :version.
-
-	* gnus-sum.el (gnus-auto-expirable-marks)
-	(gnus-inhibit-user-auto-expire, gnus-list-identifiers)
-	(gnus-extra-headers, gnus-ignored-from-addresses)
-	(gnus-newsgroup-ignored-charsets)
-	(gnus-group-highlight-words-alist)
-	(gnus-summary-show-article-charset-alist): Add :version.
-
-	* catchup.pbm, describe-group.pbm, exit-gnus.pbm, get-news.pbm:
-	gnntg.pbm, kill-group.pbm, subscribe.pbm, unsubscribe.pbm: New
-	files, converted from the XPMs.
-
-	* gnus-cache.el (gnus-cache-active-file): Don't use
-	file-name-as-directory on directory.
-	(gnus-cache-file-name): Use expand-file-name, not concat.  Don't
-	use file-name-as-directory on directory.
-
-	* time-date.el (timezone-make-date-arpa-standard): Autoload.
-	(date-to-time): Use it.
-
-;	* message.el (message-mode) <adaptive-fill-regexp>:
-;	<adaptive-fill-first-line-regexp>: Use [:alnum:] in regexp range.
-;	(message-newline-and-reformat): Likewise.
-	(message-forward-as-mime, message-forward-ignored-headers)
-	(message-buffer-naming-style, message-default-charset)
-	(message-dont-reply-to-names, message-send-mail-partially-limit):
-	Add :version.
-
-	* mm-util.el: Doc fixes.
-	(mm-mime-charset): Don't use the raw result of
-	mm-preferred-coding-system.
-	(mm-with-unibyte-buffer, mm-with-unibyte-current-buffer)
-	(mm-with-unibyte): Simplify.
-
-	* gnus-int.el (gnus-start-news-server): Use expand-file-name, not
-	concat.
-
-	* pop3.el (pop3-version): Deleted.
-	(pop3-make-date): New function, avoiding message-make-date.
-	(pop3-munge-message-separator): Use it.
-
-2000-11-09  Dave Love  <fx@gnu.org>
-
-	* gnus-group.el (gnus-group-make-directory-group)
-	(gnus-group-fetch-faq): Use expand-file-name.
-	(gnus-group-fetch-faq): Simplify completing-read form.
-
-	* mm-bodies.el (mm-encode-body): Use mm-multibyte-p, don't just
-	test for Mule.
-
-	* message.el (tool-bar-map): Defvar when compiling.
-
-	* gnus-setup.el (running-xemacs, gnus-use-installed-tm)
-	(gnus-tm-lisp-directory): Deleted.
-	(gnus-use-installed-mailcrypt, gnus-emacs-lisp-directory): Use
-	(featurep 'xemacs).
-	(gnus-gnus-lisp-directory, gnus-mailcrypt-lisp-directory)
-	(gnus-mailcrypt-lisp-directory, gnus-bbdb-lisp-directory): Remove
-	version numbers from file names.
-
-2000-11-08  Dave Love  <fx@gnu.org>
-
-	* mm-view.el: Use featurep for XEmacs test.
-	(mm-inline-message): Test for `remove-specifier'; don't use
-	condition-case.
-
-	* mm-bodies.el (mm-encode-body): Use mm-multibyte-p.
-
-	* gnus-score.el (gnus-score-load-file): Use expand-file-name.
-	(gnus-score-find-bnews): Don't concat "".
-
-	* cu-exit.xpm, prev-ur.xpm, next-ur.xpm, post.xpm, fuwo.xpm:
-	* followup.xpm, uu-post.xpm, uu-decode.xpm, mail-reply.xpm:
-	* reply.xpm, reply-wo.xpm, rot13.xpm, save-aif.xpm, save-art.xpm:
-	* exit-summ.xpm: New files, renamed from icons by Luis Fernandes.
-
-	* gnus-sum.el: Put some defvars in eval-when-compile.
-	(gnus-summary-mode-hook): Add :options.
-	(gnus-summary-make-menu-bar): Add some :help, used by tool bar.
-	(gnus-summary-tool-bar-map): New variable.
-	(gnus-summary-make-tool-bar): New function.
-	(gnus-summary-mode): Put kill-all-local-variables first.
-
-	* gnus-group.el (gnus-group-toolbar-map): New variable.
-	(gnus-group-make-tool-bar): Rewritten.
-	(gnus-group-mode): Put kill-all-local-variables first.
-
-	* rfc2047.el: Require gnus-util.
-
-	* nnml.el (gnus-sorted-intersection): Autoload.
-
-	* nnheader.el: Wrap subst-char-in-string def in eval-and-compile.
-	Put some defvars in eval-when-compile.
-	(gnus-intersection, gnus-sorted-complement):  Autoload.
-
-	* imap.el (imap-point-at-eol): New, replacing gnus-point-at-eol.
-
-	* mm-encode.el (mm-body-7-or-8): Autoload.
-
-	* mm-decode.el (mm-insert-inline): Autoload.
-
-	* mml.el:
-	* message.el: Put some defvars in eval-when-compile.
-
-	* gnus-msg.el: Put some defvars in eval-when-compile.
-	(gnus-msg-mail): Move after gnus-setup-message.
-
-	* smiley-ems.el (smiley-data-directory, smiley-regexp-alist): Doc fix.
-
-2000-11-07  Dave Love  <fx@gnu.org>
-
-	* gnus-util.el (nnheader): Don't require message (recursive
-	autoload).
-
-	* uudecode.el: Avoid compiler warnings.
-
-	* rfc2047.el: (rfc2047-fold-region): Use gnus-point-at-bol.
-	(rfc2047-charset-encoding-alist): Add iso-8859-1[45].
-
-2000-11-06  Dave Love  <fx@gnu.org>
-
-	* gnus-salt.el (gnus-binary-mode): Fix call to gnus-add-minor-mode.
-
-	* uudecode.el: Use (featurep 'xemacs).  Require cl when compiling.
-	(uudecode-char-int): New alias, replacing char-int.
-	(uudecode-decode-region): Don't call buffer-disable-undo.
-
-;	* mm-uu.el (mm-uu-configure): Unquote lambda.
-;	(mm-uu-configure-list): Doc fix.
-;
-;	* earcon.el (running-xemacs): Don't define.
-;
-;2000-11-03  Stefan Monnier  <monnier@cs.yale.edu>
-;
-;	* message.el (message-font-lock-keywords): Match a final newline
-;	to help font-lock's multiline support.
-;
-2000-11-03  Dave Love  <fx@gnu.org>
-
-	* gnus-nocem.el (gnus-nocem-check-article-limit): Default to 500.
-
-	* mm-partial.el (mm-inline-partial): Space-prefix temp buffer
-	name.
-
-	* gnus-cus.el (gnus-group-parameters) <gcc-self>: Fix custom type.
-	<banner>: Fix custom type, doc.
-
-	* mm-decode.el (mm-display-external): Space-prefix temp buffer
-	name.  Don't disable undo explicitly.
-
-;2000-11-02  Dave Love  <fx@gnu.org>
-;
-;	* message.el (message-font-lock-keywords): Use [:alpha:] for
-;	cite-prefix.
-
-2000-11-01  Dave Love  <fx@gnu.org>
-
-	* rfc2047.el (base64): Require unconditionally.
-	(message-posting-charset): Defvar when compiling.
-	(rfc2047-encode-message-header, rfc2047-encodable-p): Require
-	message.
-
-	* gnus-sum.el (nnoo): Require.
-	(mm-uu-dissect): Autoload.
-
-	* mml.el (mml-parse-1): Clarify message.
-	(mml-minibuffer-read-type): Use mailcap-mime-types.
-
-2000-11-01  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* mml.el: Fix a typo in the requiring of CL.
-
-2000-11-01  Dave Love  <fx@gnu.org>
-
-	* utf7.el: Require cl when compiling.
-
-	* binhex.el: Use (featurep 'xemacs).
-	(binhex-char-int): New alias, replacing char-int.  Change callers.
-	(binhex-decode-region): Simplify work buffer code.
-	(binhex-decode-region-external): Use expand-file-name, not concat.
-
-2000-10-30  Dave Love  <fx@gnu.org>
-
-	* gnus-art.el: Fix 2000-10-27 change properly.
-
-2000-10-28  Miles Bader  <miles@gnu.org>
-
-	* gnus-art.el (gnus-read-save-file-name): Remove extraneous paren.
-
-2000-10-27  Dave Love  <fx@gnu.org>
-
-	* gnus-group.el (gnus-group-make-menu-bar): Add some :help
-	strings.
-	(gnus-group-make-tool-bar): New function.
-	(gnus-group-mode): Use it.
-
-	* message.el (message-mode-menu): Add some :help strings.
-	(message-mode) [message-tool-bar-map]: Define tool-bar-map.
-	(featurep): Use (featurep 'xemacs).  Install tool bar for Emacs.
-
-	* catchup.xpm, exit-gnus.xpm, gnntg.xpm, subscribe.xpm:
-	* describe-group.xpm, get-news.xpm, kill-group.xpm:
-	* unsubscribe.xpm: New files.  Renamed icons from Luis Fernandes.
-
-	* mm-decode.el (mm-valid-and-fit-image-p): Don't test
-	display-graphic-p here.
-
-2000-10-27  Miles Bader  <miles@lsi.nec.co.jp>
-
-	* gnus-ems.el (gnus-ems-redefine): Use (featurep 'xemacs) instead
-	of the `gnus-xemacs' variable, as the latter has been removed.
-	* gnus-start.el (gnus-1, gnus-read-descriptions-file): Likewise.
-	* gnus-art.el (gnus-treat-display-xface)
-	(gnus-treat-display-smileys, gnus-treat-display-picons)
-	(gnus-article-read-summary-keys): Likewise.
-
-2000-10-26  Dave Love  <fx@gnu.org>
-
-	(defvar): Use rmail-spool-directory unconditionally.
-
-2000-10-18  Dave Love  <fx@gnu.org>
-
-	* mm-bodies.el (mm-uu-decode-function)
-	(mm-uu-binhex-decode-function): Defvar when compiling.
-
-	* gnus-nocem.el (gnus-nocem-issuers): Update.
-	(gnus-nocem-check-from): New option.
-	(gnus-nocem-scan-groups): Use it.
-	(gnus-nocem-check-article): Bind gnus-newsgroup-name.
-	(gnus-nocem-check-article-limit): Add :version.
-
-2000-10-16  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* ietf-drums.el (mm-util): Require CL when compiling.
-
-2000-10-15  Dave Love  <fx@gnu.org>
-
-	* qp.el: Require mm-util.
-
-2000-10-13  Dave Love  <fx@gnu.org>
-
-	* qp.el (quoted-printable-decode-region): Avoid invalid
-	coding-systems.
-
-2000-10-12  Gerd Moellmann  <gerd@gnu.org>
-
-	* mm-bodies.el: Don't require `mm-uu' at compile-time; it leads
-	to a recursive load.
-
-2000-10-12  Dave Love  <fx@gnu.org>
-
-	* mm-util.el (mm-charset-synonym-alist): Add windows-1252.
-
-	* gnus.el (gnus-group-startup-message): Check for PBM image.
-
-2000-10-09  Dave Love  <fx@gnu.org>
-
-	* mail-source.el (mail-source-fetch-imap): Bind
-	default-enable-multibyte-characters rather than using
-	mm-disable-multibyte.
-
-2000-10-05  Dave Love  <fx@gnu.org>
-
-	* qp.el (mm-decode-coding-region, mm-encode-coding-region):
-	Autoload.
-	(quoted-printable-decode-region):  Rename arg which confused
-	charset with coding-system.  Don't use nonascii-insert-offset.
-	Coding-system encode the region initially.  Don't recognize `=='
-	as valid QP.  Coding-system decode the region finally.
-	(quoted-printable-decode-string): Rename arg which confused
-	charset with coding-system.
-
-	* mm-bodies.el: Require mm-uu, Don't require qp, uudecode.
-	(mm-encode-body): Apply mm-charset-to-coding-system to arg of
-	mm-encode-coding-region.
-	(mm-decode-body, mm-decode-string): Rename variables which
-	confused charset with coding-system.
-	(binhex-decode-region): Don't autoload.
-	(mm-body-encoding): Require message.
-	(mm-decode-content-transfer-encoding): Require mm-uu in relevant
-	cond branches.
-
-	* gnus-art.el (article-de-quoted-unreadable)
-	(article-de-base64-unreadable): Fold search case
-	rather than downcasing string.  Apply mm-charset-to-coding-system
-	to arg of quoted-printable-decode-region.
-
-2000-10-04  Dave Love  <fx@gnu.org>
-
-	* gnus-ems.el: Don't turn off compiler warnings in local vars.
-	Require ring when compiling.
-	(gnus-article-compface-xbm): New variable.
-
-2000-10-04  Dave Love  <fx@gnu.org>
-
-	* smiley-ems.el (smiley-regexp-alist, smiley-update-cache): Use
-	pbm images.
-
-	* frown.pbm, smile.pbm, wry.pbm: New files.
-
-	* frown.xbm, smile.xbm, wry.xbm: Deleted.
-
-2000-10-03  Dave Love  <fx@gnu.org>
-
-	* mail-source.el (mail-sources): Revert to nil.
-
-	* nnmail.el (nnmail-spool-file): Revert to `((file))'.
-
-	* qp.el: Don't require mm-util.
-	(quoted-printable-decode-region): Rewritten.
-	(quoted-printable-decode-string, quoted-printable-encode-region):
-	Doc fix.
-	(quoted-printable-encode-region): Barf on multibyte characters.
-	Maybe make the class multibyte.  Upcase chars, not formatted
-	strings.  Allow mm-use-ultra-safe-encoding to be unbound.
-	(quoted-printable-encode-string): Don't use
-	mm-with-unibyte-buffer.
-
-2000-09-29  Gerd Moellmann  <gerd@gnu.org>
-
-	* smiley-ems.el (smiley-update-cache):  Use `:ascent center'.
-
-2000-09-21  Dave Love  <fx@gnu.org>
-
-	* smiley-ems.el (smiley-region): Test if display-graphic-p bound
-	(for Emacs 20).  Tidy somewhat.
-
-2000-09-21  Dave Love  <fx@gnu.org>
-
-	* gnus-ems.el (gnus-article-display-xface): Use unibyte for the
-	image processing.  Rationalize logic somewhat.
-
-2000-09-20  Dave Love  <fx@gnu.org>
-
-	* gnus-start.el (gnus-1) <gnus-simple-splash>: Don't test for X
-	specifically.
-
-	* gnus.el (gnus-version-number): Avoid some redundant
-	autoloads.
-
-2000-09-20  Gerd Moellmann  <gerd@gnu.org>
-
-	* gnus-ems.el (gnus-article-display-xface): Don't convert PBM
-	to XBM; we always have PBM support.
-
-2000-09-14  Dave Love  <fx@gnu.org>
-
-	* gnus.el (gnus-charset):
-	* mm-decode.el (mime-display):
-	* imap.el (imap) <defgroup>: Add :version.
-
-2000-09-13  Gerd Moellmann  <gerd@gnu.org>
-
-	* parse-time.el: Fix author's mail address.
-
-	* earcon.el, flow-fill.el, gnus-cite.el, gnus-gl.el, gnus-ml.el:
-	* gnus-mlspl.el, gnus-nocem.el, gnus-range.el, gnus-salt.el:
-	* gnus-setup.el, gnus-soup.el, gnus-undo.el, gnus-vm.el:
-	* messcompat.el, nnbabyl.el, nndir.el, nneething.el:
-	* nngateway.el, nnheaderxm.el, nnkiboze.el, nnlistserv.el:
-	* nnmbox.el, nnmh.el, nnoo.el, nnsoup.el, nnspool.el, rfc2045.el:
-	* rfc2231.el, uudecode.el: Fix copyright notice.
-
-	* nnweb.el (toplevel): To make the file bootstrap in Emacs,
-	require `w3' at load-time only if not running in batch mode.
-
-2000-12-19 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el: Before merge with Emacs21.
-
-2000-12-19  Raymond Scholz  <ray-2000@zonix.de>
-
-	* gnus-art.el (gnus-article-dumbquotes-map): Add EUR symbol.
-
-2000-12-19  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* mml.el (mml-mode-map): Change mml prefix from `M-m' to `C-c C-m'
-	to avoid conflict with the standard `back-to-indentation'
-	binding.
-
-2000-12-17 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-extern.el (mm-inline-external-body): g-a-m-h may be a handle.
-
-	* mm-util.el (mm-enable-multibyte-mule4): Test charsetp.
-	(mm-disable-multibyte-mule4): Ditto.
-	(mm-with-unibyte-current-buffer-mule4): Ditto.
-
-2000-12-15 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* pop3.el (pop3-movemail): Use binary.
-	(pop3-movemail-file-coding-system): Removed.
-
-2000-12-14 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-charset-synonym-alist): Add cn-gb.
-
-2000-12-13 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnspool.el (nnspool-lib-dir): Check whether /usr/lib/news/active
-	exists.
-
-2000-12-13 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-post-method): Use backend name when the
-	address is "".
-
-2000-12-08 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-verify-x-pgp-sig): Don't test
-	mm-verify-option.
-	(gnus-treat-x-pgp-sig): Default value.
-	(gnus-ignored-headers): Redundant.
-
-2000-12-04 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-win.el (gnus-configure-frame): Save selected window.
-
-2000-02-15  Andrew Innes  <andrewi@gnu.org>
-
-	* nnmbox.el: Require gnus-range.
-	(nnmbox-group-building-active-articles): New variable.
-	(nnmbox-group-active-articles): New variable; this is a cache of
-	all active articles by group and number.
-	(nnmbox-in-header-p): New function.
-	(nnmbox-find-article): New function.
-	(nnmbox-record-active-article): New function.
-	(nnmbox-record-deleted-article): New function.
-	(nnmbox-is-article-active-p): New function.
-	(nnmbox-retrieve-headers): Use nnmbox-find-article.
-	(nnmbox-request-article): Ditto.  Also supply extra arg to
-	nnmbox-article-group-number.
-	(nnmbox-request-expire-articles): Ditto.
-	(nnmbox-request-move-article): Ditto.
-	(nnmbox-request-replace-article): Ditto.
-	(nnmbox-request-rename-group): Rename group entry in active
-	article cache.
-	(nnmbox-delete-mail): Update active article cache, unless article
-	is being replaced.
-	(nnmbox-possibly-change-newsgroup): Call nnmbox-read-mbox, rather
-	than partially duplicating it.
-	(nnmbox-article-group-number): Add extra `this-line' arg, to
-	handle articles belonging to multiple groups.
-	(nnmbox-save-mail): Update active article cache.
-	(nnmbox-read-mbox): Build active article cache when loading mbox.
-	Also do some repair work, if we find articles that are missing the
-	appropriate X-Gnus-Newsgroup lines in the header.  We can usually
-	reconstruct these from Xref info.
-
-2000-12-04 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mail-source.el (mail-source-report-new-mail): Use
-	nnheader-run-at-time.
-
-2000-02-15  Andrew Innes  <andrewi@gnu.org>
-
-	* mail-source.el (mail-source-fetch-pop): Clear pop password when
-	an error is thrown, and then rethrow the error.
-	(mail-source-check-pop): Ditto.
-	(mail-source-start-idle-timer): Prevent multiple pop checks
-	running if the check takes a long time.
-
-2000-12-04 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-msg-mail): COMPOSEFUNC should return t if
-	succeed.
-
-2000-12-04 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-win.el (gnus-configure-windows): Make sure
-	nntp-server-buffer is live.
-	(gnus-remove-some-windows): switch-to-buffer -> set-buffer.
-
-2000-11-21  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* gnus-win.el (gnus-configure-windows): switch-to-buffer -> set-buffer.
-
-2000-12-04  Andreas Jaeger  <aj@suse.de>
-
-	* gnus-msg.el (gnus-summary-mail-forward): Fix typos in description.
-
-2000-12-03 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-fix-micalg): Alg might be nil.
-
-2000-12-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-	Trivial patch from Christopher Splinter  <chris@splinter.inka.de>
-
-	* gnus-sum.el (gnus-summary-limit-to-age): Fix typo.
-
-2000-12-01  Simon Josefsson  <sj@extundo.com>
-
-	* mml-smime.el (mml-smime-verify): Fix address parsing.
-
-2000-12-01  Simon Josefsson  <sj@extundo.com>
-
-	* mml-smime.el (mml-smime-verify): Don't modify MM buffer.  Handle
-	more than one certificate inside PKCS#7 blob.  Better security
-	information (clamed / actual sender, openssl output, certificates
-	inside message).
-
-	* smime.el (smime-verify-region): Output to /dev/null.
-	(smime-buffer-as-string-region): Don't parse empty lines.
-
-2000-11-30 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-security-button-line-format-alist): Add
-	?d and ?D.
-	(gnus-mime-security-show-details-inline): New variable.
-	(gnus-mime-security-show-details): Use them.
-	(gnus-insert-mime-security-button): Ditto.
-
-	* mml2015.el (mml2015-gpg-verify): Set details when succeed.
-	Suggest by Michael Duggan (md5i@cs.cmu.edu).
-	(mml2015-gpg-clear-verify): Ditto.
-	(mml2015-gpg-decrypt-1): Ditto.
-	(mml2015-use): Prefer 'gpg.
-
-2000-11-30 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-add-text-properties-when): New function.
-	(gnus-remove-text-properties-when): Ditto.
-
-	* gnus-cite.el (gnus-article-hide-citation): Use them.
-	(gnus-article-toggle-cited-text): Use them.
-
-	* gnus-art.el (gnus-signature-toggle): Use them.
-	(gnus-article-show-hidden-text): Ditto.
-	(gnus-article-hide-text): Ditto.
-
-2000-11-30 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-find-charset-region): Remove eight-bit-*.
-
-2000-11-30  Simon Josefsson  <sj@extundo.com>
-
-	* smime.el (smime-point-at-eol): New alias.
-	(smime-buffer-as-string-region): Use it.
-
-2000-11-29 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nndraft.el (nndraft-request-restore-buffer): Remove Date field.
-
-2000-11-29 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-request-expire-articles): expiry-target.
-
-	* nnbabyl.el (nnbabyl-request-expire-articles): Ditto.
-
-	* nnmbox.el (nnmbox-request-expire-articles): Ditto.
-
-2000-11-22  Jan Nieuwenhuizen  <janneke@gnu.org>
-
-	* nnmh.el (nnmh-request-expire-articles): Implemented
-	expiry-target for nnmh backend.
-
-2000-11-30  Simon Josefsson  <sj@extundo.com>
-
-	* mm-decode.el (mm-security-from): New variable.
-	(mm-possibly-verify-or-decrypt): Use it rather than `from'.
-
-	* mml-smime.el (mml-smime-verify): Use `mm-security-from' rather
-	than `from'.
-
-2000-11-30  Simon Josefsson  <sj@extundo.com>
-
-	* mml-smime.el (mml-smime-verify): Verify that certificate mail
-	address match sender address.
-
-	* mm-decode.el (mm-possibly-verify-or-decrypt): Bind sender address.
-
-	* smime.el (smime-verify-region): Don't copy buffer.
-	(smime-decrypt-buffer): Use expand-file-name on keyfile.
-	(smime-pkcs7-region): New function.
-	(smime-pkcs7-certificates-region): Ditto.
-	(smime-pkcs7-email-region): Ditto.
-	(smime-buffer-as-string-region): Ditto.
-
-	* gnus-art.el (gnus-mime-security-show-details): Goto beginning of
-	buffer.
-
-2000-11-23  Jens Krinke  <j.krinke@gmx.de>
-
-	* smime.el (smime-decrypt-region): Fix keyfile argument.
-
-2000-11-29 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnmail.el (nnmail-cache-accepted-message-ids): Add doc.
-
-2000-11-28 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-shoot-gnksa-feet): New variable.
-	(message-gnksa-enable-p): New function.
-	(message-send): Use it.
-	(message-check-news-body-syntax): Ditto.
-
-2000-11-28  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* message.el (message-make-message-id): Remove the redundancy.
-
-2000-11-22 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-setup): Discourage using mc-install-*-mode.
-
-	* gnus-setup.el (gnus-use-mailcrypt): Don't hook mail-crypt.
-
-2000-11-22 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-cite.el (gnus-cite-parse): Guess citation length.
-
-2000-11-22 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-ml.el (gnus-mailing-list-insinuate): New function.
-
-2000-11-22 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-ml.el (gnus-mailing-list-archive): Find the real url.
-
-2000-11-22 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-xmas.el (gnus-xmas-article-display-xface): Use
-	insert-buffer-substring.
-
-	* message.el (message-send-mail): Use buffer-substring-no-properties.
-	(message-send-news): Ditto.
-
-2000-11-22  David Edmondson  <dme@dme.org>
-
-	* imap.el (imap-wait-for-tag): Message read info.
-
-2000-11-21 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-mailcrypt-encrypt): Ensure the part is encrypted.
-	(mml2015-mailcrypt-encrypt): Use unibyte-buffer.
-	(mml2015-gpg-encrypt): Ditto.
-
-2000-11-21 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-verify-option): Default value.
-
-	* mml-sec.el (mml-secure-part): Error message.
-
-2000-11-20 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-ml.el (gnus-mailing-list-archive): Use browse-url.
-
-2000-11-20 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-make-menu-bar): Use easy-menu-add.
-
-2000-11-20 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-describe-key): Use prompt.
-	(gnus-article-describe-key-briefly): Ditto.
-
-2000-11-20 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-agent.el (gnus-agent-expire): Ignore corrupted history.
-
-2000-11-20 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-describe-key): New function.
-	(gnus-article-describe-key-briefly): New function.
-
-2000-11-19 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-decrypt-option): Doc typo.
-
-	* gnus-art.el (gnus-article-read-summary-keys): lookup-key may
-	return a number.
-
-2000-11-19 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-newline-and-reformat): Typo.
-
-2000-11-19 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (article-verify-x-pgp-sig): Check whether
-	original-article-buffer exists.
-
-	* rfc2047.el (rfc2047-q-encoding-alist): Match Resent-.
-	(rfc2047-header-encoding-alist): Addresses are different from text.
-	(rfc2047-encode-message-header): Ditto.
-	(rfc2047-dissect-region): Extra parameter.
-	(rfc2047-encode-region): Ditto.
-	(rfc2047-encode-string): Ditto.
-
-2000-11-19 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-uu.el (mm-uu-pgp-encrypted-extract-1): New function.
-	(mm-uu-pgp-encrypted-extract): Use it.
-	(mm-uu-pgp-signed-extract-1): New function.
-	(mm-uu-pgp-signed-extract): Use it.
-
-	* gnus-art.el (gnus-mime-display-security): New function.
-	(gnus-mime-display-part): Use it.
-	(gnus-mime-security-verify-or-decrypt): New function.
-	(gnus-mime-security-press-button): New function.
-	(gnus-insert-mime-security-button): Use it.
-
-	* mm-decode.el (mm-possibly-verify-or-decrypt): Use mm-h-m-c-p.
-	(mm-find-raw-part-by-type): Ditto.
-	(mm-verify-function-alist): Add x-gnus-pgp-signature handle.
-	(mm-decrypt-function-alist): Add x-gnus-pgp-encrypted handle.
-	(mm-destroy-parts): Kill nested multibyte buffer.
-
-	* mml2015.el (mml2015-mailcrypt-verify): Use mm-h-m-c-p.
-	(mml2015-gpg-verify): Ditto.
-
-2000-11-18  Simon Josefsson  <sj@extundo.com>
-
-	* mml2015.el (mml2015-mailcrypt-clear-verify): New function.
-	(mml2015-function-alist): Use it.
-
-	* mml-sec.el (mml-sign-alist): Update names.
-	(mml-encrypt-alist): Ditto.
-	(mml-secure-part-smime-sign): Moved to mml-smime.el
-	as `mml-smime-sign-query'.
-	(mml-secure-part-smime-encrypt-by-file): Moved to mml-smime.el as
-	`mml-smime-get-file-cert'.
-	(mml-secure-part-smime-encrypt-by-dns): Moved to mml-smime.el as
-	`mml-smime-get-dns-cert'.
-	(mml-secure-part-smime-encrypt): Moved to mml-smime.el as
-	`mml-smime-encrypt-query'.
-	(mml-smime-sign-buffer): Use mml-smime-sign.
-	(mml-smime-encrypt-buffer): Use mml-smime-encrypt.
-
-	* mml-smime.el (mml-smime-sign): New function.
-	(mml-smime-encrypt):
-	(mml-smime-sign-query):
-	(mml-smime-get-file-cert):
-	(mml-smime-get-dns-cert):
-	(mml-smime-encrypt-query): Moved from mml-sec.el.
-
-2000-11-16  Simon Josefsson  <sj@extundo.com>
-
-	* mml2015.el (mml2015-gpg-clear-verify): New function.
-	(mml2015-function-alist): Add it.
-
-2000-11-17 14:21  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-setup-fill-variables): Use
-	message-cite-prefix-regexp.
-	(message-newline-and-reformat): Check the end of citation, leading
-	WSP, break in the cite prefix.
-	(message-fill-paragraph): New function.
-
-2000-11-17 13:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* lpath.el: Shut up.
-
-2000-11-17  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* gnus-msg.el (gnus-group-posting-charset-alist): No longer allow
-	raw 8-bit in headers in dk.* newsgroups.
-
-2000-11-17 08:02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-newline-and-reformat): Match extra WSPs.
-
-2000-11-16 23:31  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-generate-mime-1): Ignore ascii.
-
-2000-11-16 Justin Sheehy  <justin@iago.org>
-
-	* gnus-sum.el (gnus-summary-make-menu-bar): Fix menu items.
-
-2000-11-16 17:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-cite-prefix-regexp): Prefix should not end
-	at space.
-
-2000-11-15 18:09  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-mode-syntax-table): Add - as a word
-	constituent as in articles.
-	(message-setup-fill-variables): Add -_. as supercite-style prefix.
-	* gnus-art.el (gnus-article-mode-syntax-table): Remove ?-.
-	* gnus-cite.el (gnus-cite-parse): Match from the beginning of line.
-
-2000-11-15 13:21  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-inews-do-gcc): Expire the article.
-
-2000-11-12  David Edmondson  <dme@dme.org>
-
-	* message.el (message-font-lock-keywords): use
-	message-cite-prefix-regexp.
-
-2000-11-15  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-group.el (gnus-group-jump-to-group-prompt): New variable by
-	Stein Arild Str,Ax(Bmme.
-	(gnus-group-jump-to-group): Use it.
-	(gnus-group-jump-to-group-prompt): Customize.
-
-2000-11-14 10:32:42  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mailcap.el (mailcap-possible-viewers): Match the entire string.
-
-2000-11-14 10:20:56  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-mailcrypt-verify): replace-match is
-	incompatible.
-	(mml2015-mailcrypt-sign): Ditto.
-
-2000-11-14 10:12:05  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-inews-do-gcc): Update summary data when the
-	group is open.
-
-2000-11-14 00:48:52  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-bcklg.el (gnus-backlog-enter-article): Don't enter
-	nnvirtual articles.
-	(gnus-backlog-request-article): Don't request nnvirtual articles.
-
-2000-11-13 22:08:09  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-mailcrypt-sign): Remove "-" escape.
-	* mml.el (mml-generate-mime-1): Save cont. skip multipart attributes.
-
-2000-11-13 20:43:37  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-get-part): Don't call mm-insert-part.
-	* mml.el (mml-generate-mime-1): Use charset attribute.
-	* mm-bodies.el (mm-encode-body): Add parameter charset.
-	* mm-util.el (mm-mime-charset): Show error when find 8-bit characters.
-
-2000-11-13 16:09:09  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-mailcrypt-decrypt): Handle quit.
-	(mml2015-mailcrypt-clear-decrypt): Ditto.
-	(mml2015-mailcrypt-verify): Ditto.
-	(mml2015-mailcrypt-clear-verify): Ditto.
-	(mml2015-gpg-verify): Ditto.
-
-2000-11-13 15:29:58  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* smime.el (smime-openssl-program): Test the existence of openssl.
-	* mml-smime.el: Require mm-decode.
-	(mml-smime-verify-test): New function.
-	* mm-decode.el (mm-verify-function-alist): Use it.
-
-2000-11-13 09:50:29  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-repair-multipart): Fix Mime-Version
-	anyway.
-
-2000-11-13  Simon Josefsson  <sj@extundo.com>
-
-	* mm-uu.el (mm-uu-pgp-signed-extract): Explain why clear
-	verification doesn't work.
-
-2000-11-12 23:36:45  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-inews-mark-gcc-as-read): New variable.
-	(gnus-inews-do-gcc): Use it.
-
-2000-11-12 21:35:04  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2231.el (rfc2231-encode-string): Insert semi-colon and
-	leading space.
-	* mm-extern.el (mm-inline-external-body): Report error when no
-	access-type.
-
-2000-11-12 19:48:30  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-select-newsgroup): Change the error message.
-
-2000-11-12 11:53:18  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-button-menu): Use select-window.
-
-2000-11-12 09:47:54  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-display-part): Display multipart/related
-	as multipart/mixed.
-
-2000-11-12  David Edmondson  <dme@dme.org>
-
-	* message.el (message-cite-prefix-regexp): moved from gnus-cite.el
-	and replace `.' with `\w' to allow for different syntax tables
-	(from Vladimir Volovich).
-	* message.el (message-newline-and-reformat): use
-	`message-cite-prefix-regexp'.
-	* gnus-cite.el (gnus-supercite-regexp): use
-	`message-cite-prefix-regexp'.
-	* gnus-cite.el (gnus-cite-parse): use
-	`message-cite-prefix-regexp'.
-
-2000-11-12 08:52:46  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-mailcrypt-verify): Replace armors with
-	PGP SIGNATURE.  Escape leading "-"'s.
-	(mml2015-mailcrypt-sign): Replace armors with PGP MESSAGE.
-
-2000-11-11 15:55:35  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-uu.el (mm-uu-type-alist): Stricter shar regexp.
-
-2000-11-11  Simon Josefsson  <sj@extundo.com>
-
-	* mml2015.el (mml2015-gpg-verify): Set "OK" security status.
-
-	* smime.el (smime-details-buffer): New variable.
-	(smime-sign-region):
-	(smime-encrypt-region):
-	(smime-verify-region):
-	(smime-decrypt-region): Copy OpenSSL output to the buffer.
-
-	* mml-smime.el (mml-smime-verify): Support security info.
-
-2000-11-10 17:11:22  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-verify-option): Set default to nil.
-	(mm-decrypt-option): Ditto.
-	* gnus-art.el (article-verify-x-pgp-sig): New function.
-
-2000-11-10 09:01:25  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-display-alternative): Show button if no
-	preferred part.
-
-2000-11-07  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
-
-	* gnus-sum.el (gnus-move-split-methods): Say that
-	`gnus-split-methods' uses file names, whereas this uses group
-	names.  (Report from Nevin Kapur)
-
-2000-11-10 01:23:20  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-partial.el (mm-inline-partial): Insert MIME-Version.
-
-2000-11-09 17:02:50  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnheader.el (nnheader-directory-files-is-safe): New variable.
-	(nnheader-directory-articles): Use it.
-	(nnheader-article-to-file-alist): Ditto.
-
-2000-11-09 16:20:37  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2047.el (rfc2047-pad-base64): New function.
-	(rfc2047-decode): Use it.
-
-2000-11-09 08:53:04  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-srvr.el (gnus-browse-foreign-server): Bind the original
-	select method.
-
-2000-11-08 19:58:58  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-gpg-decrypt-1):
-	(mml2015-gpg-verify): buffer-string has no argument in Emacs.
-
-2000-11-08 16:37:02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-cache.el (gnus-cache-generate-nov-databases): Reopen cache.
-
-2000-11-08 08:38:30  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* pop3.el (pop3-munge-message-separator): A message may have an
-	empty body.
-
-2000-11-07 18:02:26  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-uu.el (mm-uu-type-alist): Don't test pgp stuff.
-	(mm-uu-pgp-encrypted-extract): Clean mml2015 buffer.
-	(mm-uu-pgp-signed-extract): Use coding-system.
-
-2000-11-07 14:33:19  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-display-part): Show MIME security button.
-	(gnus-insert-mime-security-button): New function.
-	* mm-decode.el (mm-possibly-verify-or-decrypt): Add security info.
-	* mml2015.el:  Add security info when verify or decrypt.
-	* mm-uu.el (mm-uu-pgp-signed-extract): Use multipart.
-	(mm-uu-pgp-encrypted-extract): Ditto.
-
-2000-11-07 08:49:36  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-display-parts): New function.
-	* gnus-art.el (gnus-mime-view-all-parts): Use it. Remove parts first.
-
-2000-02-02  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
-
-	* gnus-mlspl.el: Documentation tweaks.
-
-2000-11-06 22:06:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-possibly-verify-or-decrypt): Fix.
-	* gnus-art.el (gnus-article-encrypt-body): Rename and support prefix
-	argument.
-
-2000-11-06 19:10:14  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2231.el (rfc2231-encode-string): Use us-ascii if charset is nil.
-
-2000-11-06 18:17:53  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-article-encrypt): New function.
-	(gnus-article-encrypt-protocol-alist): New variable.
-	(gnus-article-encrypt-protocol): New variable.
-	* mml2015.el (mml2015-self-encrypt): New function.
-	(mml2015-mailcrypt-encrypt): Set mc-pgp-always-sign.
-
-2000-11-06 16:02:52  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-uu.el (mm-uu-gpg-key-skip-to-last): New function.
-	(mm-uu-pgp-key-extract): Use application/pgp-keys, don't snarf,
-	let mailcap do it.
-	* mml2015.el: Remove snarf code.
-	* mm-decode.el: Remove snarf code.
-
-2000-11-06 14:03:10  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-insert-mml-markup): Ignore internal stuff.
-	(mml-insert-mime): Understand gnus-decoded.
-	(mime-to-mml): New parameter handles.
-	* gnus-art.el (gnus-mime-save-part-and-strip): Use it.
-	* gnus-sum.el (gnus-summary-edit-article): Add argument `3'.
-
-2000-11-06 13:51:37  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mime-security): New group.
-	(mm-verify-function-alist): Add test function.
-	(mm-decrypt-function-alist): Ditto.
-	(mm-snarf-option): Set default value as nil.
-	(mm-find-part-by-type): Recursive parameter.
-	(mm-possibly-verify-or-decrypt): Support draft-ietf-openpgp-multsig.
-	* mml2015.el: Support draft-ietf-openpgp-multsig.
-
-2000-11-06 13:01:27  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-view-part-as-charset): New function.
-	(gnus-article-view-part-as-charset): New function.
-
-2000-11-05 22:34:07  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-verify-option): Default value.
-	(mm-possibly-verify-or-decrypt): Dealing with broken messages.
-
-2000-11-05 15:06:05  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnvirtual.el (nnvirtual-request-expire-articles): Uncompress range.
-
-2000-11-05  Simon Josefsson  <sj@extundo.com>
-
-	* mml-smime.el (mml-smime-verify): Work in original multipart
-	buffert.
-
-	* mm-decode.el (mm-handle-multipart-original-buffer): New macro.
-	(mm-handle-multipart-ctl-parameter): Ditto.
-	(mm-alist-to-plist): New function.
-	(mm-dissect-buffer): Store CTL parameters and copy original buffer
-	for multiparts.
-	(mm-destroy-parts): Destroy multipart buffert.
-	(mm-remove-part): Ditto.
-
-	* mml-smime.el (mml-smime-sign): Not used.
-	(mml-smime-encrypt): Ditto.
-
-	* mm-decode.el (mml-smime-verify): Autoload mml-smime.
-
-	Verify S/MIME signature support.
-
-	* mm-decode.el (mm-inline-media-tests): Add
-	application/{x-,}pkcs7-signature.
-	(mm-inlined-types): Ditto.
-	(mm-automatic-display): Ditto.
-	(mm-verify-function-alist): Ditto.  Add name of method.
-	(mm-decrypt-function-alist): Add name of method.
-	(mm-find-part-by-type): Add documentation.
-	(mm-possibly-verify-or-decrypt): Use new format of
-	mm-{verify,decrypt}-function-alist.  Use method names.
-
-	* mml-smime.el (mml-smime-verify): New function.
-
-2000-11-04 20:38:50  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-view.el (mm-inline-text): Move point to the end of inserted text.
-
-2000-11-04 19:07:08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-function-alist): Clear verify and decrypt.
-	* mm-uu.el: Reorganized.  Add gnatsweb, pgp-signed, pgp-encrypted.
-	* mm-decode.el (mm-snarf-option): New variable.
-
-2000-11-04 13:08:02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-util.el (mm-subst-char-in-string): New function.
-	(mm-replace-chars-in-string): Use it.
-	* message.el (message-replace-chars-in-string): Use it.
-	* nnheader.el (nnheader-replace-chars-in-string): Use it.
-	* gnus-mh.el (mh-lib-progs): Shut up.
-
-2000-11-04  ShengHuo Zhu  <zsh@cs.rochester.edu>
-
-	* base64.el, md5.el: Moved to contrib directory.
-
-2000-11-04 11:13:56  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-search-article-forward): Don't move
-	the last article when search.
-
-2000-11-04 10:34:29  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnheader.el (nnheader-pathname-coding-system): Default iso-8859-1.
-	* nnmail.el (nnmail-pathname-coding-system): Ditto.
-
-2000-09-29  David Edmondson  <dme@thus.net>
-
-	* message.el (message-newline-and-reformat): Typo.
-
-2000-11-04 10:11:05  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2231.el (rfc2231-decode-encoded-string): Test mm-multibyte-p.
-
-2000-11-04 09:53:42  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nntp.el (nntp-decode-text): Delete bogus status lines.
-
-2000-11-03  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* message.el (message-font-lock-keywords): Match a final newline
-	to help font-lock's multiline support.
-
-2000-11-04 09:11:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnoo.el (nnoo-set): New function.
-
-2000-11-04  ShengHuo Zhu  <zsh@cs.rochester.edu>
-
-	* gpg.el, gpg-ring.el: Moved to contrib directory.
-
-2000-11-04  Simon Josefsson  <sj@extundo.com>
-
-	* nnimap.el (nnimap-split-inbox): Typo.
-
-2000-11-03 10:46:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-msg.el (gnus-msg-mail): Move it backwards.
-
-2000-11-03  Simon Josefsson  <sj@extundo.com>
-
-	* rfc2231.el (rfc2231-parse-qp-string): New function.
-	(require): rfc2047.
-
-	* mail-parse.el (mail-header-parse-content-type):
-	(mail-header-parse-content-disposition): Support invalid QP
-	encoded strings, by using `rfc2231-parse-qp-string'.
-
-2000-11-03 08:58:08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2231.el (rfc2231-parse-string): Decode when there is no number.
-	(rfc2231-decode-encoded-string): Typo "> X 1".
-	(rfc2231-encode-string): Insert the name of charset.
-	* mail-parse.el (mail-header-encode-parameter): Use RFC2231.
-
-2000-11-02 23:35:50  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-save-part): Return the filename.
-	* gnus-sum.el (gnus-summary-edit-article): Remove a hack.
-	* gnus-art.el (gnus-mime-save-part-and-strip): New function.
-	(gnus-mime-action-alist): Use it.
-	(gnus-mime-button-commands): Use it.
-	* mm-extern.el (mm-extern-local-file): Error when the file is gone.
-	(mm-inline-external-body): unwind-protect.
-
-2000-11-02 21:08:49  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-insert-mime-button): Show url.
-
-2000-11-02 19:51:19  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-generate-mime-1): Support external url.
-	* nnwarchive.el (nnwarchive-mail-archive-article): Use external url.
-
-2000-11-02 16:53:32  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-partial.el (mm-inline-partial): Buffer name with a leading space.
-	* mm-decode.el (mm-display-external): Ditto.
-	* mm-extern.el: New file.
-	* mm-decode.el (mm-inline-media-tests): Hook it up.
-	(mm-inlined-types): Inline message/external-body.
-
-2000-11-02  Simon Josefsson  <sj@extundo.com>
-
-	* gnus-art.el (gnus-visible-headers): Add Mail-Followup-To.
-
-	* message.el (message-get-reply-headers): Better handling when
-	Mail-Followup-To is very large.
-
-2000-11-02 13:27:56  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-uu.el (gnus-uu-post-news): Comment out the redundancy.
-	* gnus-art.el (gnus-article-edit-done):
-	* gnus-sum.el (gnus-summary-edit-article-done): Move line
-	counting code here.
-	* gnus-msg.el (gnus-setup-message): Remove a hack.
-
-2000-11-02 09:33:01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-newsgroup-variables): New variable.
-	(gnus-summary-mode): Make them local variables.
-	(gnus-set-global-variables): Globalize them.
-	(gnus-summary-exit): Kill them.
-
-2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
-
-	* rfc2047.el (rfc2047-encoded-word-regexp): Allow empty encoded
-	word.
-
-2000-11-01 10:07:13  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-display-part): Add to signed or encrypted.
-	gnus-article-wash-types.
-	* gnus-art.el (gnus-article-wash-status): Use them.
-
-2000-11-01 08:54:11  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-read-tag): Remove spaces and LF.
-
-2000-11-01 08:01:03  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-mailcrypt-encrypt): Use from and sign parameters.
-	* mml.el (mml-generate-mime-1): Add sender and recipients attributes.
-
-2000-11-01 07:39:24  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): New function.
-
-2000-10-31 22:06:13  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-article-charset): New variable.
-	(gnus-summary-display-article): Set it.
-	* gnus-msg.el (gnus-copy-article-buffer): Use it.
-	* gnus-art.el (gnus-article-mode): Make it local variable.
-
-2000-11-01 01:12:29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnultimate.el (nnultimate-create-mapping): Use nreverse.
-
-2000-10-31 23:45:31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnwfm.el: New file.
-
-	* nnweb.el (nnweb-replace-in-string): New function.
-
-2000-10-31 17:32:02  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el: Wrap gpg.el.
-	* gpg.el (gpg-verify): The last argument of apply is a list.
-	(gpg-encrypt): Add passphrase as a parameter.
-
-2000-10-31 17:28:45  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gpg.el: New file.
-	* gpg-ring.el: New file.
-
-2000-10-31 11:44:29  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-sum.el (gnus-summary-show-article): Fix the summary line.
-
-2000-10-31  Katsumi Yamaoka  <yamaoka@jpl.org>
-
-	* gnus-sum.el (gnus-summary-insert-line): Work with quoted
-	double-quote characters.
-	(gnus-summary-prepare-threads): Ditto.
-
-2000-10-31 08:36:03  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-art.el (gnus-mime-display-single): Forward line -1.
-	* mml.el (mml-read-tag): Don't skip the leading space.
-	* lpath.el (font-lock-set-defaults): Shut up.
-
-2000-10-31 00:04:35  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el: Fix doc. Remove bogus mml2015-setup.
-
-2000-10-30 23:37:07  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* qp.el (quoted-printable-encode-region): Replace leading - when
-	ultra safe.
-	* mml.el (mml-generate-mime-postprocess-function): Removed.
-	(mml-postprocess-alist): Removed.
-	(mml-generate-mime-1): Use ultra-safe when sign.
-	* mml2015.el (mml2015-fix-micalg): Uppercase.
-	(mml2015-verify): Insert LF.
-	(mml2015-mailcrypt-sign): Downcase; search backward.
-
-2000-10-16 11:36:52  Lars Magne Ingebrigtsen  <larsi@gnus.org>
-
-	* nnultimate.el (nnultimate-forum-table-p): Be a bit more
-	restrictive.
-	(nnultimate-table-regexp): New variable.
-	(nnultimate-forum-table-p): Use it.
-
-2000-10-30  Ed L Cashin  <ecashin@coe.uga.edu>
-	Trivial patch.
-
-	* gnus-sum.el (gnus-summary-expire-articles): Save point.
-
-2000-10-30 08:52:50  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml-sec.el (mml-pgpmime-sign-buffer): Use mml2015-sign.
-	(mml-pgpmime-encrypt-buffer): Use mml2015-encrypt.
-
-2000-10-30 08:38:12  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el: Shut up.
-
-2000-10-30 08:17:46  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus.el (gnus-server-browse-hashtb): Removed.
-	* gnus-group.el (gnus-group-prepare-flat-list-dead): Use gnus-active.
-	(gnus-group-insert-group-line-info): Use simplified method.
-	* gnus-srvr.el (gnus-browse-foreign-server): Use gnus-set-active.
-
-2000-10-30 01:52:40  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-util.el (gnus-union): Renamed from gnus-agent-union, and
-	moved here.
-	* gnus-agent.el (gnus-agent-fetch-headers): Use it.
-	* gnus-group.el (gnus-group-prepare-flat): Use it.
-	* gnus-topic.el (gnus-group-prepare-topics): Use it.
-
-2000-10-30 01:23:49  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-mode): Show menu in XEmacs.
-
-2000-10-30 00:49:33  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-srvr.el (gnus-server-browse-in-group-buffer): New variable.
-	(gnus-server-read-server-in-server-buffer): New function.
-	(gnus-browse-foreign-server): Browse in group buffer.
-	* gnus-group.el (gnus-group-prepare-flat): List group not in list.
-	(gnus-group-prepare-flat-list-dead): Use gnus-group-insert-group-line.
-	* gnus-topic.el (gnus-group-prepare-topics): Ditto.
-	* gnus.el (gnus-server-browse-hashtb): New variable.
-
-2000-10-29 22:31:40  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-open-nov): Use group.
-
-2000-10-29 17:23:15  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el: Add NOV. Set version to 2.0.
-	(nnfolder-nov-is-evil): If non-nil, nnfolder acts like 1.0.
-
-2000-10-29 10:35:08  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el (mml2015-mailcrypt-sign): Use mc-sign-generic.
-
-2000-10-29 09:42:05  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-srvr.el (gnus-browse-foreign-server): Show level mark.
-	(gnus-browse-unsubscribe-group): Unsubscribed is not killed.
-
-2000-10-29 08:28:58  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* nnfolder.el (nnfolder-read-folder): Don't goto point-min.
-
-2000-10-28 19:11:01  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-verify-function-alist): New variable.
-	(mm-verify-option): New variable.
-	(mm-decrypt-function-alist): Ditto.
-	(mm-decrypt-option): Ditto.
-	(mm-find-raw-part-by-type): New function.
-	(mm-possibly-verify-or-decrypt): New function.
-	(mm-dissect-multipart): Use it.
-	* mml2015.el (mml2015-fix-micalg): New function.
-	(mml2015-decrypt): Use new interface.
-	(mml2015-verify):  Use new interface.
-	(mml2015-setup): Make it bogus.
-
-2000-10-28 16:54:45  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml.el (mml-generate-mime-postprocess-function): Set to
-	mml-postprocess.
-	(autoload): Autoload mml2015 and mml-smime.
-	(mml-postprocess-alist): Use mml2015-sign and mml2015-encrypt.
-	* mml2015.el (mml2015-encrypt): New function.
-	(mml2015-sign): New function.
-	(mml2015-encrypt-function): New variable.
-	(mml2015-sign-function): New variable.
-	(mml2015-mailcrypt-encrypt): Use message-recipients.
-	(mml2015-setup): Don't set mml-generate-mime-postprocess-function.
-	* mml-smime.el (mml-smime-setup): Ditto.
-
-2000-10-28  Simon Josefsson  <sj@extundo.com>
-
-	* imap.el (imap-parse-resp-text-code): Workaround bug in Stalker
-	Communigate Pro 3.3.1 server.
-
-	* mml-sec.el (mml-smime-encrypt-buffer): Support certfiles stored
-	in buffers.
-	(mml-secure-dns-server): Removed.
-	(mml-secure-part-smime-encrypt-by-dns): Use DIG interface.  Don't
-	write certificates to files.
-
-	* smime.el (smime-dns-server): New variable.
-	(smime-mail-to-domain):
-	(smime-cert-by-dns): New functions.
-
-	* dig.el: New file.
-
-2000-10-28 10:09:41  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* message.el (message-options): New variable.
-	(message-options-set-recipient): New function.
-	(message-send): Use them.
-	* gnus-int.el (gnus-request-replace-article): Use them.
-	(gnus-request-accept-article): Ditto.
-	* mml.el (mml-preview): Use them.
-	* gnus-sum.el (gnus-summary-edit-article): Use them.
-
-	* message.el (message-options-get): New function.
-	(message-options-get): New function.
-	* rfc2047.el (rfc2047-encode-message-header): Use them.
-	* mm-bodies.el (mm-encode-body): Use them.
-
-2000-10-28  Simon Josefsson  <sj@extundo.com>
-
-	* nnimap.el (nnimap-retrieve-which-headers):
-	(nnimap-request-article-part): Quote message-id.
-
-	* smime.el (smime-CA-directory): Rename from `smime-CAs'.
-	(smime-CA-file): New variable.
-	(smime-call-openssl-region): Don't error.
-	(smime-sign-region): Return result value.
-	(smime-encrypt-region): Ditto.
-	(smime-verify-region): New function.
-	(smime-decrypt-region): Ditto.
-	(smime-verify-buffer): Ditto.
-	(smime-decrypt-buffer): Ditto.
-
-	* mml.el: Require mml-sec.
-	(mml-generate-mime-1): Support "sign" and "encrypt" MML tags.
-	(mml-mode-map): Add "sign" and "encrypt" maps.
-	(mml-menu): Add security menu.
-	(mml-preview): Use generate-new-buffer.
-
-	* mml-sec.el: New file.
-
-2000-10-28 03:43:03  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mm-decode.el (mm-find-part-by-type): Move it here.
-	* mml.el (mml-postprocess): Move it here.
-	(mml-postprocess-alist): Move it here. Merge them.
-
-2000-10-28 03:38:39  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* rfc2047.el (rfc2047-encode-message-header): Make sure no
-	unencoded stuff in the header.
-
-2000-10-28 02:40:46  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* gnus-group.el (gnus-group-listed-groups): New variable.
-	(gnus-group-list-option): New variable.
-	(gnus-group-list-limit-map): New keymap.
-	(gnus-group-list-flush-map): New keymap.
-	(gnus-group-list-plus-map): New keymap.
-	(gnus-group-prepare-logic): New function.
-	(gnus-group-prepare-flat): Merge with
-	gnus-group-prepare-flat-predicate. Use gnus-group-listed-groups.
-	(gnus-group-prepare-flat-list-dead): Ditto.
-	(gnus-group-list-matching): Use gnus-group-prepare-function.
-	(gnus-group-list-dormant): Ditto.
-	(gnus-group-list-cached): Ditto.
-	(gnus-group-listed-groups): New function.
-	(gnus-group-list-limit): New function.
-	(gnus-group-list-flush): New function.
-	(gnus-group-list-plus): New function.
-	* gnus-topic.el (gnus-group-prepare-topics): Accept predicate.
-	(gnus-topic-prepare-topic): Ditto.
-
-2000-10-27  Paul Jarc  <prj@po.cwru.edu>
-
-	* message.el (message-insert-to, message-get-reply-headers):
-	(message-reply, message-followup): Mail-{Followup,Reply}-To.
-
-2000-10-27 19:45:58  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* mml2015.el: New file.
-	* smime.el: New file.
-	* mml-smime.el: New file.
-
-2000-10-27 19:42:12  ShengHuo ZHU  <zsh@cs.rochester.edu>
-
-	* ChangeLog: Moved to ChangeLog.1.
-
 2000-10-27  Jason Rumney  <jasonr@gnu.org>
 
 	* gnus-art.el (gnus-signature-face): Use italic on any frame that
@@ -29042,3 +10102,5 @@
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; End:
+
+;;; arch-tag: bc9bf70e-b352-4a38-9dec-edce4b023b22
Index: gnus/lisp/ChangeLog.2
diff -u /dev/null gnus/lisp/ChangeLog.2:7.5
--- /dev/null	Sun May  1 19:04:59 2005
+++ gnus/lisp/ChangeLog.2	Sun Apr 10 06:21:10 2005
@@ -0,0 +1,18930 @@
+2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Gnus v5.10.6 is released.
+
+2004-01-04  Kai Grossjohann  <kai@emptydomain.de>
+
+	* gnus-sum.el (gnus-summary-print-article): Doc fix.
+
+2004-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+2004-01-04 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Gnus v5.10.5 is released.
+
+2004-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-face-from-file): Message 9.
+
+2004-01-03  Romain FRANCOISE  <romain@orebokech.com>
+
+	* gnus-fun.el (gnus-face-from-file): Use gnus-message.
+
+2004-01-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-mid-or-mail-heuristic): Treat Gmane
+	addresses specially.  Fix returned value and messages.
+
+	* mm-decode.el (mm-enable-external): New variable.
+	(mm-display-part): Use it.
+	(mm-display-external): Fix message in case of nil handle.
+
+	* Update copyright for several files.
+
+	* spam-report.el (spam-report-gmane): Adjust verbosity.
+	Delete trailing whitespace.  Update copyright.
+
+	* spam.el: Fix many (but not all) checkdoc complaints.
+	Delete trailing whitespace.
+
+	* message.el (message-header-synonyms): Defcustom.
+	(message-get-reply-headers): Catch `Original-To'.
+	(message-carefully-insert-headers): Added comment.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Improved "Washing" menu.
+
+2004-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-select-newsgroup): Use cat.
+
+	* gnus-agent.el (gnus-agent-cat-enable-undownloaded-faces): New
+	cat.
+
+	* gnus.el (gnus-user-agent): Moved here.
+
+	* gnus-msg.el (gnus-user-agent): Moved from here.
+
+	* gnus.el (gnus-version-number): Bump.
+
+2004-01-03 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Gnus v5.10.4 is released.
+
+2004-01-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.el (gnus-mode-line-buffer-identification): Show version in
+	help-echo.
+	(gnus-read-group): Allow most group names.  Changed warning.
+
+2004-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-dired.el (gnus-dired-mode-map): Change keymaps.
+
+2004-01-02  Arne J,Ax(Brgensen  <arne@arnested.dk>
+
+	* smime.el (smime-crl-check): Doc fix.
+
+2004-01-02  Edwin Steiner  <edwin.steiner@gmx.net>
+
+	* gnus-nocem.el (gnus-nocem-enter-article): Use the real group
+	hashtb (tiny patch).
+
+2004-01-02  Kai Grossjohann  <kai@emptydomain.de>
+
+	* nnml.el (nnml-save-mail): Grok compressed articles.  From
+	Michael Albinus <Michael.Albinus@alcatel.de>.
+
+2004-01-02  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-copy-or-move-routine): use spam-list-articles
+	(spam-list-articles): rewritten to only check a mark once per
+	invocation
+
+2004-01-01  Simon Josefsson  <jas@extundo.com>
+
+	* mml-sec.el (mml-default-encrypt-method)
+	(mml-default-sign-method): Defcustom.
+
+2003-12-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mml.el (mml-generate-mime-1): Remove extra ).
+
+	* gnus-group.el (gnus-group-set-current-level): Signal errors on
+	topic lines.
+	(gnus-group-set-current-level): Fix fix.
+
+2003-12-31  Jeremy Maitin-Shepard  <jbms@attbi.com>
+
+	* mml.el (mml-generate-mime-1): Use mml-compute-boundary (tiny
+	change).
+
+2003-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-group.el: Removed `(when t ...)' around `gnus-define-keys'.
+	(gnus-group-group-map): Added `gnus-group-read-ephemeral-group'
+	(already in previous commit inadvertently).
+	(gnus-group-make-menu-bar): Added `gnus-group-read-ephemeral-group'.
+	(gnus-group-read-ephemeral-group): Made interactive.
+
+	* gnus-score.el (gnus-score-find-trace): Added comment on sync
+	with `gnus-score-edit-file-at-point'.
+
+	* gnus-logic.el (gnus-score-advanced): Ditto.
+
+	* gnus-score.el (gnus-score-edit-file-at-point): Fix for
+	advanced scoring.
+
+2003-12-30  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-score.el (gnus-score-edit-file-at-point): Use
+	gnus-point-at-*, for portability.
+
+2003-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-treat-body-boundary): Fix doc-string and
+	custom type.
+	(gnus-button-mid-or-mail-regexp): Don't be too restrictive.
+	Suggested by Felix Wiemann <Felix.Wiemann@gmx.net>.
+	(gnus-button-alist): Added "M-x ... RET" and "mid:" buttons.
+	Added comments about relevant RFCs.
+
+	* gnus-sum.el (gnus-summary-mode): Untabify doc-string.
+	(gnus-summary-goto-article): Allow `%40'.
+	(gnus-summary-refer-article): Convert `%40' to `@'.
+
+2003-12-30  Simon Josefsson  <jas@extundo.com>
+
+	* smime.el (smime-crl-check): New.
+	(smime-verify-region): Use it.  From Arne J,Ax(Brgensen
+	<arne@arnested.dk> in <87llpk9v5q.fsf@seamus.arnested.dk> (tiny
+	change).
+
+2003-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-score.el (gnus-score-edit-file-at-point): Consider the
+	whole match element.  From Karl Pfl,Ad(Bsterer <sigurd@12move.de>.
+	(gnus-score-find-trace): Use it.  Added `f' and `t' commands,
+	added quick help.  With some suggestions from Karl Pfl,Ad(Bsterer
+	<sigurd@12move.de>.
+
+	* gnus-util.el (gnus-emacs-version): Added doc-string.
+
+	* mml.el (mml-minibuffer-read-disposition): New function.
+	(mml-attach-file): Use it.
+	(mml-preview): Added MIME preview to gnus-buffers.
+
+2003-12-30  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Add ellipses.
+
+2003-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-start.el (gnus-get-unread-articles): Inline gnus-server-get-method.
+	(gnus-get-unread-articles): Cache methods.
+	(gnus-get-unread-articles-in-group): Indent.
+
+	* gnus.el (gnus-version-number): Bump.
+	(gnus-secondary-method-p): Extend servers to methods before comparing.
+	(gnus-secondary-method-p): Revert.
+
+2003-12-30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Gnus v5.10.3 is released.
+
+2003-12-29  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-agent.el (gnus-agentize): Improve auto-agentizing logic.
+	Suggested by Steinar Bang <sb@dod.no>.
+	(gnus-agent-auto-agentize-methods): Customize.
+
+2003-12-29  Kevin Greiner <kgreiner@xpediantsolutions.com>
+	* gnus.el (gnus-server-to-method): Fixed bug in 2003-12-22
+	check-in.
+
+2003-12-28  Adrian Lanz  <lanz@fowi.ethz.ch>
+
+	* mail-source.el (mail-source-fetch-imap): Prevent storing of
+	identical entries for imap mail sources, when retrieving mail
+	messages from an imap server within the same Gnus session several
+	times (tiny change).
+
+2003-12-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-view.el (mm-text-html-washer-alist): Use
+	mm-inline-wash-with-stdin for w3m-standalone.
+
+	* mm-decode.el (mm-text-html-renderer): Add w3m-standalone.
+
+	* mml1991.el (mml1991-pgg-encrypt): Decode according to CTE before
+	encrypting.
+
+2003-12-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* mml1991.el (mml1991-pgg-sign): Use unibyte when re-encoding.
+	From Ivan Boldyrev <boldyrev@uiggm.nsc.ru> (tiny change).
+
+2003-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el: Add an advice to byte-optimize-form-code-walker to
+	avoid the warning ``...called for effect'' for the pop form when
+	running Emacs 21.3.
+
+2003-12-26  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-bodies.el (mm-body-encoding): Don't use 7bit if the body
+	contains "^From " and mm-use-ultra-safe-encoding is true.
+
+2003-12-25  Jesper Harder  <harder@ifa.au.dk>
+
+	* mml1991.el (mml1991-pgg-sign): Encode and decode according to
+	CTE header.  Don't insert gpg output as unibyte.
+
+2003-12-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Remove display-time-event-handler and open-ssl-stream;
+	add delete-extent for Emacs; rearrange bindings assuming w3 may
+	not be available and XEmacs without the file-coding feature may be
+	used.
+
+2003-12-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el (dgnushack-compile): Increase the value for
+	max-specpdl-size when compiling Gnus with Emacs 20.
+
+2003-12-22  Kevin Greiner <kgreiner@xpediantsolutions.com>
+	* gnus-int.el (gnus-open-server): Fixed the server status such
+	that an agentized server, when opened offline, has a status of
+	offline.  Also fixes bug whereby the agent's backend was called
+	twice to open each server.
+
+	* gnus-start.el (gnus-get-unread-articles-in-group): Autoload
+	gnus-agent-possibly-alter-active rather than inline to resolve
+	compiler warnings.
+
+	* gnus.el (gnus-server-to-method): Added fallback of iterating
+	over gnus-newsrc-alist to resolve names of foreign servers.
+	Should fix recent agent bug.
+
+2003-12-22  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-score.el (gnus-summary-lower-score)
+	(gnus-summary-increase-score): Mention symbolic prefix in the
+	doc-string.  Suggested by Karl Pfl,Ad(Bsterer <sigurd@12move.de>.
+
+2003-12-21  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-agent.el (gnus-agent-read-agentview): Use
+	car-less-than-car.
+
+2003-12-20  Artem Chuprina <ran@ran.pp.ru>  (tiny change)
+
+	* message.el (message-yank-buffer): Bind message-reply-buffer to
+	a buffer rather than a string.
+
+2003-12-19  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-summary-followup): Correct documentation.
+
+2003-12-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-inews-add-send-actions): `yanked' can be a
+	list of lists.  Reported by Dmitri Paduchikh <paduch@imm.uran.ru>.
+
+2003-12-18  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mm-url.el (mm-url-insert-file-contents-external)
+	(mm-url-insert-file-contents): Added doc-strings.  Autoload.
+
+2003-12-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-cus.el (defvar): defvar
+	gnus-agent-cat-disable-undownloaded-faces.
+
+2003-12-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-forward-subject-name-subject): Use
+	gnus-extract-address-components instead of
+	mail-header-parse-address because it may be called with non-ascii
+	text.
+
+2003-12-16  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* nnmail.el (nnmail-split-fancy): The widget now supports
+	restrictions.
+
+2003-12-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnheader.el (nnheader-find-etc-directory): Find the newest one.
+
+2003-12-16  Simon Josefsson  <jas@extundo.com>
+
+	* sha1-el.el (autoload): Don't use ignore-errors.
+	(sha1-use-external): Use condition-case.  Suggested by Katsumi
+	Yamaoka <yamaoka@jpl.org>.
+
+2003-12-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnmail.el (nnmail-split-fancy): Make it customizable with Emacs
+	20 as well.
+
+2003-12-15  Simon Josefsson  <jas@extundo.com>
+
+	* sha1-el.el (autoload): Ignore errors for
+	executable-find. (XEmacs ecrypto does not require sh-script where
+	executable.el is located.)
+	(sha1-use-external): Likewise.
+
+	* sha1-el.el (sha1): Add defgroup.
+	(sha1-maximum-internal-length, sha1-program, sha1-use-external)
+	(sha1-program): Use 'sha1sum' from GNU CoreUtils instead of OpenSSL.
+	(sha1): Autoload.
+
+	* nndraft.el (nndraft-request-move-article): Copy definition of
+	nnmh-request-move-article instead of calling it, because the nnmh
+	version uses nnmh-request-article which isn't the same as the
+	nndraft version.
+
+2003-12-13  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: added some gnus-registry autoloads
+	(spam-split-symbolic-return): makes spam-split return 'spam
+	instead of the value of spam-split-group when spam is detected
+	(spam-split-symbolic-return-positive): makes spam-split return
+	'ham instead of nil when ham is detected
+	(spam-autodetect-recheck-messages): tells spam.el whether it
+	should recheck all messages in a group, or only the unseen ones
+	(spam-split-last-successful-check): spam-split will set this to
+	the last successful check; this was seen as a cleaner approach
+	than returning a cell like '(spam spam-use-bogofilter)
+	(spam-list-of-checks): documentation appended
+	(spam-split): accomodate the spam-split-symbolic-return and
+	spam-split-symbolic-return-positive variables
+	(spam-find-spam): new function called when the summary is built
+	(spam-log-registered-p): checks if a ham or spam registration has
+	already been done for an article
+	(spam-check-regex-headers, spam-check-blackholes, spam-check-BBDB)
+	(spam-check-ifile, spam-check-stat, spam-check-whitelist)
+	(spam-check-blacklist, spam-check-bogofilter-headers)
+	(spam-check-spamoracle): respect the spam-split-symbolic-return
+	and spam-split-symbolic-return-positive variables
+	(spam-initialize): add spam-find-spam to gnus-summary-prepare-hook
+	(spam-unload-hook): remove spam-find-spam from
+	gnus-summary-prepare-hook
+
+	* gnus.el (spam-autodetect, spam-autodetect-methods): new
+	configuration items for spam autodetection
+
+2003-12-12  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-draft.el (gnus-draft-mode-map): Bind `e' to
+	`gnus-draft-edit-message'.  We still have `B w' for
+	`gnus-summary-edit-article'.
+
+2003-12-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnheaderxm.el (nnheader-xmas-run-at-time): Use a simple function
+	definition if there is not a bug in start-itimer.
+
+	* pgg.el (pgg-run-at-time): Ditto.
+
+2003-12-11  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-possibly-alter-active): New Function.
+	(gnus-agent-regenerate-group): When necessary, alter the group's
+	active range to include articles newly recognized as being
+	downloaded.
+	(gnus-agent-regenerate): Removed code that updated the agent's
+	active file as the new gnus-agent-possibly-alter-active function
+	obsolesced it.
+
+	* gnus-cus.el (gnus-agent-customize-category): Added missing
+	agent-disable-undownloaded-faces parameter.
+
+	* gnus-start.el (gnus-activate-group): Backed out my 2003-11-29
+	patch as it was too late at adjusting the active range.
+	(gnus-get-unread-articles-in-group): Added call to new
+	gnus-agent-possibly-alter-active to adjust the active range.
+
+2003-12-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-get-reply-headers): Narrow to headers.
+
+2003-12-10  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-disable-spam-split-during-ham-respool): new
+	variable.  From lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly)
+	(spam-ham-copy-or-move-routine): respect
+	spam-disable-spam-split-during-ham-respool.  From
+	lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly)
+	(spam-split-disabled): new variable.  From
+	lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly)
+	(spam-split): respect spam-split-disabled.  From
+	lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly)
+
+2003-12-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnheaderxm.el (nnheader-xmas-run-at-time): Make it work
+	correctly for the first argument.
+
+	* pgg.el (pgg-run-at-time): New function.
+	(pgg-add-passphrase-cache): Use it.
+
+2003-12-10  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-parse.el (pgg-decode-packets): Rewrite to handle corrupt
+	input.
+	(pgg-decode-armor-region): Don't parse packet if decoding fail.
+
+2003-12-09  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-bogofilter): run in the correct buffer.
+	From lorentey@elte.hu (L,Bu(Brentey K,Ba(Broly).
+	(spam-bogofilter-database-directory): correct customization
+	group.  From Xavier Maillard <zedek@gnu-rox.org>.
+
+2003-12-09  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* nnmail.el (nnmail-lazy, nnmail-split-fancy): New widgets.
+	(nnmail-split-fancy): Use it.
+
+2003-12-08  Joel Ray Holveck <joelh@piquan.org>  (tiny change)
+
+	* gnus-sum.el (gnus-summary-save-parts-1): Consider the "name"
+	parameter of Content-Type.
+
+2003-12-08  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el: Revert 2003-12-03 change, instead, provide the
+	compiler macro for rmail-select-summary if rmail is not available,
+	and bind rmail-summary-displayed and rmail-maybe-display-summary
+	in order to silence the compiler even if tm is not available.
+
+2003-12-08  Simon Josefsson  <jas@extundo.com>
+
+	* flow-fill.el (fill-flowed-encode-tests, fill-flowed-test): Add.
+
+2003-12-08  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-extended-version): Bind float-output-format to
+	nil.
+
+2003-12-08  Simon Josefsson  <jas@extundo.com>
+
+	* mml-smime.el (mml-smime-sign): Replace CRLF with LF in OpenSSL
+	output.  Reported by Arne J,Ax(Brgensen <arne@arnested.dk>.
+
+2003-12-07  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-gpg.el (pgg-gpg-recipient-arg): Add.
+	(pgg-gpg-encrypt-region): Use it.  Tiny patch from Lloyd Zusman
+	<ljz@asfast.com>.
+	(pgg-gpg-recipient-argument): Doc fix.  Renamed fro p-g-r-a.
+	(pgg-gpg-encrypt-region): Update.
+
+2003-12-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* spam.el (spam-check-spamoracle, spam-spamoracle-learn): Don't
+	use = or zerop to test the return value of call-process, because
+	it can be a string.
+
+	* mail-source.el (mail-source-fetch-with-program): do.
+
+	* mailcap.el (mailcap-viewer-passes-test): do.
+
+	* gnus-uu.el (gnus-uu-treat-archive, gnus-uu-post-encode-mime)
+	(gnus-uu-post-encode-file): do.
+
+	* gnus-soup.el (gnus-soup-pack, gnus-soup-unpack-packet): do.
+
+	* message.el (message-fix-before-sending): Fix detection of
+	non-printables.  Don't replace unencodable utf-8.
+
+2003-12-05  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-url.el (mm-url-predefined-programs): Add user-agent for wget.
+	(mm-url-insert-file-contents-external): Signal an error if program
+	fails.
+
+2003-12-04  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam-report.el (spam-report-gmane): iterate over articles
+	instead of a single one; remove interactive usage
+
+2003-12-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dns.el: Fix misplaced eval-when-compile.
+
+	* gnus-util.el: Require alist and provide tm-view when compiling
+	with XEmacs.
+
+2003-12-03  Steve Youngs  <sryoungs@bigpond.net.au>
+
+	* gnus-xmas.el: Add autoloads for macros defined in gnus.el.
+	From Jerry James <james@xemacs.org>.
+
+	* gnus-util.el: Get rmail definitions when compiling.
+	From Jerry James <james@xemacs.org>.
+
+	* dns.el: Require gnus-xmas at compile time instead of trying to
+	autoload `gnus-xmas-open-network-stream' because it wasn't picking
+	up the macro.
+	From Jerry James <james@xemacs.org>.
+
+2003-12-01  Kevin Greiner <kgreiner@xpediantsolutions.com>
+	* gnus-agent.el (gnus-agent-consider-all-articles): Updated
+	docstring.
+	(gnus-predicate-implies-unread, gnus-predicate-implies-unread-1):
+	Fixed implementation such that the predicate `true' no longer
+	evaluates to t.
+
+2003-12-01  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-bogofilter): check the bogofilter headers
+	AFTER the save-excursion scope is over.  From Adrian Lanz
+	<lanz@fowi.ethz.ch>.
+	(spam-fetch-field-message-id-fast): doc fix
+
+2003-12-01  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-agent.el (gnus-agent-expire-days): Doc fix.
+
+2003-11-30  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-agent.el (gnus-agent-expire-group-1): Bind message-log-max
+	when messaging "X % completed" to inhibit logging them to the
+	message buffer.
+	(gnus-agent-expire-group-1): Mention group name in messages.
+	(gnus-agent-expire-group-1): Only print a message for an article
+	when there actually was something done to it.
+
+	* mm-util.el (mm-enable-multibyte): Call set-buffer-multibyte with
+	'to argument.  Fixes something or other in Emacs 22, and is
+	backwards compatible.  From Kenichi Handa <handa@m17n.org>.
+
+	* gnus-agent.el (gnus-agent-expire-unagentized-dirs): Custom fix.
+
+2003-11-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-covered-methods): Remove nil methods.
+
+2003-11-29  Kevin Greiner <kgreiner@xpediantsolutions.com>
+	* gnus-start.el (gnus-activate-group): The active range of the
+	group must include the articles known to the agent.
+
+	* gnus.el (gnus-agent-method-p): Accept a server name as the
+	method being tested.
+
+2003-11-29  Alexander Kreuzer <alex@freesources.org>  (tiny change)
+
+	* nnrss.el (nnrss-check-group): Set xml when nnrss-use-local is t.
+
+2003-11-29  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-group.el (gnus-group-make-menu-bar): Add
+	gnus-group-make-rss-group.
+
+2003-11-28  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el: Added custom-manual links to all variables that have
+	an index entry in the message manual.
+	(message-generate-headers-first): Fixed doc-string.
+
+2003-11-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-summary-yank-message): Don't bind
+	gnus-display-mime-function to nil so that non-ascii text is
+	decoded and attachments are not shown.
+
+	* message.el (message-cite-original-without-signature): Replace
+	the value of message-reply-headers with the yanked article since
+	it may be a different article from the original.
+	(message-cite-original): Ditto.
+
+2003-11-25  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-blacklist-ignored-regexes): new variable, so
+	blacklisting can ignore certain regular expressions (e.g. the
+	user's e-mail address)
+	(spam-bogofilter-spam-strong-switch,
+	spam-bogofilter-ham-strong-switch): options used when articles are
+	already registered as the opposite classification
+	(spam-old-ham-articles, spam-old-spam-articles): lists of ham and
+	spam articles, generated when a summary buffer is entered, and
+	consulted when it's exited so we know what articles are changing
+	state from spam to ham or vice-versa
+	(spam-xor): everyone needs a little convenience
+	(spam-list-of-processors): lookup table for old-style spam/ham
+	exits processors
+	(spam-group-processor-p): support old-style and new-style spam/ham
+	exit processors
+	(spam-group-processor-multiple-p): handle new-style spam/ham exit
+	processors
+	(spam-summary-prepare): use spam-old-{ham,spam}-articles; change
+	logic to iterate over list of processors instead of manual
+	individual lookup, unregister any articles that change from ham to
+	spam or vice-versa in the course of the summary buffer usage; use
+	the new spam-register-routine
+	(spam-ham-copy-routine, spam-ham-move-routine,
+	spam-mark-spam-as-expired-and-move-routine): check that the list
+	of groups is not nil, because apply doesn't like to apply a
+	function across nil
+	(spam-registration-functions): variable for looking up spam/ham
+	registration/unregistration functions based on a spam-use-* symbol
+	(spam-classification-valid-p, spam-process-type-valid-p)
+	(spam-registration-check-valid-p)
+	(spam-unregistration-check-valid-p): convenience functions
+	(spam-registration-function, spam-unregistration-function): look
+	up the registration/unregistration function based on a
+	classification and the check (spam-use-* symbol)
+	(spam-list-articles): generate list of spam/ham articles from a
+	given list of articles
+	(spam-register-routine): do the heavy work of registering and
+	unregistering articles, using all the articles in the group or
+	specific ones as needed
+	(spam-generic-register-routine): removed, no longer used
+	(spam-log-unregistration-needed-p, spam-log-undo-registration):
+	handle article registration/unregistration with a given spam/ham
+	processor and group
+	(BBDB, ifile, spam-stat, blacklists, whitelists, spam-report,
+	bogofilter, spamoracle): rewrite registration/unregistration
+	functions to take a list of articles and the unregister option.
+	Much hilarity ensues.
+	(spam-initialize): spam-stat-maybe-{save,load} already respect spam-use-stat
+	(spam-stat-register-ham-routine, spam-stat-register-spam-routine):
+	don't load and save unnecessarily
+
+	* spam-stat.el (spam-stat-dirty): new variable, set when the stats
+	database is modified
+	(spam-stat-buffer-is-spam, spam-stat-buffer-is-non-spam)
+	(spam-stat-buffer-change-to-spam, spam-stat-to-hash-table)
+	(spam-stat-buffer-change-to-non-spam): set spam-stat-dirty when
+	needed
+	(spam-stat-save): respect spam-stat-dirty, unless the force
+	parameter is specified
+	(spam-stat-load): clear spam-stat-dirty
+
+	* gnus.el (gnus-install-group-spam-parameters): marked the
+	old-style exit processors as obsolete in the docs, added the
+	new-style exit processors while the old ones are still allowed
+
+
+2003-11-25  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (article-hide-boring-headers): Don't hide Reply-To
+	unless its list of addresses is identical to From.
+
+2003-11-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el (mapc): Add the compiler macro for Emacs 20.
+
+2003-11-24  Kevin Greiner <kgreiner@xpediantsolutions.com>
+	* gnus-srvr.el (gnus-server-insert-server-line): The server names
+	used in gnus-agent are different (for example, the native server
+	uses the alias "native") from the names in gnus-srvr.
+	Compensating by adding a second text property storing the name
+	expected by gnus-agent.
+	(gnus-server-named-server): New function.
+	* gnus-agent.el (gnus-agent-remove-server, gnus-agent-add-server):
+	No longer expect an argument as it was ignored anyway.  Uses the
+	new gnus-server-named-server function to get gnus-agent compatible
+	names from the server buffer.
+
+2003-11-20  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus.el (gnus-agent-covered-methods): Documented use of
+	named servers, not methods, to identity agentized groups.
+	Users may now change their server configurations without having
+	the server become "unagentized".
+	(gnus-agent-covered-methods): Removed from gnus-variable-list to
+	avoid storing two copies of gnus-agent-covered-methods, one in
+	.newsrc.eld and the other in agent/lib/servers.
+	(gnus-server-to-method): Do not cache server for the nil method.
+	(gnus-method-to-server): New function.  Associate named server
+	with all, even foreign, methods.
+	(gnus-agent-method-p, gnus-agent-method-p-cache): Incorporated
+	simple last-response cache to offset performance lose of having to
+	always convert methods to named servers.
+	* gnus-agent.el (gnus-agent-expire-days): Removed obsolete
+	documentation.
+	(gnus-agentize, gnus-agent-add-server, gnus-agent-remove-server):
+	Modified to support new definition of gnus-agent-covered-method.
+	(gnus-agent-read-servers): Rewritten to convert old method data
+	into server names.
+	(gnus-agent-read-servers-validate)
+	(gnus-agent-read-servers-validate-native): New functions.
+	(gnus-agent-write-servers): No longer use gnus-method-simplify as
+	it failed to simplify foreign methods.
+	(gnus-agent-close-connections, gnus-agent-synchronize-flags)
+	(gnus-agent-possibly-synchronize-flags, gnus-agent-fetch-session)
+	(gnus-agent-regenerate): Uses new gnus-agent-covered-methods
+	function as gnus-agent-covered-methods variable no longer provides
+	methods.
+	(gnus-agent-covered-methods): New function
+	(gnus-agent-expire-group, gnus-agent-expire): Final message will,
+	if gnus-verbose is greater than 4, report statistics of NOV
+	entries and files deleted as well as total bytes recovered.
+	(gnus-agent-expire-done-message): New function
+	(gnus-agent-unread-articles): Bug fix.  No longer drops last
+	unread article onto read list.
+	(gnus-agent-regenerate-group): Changed prompt to use typical
+	style.
+	(gnus-agent-group-covered-p): Rewrote to internally use
+	gnus-agent-method-p.
+	* gnus-int.el (gnus-start-news-server): Partially convert old
+	gnus-agent-covered-methods to new format so that gnus-open-server
+	functions correctly.
+	* gnus-srvr.el (gnus-server-insert-server-line): Replaced
+	gnus-agent-covered-methods with gnus-agent-method-p.
+	* gnus-start.el (gnus-clear-system): Added
+	gnus-agent-covered-methods to compensate for removing it from
+	gnus-variable-list.
+	(gnus-setup-news): Complete conversion of old
+	gnus-agent-covered-methods to new format so that secondary and
+	foreign servers can be correctly opened.
+
+2003-11-20  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-copy-or-move-routine): add respooling
+	support, not working well yet
+
+	* gnus.el (ham-process-destination): make 'respool option the
+	only one, so it can't be chosen together with other groups
+
+2003-11-19  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-track-extra): make it a set of
+	choices instead of a boolean
+	(gnus-registry-track-subject-p, gnus-registry-track-sender-p):
+	new convenience functions
+	(gnus-registry-split-fancy-with-parent): use convenience
+	functions, also don't return extra tracking info if sender or
+	subject is found in more than one groups
+	(gnus-registry-add-group): use new convenience functions to
+	decide if sender and subject should be tracked
+
+	* gnus.el (ham-process-destination): add 'respool option,
+	unused by spam.el yet
+
+2003-11-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-score.el (gnus-decay-score): Return a surely smaller value
+	than the argument in XEmacs.
+
+2003-11-18  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-insert-to): Don't use `gnus-message'.
+	(message-header-synonyms): New variable.
+	(message-carefully-insert-headers): Use it (check for synonyms).
+	Added doc-string.  From Sam Steingold <sds@gnu.org>.
+
+2003-11-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* html2text.el (html2text-remove-tags): Remove the tag in a
+	simpler way to avoid inflooping.
+
+2003-11-17  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-gssapi-auth-p): Don't check capability (some
+	servers remove AUTH=GSSAPI from capability response returned after
+	successful authentication).
+
+2003-11-16  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.el (gnus-getenv-nntpserver): Fix regexp and simplify.
+	Reported by Artem Chuprina <ran@ran.pp.ru>.
+
+2003-11-14  Simon Josefsson  <jas@extundo.com>
+
+	* mm-util.el (mm-charset-synonym-alist): Map BIG5-HKSCS to BIG5
+	when it isn't available.
+
+2003-11-13  Alex Schroeder  <alex@gnu.org>
+
+	* nnrss.el (nnrss-check-group): Use dc:contributor if neither
+	rss:author nor dc:creator is provided.
+
+2003-11-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-dissect-buffer): Save start="<id>" value
+	contained in Content-Type header of multipart/related messages.
+
+	* mm-view.el (mm-w3m-cid-retrieve-1): New function.
+	(mm-w3m-cid-retrieve): Use it.
+
+	* mml.el (mml-generate-mime-1): Add start="<id>" to Content-Type.
+	(mml-insert-mime-headers): Insert Content-ID header.
+	(mml-insert-mml-markup): Insert start="<id>" value.
+
+2003-11-12  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* nnml.el (nnml-request-accept-article): pass sender to
+	nnmail-cache-insert
+
+	* nnmh.el (nnmh-request-accept-article): pass sender to
+	nnmail-cache-insert
+
+	* nnmbox.el (nnmbox-request-accept-article): pass sender to
+	nnmail-cache-insert
+
+	* nnfolder.el (nnfolder-request-accept-article): pass sender to
+	nnmail-cache-insert
+
+	* nnbabyl.el (nnbabyl-request-accept-article): pass sender to
+	nnmail-cache-insert
+
+	* nnmail.el (nnmail-cache-insert): accept sender parameter and
+	pass it to the nnmail-spool-hook
+
+	* gnus-registry.el (gnus-registry-track-extra): clarify doc
+	(gnus-registry-action): add sender lexical var and pass it to
+	gnus-registry-add-group
+	(gnus-registry-spool-action): take a sender parameter, pass to
+	gnus-registry-add-group
+	(gnus-registry-split-fancy-with-parent): trace by sender in
+	addition to subject
+	(gnus-registry-fetch-sender-fast): new function
+	(gnus-registry-add-group): accept sender parameter
+
+2003-11-11  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-copy-routine, spam-ham-move-routine)
+	(spam-mark-spam-as-expired-and-move-routine): allow for the
+	groups to be a list of a single item
+
+	* gnus.el (gnus-install-group-spam-parameters):
+	ham-process-destination and spam-process-destination allow lists now
+
+2003-11-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-insert-to): Do error out when the user
+	requested no Cc.  Don't insert empty To.  Can be added to
+	`message-setup-hook' now.  From Sam Steingold <sds@gnu.org>.
+	(message-mode-field-menu): Moved some entries, added
+	`message-insert-wide-reply'.
+	(message-change-subject): Fixed comment.
+
+2003-11-10  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-def.el (pgg-encrypt-for-me): Change default from nil to t.
+
+2003-11-09  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-gpg.el (pgg-gpg-encrypt-region): Cache passphrase under hex
+	key id too (for decryption).
+	(pgg-gpg-sign-region): Likewise.
+
+2003-11-09  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-gpg.el (pgg-gpg-all-secret-keys): New variable.
+	(pgg-gpg-lookup-all-secret-keys): New function.
+	(pgg-gpg-select-matching-key): Likewise.
+	(pgg-gpg-decrypt-region): Use new functions.  From Satyaki Das
+	<satyakid@stanford.edu>.
+
+2003-11-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* nnmail.el (nnmail-cache-insert): make sure that the
+	nnmail-spool-hook is called with a valid newsgroup name (though
+	it may be wrong)
+
+	* gnus.el (gnus-group-real-prefix): return nil if group is not a
+	string, instead of triggering an error
+
+2003-11-06  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.el (gnus-group-guess-full-name-from-command-method): new	function
+
+	* gnus-registry.el (gnus-registry-fetch-group): use long names if
+	requested
+	(gnus-registry-split-fancy-with-parent): when long names are in
+	use, strip the name if we're in the native server, or else return nothing
+	(gnus-registry-spool-action, gnus-registry-action): use
+	gnus-group-guess-full-name-from-command-method instead of
+	gnus-group-guess-full-name
+
+	* spam.el (spam-mark-spam-as-expired-and-move-routine)
+	(spam-ham-copy-or-move-routine): prevent article deletions or
+	moves unless the backend allows it
+
+	* gnus.el (gnus-install-group-spam-parameters): fixed parameters
+	to list spamoracle as well, suggested by Jean-Marc Lasgouttes
+	<Jean-Marc.Lasgouttes@inria.fr>
+
+	* spam.el (spam-spamoracle): doc change, suggested by Jean-Marc
+	Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
+
+2003-11-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-score.el (gnus-decay-score): Protect against arithmetic
+	errors.  Tiny patch from Norbert Koch <viteno@xemacs.org>.
+
+2003-10-31  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el
+	(spam-log-processing-to-registry): improved message and comments
+	(spam-log-unregistration-needed-p): new function
+	(spam-ifile-register-spam-routine)
+	(spam-ifile-register-ham-routine, spam-stat-register-spam-routine)
+	(spam-stat-register-ham-routine)
+	(spam-blacklist-register-routine)
+	(spam-whitelist-register-routine)
+	(spam-bogofilter-register-spam-routine)
+	(spam-bogofilter-register-ham-routine)
+	(spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): change
+	spam-log-processing-to-registry invocations appropriately
+
+2003-10-31  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-kerberos4-open): Ignore output from ATHENA imtest.
+	Tiny patch from Derek Atkins <warlord@MIT.EDU>.
+	(imap-process-connection-type): Improve docstring.  Suggested by
+	Derek Atkins <warlord@MIT.EDU>.
+
+2003-10-31  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (autoload): autoload the gnus-registry functions we'll
+	need
+	(spam-log-to-registry): new variable for interfacing with the
+	gnus-registry
+	(spam-install-hooks): variable had the wrong customization group
+	(spam-fetch-field-message-id-fast): convenience function for fetch
+	a message ID quickly
+	(spam-log-processing-to-registry): new function
+	(spam-ifile-register-spam-routine)
+	(spam-ifile-register-ham-routine, spam-stat-register-spam-routine)
+	(spam-stat-register-ham-routine)
+	(spam-blacklist-register-routine)
+	(spam-whitelist-register-routine)
+	(spam-bogofilter-register-spam-routine)
+	(spam-bogofilter-register-ham-routine)
+	(spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): add
+	spam-log-processing-to-registry invocations
+
+	* gnus-registry.el: fixed docs in the preface to mention
+	gnus-registry-initialize
+	(gnus-registry-store-extra): remove cached extra entry
+	information when new extra entry is stored
+
+2003-10-29  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-forward-make-body-plain): Fix ARG=1 mode
+	after separating m-f-m-b.
+
+2003-10-29  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-forward-make-body-plain): Remove ignored
+	headers.  Tiny patch from Andre Srinivasan <andre@e2open.com>.
+	(message-forward-make-body-plain): Fix ARG=1.
+
+2003-10-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-forward-subject-name-subject)
+	(message-forward-subject-author-subject): Decode non-ASCII
+	newsgroup names.
+	(autoload): Autoload gnus-group-decoded-name.
+
+2003-10-27  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-gpg.el (pgg-gpg-possibly-cache-passphrase): New optional
+	parameter key, overrides the key id used to store passphrase
+	under (uses true key id from gpg output if nil).
+	(pgg-gpg-encrypt-region): Search for passphrase using user suplied
+	string STR, instead of (pgg-lookup-key STR t).
+	(pgg-gpg-encrypt-region): Store passphrase under user suplied
+	string, instead of real key id taken from gpg output.
+	(pgg-gpg-decrypt-region): Likewise.
+	(pgg-gpg-sign-region): Likewise.
+	* pgg.el (pgg-decrypt-region): Don't set pgg-default-user-id.
+
+2003-10-27  Romain FRANCOISE  <romain@orebokech.com>
+
+	* gnus-art.el (gnus-article-goto-prev-page): Doc fix.
+
+2003-10-27  Simon Josefsson  <jas@extundo.com>
+
+	* mm-bodies.el (mm-body-encoding): Don't use QP when message body
+	only consists of short lines and ASCII, when
+	mm-use-ultra-safe-encoding.  Refer to 'About foo' thread in
+	gnus-bug, e.g. <ilullrg4k7p.fsf@extundo.com>, for more discussion.
+	This make it possible to pipe the raw RFC 822 message into 'gpg'
+	and have the signature work.  Potential problem: what if message
+	contain data that would be dash-escaped by OpenPGP
+	implementations? Then PGP 2.x might not be able to parse the raw
+	RFC 822 message correctly.  If that problem is worth fixing, it
+	should be fixed by detecting the situation, instead of applying QP
+	to everything.  Based on discussion with "John A. Martin"
+	<jam@jamux.com>.
+
+2003-10-27  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-mark-spam-as-expired-and-move-routine)
+	(spam-ham-copy-or-move-routine): don't ask when deleting copied
+	articles, and use move instead of copy when possible
+	(spam-split): added the option of specifying a string as a
+	spam-split parameter; such a string will override
+	spam-split-group temporarily.
+
+	* nnmail.el (nnmail-cache-insert): protect from nil message IDs,
+	but should we do something else?
+
+	* gnus-registry.el (gnus-registry-spool-action): protect from nil
+	message IDs
+
+2003-10-26  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-button-alist): Allow & in mailto URLs.
+	(gnus-header-button-alist): Likewise.
+	(gnus-url-mailto): Handle ?to parameters.  Replace \r\n with \n.
+	Reverse parameter list to use same order as in the URL.  Reported
+	by f95-msv@f.kth.se (M,Ae(Brten Svantesson).
+
+2003-10-25  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-move-spam-nonspam-groups-only): documentation fix
+	for the variable
+
+2003-10-25  Steve Youngs  <sryoungs@bigpond.net.au>
+
+	* Makefile.in (clean-some): Remove auto-autoloads.* and
+	custom-load.* as well.
+	(distclean): Ditto.
+
+	* dgnushack.el (dgnushack-make-load): Add a local vars section to
+	the dummy gnus-load.el.
+
+2003-10-24  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-copy-or-move-routine): do not delete if copy
+	is t, also don't intepret the list of groups as a list of lists
+	(spam-mark-spam-as-expired-and-move-routine)
+	(spam-ham-copy-or-move-routine): delete articles only if 1 or
+	more groups were specified (and "copy" was not specified for
+	spam-ham-copy-or-move-routine) (fixed twice)
+
+2003-10-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nndoc.el (nndoc-guess-type): Reverse the sort order.  Suggested
+	by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>.
+	(nndoc-dissect-buffer): Don't miss even-numbered articles.
+
+2003-10-24  Steve Youngs  <sryoungs@bigpond.net.au>
+
+	* dgnushack.el (dgnushack-gnus-load-file): Set to
+	"auto-autoloads.el" if building with XEmacs.
+	(dgnushack-cus-load-file): Set to "custom-load.el" if building
+	with XEmacs.
+	(dgnushack-make-cus-load): We don't delete the resulting file if
+	building with XEmacs so byte-compile it.
+	(dgnushack-make-load): When building with XEmacs do nothing except
+	byte-compile the autoload file and create a dummy gnus-load.el
+	file.
+
+2003-10-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-make-fqdn): Bind case-fold-search.
+	Suggested by Christopher Richards <richards@CS.Princeton.EDU>.
+
+2003-10-23  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.el (spam-process-destination, ham-process-destination):
+	allow multiple groups as a choice
+
+	* spam.el (spam-check-blackholes): remove "[IP address]"
+	requirement, now just "IP address" is enough for detection for
+	blackhole checking
+	(spam-check-blackholes): oops, the dots were not escaped
+	(spam-mark-spam-as-expired-and-move-routine): added multiple group
+	support (multiple copies, then delete)
+	(spam-ham-copy-routine): new function
+	(spam-ham-move-routine): new function
+	(spam-ham-copy-or-move-routine): new function (used to be
+	spam-ham-move-routine), handle multiple groups
+	(spam-summary-prepare-exit): call the new functions
+
+2003-10-23  Simon Josefsson  <jas@extundo.com>
+
+	* flow-fill.el (fill-flowed-encode, fill-flowed): Autoload.
+
+2003-10-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-emphasis-strikethru): Use the :strike-through
+	attribute in Emacs.
+
+2003-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-bounce): Don't erase except bounced header.
+
+2003-10-21  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-reverse-ip-string): new function to reverse an IP
+	address in a string
+	(spam-check-blackholes): use spam-reverse-ip-string
+
+2003-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-narrow-to-page): Clear as well as set the
+	value for gnus-page-broken.
+
+	* gnus-sum.el (gnus-summary-beginning-of-article): Use
+	gnus-break-pages instead of gnus-page-broken.
+	(gnus-summary-end-of-article): Use gnus-break-pages instead of
+	gnus-page-broken; narrow to the end of a page beforehand.
+	(gnus-summary-toggle-header): Use gnus-break-pages instead of
+	gnus-page-broken; remove delimiter buttons unless gnus-break-pages
+	is non-nil.
+
+2003-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-picon.el (gnus-picon-transform-address): Protect against
+	errors.
+
+2003-10-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (nnspool-rejected-article-hook): Remove defvar.
+	(xemacs-codename): Move defvar to gnus-util.el.
+
+	* gnus-util.el (xemacs-codename): Defvar when compiling.
+
+2003-10-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* spam-report.el (spam-report-url-ping-plain): Include a
+	User-Agent.
+
+	* gnus-msg.el (gnus-extended-version): Use it.
+
+	* gnus-util.el (gnus-emacs-version): Separated out into own
+	function.
+
+2003-10-19  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-mode-field-menu): Added
+	message-generate-unsubscribed-mail-followup-to.
+	(message-forward-subject-fwd): Avoid double "Fwd: "
+	(message-change-subject): Added comment.
+
+2003-10-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-nov-parse-line): Remove condition-cases.
+
+	* mml.el (mml-insert-mime): Quote mml.
+
+2003-10-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-remove-odd-characters): Use
+	mm-subst-char-in-string instead of subst-char-in-string.
+	(gnus-summary-refer-article): Use gnus-replace-in-string instead
+	of replace-regexp-in-string.
+
+2003-10-19  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-uu.el (gnus-uu-uustrip-article): Really strip directory
+	from file name.
+
+2003-10-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-save-parts-last-directory): Default
+	to mm-default-directory.
+	(gnus-summary-save-parts-1): Use mm-file-name-rewrite-functions.
+
+2003-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* pop3.el (pop3-read-response): Check whether the process is
+	alive.
+
+	* gnus-sum.el (gnus-summary-refer-article): Strip spaces.
+
+	* rfc2047.el (rfc2047-encode-region): Do error out on invalid
+	strings.
+
+	* nntp.el (nntp-retrieve-headers-with-xover): Get error messages
+	right.
+
+	* gnus-agent.el (gnus-agent-read-servers): Remove sit-for.
+
+	* gnus-art.el (article-treat-dumbquotes): Doc fix.
+
+	* message.el (message-field-value): New function.
+	(message-insert-disposition-notification-to): Use Reply-To, too.
+
+	* imap.el (imap-mailbox-status): Upcase STATUS commands.
+
+	* gnus-sum.el (gnus-remove-odd-characters): New function.
+	(gnus-nov-parse-line): Use it.
+
+2003-10-18  Matt Swift  <swift@alum.mit.edu>
+
+	* mm-decode.el (mm-inline-media-tests): Recognize pjpeg as jpeg.
+
+2003-10-18  Romain FRANCOISE  <romain@orebokech.com>
+
+	* message.el (message-forward-make-body): does both
+	m-f-make-body-mml and m-f-make-body-plain, resulting in a strange
+	message buffer.
+
+2003-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-narrow-to-page): Only break page if it's
+	broken.
+
+	* nnrss.el (nnrss-find-rss-via-syndic8): Return nil if xml-rpc
+	isn't available.
+
+	* message.el (message-hidden-headers): Doc fix.
+
+2003-10-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-summary-resend-message-edit): Avoid error when
+	fields aren't found.
+
+2003-10-18  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-forward-make-body-plain)
+	(message-forward-make-body-mime, message-forward-make-body-mml)
+	(message-forward-make-body-digest-plain)
+	(message-forward-make-body-digest-mime)
+	(message-forward-make-body-digest): New, derived from
+	message-forward-make-body.
+	(message-forward-make-body): Use them.
+	(message-forward-show-mml): New default 'best.
+	(message-forward-make-body): Support it.
+
+2003-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-mode): Set gnus-page-broken to nil.
+	(gnus-article-prepare): Don't set to t.
+	(gnus-narrow-to-page): Set to t if we break.
+
+2003-06-11  Daniel N,Ai(Bri  <dne@mayonnaise.net>
+
+	* message.el (message-resend): Generate Resent-Message-ID header.
+
+2003-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-next-page): Don't go to the next line
+	before checking end-of-buffer.
+	(gnus-mime-delete-part): Don't insert parts twice.
+
+2003-10-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (article-update-date-lapsed): Make sure point
+	doesn't move around (much).
+
+2003-07-28  Vasily Korytov  <deskpot@myrealbox.com>
+
+	* mail-source.el (mail-source-keyword-map): List "cur" before
+	"new" for maildirs.
+
+2003-10-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-enter-digest-group): ogroup, nor
+	group.
+
+	* gnus-msg.el (gnus-inews-insert-archive-gcc): Use the parent
+	name for gcc-self.
+	(gnus-inews-insert-archive-gcc): Paren mistake.
+
+	* gnus-sum.el (gnus-summary-enter-digest-group): Add
+	parent-group.
+
+	* gnus-art.el (gnus-ignored-headers): Add more headers.
+
+	* rfc2047.el (rfc2047-encode): See which encoding is shorter --
+	base64 or QP.
+
+	* nnmail.el (nnmail-article-group): Default to "bogus".
+
+	* mail-source.el (mail-source-delete-incoming): Change to nil.
+
+2003-10-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mail-source.el (mail-source-fetch-imap): Fix mismatched parens.
+
+2003-10-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (defvar): Add post/pre/scripts.
+	(mail-source-fetch-imap): Use them.
+
+	* nndraft.el (nndraft-request-move-article): Fix infinite
+	recursion.
+
+	* gnus-group.el (gnus-group-mark-regexp): Jump to groups.
+
+2003-10-16  Ed L. Cashin  <ecashin@uga.edu>
+
+	* imap.el (imap-interactive-login): Set imap-password to nil if
+	login fails.
+
+2003-10-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-inserted-headers): New variable.
+	(message-mode): Make local.
+	(message-mode): Set all the local action variables to nil.
+
+2003-10-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-inline-text-html-with-images): Doc fix.
+	(mm-w3m-safe-url-regexp): Doc fix.
+
+2003-10-12  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-respool-query): Don't narrow to head,
+	it's done by nnmail-article-group.
+
+	* gnus-uu.el (gnus-uu-grab-articles): Fix misplaced parens.
+	From Mark Hood <markhood@speakeasy.net> (tiny change)
+
+2003-10-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-decode.el (mm-file-name-delete-gotchas): Avoid infloop in
+	XEmacs.
+
+2003-10-10  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-initialize): new function, does the spam-face
+	update and all the hooks, replaces spam-install-hooks-function
+
+	* gnus-registry.el (gnus-registry-initialize): new autoloaded
+	function to explicitly initialize the registry
+
+2003-10-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-w3m-safe-url-regexp): Doc fix.
+
+	* mm-view.el (mm-w3m-mode-map): Doc fix.
+	(mm-inline-text-html-render-with-w3m): Add a comment.
+
+2003-10-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el: Remove superfluous eval-when-compiles.
+
+2003-10-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-group.el (gnus-group-suspend): Reset gnus-backlog-articles.
+
+2003-10-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* dns.el (query-dns): Don't error out on malformed resolv files.
+
+2003-10-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.el (gnus-group-faq-directory): Update .tw entry.  From
+	Albert Chun-Chieh Huang <mr894348@cs.nthu.edu.tw>
+
+2003-10-03  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-blackholes): exit the loop if matches are
+	found (idea from Adrian Lanz <lanz@fowi.ethz.ch>)
+	(spam-check-bogofilter-headers, spam-check-blackholes, spam-check-BBDB)
+	(spam-from-listed-p): use nnmail-fetch-field instead of message-fetch-field
+
+
+2003-10-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-attachment-file-modes): Change the default
+	value into 384 from ?\600 which doesn't mean an integer in XEmacs.
+
+2003-10-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-decode.el (mm-file-name-delete-control)
+	(mm-file-name-delete-gotchas): New functions.
+	(mm-file-name-rewrite-functions): Use them.
+	(mm-attachment-file-modes): New option.
+	(mm-save-part-to-file): Use it.
+
+2003-10-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* spam.el (spam-install-hooks-function): Added Autoload cookie.
+
+2003-10-02  Jesper Harder  <harder@ifa.au.dk>
+
+	* pgg-def.el (pgg-default-keyserver-address): Change to
+	subkeys.pgp.net.  From Michael Shields <shields@msrl.com>
+
+2003-10-01  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-idna-to-ascii-rhs-1): RHS can be terminated
+	by ',', as in 'foo@example.org, bar@example.org'.
+
+2003-10-01  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-send): Fix reversed logic of supersedes
+	check.
+
+2003-09-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-article-view-part-as-charset): Doc fix,
+	suggested by Norbert Koch <viteno@xemacs.org>.
+
+2003-09-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-topic.el (gnus-topic-goto-missing-topic): Revert 2003-02-09
+	change in order to correct the position where an invisible topic
+	(because gnus-topic-display-empty-topics is nil) may be inserted.
+
+2003-09-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-ignored-supersedes-headers): Add X-Payment.
+
+2003-09-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* rfc2047.el (rfc2047-encode): Limit line length to 76 characters.
+
+2003-09-20  Simon Josefsson  <jas@extundo.com>
+
+	* tls.el (tls-process-connection-type): Doc fix.
+
+	* imap.el (imap-starttls-open): Rewrite, should support both old
+	starttls.el and new starttls.el that uses GNUTLS.
+
+2003-09-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-treat-display-x-face): Use set-default instead
+	of custom-set-default which isn't available in old XEmacsen.
+
+2003-09-17  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-summary-resend-message-edit): Don't convert
+	to MML.  MIME -> MML -> MIME does not work for PGP/MIME.
+
+	* message.el (message-bounce, message-forward-show-mml): do.
+
+2003-09-13  Jesper Harder  <harder@ifa.au.dk>
+
+	* rfc2047.el (rfc2047-charset-encoding-alist): Add viscii.
+	(rfc2047-encode): Add factors for big5, gb2312 and euc-kr.
+
+	* nnweb.el (nnweb-google-parse-1): Fix parsing.
+
+2003-09-12  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-group.el (gnus-group-fetch-control): ISC changed
+	compression from .Z to .gz.
+
+	* rfc2047.el (rfc2047-header-encoding-alist): Add "Approved" to
+	address-mime.
+
+2003-09-11  Jesper Harder  <harder@ifa.au.dk>
+
+	* rfc2047.el (rfc2047-encode): Restrict encoded-words to 75
+	characters.
+
+2003-09-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.el (gnus-group-charter-alist): Update.
+
+2003-09-10  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam-report.el: use mm-url.el functions for external URL
+	loading when the built-in HTTP GET is insufficient (e.g. proxies
+	are in the way).  From Eric Knauel
+	<knauel@informatik.uni-tuebingen.de>.
+	(spam-report-url-ping-function): new option, defaults to the
+	built-in HTTP GET (spam-report-url-ping-plain)
+	(spam-report-url-ping): calls spam-report-url-ping-function now
+	(spam-report-url-ping-plain): new function, does what
+	spam-report-url-ping used to do
+	(spam-report-url-ping-mm-url): function that delegates to
+	mm-url.el (autoloaded)
+
+2003-09-08  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-delete-id): function to
+	completely delete an ID, including all the cache hashtables
+	(gnus-registry-delete-group): use gnus-registry-delete-id
+	(gnus-registry-simplify-subject): only run if the argument is a
+	string, return nil otherwise
+
+2003-09-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-summary-resend-bounced-mail): Docstring fix.
+
+2003-09-05  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-split-fancy-with-parent): yet
+	another error *sigh*
+
+	* gnus-registry.el (gnus-registry-fetch-extra-entry): don't use
+	puthash unless gnus-registry-entry-caching is on
+	(gnus-registry-split-fancy-with-parent): misplaced parenthesis
+	made everything a part of the 'else'
+	(gnus-registry-save): used 'entry-caching' instead of 'caching'
+
+2003-09-05  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-button-alist): Improve Info regexp.
+
+2003-09-04  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el: added brief explanation of basics
+	(gnus-registry-track-extra): new variable for tracking of message
+	subjects
+	(gnus-registry-entry-caching): caching parameter, used for extra
+	data
+	(gnus-registry-minimum-subject-length): minimum subject length
+	before it's considered when tracing subjects
+	(gnus-registry-save): accomodate extra data entry caching
+	(gnus-registry-action): change function name, add the subject and
+	pass it to gnus-registry-add-group
+	(gnus-registry-spool-action): change function name, add the
+	subject and pass it to gnus-registry-add-group
+	(gnus-registry-split-fancy-with-parent): add subject tracking
+	(gnus-registry-register-message-ids): pass subject to
+	gnus-registry-add-group
+	(gnus-registry-simplify-subject)
+	(gnus-registry-fetch-simplified-message-subject-fast): new
+	functions
+	(gnus-registry-fetch-extra, gnus-registry-fetch-extra-entry): add
+	extra data entry caching
+	(gnus-registry-add-group): handle the extra subject parameter
+	(gnus-registry-install-hooks, gnus-registry-unload-hook): fix the
+	gnus-register-* function names
+
+	* nnmail.el (nnmail-cache-insert): add subject parameter, pass it
+	on to the nnmail-spool-hook
+
+	* nnbabyl.el (nnbabyl-request-accept-article): added subject to
+	nnmail-cache-insert call
+
+	* nndiary.el (nndiary-request-accept-article): added subject to
+	nnmail-cache-insert call
+
+	* nnfolder.el (nnfolder-request-accept-article): added subject to
+	nnmail-cache-insert call
+
+	* nnimap.el (nnimap-split-articles): added subject to
+	nnmail-cache-insert call
+	(nnimap-request-accept-article): added subject to
+	nnmail-cache-insert call
+
+	* nnmbox.el (nnmbox-request-accept-article): added subject to
+	nnmail-cache-insert call
+
+	* nnmh.el (nnmh-request-accept-article): added subject to
+	nnmail-cache-insert call
+
+	* nnml.el (nnml-request-accept-article): added subject to
+	nnmail-cache-insert call
+
+2003-09-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-button-handle-info-url)
+	(gnus-button-handle-info-url-gnome)
+	(gnus-button-handle-info-url-kde, gnus-button-alist): Handle GNOME
+	and KDE style Info URLs.
+
+	* gnus-util.el (gnus-url-unhex-string): Don't replace "+" with " ".
+
+2003-09-02  Jesper Harder  <harder@ifa.au.dk>
+
+	* rfc2047.el (rfc2047-fold-region): Don't fold at the beginning
+	of the field.
+
+2003-09-01  Simon Josefsson  <jas@extundo.com>
+
+	* mml.el (mml-insert-mime-headers-always): New variable.
+	(mml-insert-mime-headers): Use it.  Based on (tiny) patch from
+	Lars Balker Rasmussen <lars@balker.org>.
+
+2003-08-30  Simon Josefsson  <jas@extundo.com>
+
+	* mail-source.el (mail-source-fetch-imap): Pass correct buffer to
+	imap-open, reverts 2003-03-17 change.  Reverse remove before
+	calling gnus-compress-sequence.  From Gaute Strokkenes
+	<gs234@srcf.ucam.org> (tiny change).
+
+2003-08-29  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-delete-group): Doc fix.  Suggested by
+	Jochen K,A|(Bpper <jochen@jochen-kuepper.de>.
+
+2003-08-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-display-x-face): Make it possible to set
+	the gnus-article-x-face-command variable to the lambda form.
+
+2003-08-27  Simon Josefsson  <jas@extundo.com>
+
+	* mm-decode.el (mm-remove-part): Try to kill external displayers
+	cleanly first (if it refuses, C-g aborts loop and kill process
+	unconditionally).  Also make sure process is dead before we remove
+	the files it may be using.  Reported by David Coe
+	<davidc@debian.org>.
+
+2003-08-27  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-cache.el (gnus-cache-generate-active): Fix bug in
+	replacement.  From Vagn Johansen <v@johansen.mail.dk> (tiny
+	change).
+
+2003-08-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el: Don't use defvaralias.
+	(gnus-treat-display-x-face): Warn if the obsolete variable
+	`gnus-treat-display-xface' exists.
+
+2003-08-25  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-treat-display-face): Fix typo.
+	(gnus-treat-display-xface): Rename to gnus-treat-display-x-face
+	(reported by Jochen K,A|(Bpper <jochen@jochen-kuepper.de>)
+
+2003-08-24  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-header-button-alist, gnus-button-alist): Fix
+	type.
+
+2003-08-22  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-make-forward-subject-function): Fix
+	customize mismatch.
+
+	* gnus.el (gnus-message-archive-method): do.
+
+2003-08-20  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.el (gnus-read-group): Offer to continue only if the invalid
+	char is `/' and add more information for the user.
+
+	* gnus-art.el (gnus-button-alist): Add `+' (gnus-button-handle-man).
+	(gnus-header-button-alist): Added `In-Reply-To'.
+
+	* nnimap.el (nnimap-open-connection): Allow different user names
+	on the same server (and in the same authinfo file).
+
+2003-08-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sieve.el (gnus-sieve-crosspost): Fix type.
+
+	* message.el (message-make-forward-subject-function): Add
+	message-forward-subject-name-subject to choices.
+
+	* gnus-art.el (gnus-article-edit-done, gnus-article-edit-exit):
+	Redisplay article after editing.
+
+2003-08-20  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.el (gnus-read-group): Added check to ask confirmation if
+	Group name contains invalid character. You can use '/' in IMAP,
+	but not in filenames. G m cannot know what the user is creating,
+	so let user decide. See thread m2oeysiev3.fsf@naima.lensflare.org.
+	Tiny patch from letters@hotpop.com (Jari Aalto+mail.linux).
+
+2003-08-13  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-score.el (gnus-summary-score-effect): Fix interactive use.
+
+2003-08-10  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-draft.el (gnus-draft-send-all-messages): ask if all drafts
+	should be sent unless gnus-expert-user is on
+
+2003-08-09  Jesper Harder  <harder@ifa.au.dk>
+
+	* pgg-gpg.el (pgg-gpg-extra-args): Fix customization type.
+
+2003-08-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* pgg-gpg.el (pgg-gpg-process-region): Bind
+	default-enable-multibyte-characters to nil.
+
+2003-08-07  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* canlock.el (canlock-password): Fix customization type.
+	(canlock-password-for-verify): Ditto.
+	* deuglify.el (gnus-outlook-deuglify-unwrap-min): Ditto.
+	(gnus-outlook-deuglify-unwrap-max): Ditto.
+	(gnus-outlook-deuglify-unwrap-stop-chars): Ditto.
+	* gnus-sum.el (gnus-sum-thread-tree-root): Ditto.
+	(gnus-sum-thread-tree-false-root): Ditto.
+	(gnus-sum-thread-tree-single-indent): Ditto.
+	* message.el (message-archive-note): Ditto.
+	(message-subscribed-address-file): Ditto.
+	(message-user-fqdn): Ditto.
+	* spam-report.el (spam-report-gmane-regex): Ditto.
+	* spam.el (spam-blackhole-good-server-regex): Ditto.
+
+	* gnus-start.el (gnus-save-killed-list): Fix last change.
+	* message.el (message-courtesy-message): Ditto.
+
+2003-08-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-header-face-alist): Revert previous change.
+	(gnus-header-newsgroups-face): Explain that it's only used for
+	crossposts.
+
+2003-08-07  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-registry.el (gnus-registry-max-entries): Fix customization
+	type.
+	* gnus-score.el (gnus-adaptive-word-length-limit): Ditto.
+	* gnus.el (gnus-refer-article-method): Ditto.
+	* message.el (message-courtesy-message): Ditto.
+
+2003-08-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-header-face-alist): Fix "Newsgroups" entry.
+	From Chunyu Wang <spr@db.cs.hit.edu.cn> (tiny patch)
+
+2003-08-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-start.el (gnus-save-killed-list): Fix customization type.
+	* gnus-sum.el (gnus-thread-hide-subtree): Ditto.
+	* gnus.el (gnus-use-long-file-name): Ditto.
+
+2003-08-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-group.el (gnus-group-rename-group): Don't allow renaming to
+	an existing name.
+
+	* gnus-sum.el (gnus-summary-highlight): Add uncached to docstring.
+
+	* nnmail.el (nnmail-large-newsgroup): Docstring fix.
+
+	* nntp.el (nntp-large-newsgroup): do.
+
+	* nnspool.el (nnspool-large-newsgroup): do.
+
+	* gnus-cus.el (gnus-group-parameters): Typo.
+
+2003-07-31  Simon Josefsson  <jas@extundo.com>
+
+	* mml-sec.el (mml-signencrypt-style-alist): Use separate S/MIME
+	method by default (revert partial 2003-07-10 patch).
+
+2003-07-28  Dave Love  <fx@gnu.org>
+
+	* pgg-gpg.el, pgg-pgp.el, pgg-pgp5.el: Require cl when compiling.
+
+2003-07-26  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-install): add an initial
+	registry read to the loading when gnus-registry-install is set
+
+2003-07-26  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* flow-fill.el (fill-flowed): Empty lines separate paragraphs
+	even if the preceding line ends with a soft break.  Tiny patch
+	from Mark Thomas <swoon@bellatlantic.net>.
+
+2003-07-25  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-use-regex-body, spam-regex-body-spam)
+	(spam-regex-body-ham): new variables, default to nil/empty/empty
+	(spam-install-hooks): added spam-use-regex-body to list or
+	pre-install conditions
+	(spam-list-of-checks): added spam-use-regex-body and
+	spam-check-regex-body to list of checks
+	(spam-list-of-statistical-checks): added spam-use-regex-body to
+	list of statistical checks
+	(spam-check-regex-body): invokes spam-check-regex-headers with
+	appropriate variable masking
+	(spam-check-regex-headers): changes to print "body" or "header"
+	where appropriate
+
+2003-07-25  Jesper Harder  <harder@ifa.au.dk>
+
+	* smime.el (smime-ask-passphrase): Use read-passwd rather than
+	comint-read-noecho.  The former is more secure.
+
+2003-07-24  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-cache-whitespace): make "adding
+	whitespace" message level 5 instead of 4
+	(gnus-registry-clean-empty-function): new function to remove empty
+	registry entries
+	(gnus-registry-clean-empty): new variable to enable cleaning the
+	registry when saving it by calling gnus-registry-clean-empty-function
+
+	* spam.el (spam-summary-prepare-exit): use spam-process-ham-in-spam-groups
+	(spam-process-ham-in-spam-groups): new variable
+
+2003-07-24  Jesper Harder  <harder@ifa.au.dk>
+
+	* pgg-gpg.el (pgg-gpg-process-region): Add "--yes" to options.
+
+	* pgg-gpg.el, pgg-pgp.el, pgg-pgp5.el, pgg.el: Reapply changes
+	from 2003-04-03 to fix security problem.  See
+	http://www.debian.org/security/2003/dsa-339
+
+2003-07-23  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.el (gnus-install-group-spam-parameters): add the
+	gnus-ticked-mark to the possible choices of ham marks
+
+	* spam.el (spam-process-ham-in-nonham-groups): new variable
+	(spam-summary-prepare-exit): use spam-process-ham-in-nonham-groups
+
+2003-07-23  Jesper Harder  <harder@ifa.au.dk>
+
+	* rfc2047.el (rfc2047-header-encoding-alist): Add Mail-Followup-To
+	and Mail-Copies-To to address-mime.
+	(rfc2047-narrow-to-field): Use rfc2047-point-at-bol.
+
+2003-07-19  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-util.el (mm-coding-system-priorities): Docstring improvement.
+
+2003-07-17  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-thread-latest-date): Move condition-case to
+	the right place.
+
+2003-07-14  Simon Josefsson  <jas@extundo.com>
+
+	* mail-source.el (mail-source-fetch-imap): Don't assume
+	imap-error-text returns something.
+
+2003-07-12  Nevin Kapur  <kapur@mts.jhu.edu>
+
+	* nnimap.el (nnimap-request-newgroups): Use the pattern in
+	nnimap-list-pattern instead of "*".
+
+2003-07-10  Simon Josefsson  <jas@extundo.com>
+
+	* mml-sec.el (mml-signencrypt-style-alist): Use "combined" by
+	default.  Improve docstring.
+
+2003-07-10  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* imap.el (imap-arrival-filter): Fix test for missing process
+	buffer.
+
+2003-07-09  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+	From Gaute B Strokkenes <gs234@cam.ac.uk> (tiny patch).
+
+	* imap.el (imap-wait-for-tag): Clarify comment.  Use timeout zero
+	for second, after-process-has-died, accept-process-output.
+	(imap-arrival-filter): If PROC has no buffer, do nothing.
+
+2003-07-09  Jesper Harder  <harder@ifa.au.dk>
+
+	* flow-fill.el: Docstring and message fixes.
+
+	* deuglify.el: do.
+
+	* gnus-int.el: do.
+
+	* gnus-msg.el: do.
+
+	* gnus-util.el: do.
+
+	* gnus-draft.el: do.
+
+	* gnus-start.el: do.
+
+	* gnus.el: do.
+
+	* gnus-group.el: do.
+
+	* gnus-art.el: do.
+
+	* gnus-sum.el: do.
+
+	* mail-source.el (mail-source-movemail): Handle non-numerical
+	return values.
+
+2003-07-08  Jesper Harder  <harder@ifa.au.dk>
+
+	* mailcap.el (mailcap-parse-args-syntax-table)
+	(mailcap-viewer-passes-test): Docstring fix.
+
+	* mm-bodies.el (mm-long-lines-p): Docstring fix.
+
+	* mm-decode.el (mm-w3m-safe-url-regexp, mm-verify-option)
+	(mm-decrypt-option, mm-handle-set-external-undisplayer)
+	(mm-file-name-replace-whitespace): Docstring fix.
+
+	* mm-uu.el (mm-uu-emacs-sources-regexp): Docstring fix.
+	(mm-uu-pgp-signed-test): Fix message.
+
+	* mml.el (mml-tweak-sexp-alist): Docstring fix.
+	(mml-parse-1, mml-insert-mime-headers): Fix message.
+
+	* message.el (message-archive-header)
+	(message-subscribed-address-functions)
+	(message-subscribed-addresses, message-subscribed-regexps)
+	(message-canlock-generate)
+	(message-generate-new-buffer-clone-locals): Docstring fixes.
+
+2003-07-07  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* imap.el (imap-wait-for-tag): After the process has died, look
+	for more output still pending.  From Gaute B Strokkenes
+	<gs234@cam.ac.uk> (tiny patch).
+
+2003-07-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-bogofilter-score): redisplay article normally
+	after spam-bogofilter-score is called
+
+2003-07-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-send-mail-with-sendmail): Handle
+	non-numeric return values.
+
+	* gnus-sum.el (gnus-print-buffer): Apply emphasis.
+	From Michael Piotrowski <mxp@dynalabs.de> (tiny change).
+
+	* gnus-start.el (gnus-clear-system): Revert change from
+	2003-06-19.
+
+2003-07-04  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (rfc2047-q-encode-region): Exclude especials from
+	characters not encoded, and make the list more legible.
+
+2003-07-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-make-from): Revert change from 2002-01-08.
+
+2003-06-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnheader.el (nnheader-init-server-buffer): Don't add
+	nntp-server-buffer to list of Gnus buffers.
+
+2003-06-25  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-parse-list): prevent empty ("") strings
+
+2003-06-24  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-parse-list): use gnus-extract-address-components
+	instead of ietf-drums-parse-addresses
+	(spam-from-listed-p): let* was unnecessary
+
+2003-06-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-ems.el (gnus-put-image): Mark the right text segment with
+	gnus-image-category.
+
+	* gnus-srvr.el (gnus-browse-unsubscribe-group): Strip prefix from
+	native groups.
+
+	* gnus-topic.el (gnus-group-prepare-topics): Update topic line
+	format specs.
+
+	* gnus-picon.el: Written by moi, moi, moi.
+
+	* gnus-group.el (gnus-group-kill-group): Clean up.
+
+2003-06-23  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-from-listed-p, spam-parse-list): use
+	ietf-drums-parse-addresses to extract the address portion of the
+	whitelist/blacklist file if it looks like an address can be found
+
+2003-06-23  Didier Verna  <didier@xemacs.org>
+
+	* gnus-ems.el (gnus-put-image): New argument CATEGORY. Add it as a
+	text property.
+	(gnus-remove-image): New argument CATEGORY. Only remove if
+	category matches.
+	* gnus-xmas.el (gnus-xmas-put-image):
+	(gnus-xmas-remove-image): Ditto, with extents.
+	* gnus-art.el (gnus-delete-images): Pass CATEGORY argument to
+	gnus-[xmas-]remove-image.
+	(article-display-face): Don't always act as a toggle. Call
+	`gnus-put-image' with CATEGORY argument.
+	(article-display-x-face): Call `gnus-put-image' with CATEGORY
+	argument.
+	* smiley.el (smiley-region): Ditto.
+	* gnus-fun.el (gnus-display-x-face-in-from): Ditto.
+	* gnus-picon.el (gnus-picon-insert-glyph): Ditto.
+	(gnus-treat-mail-picon): Don't always act as a toggle.
+	* gnus-picon.el (gnus-treat-newsgroups-picon): Ditto.
+
+2003-06-23  Didier Verna  <didier@xemacs.org>
+
+	* gnus-art.el (article-display-face): Check for existence of the
+	original article buffer before switching to it.
+
+2003-06-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-util.el (mm-append-to-file): Say "Appended to".  Suggested by
+	Dan Jacobson <jidanni@jidanni.org>.
+
+	* mm-view.el (mm-inline-message): Bind
+	gnus-original-article-buffer to the buffer in the mml handle
+	holding the message.
+
+2003-06-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (sender, from): No need to bind them.
+
+2003-06-19  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-enter-list): search-forward specified wrong
+
+2003-06-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el: Comment fix.
+
+2003-06-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-configure-posting-styles): Remove unused
+	variable.  From Jan Rychter <jan@rychter.com>.
+
+	* spam.el (spam-spamoracle-learn): insert-string is obsolete.
+
+2003-06-19  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-enter-list): do not enter duplicate addresses into
+	the whitelist/blacklist
+
+2003-06-19  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnheader.el (nnheader-init-server-buffer): Add
+	nntp-server-buffer to gnus-buffers.
+
+	* gnus-start.el (gnus-clear-system): Now we don't need to kill
+	nntp-server-buffer separately.
+
+2003-06-18  Didier Verna  <didier@xemacs.org>
+
+	* gnus-art.el (article-display-face): Correctly toggle between
+	display and hiding. Handle multiple Face headers.
+
+2003-06-17  Dave Love  <fx@gnu.org>
+
+	* nnimap.el: Require cl when compiling.
+
+	* message.el (message-fix-before-sending): Reinstate nullifying
+	the invisible text property.
+	(sender, from): Defvar when compiling.
+	(message-is-yours-p): Remove autoload cookie.
+
+2003-06-17  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-util.el (gnus-extract-address-components): Added
+	doc-string.
+
+2003-06-16  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* nnml.el (nnml-current-group-article-to-file-alist): Don't read
+	overview when using compressed files.  From Michael Albinus
+	<Michael.Albinus@alcatel.de>.
+
+2003-06-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-refer-parent-article): Extract
+	Message-ID from In-Reply-To header.
+
+2003-06-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-is-yours-p): Narrow to head; extract from
+	and sender by itself.
+	(message-cancel-news, message-supersede): Remove useless things.
+
+2003-06-15  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): Bind
+	`gnus-article-emulate-mime'.
+
+2003-06-15  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+	From Tommi Vainikainen <thv+gnus@iki.fi>.
+
+	* message.el (message-is-yours-p): New function.  Separated common
+	code from message-cancel-news and message-supersede.  Added
+	matching code which uses message-alternative-emails regexp as last
+	resort.
+	(message-cancel-news, message-supersede): Use message-is-yours-p.
+
+2003-06-13  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* nnimap.el (nnimap-split-articles): Narrow the right buffer to
+	the headers.  From Niklas Morberg <niklas.morberg@axis.com>.
+
+2003-06-12  Dave Love  <fx@gnu.org>
+
+	* nnheader.el (nnheader-functionp): Deleted.
+
+	* nnmail.el (nnmail-split-fancy-syntax-table): Define all in
+	defvar.
+	(nnmail-version): Deleted.
+	(nnmail-check-duplication, nnmail-expiry-target-group): Don't use
+	nnheader-functionp.
+
+2003-06-10  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-bogofilter-headers): fix for when the score
+	is requested but the message is not spam
+
+2003-06-09  Teodor Zlatanov  <tzz@lifelogs.com>
+	From Eric
+	<knauel@informatik.uni-tuebingen.de>
+
+	* spam.el (spam-use-spamoracle): new variable
+	(spam-install-hooks): add spamoracle to the list of conditions
+	for activation of spam-install-hooks
+	(spam-spamoracle): new variable customization group
+	(spam-spamoracle, spam-spamoracle): new variables
+	(spam-group-spam-processor-spamoracle-p)
+	(spam-group-ham-processor-spamoracle-p): new functions
+	(spam-summary-prepare-exit): added spamoracle ham/spam exit processing
+	(spam-list-of-checks, spam-list-of-statistical-checks): add
+	spam-use-spamoracle
+	(spam-check-spamoracle, spam-spamoracle-learn)
+	(spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): new functions
+
+	* gnus.el (gnus-group-spam-exit-processor-spamoracle)
+	(gnus-group-ham-exit-processor-spamoracle): new variables for SpamOracle
+	(spam-process, ham-process): added spamoracle spam/ham processors
+
+2003-06-08  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-beginning-of-line): Docstring improvement.
+	Suggested by Michael R. Wolf <MichaelRunningWolf@att.net>
+
+2003-06-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Removed ["Add buttons"
+	gnus-summary-display-buttonized t]
+
+2003-06-07  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* nnmail.el (nnmail-split-fancy-match-partial-words): Doc string
+	fix.  Reported by Johan Bockg,Ae(Brd <bojohan+news@dd.chalmers.se>.
+
+2003-06-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-beginning-of-line): Docstring improvement.
+
+2003-06-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-srvr.el (gnus-browse-foreign-server): Parse garbage NNTP
+	groups correctly.
+
+2003-06-06  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+	From Benjamin Rutt <rutt+news@cis.ohio-state.edu>.
+
+	* message.el (message-fetch-field): Augment documentation to state
+	the narrowed-to-headers restriction.
+	(message-change-subject, message-reduce-to-to-cc)
+	(message-generate-unsubscribed-mail-followup-to)
+	(message-insert-importance-high, message-insert-importance-low)
+	(message-insert-or-toggle-importance)
+	(message-insert-disposition-notification-to): Narrow to headers
+	before calling message-fetch-field or message-remove-header.
+
+2003-06-06  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-trim): fix for when
+	gnus-registry-max-entries is nil
+
+2003-06-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* qp.el (quoted-printable-decode-region): Don't error out on
+	malformed text.
+
+2003-06-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* rfc2047.el (rfc2047-encode-region): Don't error out on invalid
+	strings.
+
+2003-06-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* mml1991.el (mml1991-pgg-sign): Insert pgg output as unibyte.
+	From: Ivan Boldyrev <boldyrev+nospam@cgitftp.uiggm.nsc.ru> (tiny
+	change)
+
+2003-06-03  Dave Love  <fx@gnu.org>
+
+	* gnus-soup.el (gnus-soup-send-packet): Don't use
+	message-functionp.
+
+	* gnus.el (gnus-agent-cache): Doc fix.
+	(gnus-other-frame): Quote lambda used as hook.
+
+	* message.el: Doc fixes.
+	(message-functionp): Deleted.  Callers changed.
+	(message-fix-before-sending): Highlight with overlays.  Clarify
+	`illegible text' messages.
+	(rmail-enable-mime-composing, gnus-message-group-art): Defvar when
+	compiling.
+	(gnus-find-method-for-group, nnvirtual-find-group-art): Autoload.
+
+2003-06-03  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* nnmail.el (nnmail-split-fancy-match-partial-words): New user
+	option.
+	(nnmail-split-it): Obey it.  Don't let-bind regexp twice.
+
+	* message.el (message-fetch-field): Mention narrow-to-headers
+	requirement.
+
+2003-06-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-xmas.el (gnus-xmas-create-image): Use
+	insert-file-contents-literally.  From: Eric Eide
+	<eeide@cs.utah.edu>
+
+2003-06-02  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-fetch-group): always return the
+	short name of the group
+
+2003-06-02  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-cus.el (defvar): Silence byte-compiler warnings.
+
+	* gnus-sum.el (gnus-get-newsgroup-headers): Unfold headers.
+
+2003-05-31  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (article-unsplit-urls): Use gnus-treat-article
+	rather than gnus-display-mime-function.
+
+2003-05-30  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-use-long-group-names): new variable
+	(gnus-registry-add-group): use it
+	(gnus-registry-trim-articles-without-groups): new variable
+	(gnus-registry-delete-group): use it
+	(gnus-registry-unload-hook): uninstall all the hooks
+
+	* spam.el (spam-install-hooks-function, spam-unload-hook): new
+	functions so users that load spam.el for customization don't get
+	all the hooks installed
+	(spam-install-hooks): new variable, set to t by default if user
+	has one of the spam-use-* variables set
+
+	* spam-stat.el (spam-stat-install-hooks, spam-stat-unload-hook): new
+	functions so users that load spam-stat.el for customization don't get
+	all the hooks installed
+
+2003-05-30  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (rfc2047-decode): Don't use
+	mm-with-unibyte-current-buffer.
+
+	* qp.el (quoted-printable-decode-string): Use
+	mm-with-unibyte-buffer.
+
+2003-05-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-save): allow forced saving even
+	when registry is not dirty.  Use gnus-registry-trim to shorten the
+	gnus-registry-alist.
+	(gnus-registry-max-entries): new variable
+	(gnus-registry-trim): new function, trim gnus-registry-alist to
+	size gnus-registry-max-entries, sorting by entry mtime so the
+	newest entries stick around
+
+	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): instead of
+	just one specific variable, allow a list of specific variables
+
+2003-05-28  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (rfc2047-encode-region): Skip ASCII at beginning and
+	end of region.
+
+2003-05-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* lpath.el: Add put-char-table and get-char-table.
+
+2003-05-28  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-dirty): flag for modified registry
+	(gnus-registry-save, gnus-registry-read)
+	(gnus-registry-store-extra, gnus-registry-clear): use it (note
+	that gnus-registry-store-extra is invoked for all modifications to
+	set the mtime, so gnus-registry-dirty only needs to be set there)
+
+2003-05-23  Simon Josefsson  <jas@extundo.com>
+
+	* mml1991.el (mml1991-pgg-sign): Use mml-sender instead of
+	message-sender.
+
+	* gnus-art.el (gnus-use-idna): Check if idna-program is installed.
+
+	* message.el (message-use-idna): Ditto.
+
+2003-05-20  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (rfc2047-q-encoding-alist): Deleted.
+	(rfc2047-q-encode-region): Don't use it.
+	(rfc2047-encode-message-header) <(eq method 'mime)>: Bind
+	rfc2047-encoding-type to `mime'.
+	(rfc2047-encode-string, rfc2047-encode): Doc fix.
+
+2003-05-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-send-mail): Don't insert a courtesy copy
+	notice in base64 encoded messages.
+
+2003-05-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-move-article): Don't copy expirable
+	marks if the destination group is not auto-expirable.
+
+2003-05-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el (assq-delete-all): Removed the compiler macro.
+
+2003-05-14  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agentize): Updated documentation to match
+	usage.
+	(gnus-agent-expire-group-1): Do not skip over a group when the
+	force argument is set.
+	* gnus.el (gnus-agent): Updated documentation to reflect that
+	gnus-agent now defaults to t.
+
+2003-05-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+2003-05-14 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Gnus v5.10.2 is released.
+
+2003-05-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (mail-source-delete-incoming): Changed to t.
+
+	* rfc2047.el (rfc2047-syntax-table): Funcall.
+
+	* lpath.el ((featurep 'xemacs)): Added set-char-table-range.
+	((featurep 'xemacs)): No, don't.
+
+	* rfc2047.el (rfc2047-encodable-p): Use the header charset.
+
+	* gnus-sum.el (gnus-summary-reselect-current-group): Supply
+	leave-hidden.
+
+2003-05-14  Jonathan Kamens  <jik@kamens.brookline.ma.us>
+
+	* gnus-sum.el (gnus-summary-exit): Added `leave-hidden'.  (Tiny
+	patch.)
+
+2003-05-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-registry.el (gnus-registry-store-extra-entry): Use
+	gnus-assq-delete-all.
+
+	* gnus-xmas.el (gnus-xmas-assq-delete-all): New function.
+
+	* message.el (message-ignored-bounced-headers): Add Delivered-To.
+
+	* gnus-sum.el (gnus-summary-find-next): Indent.
+	(gnus-summary-find-prev): Ditto.
+	(gnus-summary-catchup): Doc fix.
+	(gnus-summary-mark-current-read-and-unread-as-read): New function.
+	(gnus-summary-catchup): Really mark after point.
+
+	* gnus-util.el (gnus-user-date): Use %d instead of %m.
+	(gnus-user-date): Use floating point time so that we don't get
+	overflows.
+
+	* gnus-sum.el (gnus-summary-local-variables): Clean up.
+
+	* gnus-fun.el (gnus-display-x-face-in-from): Don't use centering
+	since none of the other image things do.
+
+2003-05-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el (assq-delete-all): New compiler macro for Emacs 20.
+
+2003-05-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Fbind find-coding-system.
+
+	* dgnushack.el (dgnushack-make-load): Remove redundant format call
+	in message.  Suggested by Yoichi NAKAYAMA <yoichi@geiin.org>.
+	* pop3.el (pop3-movemail): Ditto.
+
+2003-05-12  Colin Marquardt <c.marquardt@alcatel.de>  (tiny change)
+
+	* gnus.el (gnus-agent): Docstring fix.
+
+2003-05-12  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-install): new variable
+	(gnus-registry-fetch-extra, gnus-registry-fetch-extra-entry)
+	(gnus-registry-store-extra-entry, gnus-registry-delete-group)
+	(gnus-registry-add-group): add a modification timestamp to each entry
+	(gnus-registry-install-hooks): new function
+
+2003-05-12  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-cat-name): Eval macro while compiling.
+	(gnus-agent-cat-disable-undownloaded-faces): New function.
+	Accessor for new agent property
+	'agent-disable-undownloaded-faces'.
+	gnus-cus.el (gnus-agent-parameters): Added
+	agent-disable-undownloaded-faces and corrected documentation.
+	(gnus-agent-cat-prepare-category-field,
+	gnus-agent-customize-category): Changed to avoid creating free
+	references to each field's symbol.
+	gnus-sum.el (gnus-summary-use-undownloaded-faces): New local variable.
+	(gnus-select-newgroup): Initialize it.
+	(gnus-summary-highlight-line): Use it.
+
+2003-05-12  Dave Love  <fx@gnu.org>
+
+	* mm-util.el (mm-read-charset): Deleted.
+	(mm-coding-system-mime-charset): New.
+	(mm-read-coding-system, mm-mule-charset-to-mime-charset)
+	(mm-charset-to-coding-system, mm-mime-charset)
+	(mm-find-mime-charset-region): Use it.
+	(mm-default-multibyte-p): Fix non-mule case.
+
+	* rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-bol): Eval
+	and compile.
+	(rfc2047-syntax-table): Fix building table to work in Emacs 22.
+	(rfc2047-unfold-region): Delete unused var `leading'.
+
+2003-05-12  Simon Josefsson  <jas@extundo.com>
+
+	* pgg.el (pgg-temp-buffer-show-function): Reuse existing visible
+	output window if one is available.  Tiny patch from Ville Skytt,Ad(B
+	<scop@xemacs.org>.
+
+2003-05-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-expire-unagentized-dirs): Added
+	space.
+
+2003-05-11  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-enter-digest-group): Don't do article
+	washing etc.
+	(gnus-handle-ephemeral-exit): Don't reload article after exiting.
+
+	* nndoc.el (nndoc-type-alist): `mime-digest' should be before
+	`mime-parts'.
+
+2003-05-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-cite.el (gnus-article-hide-citation-maybe): Make toggling
+	work.  Update mode-line.
+
+2003-05-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-logo-color-alist): Added no colours.
+
+2003-05-09  Dave Love  <fx@gnu.org>
+
+	* utf7.el (mm-util): Require.
+	(utf7-direct-encoding-chars, utf7-imap-direct-encoding-chars):
+	Defconst, not defvar.
+	(utf7-utf-16-coding-system): New.
+	(utf7-encode-internal): Hoist concat out of loop.
+	(utf7-fragment-encode): Use mm-with-unibyte-current-buffer.
+	(utf7-get-u16char-converter) [utf7-utf-16-coding-system]: New
+	case.
+	(utf7-latin1-u16-char-converter): Encode the region.
+	(utf7-u16-latin1-char-converter): Decode the region.
+	(utf7-encode, utf7-decode): Fix multibyteness.
+
+	* mm-bodies.el (mm-body-7-or-8): Don't special-case mule.
+	(mm-encode-body): Use mm-read-coding-system, not mm-read-charset.
+	(mm-uu-yenc-decode-function): Defvar when compiling.
+	(mm-encode-body, mm-decode-body): Doc fix.
+
+2003-05-09  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-unregistered-group-regex):
+	removed in favor of the group/topic/global variables
+	(gnus-registry-register-message-ids): fixed test to omit
+	gnus-registry-unregistered-group-regex
+
+	* gnus.el (gnus-variable-list): removed gnus-registry-alist and
+	gnus-registry-headers-alist from the list
+	(gnus-registry-headers-alist): removed
+	(registry-ignore): new parameter, with accompanying
+	gnus-registry-ignored-groups global variable
+
+	* gnus-start.el (gnus-clear-system): no need to clear the
+	registry, we can do it ourselves
+	(gnus-gnus-to-quick-newsrc-format): extra parameters so it can be
+	used by gnus-registry.el
+
+	* gnus-registry.el (gnus-registry-cache-file): new file variable
+	(gnus-registry-cache-read, gnus-registry-cache-save): new
+	functions
+	(gnus-registry-cache-whitespace): new function.  From Dan
+	Christensen <jdc@chow.mat.jhu.edu>
+	(gnus-registry-save, gnus-registry-read): use the new
+	gnus-registry-cache-{read|save} functions, and change the name
+	from gnus-registry-translate-{from|to}-alist
+	(gnus-registry-clear): fixed so it doesn't refer to old function name
+
+2003-05-09  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-picon.el (gnus-picon-transform-address): Parse the encoded
+	address.
+
+2003-05-08  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-start.el (gnus-clear-system): added gnus-registry-alist to
+	the list of cleared variables
+
+	* gnus-registry.el (gnus-registry-split-fancy-with-parent):
+	nnmail-split-fancy-with-parent-ignore-groups can be a single regex
+	in addition to a list of regexes.
+
+	* spam.el (spam-use-regex-headers): docstring fix.  From Niklas
+	Morberg <niklas.morberg@axis.com>
+
+2003-05-08  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* gnus-sum.el (gnus-summary-next-page): Mention
+	`gnus-article-skip-boring' in docstring.
+
+2003-05-08  Jesper Harder  <harder@ifa.au.dk>
+
+	* rfc2231.el (rfc2231-parse-string): "=" should have whitespace
+	syntax here.
+
+	* ietf-drums.el (ietf-drums-syntax-table): "=" should not have
+	whitespace syntax class when parsing email addresses.
+
+	* message.el (message-forward-subject-name-subject): Don't use
+	mail-decode-encoded-word-string before parsing from.
+
+2003-05-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-setup-1): Setup alternative email before
+	generate-headers.
+
+	(message-forward-subject-name-subject): Fix the case when the
+	field "from" doesn't exist.
+
+2003-05-07  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (rfc2047-encode-region): Skip \n as whitespace.
+
+	* mm-util.el (mm-find-mime-charset-region): Expurgate utf-16 from
+	possible values.
+
+2003-05-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-kill-to-signature): Fix.
+
+2003-05-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-auto-goto-ignores): Docstring fix.
+
+	* gnus-art.el (gnus-mime-display-multipart-as-mixed)
+	(gnus-mime-display-multipart-related-as-mixed)
+	(gnus-button-mid-or-mail-heuristic-alist): do.
+
+2003-05-05  Dave Love  <fx@gnu.org>
+
+	* mm-util.el (mm-default-multibyte-p): New.
+	(mm-coding-system-p): Maybe use find-coding-systems.
+
+2003-05-04  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (with-syntax-table): Define if necessary.
+	(rfc2047-syntax-table): Fix last change for XEmacs.
+	(rfc2047-parse-and-decode): Revert last change.
+
+2003-05-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.el: Don't test for `mm-guess-mime-charset'.
+
+	* mm-util.el (mm-guess-mime-charset): Remove.  Not used any more.
+
+	* gnus.el (gnus-default-charset): Set default value to
+	`undecided'.
+
+	* gnus-art.el (article-decode-charset): Don't supply 4th arg to
+	mm-decode-body.
+
+	* mm-bodies.el (mm-decode-coding-region-safely): Remove.
+	(mm-decode-body): Don't use mm-decode-coding-region-safely.
+
+2003-05-03  Vasily Korytov <deskpot@despammed.com>  (tiny change)
+
+	* gnus-util.el (gnus-multiple-choice): Add ", ?".
+
+2003-05-03  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (rfc2047-syntax-table): Don't call make-char-table
+	with 2 args.
+	(rfc2047-decode-string): Don't set the buffer multibyte before
+	calling buffer-string.
+
+	* mm-encode.el (mm-long-lines-p): Autoload.
+	(mm-encode-content-transfer-encoding): Doc fix.  Don't make buffer
+	unibyte.  Signal error on unknown encoding.
+	(mm-encode-buffer, mm-qp-or-base64): Doc fix.
+
+	* rfc2047.el (rfc2047-point-at-bol, rfc2047-point-at-eol): New.
+	Callers of gnus- versions changed to use them.
+	(rfc2047-header-encoding-alist): Add `address-mime' part.  Doc
+	fixes.
+	(rfc2047-encoding-type): New.
+	(rfc2047-encode-message-header): Use mm-charset-to-coding-system.
+	Don't include header name field in encoding.  Add `address-mime'
+	case and bind rfc2047-encoding-type for `mime' case.
+	(rfc2047-encodable-p): Deleted.
+	(rfc2047-syntax-table): New.
+	(rfc2047-encode-region, rfc2047-encode): Rewritten to take account
+	of rfc2047 rules with respect to rfc2822 tokens and to do encoding
+	in place rather than by passing strings.
+	(rfc2047-encode-string): Doc fix.
+	(rfc2047-q-encode-region): Don't use
+	mm-with-unibyte-current-buffer.
+	(rfc2047-encoded-word-regexp): eval-and-compile.
+	(rfc2047-decode-region): Avoid concatenation in loop.
+	(rfc2047-parse-and-decode): Remove useless disjunction.
+
+2003-05-02  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (rfc2047-q-encode-region, rfc2047-decode): Use
+	mm-with-unibyte-current-buffer.
+	(ietf-drums, gnus-util): don't require.
+
+	* sieve.el (sieve-manage-mode-menu): Define before use.
+
+	* mml-smime.el (message-narrow-to-headers): Autoload.
+
+	* mm-util.el (mm-coding-system-p): Don't override nil from
+	coding-system-p.
+	(mm-mule4-p, mm-disable-multibyte-mule4)
+	(mm-with-unibyte-current-buffer-mule4): Deleted.
+	(mm-multibyte-p): Use defun, not defalias.
+	(mm-make-temp-file): Moved to group at top of file.
+	(mm-point-at-eol, mm-point-at-bol): New.
+
+	* gnus-cite.el (gnus-art): Require.
+
+	* gnus-ems.el (gnus-get-buffer-create)
+	(nnheader-find-etc-directory, message-text-with-property):
+	Autoload.
+	(gnus-tmp-unread, gnus-tmp-replied, gnus-tmp-score-char)
+	(gnus-tmp-indentation, gnus-tmp-opening-bracket, gnus-tmp-lines)
+	(gnus-tmp-name, gnus-tmp-closing-bracket, gnus-tmp-subject-or-nil)
+	(gnus-check-before-posting): Only defvar when compiling.
+
+	* gnus-int.el (gnus-agent-expire): Autoload, don't defun.
+
+	* gnus-util.el (rmail-default-rmail-file, mm-text-coding-system):
+	Defvar when compiling.
+	(gnus-output-to-rmail): Require mm-util.
+
+	* mail-source.el (mail-source-callback): Use mm-make-temp-file.
+	(mail-source-make-complex-temp-name): Deleted.
+
+	* message.el (message-use-idna): Use mm-coding-system-p.
+	(message-tokenize-header, message-make-organization)
+	(message-make-from):  Use with-temp-buffer.
+	(message-set-work-buffer): Deleted.
+	(message-fill-paragraph): Use `if' not `and' for compiler warning.
+	(message-check-news-header-syntax): Remove useless lambda.
+	(message-forward-make-body): Use mm-disable-multibyte,
+	mm-with-unibyte-current-buffer, mm-enable-multibyte.
+	(message-replace-chars-in-string): Deleted.
+
+	* mm-extern.el (mm-extern-local-file): Use mm-disable-multibyte.
+	(mm-extern-url): Use mm-with-unibyte-current-buffer,
+	mm-disable-multibyte.
+	(mm-extern-anon-ftp): Use mm-disable-multibyte.
+
+	* mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt): Use
+	mm-with-unibyte-current-buffer.
+
+	* mml2015.el (mml): Require.
+	(mml2015-mailcrypt-encrypt, mml2015-gpg-encrypt): Use
+	mm-with-unibyte-current-buffer.
+
+	* nnheader.el (gnus-util): Require.
+
+	* nntp.el (format-spec, format-spec-make, open-tls-stream):
+	Autoload.
+
+	* rfc2231.el (mail-header-remove-comments, mm-encode-body)
+	(mail-header-remove-whitespace): Autoload.
+
+	* sieve-manage.el (starttls-negotiate): Autoload.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnrss.el (nnrss-find-rss-via-syndic8): Indent.
+
+2003-05-01  Mark A. Hershberger  <mah@everybody.org>
+
+	* nnrss.el (nnrss-find-rss-via-syndic8): Don't error out.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+2003-05-01  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam-report.el (spam-report-gmane-regex): docstring fix.  From
+	Jon Ericson <Jon.Ericson@jpl.nasa.gov> (tiny change)
+
+	* gnus.el (gnus-install-group-spam-parameters): docstring fix.
+	From Jon Ericson <Jon.Ericson@jpl.nasa.gov> (tiny change)
+
+	* gnus-registry.el (gnus-registry-fetch-extra)
+	(gnus-registry-store-extra, gnus-registry-group-count): new functions
+	(gnus-registry-fetch-group, gnus-registry-delete-group)
+	(gnus-registry-add-group): changed to work with extra data element
+	if present
+
+2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Gnus v5.10.1 is released.
+
+2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.24 is released.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* dgnushack.el (when): Check whether defadvice is fbound.
+
+2003-05-01  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-unregistered-group-regex): new variable
+	(gnus-registry-register-message-ids): use it
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+	* gnus.el: Update copyright for several files.
+
+2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.23 is released.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* spam-stat.el (spam-stat-test-directory): Compare against zero.
+
+2003-05-01  Trey Jackson <tjackson@ichips.intel.com>  (tiny change)
+
+	* spam-stat.el (spam-stat-test-directory): Skip 0 length files.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-forward-subject-name-subject): Decode
+	string when forwarding.
+
+2003-05-01  Oystein Viggen  <oysteivi@tihlde.org>
+
+	* dgnushack.el (when): Add defadvice.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.22 is released.
+
+2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.21 is released.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+2003-05-01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.20 is released.
+
+2003-05-01  Vasily Korytov  <deskpot@despammed.com>
+
+	* gnus-dired.el (gnus-dired-mode-map): Move to C-c C-l.
+
+2003-04-30  Mark A. Hershberger  <mah@everybody.org>
+
+	* mm-url.el (mm-url-insert-file-contents): set url-current-object
+	in the case where mm-url-use-external is set.
+
+	* nnrss.el (nnrss-request-article): Change the messages created to
+	multipart/alternative.  Hopefully fixes a problem interaction with
+	w3m.
+	(nnrss-find-rss-via-syndic8): Better handling if xml-rpc.el isn't
+	around.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-check-news-header-syntax): Alter "posting"
+	message.
+
+	* nnrss.el (nnrss-node-text): Don't use char classes.
+
+2003-05-01  David Z. Maze  <dmaze@mit.edu>
+
+	* nnrss.el (nnrss-find-rss-via-syndic8): Have an `error' branch
+	in condition-case.
+
+2003-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-required-headers): Remove In-Reply-To.
+
+	* gnus-int.el (gnus-open-server): Revert changes.
+
+2003-04-30  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* gnus-int.el (gnus-open-server): Try to open unagentized servers
+	even when unplugged.
+
+2003-04-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-prefer-mid-or-mail): Fixed typo in
+	doc-string.
+
+2003-05-01  Steve Youngs  <youngs@xemacs.org>
+
+	* lpath.el: Add a section for non-Mule XEmacsen.
+	fbind `find-charset-string' and `coding-system-base' in that
+	section.
+
+	* gnus-util.el (gnus-completing-read-maybe-default): New.
+	(gnus-completing-read): Use it.
+
+	* mm-view.el (mm-view-pkcs7-decrypt): Ditto.
+
+	* gnus-art.el (gnus-read-string): New.
+	(gnus-summary-pipe-to-muttprint): Use it.
+
+	* gnus-xmas.el (gnus-xmas-open-network-stream): New.
+
+	* dns.el (dns-make-network-process): Use it.
+
+	Take care of some differences between XEmacs 21.1 and newer
+	versions of XEmacs.
+
+2003-04-30  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-split-fancy-with-parent): added
+	diagnostic message
+	(gnus-registry-grep-in-list): don't run when word is nil
+	(gnus-registry-fetch-message-id-fast): new function
+	(gnus-registry-delete-group, gnus-registry-add-group): make sure
+	the id and group are not nil
+	(gnus-registry-register-message-ids): new function
+	(gnus-register-action): optimized logical flow
+	(gnus-summary-prepare-hook): added gnus-registry-register-message-ids
+
+2003-04-30  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* gnus-delay.el (gnus-delay-article): Call
+	`gnus-agent-queue-setup' to create the delay group.
+
+	* gnus-agent.el (gnus-agent-queue-setup): Support optional arg
+	for the (queue) group name.
+
+2003-04-30  Simon Josefsson  <jas@extundo.com>
+
+	* mm-util.el (mm-charset-to-coding-system): Use user specified
+	charset unless coding-system-get is fboundp.
+
+2003-04-30  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-name):
+	Wrapped in eval-when-compile.
+	(gnus-agent-mode): Bind gnus-agent-go-online to nil as you
+	shouldn't be asked twice to go online with each server.
+	(gnus-agent-get-undownloaded-list, gnus-agent-fetch-articles,
+	gnus-agent-crosspost, gnus-agent-flush-cache,
+	gnus-agent-fetch-session, gnus-agent-unread-articles,
+	gnus-agent-uncached-articles, gnus-agent-regenerate-group,
+	gnus-agent-group-covered-p): Expanded pop macros used for
+	effect. Avoids compilation warning in emacs 21.3.
+
+	* gnus-int.el (gnus-open-server): Restructured to only open
+	nnagent when gnus-plugged is nil.
+
+2003-04-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Fbind string-to-multibyte.
+
+2003-04-30  Steve Youngs  <youngs@xemacs.org>
+
+	* dgnushack.el: Add some missing autoloads for XEmacs 21.1.
+
+2003-04-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-registry-fetch-group): faster
+	(gnus-registry-delete-group): new function
+	(gnus-registry-add-group): new function
+	(gnus-register-spool-action): use it
+	(gnus-register-action): use it
+	(gnus-registry-translate-from-alist)
+	(gnus-registry-translate-to-alist): remove the headers registry
+	for now
+
+2003-04-29  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-alist): Fixed CTAN regexp.
+
+2003-04-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam-report.el (spam-report-gmane): gnus-summary-article-number
+	is not necessary, just use the function parameter
+
+2003-04-29  Karl Pfl,Ad(Bsterer  <sigurd@12move.de>
+
+	* spam-stat.el (spam-stat-save): No longer font-locks the file
+	when saving
+
+2003-04-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* canlock.el: Bind mail-header-separator when compiling (XEmacs
+	provides it in mail-lib/auto-autoloads.el).
+
+2003-04-29  Simon Josefsson  <jas@extundo.com>
+
+	* mml2015.el (mml2015-pgg-sign): Use mml-sender instead of
+	message-sender.
+
+	* mml.el (mml-generate-mime-1): Set mml-sender too.
+
+2003-04-29  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-display-while-building): Docstring fix.
+
+	* mm-url.el (mm-url-use-external): do.
+
+2003-04-29  Simon Josefsson  <jas@extundo.com>
+
+	* canlock.el (mail-fetch-field): Autoload it (fix xemacs compile
+	warnings).
+
+	* sieve-mode.el (c-mode): Ditto.
+
+	* pgg.el (run-at-time): Ditto.
+
+	* mm-url.el (require): Require timer when compiling for
+	with-timeout macro (fix xemacs compile warnings).
+
+2003-04-28  Dave Love  <fx@gnu.org>
+
+	* gnus-util.el (nnheader): Don't require.
+	(Nnheader-narrow-to-headers, nnheader-replace-chars-in-string):
+	Autoload.
+
+	* spam.el: Require cl when compiling.
+
+	* dns.el: Require cl when compiling.
+
+2003-04-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-article-goto-next-page)
+	(gnus-article-goto-prev-page): Revert 2003-02-12 change to make
+	gnus-pick-mode work.
+
+2003-04-28  Steve Youngs  <youngs@xemacs.org>
+
+	* Makefile.in (FLAGS): Use @FLAGS@.
+
+2003-04-27  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-mime-display-multipart-as-mixed)
+	(gnus-mime-display-multipart-alternative-as-mixed)
+	(gnus-mime-display-multipart-related-as-mixed): Added doc-strings,
+	allow customization.
+
+2003-04-27  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* dgnushack.el (dgnushack-compile-verbosely): New function.  Not
+	currently called (See source for explanation).
+
+2003-04-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-catchup): Don't mark ticked messages.
+	(gnus-summary-mark-read-and-unread-as-read): Take an optional
+	mark.
+
+	* gnus.el (gnus-version-number): Bump.
+
+2003-04-27 06:47:31 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.19 is released.
+
+2003-04-27  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-registry.el (gnus-register-spool-action): Replaced literal
+	carriage-return character with its escape sequence.
+
+2003-04-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-catchup-from-here): Doc fix.
+
+	* nnrss.el (nnrss-node-text): Use only one
+	gnus-replace-in-string.
+
+	* gnus.el: Remove gnus-functionp throughout.
+
+	* gnus-util.el (gnus-functionp): Removed.
+
+	* gnus-msg.el (gnus-summary-wide-reply-with-original): Doc fix.
+
+	* message.el (message-required-headers): Add In-Reply-To.
+
+2003-04-27  Marshall T. Vandegrift  <vandem2@rpi.edu>
+
+	* gnus-fun.el (gnus-face-from-file): Bind coding-system-for-read
+	to binary.
+
+2003-04-27  Jesper Harder  <harder@ifa.au.dk>
+
+	* mml.el (mml-preview): do.
+
+	* message.el (message-mode): do.
+
+	* gnus-undo.el (gnus-undo-mode): do.
+
+	* gnus-topic.el (gnus-topic-mode): do.
+
+	* gnus-sum.el (gnus-summary-mode, gnus-summary-edit-article): do.
+
+	* gnus-msg.el (gnus-setup-message)
+	(gnus-inews-add-send-actions, gnus-configure-posting-styles): do.
+
+	* gnus-gl.el (gnus-grouplens-mode): do.
+
+	* gnus-art.el (gnus-mime-save-part-and-strip)
+	(gnus-mime-delete-part): Use it.
+
+	* gnus-util.el (gnus-make-local-hook): New function.
+
+2003-04-25  Simon Josefsson  <jas@extundo.com>
+
+	* nnrss.el (nnrss-node-text): Don't use a star.
+	(nnrss-node-text): Use g-r-i-s, not g-r-r-i-s which doesn't exist.
+
+2003-04-24  Dave Love  <fx@gnu.org>
+
+	* mm-encode.el (mm-long-lines-p): Autoload.
+	(mm-encode-content-transfer-encoding): Don't try to make buffer
+	unibyte before decoding.  Don't ignore errors for base64 encoding.
+
+	* qp.el (quoted-printable-decode-region): Use mm-insert-byte.
+	Signal error on malformed text, as for base64.
+	(quoted-printable-encode-region): DTRT in Emacs 22.
+
+	* mm-util.el (mm-make-temp-file, mm-insert-byte): New.
+	(mm-auto-save-coding-system): Consider utf-8-emacs.
+	(mm-mime-mule-charset-alist, mm-mule-charset-to-mime-charset)
+	(mm-charset-to-coding-system, mm-mime-charset)
+	(mm-find-mime-charset-region): Check for :mime-charset coding
+	systems property.
+
+	* mml-sec.el (mml2015, mml1991): Don't require.
+	(mml2015-sign, mml2015-encrypt, mml1991-sign, mml1991-encrypt)
+	(message-goto-body, mml-insert-tag): Autoload.
+
+	* mm-decode.el (mm-tmp-directory): Re-write to help avoid warnings.
+
+	* gnus-start.el (message-make-date): Autoload rather than
+	requiring message.
+
+	* gnus-group.el (gnus-group-name-charset-group-alist): Use
+	mm-coding-system-p.
+	(gnus-cache-active-altered): Defvar when compiling.
+	(gnus-group-delete-group): Re-write to help avoid warnings.
+
+	* gnus-art.el (gnus-use-idna): Use mm-coding-system-p.
+
+	* pgg.el: Split eval-when-compile forms.
+
+2003-04-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-group.el (gnus-large-ephemeral-newsgroup)
+	(gnus-fetch-old-ephemeral-headers): News variables.
+	(gnus-group-read-ephemeral-group): Use them.
+
+2003-04-24  Simon Josefsson  <jas@extundo.com>
+
+	* sieve.el (sieve-upload): Don't use replace-regexp-in-string.
+
+	* nnrss.el (nnrss-node-text): Ditto.
+
+2003-04-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-inews-do-gcc): Make sure the obsolete variable
+	gnus-inews-mark-gcc-as-read exists.
+
+2003-04-23  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sieve.el (gnus-sieve-generate): Rewrite regexp search so it
+	doesn't exceed the regexp stack space.
+
+2003-04-23  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-inews-mark-gcc-as-read): Don't defvar it.
+
+	* gnus-art.el (gnus-article-hide-pgp-hook): do.
+
+2003-04-23  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mml.el (mml-preview): Bind `=', RET, and mouse-2.
+
+2003-04-23  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-bodies.el (mm-decode-body): Don't override supplied charset.
+
+2003-04-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el (merge, copy-list): Remove compiler macros.
+	(butlast): Add a compiler macro.
+
+2003-04-22  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus-util.el (gnus-merge): Added "type" argument to match CL
+	merge and gnus-sum.el's expectations.
+
+2003-04-21  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-url-regexp): Added nntp.
+
+	* message.el (message-generate-headers-first): Default to
+	'(references).
+
+	* gnus-art.el (gnus-mime-delete-part): Require confirmation.
+
+2003-04-21  Jesper Harder  <harder@ifa.au.dk>
+
+	* smime.el (smime-decrypt-region): Insert From header.
+
+2003-04-21  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+
+	* gnus-fun.el (gnus-face-from-file, gnus-convert-png-to-face):
+	Max length of header is 726, not 740.  From Gaute B Strokkenes
+	<gs234@cam.ac.uk>.
+
+2003-04-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* nndb.el, mml1991.el: Fix license template.
+
+2003-04-20  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-split-articles): Don't download body unless
+	required.
+
+	* imap.el (imap-gssapi-open, imap-ssl-open): Erase buffer before
+	starting process, like imap-kerberos4-open does.
+
+	* mml-smime.el, rfc1843.el, dig.el, smime.el, uudecode.el: Fix
+	license template.
+
+	* mml-sec.el: Fix license template.
+
+	* gnus-sieve.el, sieve.el, sieve-manage.el, sieve-mode.el: Fix
+	license template.
+
+	* pgg-def.el, pgg.el, pgg-gpg.el, pgg-parse.el, pgg-pgp5.el,
+	pgg-pgp.el: Fix license template.
+
+2003-04-19  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-delete-article): Improve docstring.
+
+2003-04-19  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-move-spam-nonspam-groups-only): dumb typo fix
+
+2003-04-18  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-split): allow a particular check as a parameter,
+	e.g. (: spam-split 'spam-use-bogofilter)
+	(spam-mark-only-unseen-as-spam): new parameter, see doc
+	(spam-mark-junk-as-spam-routine): use
+	spam-mark-only-unseen-as-spam, simplify routine to take advantage
+	of gnus-newsgroup-unread as well as gnus-newsgroup-unseen
+
+2003-04-17  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.el (gnus-group-short-name, gnus-group-prefixed-p): new functions
+	(gnus-group-guess-full-name): don't prefix the group twice
+
+	* nnmail.el (nnmail-split-fancy-with-parent): docstring fix
+
+	* gnus-registry.el (gnus-registry-clear)
+	(gnus-registry-fetch-group, gnus-registry-grep-in-list)
+	(gnus-registry-split-fancy-with-parent): new functions
+	(gnus-register-spool-action, gnus-register-action): simplified the format
+	(gnus-registry): new customization group
+	(gnus-registry-unfollowed-groups): new variable
+
+2003-04-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-button-alist): Add nntp: urls.
+	(gnus-header-button-alist): Ditto.
+
+2003-04-17  Dave Love  <fx@gnu.org>
+
+	* gnus-util.el (gnus-string-equal): Revert last change.
+
+2003-04-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-srvr.el (gnus-browse-make-menu-bar): Fix typo.
+
+2003-04-17  Mike Woolley  <mike@ariel.co.uk>
+
+	* gnus-sum.el (gnus-sum-thread-tree-false-root): New variable.
+
+2003-04-15  Michael Shields  <shields@msrl.com>
+
+	* gnus-art.el (article-hide-boring-headers): Hide Reply-To: if
+	the broken-reply-to group parameter is set.  Idea from Vasily
+	Korytov <deskpot@myrealbox.com>.
+
+2003-04-17  Steve Youngs  <youngs@xemacs.org>
+
+	* dgnushack.el: 'setenv' is in env.el for XEmacsen <= 21.4, but in
+	process.el in XEmacsen >= 21.5.
+
+2003-04-17  Steve Youngs  <youngs@xemacs.org>
+
+	* dgnushack.el: Add a whole swag of autoloads and defaliases to
+	satisfy the byte-compiler when building with XEmacs.
+
+	* lpath.el (maybe-bind): Add 'w3-meta-content-type-charset-regexp'
+	and 'w3-meta-charset-content-type-regexp' in XEmacs.  The upstream
+	W3 doesn't have these.
+
+	* mailcap.el: Maybe require 'lpr in XEmacs.
+
+2003-04-16  Simon Josefsson  <jas@extundo.com>
+
+	* mml2015.el (mml2015-pgg-sign): Bind pgg-default-user-id to MML
+	sender tag, if available.
+
+2003-04-16  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-registry.el (gnus-register-action)
+	(gnus-register-spool-action, hashtable-to-alist)
+	(gnus-registry-translate-from-alist, alist-to-hashtable)
+	(gnus-registry-translate-to-alist, gnus-registry-headers-hashtb):
+	new variables and function fixes
+
+	* gnus.el (gnus-registry-headers-alist): new variable to hold
+	article header data
+	(gnus-variable-list): save gnus-registry-headers-alist
+
+	* spam-report.el (Module): new module for spam reporting
+
+	* gnus.el (spam-process): added
+	gnus-group-spam-exit-processor-report-gmane to the list of choices
+	(gnus-install-group-spam-parameters): defined new spam exit processor
+
+	* spam.el (autoload): autoload spam-report-gmane when needed
+	(spam-report-gmane-register-routine): glue for spam-report.el
+	(spam-group-spam-processor-report-gmane-p): glue for the
+	gnus-group-spam-exit-processor-report-gmane spam processor
+	(spam-summary-prepare-exit): check the report-gmane spam processor
+	and run spam-report-gmane-register-routine if it's active
+
+	From John Wiegley <johnw@gnu.org>
+
+	* spam.el (spam-bogofilter-score): check bogofilter headers before
+	checking bogofilter itself
+
+2003-04-16  Dave Love  <fx@gnu.org>
+
+	* gnus-agent.el: Wrap defsetf in eval-when-compile.
+	(gnus-agent-cat-defaccessor): Don't use gensym.
+
+	* mml1991.el: Require cl, mm-util when compiling.
+	(quoted-printable-decode-region, quoted-printable-encode-region):
+	Autoload.
+
+	* pgg.el: Require cl when compiling.
+
+	* nnmail.el (gnus): Require.
+
+	* gnus-util.el: Move provide to end.
+	(gnus-string-equal): Maybe use compare-strings.
+	(gnus-merge): New.
+
+	* gnus-sum.el (gnus-summary-prepare-threads): Don't use copy-list.
+	(gnus-summary-insert-articles): Use gnus-merge.
+
+	* gnus-fun.el: Require cl and mm-util when compiling.
+
+	* gnus-diary.el (gnus-diary-delay-format-french)
+	(gnus-diary-delay-format-english): Don't use setf with nthcdr.
+
+	* nndiary.el (nndiary-compute-reminders): Don't use setf with
+	nthcdr.
+
+2003-04-16  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-make-cat): Added optional parameter to
+	specify a predicate other than false.
+	(gnus-category-read): Use the new feature to create a 'default'
+	category with a 'short' predicate.
+
+2003-04-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-unique-id): Comment change.
+
+	* gnus-art.el (gnus-article-next-page-1): New function.
+	(gnus-article-next-page): Use it.
+
+2003-04-15  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-split): added save-restriction to save-excursion
+
+2003-04-15  Reiner Steib  <Reiner.Steib@gmx.de>
+	From Julien Avarre <julien@avarre.com>
+
+	* gnus-fun.el: Fixed autoload cookie.
+
+2003-04-15  Paul Jarc  <prj@po.cwru.edu>
+	From Remi Letot  <remi.letot@easynet.be>
+
+	* nnmaildir.el (nnmaildir-request-scan): Use gnus-remove-if
+	instead of remove-if.
+
+2003-04-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-summary-news-other-window): Use delq and
+	copy-sequence instead of remove which is a cl run-time function in
+	Emacs 20.
+
+2003-04-14  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-summary-news-other-window): Make a buffer
+	local copy of gnus-discouraged-post-methods with the current
+	method removed.
+
+2003-04-14  Simon Josefsson  <jas@extundo.com>
+
+	* mailcap.el (mailcap-mime-data): Add application/pgp-keys.
+
+2003-04-13  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mm-util.el (mm-sort-coding-systems-predicate): Convert elements
+	of `mm-coding-system-priorities' to base coding system.
+
+	* gnus-sum.el: Added coding cookie ("middle dot" in
+	gnus-summary-morse-message).
+
+2003-04-13  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (article-fill-long-lines)
+	(article-verify-x-pgp-sig, article-decode-group-name)
+	(gnus-mime-button-menu): Split >80 character lines.
+
+2003-04-13  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-local-variables): Use defvar since
+	we're let-binding it.
+
+	* nnmbox.el (nnmbox-mbox-buffer): It's not a constant.
+
+2003-04-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-hide-headers): Don't do intangible.
+
+	* gnus.el (gnus-group-prefixed-name): Comment out the test for
+	colon.
+
+	* gnus-srvr.el (gnus-browse-read-group): Don't give the real name
+	to the ephemeral entry, but the prefixed name.
+
+	* gnus.el (gnus-group-prefixed-name): Clean up.
+
+2003-04-13  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-group-pathname): Bind
+	gnus-command-method so that gnus-agent-directory will always
+	return a valid directory.
+	* gnus-cache.el (gnus-cache-enter-article): Remove article from
+	gnus-newsgroup-undownloaded so that the summary will display the
+	article as downloaded.
+	(gnus-cache-remove-article): If the article isn't in the agent,
+	remove it from gnus-newsgroup-undownloaded so that the summary
+	will display the article as undownloaded.
+
+2003-04-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+2003-04-13 01:12:01 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.18 is released.
+
+2003-04-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-draft.el (gnus-draft-send): Add message-hidden-headers.
+
+2003-04-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-next-page): Use
+	gnus-article-over-scroll.
+	(gnus-article-over-scroll): New variable.
+
+	* message.el (message-newline-and-reformat): Place a boundary
+	before filling.
+	(message-make-forward-subject-function): Changed default to
+	message-forward-subject-name-subject.
+	(message-forward-subject-name-subject): New function.
+
+	* nnimap.el (nnimap-split-fancy): Ditto.
+
+	* gnus-sum.el (gnus-summary-line-message-size): Ditto.
+
+	* gnus-cus.el (gnus-group-parameters): Removed "which see".
+
+	* mml.el (mml-minibuffer-read-file): Bind
+	completion-ignored-extensions to nil.
+
+	* message.el (message-fix-before-sending): Comment fix.
+	(message-fix-before-sending): Make hidden headers visible.
+	(message-hide-headers): Bind after-change-functions to nil.
+	(message-forbidden-properties): Put invisible and intangible
+	back.
+	(message-strip-forbidden-properties): Ignore message-hidden text.
+
+	* gnus-msg.el: Hide headers.
+
+	* message.el (message-hidden-headers): New variable.
+	(message-hide-headers): New function.
+	(message-hide-header-p): New function.
+	(message-hide-header-p): Change logic.
+	(message-forbidden-properties): Remove intangible nil invisible
+	nil.
+	(message-hide-headers): Narrow to headers.
+
+	* lpath.el (featurep): Bind Info-directory, Info-menu.
+
+2003-04-12  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-bodies.el (mm-body-charset-encoding-alist): UTF-16 *must* be
+	encoded.
+	(mm-encode-body): Don't corrupt UTF-16.
+	(mm-body-encoding): Pay attention to mm-body-charset-encoding-alist.
+
+2003-04-10  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-get-undownloaded-list): Articles in
+	the CACHE are now detected and handled the same as an article
+	downloaded into the agent.
+	(gnus-agent-group-path): Modified to match nnmail-group-pathname
+	so that the agent front-end and back-end (nnagent) always use the
+	same directory.
+	(gnus-agent-group-pathname): New function. Wrapper for
+	nnmail-group-pathname.
+	(gnus-agent-expire-unagentized-dirs): New variable.  May be
+	customized to disable gnus-agent-expire-unagentized-dirs.
+	(gnus-agent-expire-unagentized-dirs): Expand gnus-agent-directory
+	as the directories in gnus-agent-expire-current-dirs were
+	expanded.
+
+2003-04-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Disable "Encrypt
+	body" entry in read only groups.
+
+2003-04-09  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Disable "Import file"
+	and "Create article" items in non-editable groups.
+
+2003-04-09  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-write-active): Added option of
+	replacing, rather than updating, the agent's active file.  Do NOT
+	use the fully qualified group name as gnus-active-to-gnus-format
+	blindly prefixes group names with server names.
+	(gnus-agent-save-group-info): Merge BOTH min/max of current active
+	range, was just merging min, with specified active range.
+	(gnus-agent-expire): Save agent's active ranges after
+	expiring all groups.
+	(gnus-agent-expire-group-1): Update min of agent's active range to
+	min article currently fetched.
+	(gnus-agent-expire-unagentized-dirs): Avoid asking to delete the
+	same ancestor multiple times.
+
+	* gnus-async.el (gnus-asynchronous): Moved defcustom of
+	gnus-asynchronous away from defgroup of gnus-asynchronous.  This
+	seems to fix an intermittant error in which loading gnus-async
+	fails to define gnus-asynchronous (the variable).
+
+	* gnus-sum.el: Concur with Steve Young, 5th argument to 'load' is
+	non-essential.  Removed on all platforms.
+	(gnus-select-newsgroup): When the agent is active, expand the
+	group's active range to include fetched articles that are no
+	longer in the server's active range.
+
+	* gnus-util.el (gnus-with-output-to-file): Removed all of the
+	print-* bindings as they should be handled by the function doing
+	the printing.
+
+2003-04-09  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-uu.el (mm-uu-copy-to-buffer): buffer-file-coding-system
+	might be unbound in non-MULE XEmacsen.
+
+2003-04-08  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-uu.el (mm-uu-diff-groups-regexp, mm-uu-type-alist)
+	(mm-uu-diff-extract, mm-uu-diff-test): New functionality:
+	recognize diffs.
+
+	* mm-bodies.el (mm-decode-body): Use the supplied charset
+	unconditionally if `code-pages' hasn't been loaded.
+
+2003-04-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (article-verify-x-pgp-sig): Don't use
+	`insert-buffer', the docstring says "This function is meant for
+	the user to run interactively.  Don't call it from programs!"
+
+	* mm-extern.el (mm-extern-mail-server): do.
+
+	* mml1991.el (mml1991-mailcrypt-sign, mml1991-mailcrypt-sign)
+	(mml1991-gpg-sign, mml1991-gpg-encrypt, mml1991-pgg-sign)
+	(mml1991-pgg-encrypt): do.
+
+	* pgg.el (pgg-decrypt-region): do.
+
+	* mm-view.el (mm-view-pkcs7-decrypt): do.
+
+	* mml-smime.el (mml-smime-verify): do.
+
+	* mml.el (mml-insert-mime, mml-preview): do.
+
+	* mml2015.el (mml2015-gpg-decrypt-1, mml2015-gpg-sign)
+	(mml2015-gpg-encrypt, mml2015-pgg-clear-decrypt)
+	(mml2015-pgg-encrypt): do.
+
+2003-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-bodies.el (mm-decode-body): Silence XEmacs when compiling.
+
+2003-04-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-uu.el (mm-uu-copy-to-buffer): Copy
+	`buffer-file-coding-system' to the new buffer.
+	(mm-uu-pgp-signed-extract-1): Don't copy
+	`buffer-file-coding-system' here.
+
+	* mm-bodies.el (mm-decode-body): last-coding-system-used doesn't
+	exist in XEmacs.
+	(mm-decode-body): Add missing quote.
+
+	* mm-uu.el (mm-uu-pgp-signed-extract-1): Set
+	buffer-file-coding-system.
+
+	* mm-bodies.el (mm-decode-body): Set buffer-file-coding-system to
+	last-coding-system-used.
+
+	* mml2015.el (mml2015-pgg-clear-verify): Encode the text
+	according to buffer-file-coding-system.
+
+	* pgg-gpg.el (pgg-gpg-process-region): Revert previous change.
+
+	* pgg-pgp.el (pgg-pgp-process-region, pgg-pgp-verify-region)
+	(pgg-pgp-snarf-keys-region): do.
+
+	* pgg-pgp5.el (pgg-pgp5-verify-region)
+	(pgg-pgp5-snarf-keys-region, pgg-pgp5-process-region): do.
+
+	* pgg.el (pgg-make-temp-file, pgg-temporary-file-directory): do.
+
+2003-04-05  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-split): (save-excursion) around (widen)
+	(spam-ham-move-routine): Use spam-group-ham-mark-p, not
+	spam-group-spam-mark-p (from Michael Shields <shields@msrl.com>)
+
+2003-04-05  Steve Youngs  <youngs@xemacs.org>
+
+	* gnus-sum.el: XEmacs doesn't support the 5th arg to 'load', so
+	don't use it when loading gnus-sum.el if we're in XEmacs.
+
+2003-04-05  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound
+	print-escape-nonascii to fix more characters in compiled format
+	specs.
+
+2003-04-05  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player):
+	Fix customization type.
+
+2003-04-04  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound
+	print-quoted, print-readably, print-escape-multibyte, and
+	print-level to match original behavior of gnus-prin1.  This should
+	repair the format of .newsrc.eld when using compiled format specs.
+
+2003-04-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-group.el (tool-bar-map): defvar it.
+
+	* gnus-art.el (tool-bar-map): do.
+
+	* gnus-sum.el (tool-bar-map): do.
+
+2003-04-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* earcon.el (earcon-regexp-alist): catmeow is a wav file.
+
+2003-04-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-ctan-directory-regexp): Changed meaning
+	and value.
+	(gnus-button-alist): Use it.
+
+2003-04-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* pgg-gpg.el (pgg-gpg-process-region): do.
+
+	* pgg-pgp.el (pgg-pgp-process-region, pgg-pgp-verify-region)
+	(pgg-pgp-snarf-keys-region): do.
+
+	* pgg-pgp5.el (pgg-pgp5-verify-region)
+	(pgg-pgp5-snarf-keys-region, pgg-pgp5-process-region): Use it.
+
+	* pgg.el (pgg-make-temp-file): New function. `make-temp-name' is
+	unsafe.
+	(pgg-temporary-file-directory): Remove.
+
+2003-04-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Fbind Info-directory and Info-menu.
+
+2003-04-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-util.el (gnus-message): Added doc-string.
+
+	* gnus-score.el (gnus-score-find-trace): Changed behavior of `q'.
+	(gnus-score-edit-file-at-point): Goto first match when using `e'.
+
+2003-04-01  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-ctan-directory-regexp): New variable.
+	(gnus-button-alist): Use it.  Changed CTAN and "setq" entries.
+
+2003-04-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-via-rlogin-command-switches): Doc fix.
+	(nntp-open-via-rlogin-and-telnet): Disable the telnet linemode.
+
+2003-03-31  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bound
+	print-escape-newlines to print escape sequences rather than
+	literal newline characters.
+
+2003-03-31  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-valid-fqdn-regexp): Use
+	`message-valid-fqdn-regexp' for initialization.
+	(gnus-button-handle-info-url): Renamed and extended version of
+	`gnus-button-handle-info'.
+	(gnus-button-message-level): Renamed from `gnus-button-mail-level'
+	(gnus-button-handle-symbol, gnus-button-handle-library)
+	(gnus-button-handle-info-keystrokes): New functions.
+	(gnus-button-browse-level): New variable.
+	(gnus-button-alist): Use them.  Added levels.
+	(gnus-header-button-alist): Added levels.
+
+2003-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+2003-03-31 20:08:19 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.17 is released.
+
+2003-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-start.el (gnus-unload): Removed.
+
+	* pop3.el (pop3-read-response): Use
+	nnheader-accept-process-output.
+	(pop3-retr): Ditto.
+
+	* mm-view.el (mm-text-html-renderer-alist): Add -nolist to Lynx.
+	(mm-text-html-washer-alist): Ditto.
+
+2003-03-31  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-gssapi-program): Also try GNU SASL.
+	(imap-gssapi-open): Accept GNU SASL greeting.
+	(imap-read-timeout): New.
+	(imap-wait-for-tag): Use it.
+
+2003-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nntp.el (nntp-accept-process-output): Use new function.
+
+	* nnheader.el (nnheader-read-timeout): New variable.
+	(nnheader-accept-process-output): New function.
+
+	* nntp.el (nntp-read-timeout): Removed.
+
+	* gnus-sum.el (gnus-summary-prepare-threads): Add comment.
+
+2003-03-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-cache.el (gnus-cache-braid-nov): Revoke last change.
+
+2003-03-30  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-idna-inside-rhs-p): Narrow to header before
+	searching.
+
+	* gnus-art.el (article-decode-idna-rhs): More restrictive regexp.
+
+2003-03-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnmail.el (nnmail-process-mmdf-mail-format): Indent.
+
+2003-03-28  Vasily Korytov  <deskpot@myrealbox.com>
+
+	* message.el (message-make-in-reply-to): Use
+	mail-extract-address-components to determine sender's
+	name/address.
+
+2003-03-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nndoc.el (nndoc-type-alist): Move mime-parts further ahead.
+
+	* gnus-registry.el (gnus-registry-translate-to-alist): Make a
+	valid lambda.
+	(gnus-registry-translate-from-alist): Ditto.
+
+	* gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bind
+	print-length to nil.
+
+	* gnus-sum.el (gnus-summary-highlight-line-0): Indent.
+
+	* gnus-fun.el (gnus-fun-ppm-change-string): New function.
+	(gnus-grab-cam-face): Use it.
+
+2003-03-28  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-set-mark)
+	(nnmaildir-close-group): Allow each mark directory in a group to
+	have its own inode for mark files, to accommodate AFS.
+
+2003-03-28  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-start.el (gnus-read-newsrc-el-hook): new hook called by
+	gnus-read-newsrc-el-file
+	(gnus-read-newsrc-el-file): call the gnus-read-newsrc-el-hook
+
+	* gnus-registry.el (gnus-registry-translate-to-alist)
+	(gnus-registry-translate-from-alist, alist-to-hashtable)
+	(hashtable-to-alist): new functions
+	(gnus-register-spool-action): add a spool item to the registry
+
+	* gnus.el (gnus-variable-list): added gnus-registry-alist to the
+	list of saved variables
+	(gnus-registry-alist): new variable
+
+2003-03-27  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (article-decode-group-name): Be correct instead of
+	smart.
+
+2003-03-27  Katsumi Yamaoka <yamaoka@jpl.org>
+
+	* lpath.el: Bind url-current-object for Emacs; bind
+	gnus-agent-expire-current-dirs for XEmacs; fbind open-ssl-stream
+	for both Emacsen.
+
+2003-03-27  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-article-loose-mime)
+	(gnus-article-emulate-mime): Move to gnus-article-mime customize
+	group.
+
+	* gnus-msg.el (gnus-mailing-list-groups): Fix customize type and
+	doc string.
+
+2003-03-26  Kevin Ryde <user42@zip.com.au>
+
+	* gnus-sum.el (gnus-summary-find-for-reselect): Renamed from
+	gnus-summary-find-uncancelled, skip temporary articles inserted by
+	"refer" functions.
+
+2003-03-26  Vasily Korytov  <deskpot@myrealbox.com>
+
+	* smiley.el (smiley-buffer): New function.
+
+2003-03-26  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-fetch-selected-article): Replaced
+	gnus-summary-update-line (which updated the article's face) with
+	gnus-summary-update-download-mark (which updates the article's
+	face by calling gnus-summary-update-line AND updates the download
+	mark to show that the article was fetched).
+
+2003-03-23  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-expire-unagentized-dirs): Provides
+	option of deleting agent directories for groups/servers that are
+	not currently agentized.
+	(gnus-agent-expire): Use gnus-agent-expire-unagentized-dirs.
+
+	* gnus-int.el (gnus-open-server): Report backend errors in
+	condition handler.
+
+2003-03-23  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-idna-to-ascii-rhs-1): Don't continue outside
+	header.
+
+	* rfc2047.el (rfc2047-header-encoding-alist): Make Followup-To
+	same as Newsgroups.
+
+	* nntp.el (nntp-open-connection-function): Mention
+	nntp-open-tls-stream.
+	(nntp-open-tls-stream): New function.
+
+	* tls.el: New file.
+
+	* nnimap.el (nnimap-server-port, nnimap-stream): Say TLS/SSL
+	instead of SSL.
+	(nnimap-stream): Add other streams, link to imap variables.
+	(nnimap-authenticator): Add other authenticator, link to imap
+	variables.
+
+	* imap.el: Autoload open-tls-stream.
+	(imap-streams): Add tls in front of ssl.
+	(imap-stream-alist): Add tls.
+	(imap-default-tls-port): New variable.
+	(imap-tls-p, imap-tls-open): New functions.
+
+2003-03-22  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-url.el (mm-url-insert-file-contents): parse url only if
+	results is a list.
+
+2003-03-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (mail-source-fetch-imap): Revert.
+
+2003-03-22  Svend Tollak Munkejord  <stm@bacchus.pvv.org>
+
+	* deuglify.el (gnus-outlook-repair-attribution-outlook): Use a
+	less strict regexp.
+
+2003-03-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (mail-source-fetch-imap): Use buffer name for
+	more imap function.
+
+2003-03-21  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (article-decode-group-name): Replace Newsgroups and
+	Followup-To data inline.
+
+2003-03-21  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-treat-display-xface): Don't enable if
+	icontopbm isn't available.
+
+2003-03-21  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-int.el (gnus-open-server): Catch errors in backend's
+	open-server method.  Returns nil rather than crashing startup.
+
+	* gnus-sum.el (eval-when-compile): Modified to resolve
+	compile-time warnings.
+
+	* gnus-uu.el (gnus-uu-mark-series): Added informative msg.
+	Reports length of series so that the user can compare N with a
+	subject that should, if the entire series is present, contain
+	'(.../N)'.
+	(gnus-uu-delete-work-dir): Avoid hanging when O/S forbids deletion
+	of temp file (Win-XP may leave the temp file locked when the
+	uudecode process fails).
+
+2003-03-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-split-line): Ignore error.
+
+	* lpath.el (split-line): Avoid split-line warning message.
+
+2003-03-20  Kim F. Storm  <storm@cua.dk>
+
+	* message.el (message-split-line): New function.
+	(message-mode-map): Remap split-line to message-split-line.
+
+2003-03-20  Katsumi Yamaoka <yamaoka@jpl.org>
+
+	* message.el (message-make-overlay): Defalias it to make-overlay.
+	(message-delete-overlay): Defalias it to delete-overlay.
+	(message-overlay-put): Defalias it to overlay-put.
+	(message-idna-to-ascii-rhs-1): Use them.
+
+	* messagexmas.el (message-xmas-redefine): Defalias some overlay
+	functions to extent functions.
+
+2003-03-20  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-check-news-header-syntax): Fixed regexp.
+
+2003-03-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2231.el (rfc2231-decode-encoded-string): Downcase charset.
+
+	* mm-url.el (mm-url-insert): Move url-current-object stuff into
+	mm-url-insert-file-contents.
+
+	* nnrss.el (nnrss-fetch): Fetch the local stuff.
+	(nnrss-check-group): Use it.
+
+2003-03-20 Mark A. Hershberger  <mah@everybody.org>
+
+	* nnrss.el: Primitive XML Name-space support.  This means that RSS
+	feeds like Kevin Burton's[1] can now be read in Gnus.
+
+	Implemented support for Mark Pilgrim's RSS Autodiscovery.[2] This
+	means that if you want to read the RSS feed for example.com, all
+	you have to do is hit "G R http://www.example.com/ RET" and
+	nnrss.el will find and the feed listed on the site or (if you have
+	loaded xml-rpc.el) look it up on syndic8.com.
+
+	Marked the message as HTML (by adding a Content-Type header) so
+	that Gnus will render it as html if the user wants that.
+
+	Implemented the ability to save nnrss-group-alist so that any new
+	feeds the you subscribe to will be found the next time you start
+	up.
+
+	Implemented support for RSS 2.0 elements (author, pubDate).
+
+	Prefer for <content:encoded> over <description> where both
+	elements exist.
+
+	* mm-url.el (mm-url-insert): Set url-current-object.
+
+	* gnus-group.el (gnus-group-make-rss-group): New function.
+
+2003-03-20  Katsumi Yamaoka <yamaoka@jpl.org>
+
+	* message.el (message-idna-to-ascii-rhs-1): Don't use replace-*
+	for highlight overlays.
+
+2003-03-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-cache.el (gnus-cache-braid-nov): Test if a line looks like
+	a NOV.
+
+2003-03-20  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-use-idna): Disable if UTF-8 unavailable.
+	(message-idna-to-ascii-rhs): Use it.
+
+	* gnus-art.el (gnus-use-idna): Disable if UTF-8 unavailable.
+
+2003-03-19  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-group-ham-mark-p, spam-group-spam-mark-p)
+	(spam-group-ham-marks, spam-group-spam-marks): new functions
+	(spam-spam-marks, spam-ham-marks): removed in favor of the
+	spam-marks and ham-marks parameters
+	(spam-generic-register-routine, spam-ham-move-routine): use the
+	new spam-group-{spam,ham}-mark-p functions
+
+	* gnus.el (spam-marks, ham-marks): new group parameters with
+	default values same as the old spam-spam-marks and spam-ham-marks
+
+2003-03-19  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-article-decode-hook): Add IDNA.
+	(gnus-use-idna): New variable.
+	(article-decode-idna-rhs): New function.
+
+	* message.el (message-use-idna): New variable.
+	(message-mode-field-menu): Add entry for IDNA.
+	(message-idna-inside-rhs-p, message-idna-to-ascii-rhs-1)
+	(message-idna-to-ascii-rhs): New function.
+	(message-generate-headers): Invoke IDNA code.
+
+2003-03-19  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--system-name): New function.
+	(nnmaildir-request-accept-article): Use it.
+
+2003-03-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el (gnus-byte-compile): Make it work silently as the
+	gnus-compile function does.
+
+	* gnus-sum.el (gnus-summary-highlight-line-0): Revoke the last
+	bogus change.
+
+2003-03-19  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-util.el (mm-mule-charset-to-mime-charset): Test if
+	sort-coding-systems is defined.
+
+2003-03-18  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-open-server, nnmaildir-request-scan)
+	(nnmaildir-request-create-group, nnmaildir-request-delete-group):
+	Replace create-directory with target-prefix.
+
+2003-03-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-bodies.el (mm-decode-coding-region-safely): Don't use
+	find-charset-string which is slooow in XEmacs.
+
+2003-03-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-highlight-line-0): Silence the byte-
+	compiler under XEmacs.
+
+2003-03-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-treat-highlight-signature): Make the default
+	work for multipart/signed where the message text isn't `last'.
+
+2003-03-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-view.el (mm-setup-w3m): Set w3m-display-inline-images to
+	the value of mm-inline-text-html-with-images.
+	(mm-inline-text-html-render-with-w3m): Don't bind
+	w3m-display-inline-images.
+
+	* gnus-art.el (gnus-article-wash-html-with-w3m): Don't bind
+	w3m-display-inline-images.
+
+	* lpath.el: Bind w3m-display-inline-images; bind mm-w3m-mode-map
+	regardless of an Emacs flavor.
+
+2003-03-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump.
+
+2003-03-18 00:38:22 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.16 is released.
+
+2003-03-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* lpath.el (featurep): Bind mm-w3m-mode-map.
+
+2003-03-17  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmail.el (nnmail-cache-primary-mail-backend): Not all
+	'respool-able backends define a global nnchoke-get-new-mail
+	variable.
+
+2003-03-17  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-mime-delete-part): New function.
+	(gnus-mime-action-alist, gnus-mime-button-commands): Use it.
+
+2003-03-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-check-news-header-syntax): Don't push
+	groups twice onto list of unknown groups.
+
+	* nndoc.el (nndoc-type-alist): Move exim-bounce a bit further
+	back.
+
+	* nnheader.el (nnheader-find-etc-directory): Doc fix.
+
+	* gnus-msg.el (gnus-inews-add-send-actions): Don't restore window
+	config unless the summary buffer exists.
+
+	* gnus-sum.el (gnus-summary-next-group): Semi-exit group first to
+	that target group is computed correctly when articles are marked
+	as read by Xref handling.
+
+	* mail-source.el (mail-source-fetch-imap): Pass buffer-name to
+	imap-open.
+
+	* message.el (message-send-mail): Add courtesy string to Bcc's,
+	too.
+
+	* gnus-cite.el (gnus-cited-line-p): New function.
+
+2003-03-15  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-bodies.el (mm-decode-body): Add new optional parameter,
+	force, to use the supplied charset unconditionally.
+
+	* gnus-art.el (article-decode-charset): Use it.
+
+2003-03-14  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-bodies.el (mm-decode-coding-region-safely): New function.
+	(mm-decode-body): Use it.
+
+	* rfc2047.el (rfc2047-decode-region): do.
+	(rfc2047-decode-string): Guess coding system if the default is
+	invalid.
+
+2003-03-12  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-update-info): Pretend missing
+	articles are marked 'read, so we get correct article counts.
+
+2003-03-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-insert-mime-button): Exclude a newline from
+	the button.
+	(gnus-insert-prev-page-button): Ditto.
+	(gnus-insert-next-page-button): Ditto.
+	(gnus-insert-mime-security-button): Ditto.
+
+	* mm-view.el (mm-inline-image-emacs): Open the bottom of an image
+	one line.  Suggested by Greg Klanderman <gak@klanderman.net>.
+	(mm-inline-image-xemacs): Ditto.
+
+2003-03-12  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--parse-filename, nnmaildir--sort-files,
+	nnmaildir--scan, nnmaildir-request-accept-article): Changes for
+	the recent filename uniqueness discussion.
+
+2003-03-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-view.el (mm-inline-image-emacs): Make it delete an excessive
+	newline next time.
+	(mm-inline-image-xemacs): Ditto.
+
+2003-03-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-agent.el (gnus-agent-synchronize-flags-server): Don't use
+	kill-line.
+
+2003-03-09  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-inews-insert-archive-gcc): Don't use
+	kill-line.
+
+2003-03-09  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-fetched-hook): New variable.  Just
+	fixing the code to match the documentation.
+	(gnus-agent-fetch-selected-article): Replaced
+	gnus-summary-update-article-line with gnus-summary-update-line as
+	the former did not correctly recalculate the thread indentation.
+	(gnus-agent-find-parameter): The agent-predicate, if not found
+	anywhere else, defaults to the value of gnus-agent-predicate.
+	(gnus-agent-fetch-session): Fixed typo; now executes
+	gnus-agent-fetched-hook rather than the undocumented
+	gnus-agent-fetch-hook.
+	(gnus-agent-fetch-group-1): Removed part of 2003-03-06 fix.  The
+	default agent predicate is now provided by
+	gnus-agent-find-parameter.
+	(gnus-agent-message): New macro.  This macro avoids potentially
+	costly parameter evaluation when the message's level is too high
+	to display.
+	(gnus-agent-expire-group-1): Disabled undo tracking in temp
+	overview buffer. Uses new gnus-agent-message macro to reduce
+	overhead of optional messages. Reversed message levels to
+	emphasize percent completion messages.  Detailed messages of
+	little use except when debugging code.
+
+2003-03-08  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-move-routine): use
+	spam-mark-ham-unread-before-move-from-spam-group
+	(spam-mark-ham-unread-before-move-from-spam-group): new variable
+
+2003-03-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: load nnimap.el when compiling
+	(spam-setup-widening): use
+	nnimap-split-download-body-default instead of
+	nnimap-split-download-body which is a user-customizable variable
+
+2003-03-07  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-split-download-body-default): New, holds
+	default for n-s-d-b.
+	(nnimap-split-download-body): Add new setting (symbol default),
+	which uses contents of n-s-d-b-d, and made it the default.
+
+2003-03-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-use-hashcash): new variable
+	(spam-list-of-checks): added spam-use-hashcash with associated
+	spam-check-hashcash
+	(spam-check-hashcash): new function, installed iff hashcash.el is
+	loaded
+	(spam-setup-widening): don't use (return)
+
+2003-03-06  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-fetch-group-1): Added default
+	predicate of `false' to avoid an error when a group defines no
+	predicate. Fixed typo that disabled agent scoring (i.e. the
+	low/high predicates should now work).
+
+2003-03-06  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: add spam-maybe-spam-stat-load to
+	gnus-get-top-new-news-hook, remove it from gnus-get-new-news-hook
+	(spam-bogofilter-register-with-bogofilter): use
+	spam-bogofilter-spam-switch and spam-bogofilter-ham-switch
+	(spam-bogofilter-spam-switch, spam-bogofilter-ham-switch): new
+	custom variables to replace "-s" and "-n"
+
+	* gnus-group.el (gnus-group-get-new-news): call the new
+	gnus-get-top-new-news-hook hook
+
+	* gnus-start.el (gnus-get-top-new-news-hook): new hook, run ONLY
+	by gnus-get-new-news, NOT by gnus-group-get-new-news-this-group
+
+2003-03-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mm-uu.el (mm-uu-pgp-encrypted-test): Fix message.
+
+2003-03-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-cus.el (gnus-group-customize): Don't use delete-if which is
+	a cl run-time function.
+
+2003-03-06  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-fetch-group-1): Added missing binding
+	on gnus-agent-short-article.
+	(gnus-category-read): Replaced CL function mapcar* with new macro:
+	gnus-mapcar.
+	* gnus-util.el (gnus-mapcar): New macro.  Generalizes mapcar to
+	support functions that accept multiple parameters.  A separate
+	sequence must be provided for each parameter in the function.
+	Iteration stops when the end of the shortest list is reached.
+
+2003-03-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnimap.el (nnimap-request-accept-article): Use delete-region.
+
+	* html2text.el (html2text-clean-dtdd, html2text-delete-tags)
+	(html2text-delete-single-tag, html2text-clean-anchor)
+	(html2text-remove-tags): Use delete-region.
+	(html2text-fix-paragraphs): Simplify.
+
+	* mml1991.el (mml1991-mailcrypt-sign, mml1991-mailcrypt-encrypt)
+	(mml1991-gpg-sign, mml1991-gpg-encrypt, mml1991-pgg-sign)
+	(mml1991-pgg-encrypt, mml1991-pgg-encrypt): Use delete-region, not
+	kill-region.
+
+2003-03-04  John Paul Wallington  <jpw@gnu.org>
+
+	* gnus-agent.el (gnus-agent-enable-expiration)
+	(gnus-agent-article-alist, gnus-agent-article-alist)
+	(gnus-agent-cat-defaccessor): Doc fixes.
+
+2003-03-04  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-function-implies-unread-1): Grok
+	byte-compiled functions.
+
+2003-03-04  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-sum.el (gnus-auto-goto-ignores): New variable. Provides
+	customization between new maneuvering (which permits selecting
+	undownloaded articles) and old maneuvering (which skipped over
+	undownloaded articles) behaviors.
+	(gnus-summary-find-next): Pass through the unread and subject
+	parameters when calling gnus-summary-find-prev.
+	(gnus-summary-find-next,gnus-summary-find-prev): Apply
+	gnus-auto-goto-ignores to filter out unacceptable articles.
+
+2003-03-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* mail-source.el (mail-source-read-passwd): Remove. `read-passwd'
+	exists in all supported Emacs versions, so we don't need this
+	compatibility function.
+	(mail-source-fetch-pop, mail-source-check-pop)
+	(mail-source-fetch-webmail): Use read-passwd.
+
+	* nntp.el (nntp-send-authinfo, nntp-send-nosy-authinfo)
+	(nntp-open-telnet, nntp-open-via-telnet-and-telnet): Use
+	read-passwd.
+
+	* nnwarchive.el (nnwarchive-open-server): Use read-passwd.
+
+	* imap.el (imap-read-passwd): Remove.
+	(imap-interactive-login): Use read-passwd.
+
+	* canlock.el (canlock-read-passwd): Remove.
+	(canlock-insert-header, canlock-verify): Use read-passwd.
+
+	* sieve-manage.el (sieve-manage-read-passwd): Remove.
+	(sieve-manage-interactive-login): Use read-passwd.
+
+	* pop3.el (pop3-read-passwd): Remove.
+	(pop3-movemail, pop3-get-message-count, pop3-apop): Use
+	read-passwd.
+
+	* pgg.el (pgg-read-passphrase): Simplify.
+
+2003-03-04  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-mode): Fixed the mode line reports
+	'plugged' when actually 'unplugged' bug.
+	(gnus-category-read): Ignore nil values when converting an
+	old-format category so that the new-format category will default
+	those attributes to the global variables.
+
+2003-03-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mail-source.el (mail-source-delete-old-incoming-confirm): Fixed
+	doc-string.
+
+2003-03-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnrss.el (nnrss-decode-entities-unibyte-string): Use `buffer-string'.
+	* nndoc.el (nndoc-dissect-mime-parts-sub): do.
+	* nndb.el (nndb-request-accept-article, nndb-status-message): do.
+	* mm-url.el (mm-url-decode-entities-string): do.
+	* mml1991.el (mml1991-mailcrypt-sign, mml1991-gpg-sign): do.
+	* mm-decode.el (mm-find-raw-part-by-type): do.
+	* message.el (message-send-mail-partially)
+	(message-send-mail-with-sendmail): do.
+	* gnus-uu.el (gnus-uu-save-article, gnus-uu-reginize-string): do.
+	* gnus-kill.el (gnus-pp-gnus-kill): do.
+	* gnus-art.el (gnus-article-treat-unfold-headers)
+	(gnus-article-encrypt-body): do.
+
+2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mail-source.el (mail-source-delete-incoming): Allow integer value.
+	(mail-source-delete-old-incoming-confirm): New variable.
+	(mail-source-delete-old-incoming): Use it.  New function.
+	(mail-source-callback): Call `mail-source-delete-old-incoming' if
+	`mail-source-delete-incoming' is a nonnegative integer.
+
+2003-03-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-msg.el (gnus-extended-version): Fix for 'emacs-gnus-config.
+	(gnus-user-agent): Fixed typo.
+
+2003-03-03  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-enable-expiration): Fixed documentation.
+	(gnus-agent-expire-group-1): Removed invalid (interactive) specifier.
+
+2003-03-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-fetch-articles): Fix nil message.
+	(gnus-agent-fetch-session): Allow debugging to take place.
+
+2003-03-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-highlight-selected-summary)
+	(gnus-article-get-xrefs, gnus-summary-show-thread): Use
+	`gnus-point-at-bol' and `gnus-point-at-eol' instead of
+	`(progn (beginning-of-line) (point))'.  It's shorter, faster,
+	and makes it clear that we don't need the side effect.
+	* gnus-util.el (gnus-delete-line): do.
+	* gnus-xmas.el (gnus-group-add-icon): do.
+	* nnmail.el (nnmail-article-group, nnmail-cache-fetch-group): do.
+	* nntp.el (nntp-send-authinfo-from-file): do.
+	* nnml.el (nnml-header-value): do.
+	* nnheader.el (nnheader-insert-references): do.
+	* gnus-cite.el (gnus-article-highlight-citation)
+	(gnus-cite-parse): do.
+	* gnus-score.el (gnus-score-followup): do.
+	* gnus-draft.el (gnus-draft-send): do.
+	* gnus-group.el (gnus-group-highlight-line): do.
+	* gnus-cache.el (gnus-cache-braid-nov): do.
+	* nnfolder.el (nnfolder-retrieve-headers)
+	(nnfolder-request-article): do.
+	* gnus-art.el (article-hide-boring-headers)
+	(gnus-article-hide-header): do.
+
+	* nnheader.el (nnheader-find-nov-line): Use gnus-delete-line.
+	* nnml.el (nnml-request-replace-article): do.
+	* nnmbox.el (nnmbox-request-move-article, nnmbox-delete-mail): do.
+	* nnfolder.el (nnfolder-request-move-article): do.
+	* gnus-cache.el (gnus-cache-possibly-remove-article): do.
+	* gnus-art.el (gnus-mm-display-part): do.
+
+	* gnus-art.el (gnus-article-goto-part): Use gnus-goto-char.
+
+2003-03-02  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* nntp.el (nntp-possibly-change-group): Avoid calling
+	process-buffer on nil (Which happened when you lost your
+	connection while fetching); instead signal a "Server Closed
+	Connection" error.
+
+2003-03-02  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-enable-expiration): New
+	variable. Either ENABLE or DISABLE.  Sets default behavior for
+	selecting which groups are expired.
+	(gnus-agent-cat-set-property, gnus-agent-cat-defaccessor,
+	gnus-agent-set-cat-groups): Provides abstract interface for
+	accessing agent category.  Category now implemented by an alist.
+	(gnus-agent-add-group, gnus-agent-remove-group,
+	gnus-category-insert-line, gnus-category-edit-predicate,
+	gnus-category-edit-score, gnus-category-edit-groups,
+	gnus-category-copy, gnus-category-add, gnus-group-category): Use
+	new agent category abstraction.
+	(gnus-agent-find-parameter): New function. Search for agent
+	configuration parameter first in the group's parameters, then its
+	topics (if any), and then the group's category.  If not found
+	anywhere, use the original defined constants.
+	(gnus-agent-fetch-headers, gnus-agent-fetch-group-1): Use new
+	gnus-agent-find-parameter.
+	(gnus-agent-fetch-headers, gnus-agent-uncached-articles): Clearing
+	gnus-agent-cache now blocks retrieving headers and articles from
+	the local cache.  Fetched content is still added to the cache
+	before being returned.
+	(gnus-agent-fetch-session): Use error-message-string to generate
+	displayed error message.
+	(gnus-agent-customize-category): New Command. 'e' in category
+	buffer opens category customization buffer.
+	(gnus-category-read): Reads either positional or alist format;
+	returns alist format.
+	(gnus-category-write): Writes category file compatible with
+	current, and previous, versions of gnus-agent.
+	(gnus-category-make-function, gnus-category-make-function-1):
+	Corrected documentation; parameter is predicate NOT category.
+	(gnus-predicate-implies-unread): Now works in more cases per the
+	todo comment.
+	(gnus-function-implies-unread-1): New function. Supports
+	gnus-predicate-implies-unread.
+	(gnus-agent-expire-group): Command now provides default of group
+	under point.
+	(gnus-agent-expire-group-1): Obeys new agent-enable-expiration and
+	agent-days-until-old parameters. No longer supports
+	gnus-agent-expire-days being set to an alist.
+	(gnus-agent-request-article): Now performs its own checks of
+	gnus-agent, gnus-agent-cache, and gnus-plugged rather than
+	assuming that the caller will do them correctly.
+	(): Added one-time hook to gnus-group-prepare-hook.  Detects when
+	gnus-agent-expire-days is set to an alist.  Converts said alist
+	into group parameter so that gnus-agent-expire-days will not be
+	needed.
+	* gnus-art.el (gnus-request-article-this-buffer): Conditional
+	checks surrounding gnus-agent-request-article removed; now
+	performed by gnus-agent-request-article.
+	* gnus-cus.el (gnus-agent-parameters): New variable. List of
+	customizable group/topic parameters that regulate the agent.
+	(gnus-group-customize): Uses gnus-agent-parameters.  Replaced
+	kill-buffer with gnus-kill-buffer to remove the killed buffer from
+	the list of gnus buffers.
+	(gnus-trim-whitespace): Removes leading and trailing whitespace
+	from multiline strings.
+	(gnus-agent-cat-prepare-category-field,
+	gnus-agent-customize-category): Constructs a category
+	customization buffer.
+	* gnus-int.el (gnus-retrieve-headers,
+	gnus-request-expire-articles): No longer checks gnus-agent-cache
+	as it is handled internally by the agent.
+	(gnus-request-head, gnus-request-body): Conditional checks
+	surrounding gnus-agent-request-article removed; now performed by
+	gnus-agent-request-article.
+
+	* gnus-start.el (): Added defvar statements to resolve compilation
+	warnings.
+	(gnus-long-file-names): New function. Isolates platform dependent
+	msdos-long-file-names.
+	(gnus-save-startup-file-via-temp-buffer): New variable. Provides
+	option of writing directly to file.  Avoids memory exhausted
+	errors when .newsrc.eld is huge.
+	(gnus-save-newsrc-file): Uses new
+	gnus-save-startup-file-via-temp-buffer.
+	(gnus-gnus-to-quick-newsrc-format): Rewritten to write to
+	standard-output.
+	(gnus-display-time-event-handler): Changed to alias from a defun
+	to avoid a compile-time warning when display-time-event-handler is
+	not defined.
+	* gnus-util.el (gnus-with-output-to-file): New macro. Binds
+	standard-output such that prin1 and princ will write directly to a
+	file.
+
+	* gnus.el (gnus-agent-cache): Expanded documentation.
+	(gnus-summary-high-undownloaded-face): Removed second bold keyword
+	so that this face is actually bold.
+
+	* nnkiboze.el (nnkiboze-request-article): Only use the cache when
+	gnus-use-cache has been set.
+
+2003-03-02  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnvirtual.el (nnvirtual-update-xref-header): Simplify.
+
+2003-03-01  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-article-refer-article): Be more permissive.
+
+2003-03-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* spam.el: Fix typo.
+
+2003-03-01  Satyaki Das  <satyaki@theforce.stanford.edu>
+	(Trivial patch.)
+
+	* pgg-gpg.el (pgg-gpg-process-region): Insert process status into
+	errors-buffer. This produces a nicer error message in case of
+	problems.
+
+2003-03-01  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-maybe-spam-stat-load, spam-maybe-spam-stat-load):
+	load stats iff spam-use-stat is on
+
+	* spam.el: add spam-maybe-spam-stat-load to gnus-startup hook,
+	also use spam-maybe-spam-stat-load and spam-maybe-spam-stat-save
+	instead of spam-stat-load and spam-stat-save in the
+	gnus-get-new-news-hook and gnus-save-newsrc-hook, respectively
+
+2003-03-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-view.el (mm-inline-text): Ignore errors from enriched-decode.
+
+2003-03-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-make-fqdn): Protect against nil user-mail.
+
+2003-02-28  Vasily Korytov <deskpot@myrealbox.com>
+
+	* gnus-art.el (gnus-boring-article-headers): New values:
+	'to-list and 'cc-list.
+
+2003-02-28  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-setup-widening): new function to set
+	nnimap-split-download-body, we add it to gnus-get-new-news-hook
+	(spam-list-of-statistical-checks): list of statistical splitter
+	checks
+	(spam-split): added a widen call when a statistical check is
+	enabled
+
+2003-02-28  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-msg.el (gnus-user-agent): Changed default to
+	'emacs-gnus-type, renamed 'full.
+
+2003-02-28  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-request-accept-article): Don't use
+	mail-header-unfold-field.
+
+2003-02-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* imap.el (imap-ssl-open): Don't depend on ssl.el.
+	* nntp.el (nntp-open-ssl-stream): Don't depend on ssl.el.
+
+2003-02-26  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: add spam-stat-load to gnus-get-new-news-hook
+	(spam-split): remove spam-stat-load call
+
+2003-02-26  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-toggle-header): Run
+	gnus-article-decode-hook instead of calling a-decode-encoded-words
+	directly (the latter is run as part of the former).
+
+2003-02-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-expire-group): Remove debug.
+
+2003-02-25  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-sendmail-envelope-from): New option.
+	(message-sendmail-envelope-from): New function.
+	(message-send-mail-with-sendmail): Use it.
+
+2003-02-25  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): Added
+	compensation for TDMA addresses.
+
+2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-msg.el (gnus-user-agent): New variable.
+	(gnus-version-expose-system): Removed.  Obsoleted by
+	`gnus-user-agent'.
+	(gnus-extended-version): Use `gnus-user-agent'.
+
+2003-02-24  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-stat-register-spam-routine,
+	spam-stat-register-ham-routine): remove spam-stat-save
+	(spam-stat hook): add spam-stat-save to the gnus-save-newsrc-hook
+
+2003-02-24  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-group.el (gnus-topic-mode-p): Fixed free variable
+	reference.
+
+2003-02-24  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* nnheader.el (nnheader-find-nov-line): Changed midpoint
+	calculation to avoid integer overflow.
+
+2003-02-24  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-start.el (gnus-backup-startup-file): Fixed custom type.
+
+2003-02-24  Ted Zlatanov <tzz@lifelogs.com>
+	* spam.el: disabled spam-get-article-as-filename
+
+	From Michael Shields  <shields@msrl.com>
+
+	* gnus-group.el (gnus-group-is-exiting-without-update-p): New.
+	* gnus-sum.el (gnus-summary-exit-no-update): Use it.
+	* gnus-sum.el (gnus-summary-expire-articles): Use it.
+	* spam.el (spam-summary-prepare-exit): Use it.
+	* gnus.el (gnus-install-group-spam-parameters): New.
+	* spam.el (spam-group-ham-processor-copy-p): New.
+	* spam.el (spam-summary-prepare-exit): Support for ham copying.
+	* spam.el (spam-mark-spam-as-expired-and-move-routine): Fix bug
+	that would cause the current message to be moved if the group had
+	no spam.
+	* spam.el (spam-ham-move-routine): New `copy' argument.
+
+2003-02-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+	From Martin Thornquist <martint@ifi.uio.no>
+
+	* gnus-topic.el (gnus-topic-select-group): Select last group if
+	after last group.
+	* gnus-group.el (gnus-group-select-group): Ditto.
+
+2003-02-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (popup-menu): Compiler macro for Emacs 20.
+	(gnus-article-refer-article): Use gnus-point-at-(b|e)ol instead of
+	point-at-(b|e)ol which aren't available in Emacs 20.
+
+	* gnus-registry.el (puthash): Alias to cl-puthash for Emacs 20.
+
+2003-02-23  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-start.el (gnus-activate-group): Re-enabled the catch error
+	clause of the condition-case statement.  Errors connecting to a
+	server no longer terminate gnus.
+
+	* gnus-agent.el (gnus-agent-toggle-plugged): Renamed parameter to
+	make its use obvious.  Added no-nothing case to avoid
+	opening(closing) servers when already open(closed).
+	(gnus-agent-while-plugged): Added macro to facilitate internal use
+	of gnus-agent-toggle-plugged.
+	(gnus-agent-fetch-group): Use new gnus-agent-while-plugged to
+	temporarily open servers.
+	(gnus-agent-get-undownloaded-list): Sort list of article numbers
+	as sorting gnus-newsgroup-headers is wrong.
+	(gnus-agent-summary-fetch-group): Use new gnus-agent-while-plugged
+	to temporarily open servers. Corrected logic to handle setting
+	gnus-agent-mark-unread-after-downloaded.
+	(gnus-agent-fetch-articles): Now handles headers with missing
+	article sizes and/or missing article lengths.  Now clears the
+	message buffer when finished.
+	(gnus-agent-fetch-group-1): Position point before calling
+	gnus-summary-set-agent-mark.
+	(gnus-get-predicate): Corrected description, parameter is
+	predicate not category.
+	(gnus-agent-expire-group): Adapted the gnus-agent-expire-* code to
+	provide a separate single group expiration function.
+	(gnus-agent-regenerate-group): Now clears the message buffer when
+	finished.
+
+2003-02-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus.el (gnus-agent-target-move-group-header): New variable.
+	* gnus-draft.el (gnus-draft-send): If special header
+	"X-Gnus-Agent-Target-Move-Group" is present, do like Gcc into
+	that group, instead of performing the regular sending functions.
+
+2003-02-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-xmas.el (gnus-xmas-mime-button-menu): Accept a prefix arg.
+
+2003-02-20  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-user-fqdn, message-valid-fqdn-regexp): New
+	variables.
+	(message-make-fqdn): Use it.  Improved validity check.
+
+2003-02-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-user-mail-address): Check whether
+	user-mail-address looks valid.
+
+	* gnus-msg.el (gnus-mailing-list-followup-to): New function.
+
+	* gnus-util.el (gnus-fetch-original-field): New function.
+
+2003-02-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* message.el (message-mode): \\(...\\) around additional
+	paragraph-separate alternative.
+
+2003-02-23  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-mime-button-commands): Add ellipsis.
+	(gnus-mime-button-menu): Define MIME popup menu with easy-menu to
+	display key bindings.
+	(gnus-mime-button-menu): Rewrite.
+
+2003-02-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-button-url-regexp): Removed `.
+
+2003-02-23  Max Froumentin  <mf@w3.org>
+
+	* gnus-art.el (gnus-button-url-regexp): Remove `, enter '.
+
+2003-02-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-mime-action-on-part): Require a match
+	interactively.
+
+	* gnus-start.el (gnus-save-newsrc-file): Use
+	gnus-backup-startup-file.
+	(gnus-backup-startup-file): New variable.
+
+2003-02-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-summary-buffer-name): Moved function here.
+
+	* gnus-draft.el (defun): Remove debug.
+
+2003-02-22  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-refer-article): Skip method if we
+	can't open server.
+
+2003-02-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-draft.el (defun): Configure posting styles.
+
+	* gnus-start.el (gnus-get-unread-articles-in-group): Make sure
+	the entry for the group exists before we alter it.
+
+2003-02-22  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* message.el (message-mode): MML tags separate paragraphs.  Small
+	change from David S Goldberg <david.goldberg6@verizon.net>.
+
+	* gnus-agent.el (gnus-agent-get-undownloaded-list): Sort
+	`gnus-newsgroup-headers'.
+
+	* gnus-art.el (gnus-article-refer-article): Grok more message id
+	formats.  From Karl Pfl,Ad(Bsterer <sigurd@12move.de>.
+
+2003-02-22  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-decode.el (mm-path-name-rewrite-functions): Doc fix: don't
+	use "path name".
+
+2003-02-21  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-sum.el (gnus-summary-move-article)
+	(gnus-summary-expire-articles): send data header for article, not
+	just article ID
+
+	* gnus-registry.el (gnus-registry-hashtb, gnus-register-action)
+	(gnus-register-spool-action): added hashtable of message ID keys
+	with message motion data
+
+2003-02-21  Florian Weimer  <fw@deneb.enyo.de>
+	From Reiner Steib  <Reiner.Steib@gmx.de>.
+
+	* gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): New
+	variable, used in `gnus-button-mid-or-mail-heuristic'.
+	(gnus-button-mid-or-mail-heuristic): New function derived from
+	Florian Weimer's Perl script.
+	(gnus-button-handle-mid-or-mail): Allow a function instead of
+	'guess.
+	(gnus-button-guessed-mid-regexp): Removed.
+
+2003-02-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-resend): Bind message-setup-hook to nil;
+	remove X-Draft-From header.
+
+2003-02-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-simplify-subject-fully, gnus-subject-equal)
+	(gnus-newsgroup-undownloaded)
+	(gnus-summary-save-parts-default-mime, gnus-auto-select-next):
+	Doc fixes.
+
+2003-02-17  John Paul Wallington  <jpw@gnu.org>
+
+	* gnus.el (gnus-shell-command-separator, gnus-email-address)
+	(gnus-default-charset, gnus-other-frame-parameters): Doc fixes.
+
+2003-02-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-spec.el (gnus-xmas-format): Use insert instead of
+	insert-string which is obsolete in Emacs 22.1.
+
+	* message.el (message-cross-post-followup-to-header): do.
+
+	* spam.el (spam-ifile-register-with-ifile)
+	(spam-stat-register-spam-routine)
+	(spam-stat-register-ham-routine)
+	(spam-bogofilter-register-with-bogofilter): do.
+
+	* mailcap.el (mailcap-mime-data): Fix typo.
+
+	* gnus-topic.el (gnus-topic-make-menu-bar): Add ellipsis.
+
+2003-02-19  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-cite.el (gnus-cite-unsightly-citation-regexp)
+	(gnus-cite-parse): Renamed `gnus-unsightly-citation-regexp' to
+	`gnus-cite-unsightly-citation-regexp'.
+
+2003-02-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-copy-article-buffer): Copy an article header
+	even if there's just a header.
+
+2003-02-19  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-fix-before-sending): Fix highlighting of
+	illegible and invisible text.
+
+	* gnus-util.el (gnus-multiple-choice): Separate choices with
+	",,A (B".  Suggested by Dan Jacobson <jidanni@dman.ddts.net>.
+
+2003-02-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-exit-no-update): Use gnus-kill-buffer.
+
+2003-02-18  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-move-routine)
+	(spam-mark-spam-as-expired-and-move-routine): use
+	gnus-summary-kill-process-mark and gnus-summary-yank-process-mark
+	around process-mark manipulation on the group
+
+2003-02-17  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Add MIME/Multipart
+	submenu.
+
+2003-02-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (mail-source-fetch): Reverse the return value of
+	the continuation question.
+
+2003-02-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nndraft.el (nndraft-request-move-article): Bind
+	nnmh-allow-delete-final to t.
+
+2003-02-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-uu.el (mm-uu-uu-filename): Fix use of character constant.
+
+2003-02-11  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* nntp.el (nntp-accept-process-output): Don't use point-max to get
+	the buffer's size.
+
+2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
+
+	* nnheader.el: Added cygwin to system-type comparisons.
+
+2003-01-27  Juanma Barranquero  <lektu@terra.es>
+
+	* imap.el (imap-mailbox-status): Fix typo.
+
+2003-02-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-prepare): Don't set agent mark if
+	online.
+
+2003-02-14  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-group-make-menu-bar): Include all
+	commands.
+	* gnus-sum.el: Small change from Frank Weinberg
+	<frank@usenet-rundfahrt.de>:
+	(gnus-auto-center-group): New variable.
+	(gnus-summary-read-group-1): Use it.
+	(gnus-summary-next-group): Fix docstring.
+
+2003-02-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el (gnus-faces-at): Simplify.
+
+2003-02-13  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-move-routine)
+	(spam-mark-spam-as-expired-and-move-routine): made the article
+	move conditional, so it's not called even if there's nothing to move
+
+2003-02-13  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* message.el (message-unix-mail-delimiter): Accept any whitespace
+	after the email address and before the date; do not require the
+	space character.  From Kurt B. Kaiser <kbk@shore.net>.
+
+2003-02-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-only-boring-p): Make sure that the
+	gnus-article-boring-faces variable is bound; use gnus-faces-at.
+
+	* gnus-util.el (gnus-faces-at): New macro.
+
+2003-02-13  Michael Shields  <shields@msrl.com>
+
+	* gnus-cite.el
+	(gnus-cite-attribution-suffix, gnus-cite-parse):
+	Better handling for Microsoft citation styles.
+	(gnus-unsightly-citation-regexp): New.
+
+2003-02-12  Michael Shields  <shields@msrl.com>
+
+	* gnus-art.el (article-strip-banner): Strip both per-group and
+	per-user-address banners.
+	(article-really-strip-banner): New.
+
+2003-02-12  Michael Shields  <shields@msrl.com>
+
+	* gnus-sum.el (gnus-article-goto-next-page,
+	gnus-article-goto-prev-page): Call gnus-summary-*-page, instead of
+	relying on the summary bindings of `n' and `p'.
+
+2003-02-12  Michael Shields  <shields@msrl.com>
+
+	* gnus-art.el (gnus-article-only-boring-p): New.
+	(gnus-article-skip-boring): New.
+	* gnus-cite.el (gnus-article-boring-faces): New.
+	* gnus-sum.el (gnus-summary-next-page): Use
+	gnus-article-only-boring-p.
+
+2003-02-12  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-mark-spam-as-expired-and-move-routine)
+	(spam-ham-move-routine): unmark all articles before marking those
+	of interest and calling gnus-summary-move-article
+
+2003-02-12  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.el (gnus-kill-buffer): Move to gnus.el because it's
+	logically the complement of gnus-get-buffer-create and
+	gnus-add-buffer.
+
+	* gnus-util.el (gnus-kill-buffer): do.
+
+	* nnmail.el: Autoload gnus-kill-buffer.
+
+2003-02-11  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-summary-set-agent-mark): Added call to
+	gnus-summary-goto-subject as gnus-summary-update-mark operates on
+	the current LINE.
+	(gnus-agent-summary-fetch-group): Minimized the number of times
+	that the article is updated in the buffer.
+
+2003-02-11  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-move-routine): use the process-mark instead of
+	gnus-current-article when moving articles
+	(spam-mark-spam-as-expired-and-move-routine): ditto, use the process-mark
+
+2003-02-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-topic.el (gnus-topic-expire-articles): Recursive.
+	(gnus-topic-catchup-articles): Ditto.
+	(gnus-topic-mark-topic): Reverse recursive logic.
+
+2003-02-11  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-refer-thread): Handle case where
+	gnus-refer-thread-limit is t.
+
+2003-02-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-util.el (mm-mule-charset-to-mime-charset): Use
+	sort-coding-systems to prefer utf-8 over utf-16.
+
+2003-02-09  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-expire-days):
+	gnus-request-move-article depends on gnus-agent-expire to clean up
+	the cache after moving the article.  Therefore, g-a-e-d can NOT
+	default to nil or can gnus-agent-expire be disabled by doing so.
+	If you don't want to run gnus-agent-expire, don't call it.
+	(gnus-agent-expire): The broken test to disable gnus-agent-expire
+	when g-a-e-d was NOT nil was removed.
+	(gnus-agent-article-name): Removed unnecessary input test as
+	article IDs are always strings.
+	(gnus-agent-regenerate-group): Added check to protect against
+	servers that generate absurdly long article IDs.  Valid IDs are
+	less than 10 digits to avoid overflow errors.  Fixed logic error
+	when ensuring that the final article ID is present in the new
+	alist.
+
+2003-02-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-topic.el (gnus-topic-goto-missing-topic): Just move to the
+	next line after finding the parent.
+
+2003-02-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bumped.
+
+2003-02-08 23:23:27 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.15 is released.
+
+2003-02-08  Michael Welsh Duggan  <md5i@cs.cmu.edu>
+
+	* nnmail.el (nnmail-split-it): If a message ends up matching the
+	  same mailbox more than once, it will cause duplicates to appear
+	  in the mailbox.
+
+2003-02-08  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-select-article): Remove blink removal
+	code that only worked under Emacs.
+
+	* pgg-gpg.el (pgg-gpg-process-region): Don't blink.  From Satyaki
+	Das <satyaki@chicory.stanford.edu>.
+
+2003-02-08  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-article-refer-article): Use
+	gnus-replace-in-string.
+
+	* gnus-util.el (gnus-map-function): Remove unneeded let-binding.
+	(gnus-remove-duplicates): do.
+
+2003-02-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-int.el (gnus-internal-registry-spool-current-method): new variable
+	(gnus-request-scan): set
+	gnus-internal-registry-spool-current-method to gnus-command-method
+	before a request-scan operation
+
+	* gnus-registry.el (regtest-nnmail): use
+	gnus-internal-registry-spool-current-method
+
+2003-02-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (mail-source-fetch): Typo fix.
+
+2003-02-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* nnmail.el (nnmail-spool-hook): new hook
+	(nnmail-cache-insert): call nnmail-spool-hook
+
+	* gnus-registry.el: new file with examples of using the hooks
+
+	* gnus.el (gnus-registry): added registry customization group
+	(gnus-group-prefixed-name): improve function to return full group
+	name optionally
+	(gnus-group-guess-prefixed-name): shortcut to
+	gnus-group-prefixed-name, using just the group name
+	(gnus-group-full-name): always get a group's full name
+	(gnus-group-guess-full-name): shortcut, using just the group name
+
+	* gnus-sum.el (gnus-summary-article-move-hook)
+	(gnus-summary-article-delete-hook)
+	(gnus-summary-article-expire-hook): new hooks
+	(gnus-summary-move-article, gnus-summary-expire-articles)
+	(gnus-summary-delete-article): invoke the new hooks
+
+2003-02-07  Frank Weinberg  <frank@usenet-rundfahrt.de>
+
+	* gnus-art.el (gnus-article-refer-article): Strip leading "news:"
+	from message-ID
+
+2003-02-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-util.el (gnus-run-hooks): Use save-current-buffer.
+
+2003-02-07  John Paul Wallington  <jpw@gnu.org>
+
+	* mm-util.el (mm-delete-duplicates, mm-append-to-file)
+	(mm-write-region, mm-detect-coding-region): Doc fixes.
+
+2003-02-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (mail-source-fetch): Ignore errors.
+	(mail-source-ignore-errors): New variable.
+
+	* gnus-sum.el (gnus-summary-refer-thread): Don't re-fetch current
+	articles.
+
+	* gnus-msg.el (gnus-version-expose-system): Change default.
+
+2003-02-07  Vasily Korytov  <deskpot@myrealbox.com>
+
+	* gnus-msg.el (gnus-version-expose-system): New variable.
+
+2003-02-07  Simon Josefsson  <jas@extundo.com>
+
+	* mml-sec.el (mml-unsecure-message): Don't use kill-region.  Tiny
+	patch from deskpot@myrealbox.com (Vasily Korytov).
+
+2003-02-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (article-display-face): Get the Face header from
+	the current buffer.
+
+2003-02-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-mime-view-part-internally): Bind
+	buffer-read-only to nil.
+
+2003-02-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-agent.el (gnus-agent-expire-1,2): Pass the dir argument
+	from g-a-e-1 to g-a-e-2.
+
+2003-02-05  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-BBDB): no need to regexp-quote the argument
+	of bbdb-search-simple, use spam-use-BBDB-exclusive
+	(spam-check-whitelist): use spam-use-whitelist-exclusive
+	(spam-use-whitelist-exclusive): new variable affecting
+	spam-use-whitelist
+	(spam-use-BBDB-exclusive): new variable affecting spam-use-BBDB
+
+2003-02-05  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-agent.el (gnus-agent-expire-days): Change default to nil.
+	(gnus-agent-expire): Don't expire if g-a-e-d is nil.
+	(gnus-agent-expire): Move most code into gnus-agent-expire-1.
+	(gnus-agent-expire-1): New.
+	(gnus-agent-expire-1): Move code into gnus-agent-expire-2.
+	(gnus-agent-expire-2): New.
+
+2003-02-05  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-util.el (gnus-delete-if): Rename to gnus-remove-if.
+	"delete-if" is misleading because it isn't actually destructive.
+
+	* gnus-topic.el (gnus-group-prepare-topics): Use new name.
+
+	* nnmail.el (nnmail-purge-split-history): do.
+
+	* gnus-win.el (gnus-get-buffer-window): do.
+
+	* gnus-sum.el (gnus-simplify-whitespace): Remove unnecessary
+	let-binding.
+	(gnus-simplify-all-whitespace): do.
+
+2003-02-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-delay.el (gnus-delay-article): Fix binding of the
+	nndraft:delayed group.
+
+2003-02-04  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.el (spam group parameters): change 'other to 'const in
+	the group parameter definitions to soothe XEmacs
+
+2003-02-04  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-delay.el (gnus-delay-article): Really create
+	nndraft:delayed group if it doesn't exist.
+
+2003-02-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-search-article): Speed up by
+	disabling various visual features while searching.
+	(gnus-summary-recenter): Test gnus-auto-center-summary first.
+
+2003-02-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* spam.el (spam-list-of-checks): Don't quote nil and t in
+	docstrings.  From the elisp manual:
+
+	   When a documentation string refers to a Lisp symbol, write
+	   it [..] with single-quotes around it.  [..] There are two
+	   exceptions: write t and nil without single-quotes.
+
+	* messcompat.el (message-from-style): do.
+
+	* message.el (message-send-mail): do.
+
+	* gnus-util.el (gnus-use-byte-compile): do.
+
+	* gnus-score.el (gnus-score-lower-thread): do.
+
+	* gnus-int.el (gnus-server-unopen-status): do.
+
+	* gnus.el (gnus-define-group-parameter, gnus-large-newsgroup)
+	(large-newsgroup-initial, gnus-install-group-spam-parameters): do.
+
+	* gnus-cus.el (gnus-group-customize, gnus-score-parameters)
+	(gnus-group-parameters): do.
+
+	* gnus-art.el (gnus-article-mime-match-handle-function): do.
+
+	* mm-decode.el (mm-text-html-renderer): do.
+
+2003-02-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nnheader.el (nnheader-directory-separator-character): Change the
+	way to compute the dafault value.
+
+2003-02-02  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-button-handle-describe-key): Implement it.
+	(gnus-button-alist): Fix regexp for describe-key.
+	(gnus-button-handle-describe-function)
+	(gnus-button-handle-describe-variable)
+	(gnus-button-handle-apropos, gnus-button-handle-apropos-command)
+	(gnus-button-handle-apropos-variable)
+	(gnus-button-handle-apropos-documentation): Docstring fix.
+
+	* gnus-util.el (gnus-kill-buffer): Use get-buffer.
+
+2003-02-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-draft.el (gnus-group-send-queue): Bind gnus-posting-styles
+	to nil.
+
+	* nnmail.el: Removed gnus-util autoload.
+
+	* gnus.el: Use gnus-prin1-to-string throughout.
+
+	* gnus-util.el (gnus-prin1-to-string): Bind print-length and
+	print-level.
+
+	* gnus-art.el (article-display-x-face): Removed grey x-face stuff.
+	(gnus-treat-display-grey-xface): Removed.
+
+	* gnus-fun.el (gnus-grab-cam-face): New.
+	(gnus-convert-image-to-gray-x-face): Removed.
+	(gnus-convert-gray-x-face-to-xpm): removed.
+	(gnus-convert-gray-x-face-region): Removed.
+	(gnus-grab-gray-x-face): Removed.
+
+	* nnmail.el (nnmail-expiry-wait-function): Doc indent.
+
+2003-01-31  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-util.el (gnus-kill-buffer): Functions in gnus-util
+	shouldn't depend on the rest of Gnus, so test if gnus-buffers is
+	bound.
+
+	* nnmail.el (nnmail-cache-close): Use gnus-kill-buffer.
+
+2003-01-30  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-cite.el (gnus-cite-reply-regexp, gnus-cite-always-check):
+	Remove -- these are bogus options which are never used.
+
+2003-01-29  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-article-mode): Use summary tool bar.
+
+2003-01-27  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-blackholes)
+	(spam-blackhole-good-server-regex): new variable to skip some IPs
+	when checking blackholes; use it
+	(spam-check-bogofilter-headers)
+	(spam-bogofilter-bogosity-positive-spam-header): new variable, in
+	case more X-Bogosity is used than just "Yes/No"
+	(spam-ham-move-routine): semi-fixed, only first article is
+	properly moved now
+
+2003-01-27  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-util.el (gnus-kill-buffer): Remove buffer from gnus-buffers
+	as well.
+
+	* gnus-sum.el (gnus-select-newsgroup): Use gnus-kill-buffer.
+
+	* gnus-score.el (gnus-score-headers, gnus-score-find-bnews): do.
+
+	* gnus-start.el (gnus-save-newsrc-file, gnus-clear-system): do.
+
+	* gnus-bcklg.el (gnus-backlog-shutdown): do.
+
+	* gnus-srvr.el (gnus-server-exit, gnus-browse-exit): do.
+
+2003-01-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-face-encode): New function.
+	(gnus-convert-png-to-face): Use it.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Added M-& to marks.
+
+2003-01-26  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-decode.el (mm-dissection-list): Remove.
+	(mm-dissect-singlepart): Don't push to mm-dissection-list, it's
+	only used in mm-remove-all-parts.
+	(mm-remove-all-parts): Remove it, it's never called.
+
+2003-01-25  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-make-group): Report errors.
+
+	* nnimap.el (nnimap-request-create-group): Ditto.
+
+	* sieve-manage.el (sieve-manage-is-okno): Parse literal strings.
+
+	* sieve.el (sieve-upload): Fix error printing.
+
+	* mm-encode.el (mm-qp-or-base64): Always QP iff
+	mm-use-ultra-safe-encoding and cleartext PGP.
+
+	* gnus-sum.el (gnus-summary-select-article): Inhibit
+	redisplay (mainly for secured messages).
+
+	* nnmail.el (nnmail-article-group): Copy body too (but don't
+	process it).
+
+2003-01-25  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-article-setup-buffer): Reset
+	gnus-button-marker-list.
+
+2003-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nntp.el (nntp-read-timeout): Default to using a second delay
+	under Microsoft Windows.
+
+2003-01-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnheader.el (nnheader-directory-separator-character): New
+	variable.
+
+2003-01-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-max-fetch-size)
+	(gnus-agent-article-alist, gnus-agent-get-undownloaded-list)
+	(gnus-agent-catchup, gnus-agent-summary-fetch-group)
+	(gnus-agent-fetch-articles, gnus-agent-backup-overview-buffer)
+	(gnus-agent-flush-cache, gnus-agent-fetch-headers)
+	(gnus-agent-braid-nov, gnus-agent-load-alist)
+	(gnus-agent-article-alist-save-format)
+	(gnus-agent-read-agentview, gnus-agent-save-alist)
+	(gnus-agent-fetch-group-1, gnus-agent-expire)
+	(gnus-agent-uncached-articles, gnus-agent-retrieve-headers)
+	(gnus-agent-regenerate-group): Reformat to keep under eighty
+	columns.  Reword docstrings so that first line is under eighty
+	chars and a complete sentence.  Still need to work on the rear
+	end of the file, in particular gnus-agent-expire.
+
+2003-01-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agentize): Indent.
+
+	* gnus.el (gnus-version-number): Bumped.
+
+2003-01-24 20:32:44 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.14 is released.
+
+2003-01-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-sum.el (gnus-summary-prepare-threads): Reset state for %B
+	before beginning.  Tiny patch from Mark Thomas
+	<swoon@bellatlantic.net>.
+
+2003-01-24  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-blackholes, spam-split)
+	(spam-mark-junk-as-spam-routine, spam-summary-prepare-exit): added
+	gnus-message calls to show to users what spam.el is doing
+
+2003-01-24  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-message-replysign)
+	(gnus-message-replyencrypt): Fix typo.
+
+2003-01-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-mime-security-show-details): Toggle showing
+	details.
+
+2003-01-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-press-button): let* -> let.
+	(gnus-mime-security-show-details): Cleaned up.
+	(gnus-mime-security-press-button): Save excursion.
+	(gnus-insert-mime-security-button): Clean up.
+
+	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): Doc fix.
+
+	* gnus-async.el (gnus-async-wait-for-article): Don't use a
+	timeout.
+
+	* nntp.el (nntp-accept-process-output): Removed timeout.
+	(nntp-read-timeout): New variable.
+	(nntp-accept-process-output): Use it.
+
+	* gnus-sum.el (gnus-data-find-list): Remove *.
+
+2003-01-23  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-sum.el (gnus-summary-first-subject): Fixed bug that I
+	introduced on 2002-01-22.
+	(gnus-summary-first-unseen-or-unread-subject): Ditto.
+
+2003-01-23  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-regex-headers, spam-list-of-checks)
+	(spam-regex-headers-spam, spam-regex-headers-ham): added spam/ham
+	checks of incoming mail based on simple header regexp matching
+
+2003-01-22  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus-sum.el (gnus-spam-mark): set to `$'
+
+2003-01-22  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-get-undownloaded-list): Now computes
+	gnus-newsgroup-unfetched, the list of articles whose headers have
+	not been fetched from the server.
+
+	* gnus-sum.el (gnus-summary-find-next): Removed undownloaded
+	parameter as it never worked due to a bug.  Added check to prevent
+	selection of any article in the gnus-newsgroup-unfetched list.
+	(gnus-summary-find-prev): Added check to prevent selection of any
+	article in the gnus-newsgroup-unfetched list.
+	(gnus-summary-first-subject): Documented API. Modified
+	implementation so that constraints are handled independently.
+	Added check to prevent selection of any article in the
+	gnus-newsgroup-unfetched list.
+	(gnus-summary-first-unseen-subject): Updated parameters in
+	gnus-summary-first-subject call to match new API.
+	(gnus-summary-first-unseen-or-unread-subject): Ditto.
+	(gnus-summary-catchup): Do not mark unfetched articles as read.
+
+2003-01-22  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-treat-strip-pgp, gnus-article-hide-pgp-hook):
+	make-obsolete-variable allows only two arguments in XEmacs and
+	Emacs 20.
+
+	* gnus-sum.el (gnus-summary-wash-hide-map): Remove
+	gnus-article-hide-pgp.
+	(gnus-summary-make-menu-bar): do.
+
+	* gnus-art.el (gnus-treat-strip-pgp): Make obsolete.
+	(gnus-treatment-function-alist): Remove gnus-treat-strip-pgp and
+	gnus-article-hide-pgp.
+	(article-hide-pgp): Remove.
+	(gnus-article-hide): Remove gnus-article-hide-pgp.
+
+	* gnus.el: Remove gnus-article-hide-pgp
+
+2003-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-required-headers): Doc fix.
+
+2003-01-21  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-group-ham-processor-bogofilter-p): fixed bug
+	(spam-ifile-register-ham-routine, spam-ifile-ham-category): new
+	option to make ifile a purely binary classifier
+
+2003-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mml-sec.el (mml-secure-sign-pgpauto): Renamed.
+	(mml-secure-encrypt-pgpmime): Removed double.
+
+	* gnus-sum.el (gnus-summary-mark-article-as-replied): Added
+	debugging statements.
+
+2003-01-21  Andreas Fuchs  <asf@void.at>
+
+	* mml-sec.el (mml-sign-alist): Added pgpauto.
+
+2003-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bumped version number.
+
+2003-01-21 07:15:41 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.13 is released.
+
+2003-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-button-url-regexp): Removed |.
+
+	* message.el (message-send-hook): Doc fix.
+
+	* gnus-win.el (gnus-buffer-configuration): Display article
+	instead of article-copy when `reply'.
+
+2003-01-21  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.el (gnus-format): Change customize group to gnus.
+	(gnus-cache): Add link.
+	(gnus-group-charter-alist): Fix docstring.
+
+2003-01-20  Jesper Harder  <harder@ifa.au.dk>
+
+	* mailcap.el (mailcap-print-command): lpr-command might be
+	unbound in XEmacs.
+
+2003-01-18  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-regenerate-group): Added interactive form.
+
+	* gnus-sum.el (gnus-summary-update-article-line): Fixed
+	calculation of net characters added for use in the gnus-data
+	structure.
+
+2003-01-18  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* nnmail.el (nnmail-process-unix-mail-format): Improve error
+	message.  Suggested by Jari Aalto.
+
+2003-01-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-followup-with-original): Clean up.
+	(gnus-article-reply-with-original): Ditto.
+
+	* gnus-sum.el (gnus-summary-catchup): Make sure downloadable,
+	read articles don't become unread.
+
+2003-01-17  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-fun.el (gnus-x-face-from-file):
+	(gnus-face-from-file): Suggest image format in minibuffer prompt.
+
+	* gnus-fun.el (gnus-convert-image-to-x-face-command)
+	(gnus-convert-image-to-face-command): Doc fix.
+
+2003-01-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-convert-face-to-png): Protect against errors.
+
+2003-01-17  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-mime-print-part): Use mm-save-part-to-file to
+	avoid encoding problems.
+
+	* mailcap.el (mailcap-ps-command): New variable.
+	(mailcap-mime-data): Add print entry where applicable.  Use
+	pdftotext on a tty.
+
+2003-01-16  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-alter-header-function): Add type and group.
+
+2003-01-16  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-fun.el (gnus-convert-image-to-x-face-command)
+	(gnus-convert-image-to-face-command, gnus-x-face-from-file)
+	(gnus-face-from-file): Doc fix; don't mention image format.
+
+2003-01-16  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-get-article-as-filename): new function (unused for now)
+	(spam-get-article-as-buffer): new function
+	(spam-get-article-as-string): use spam-get-article-as-buffer
+	(spam-summary-prepare-exit): fixed bug, noticed by Malcolm Purvis
+
+2003-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el: Don't use `path'.
+	From the GNU coding standards:
+
+	    Please do not use the term ``pathname'' that is used in Unix
+	    documentation; use ``file name'' (two words) instead.  We use
+	    the term ``path'' only for search paths, which are lists of
+	    directory names.
+
+	* nnsoup.el (nnsoup-file-name): Ditto.
+
+	* nnmail.el (nnmail-pathname-coding-system): Ditto.
+	(nnmail-group-pathname): Ditto.
+
+	* nnimap.el (nnimap-group-overview-filename): Ditto.
+
+	* nnheader.el (nnheader-pathname-coding-system): Ditto.
+	(nnheader-group-pathname): Ditto.
+
+	* nnfolder.el (nnfolder-group-pathname): Ditto.
+
+	* gnus.el (gnus-home-directory): Ditto.
+
+	* gnus-group.el (gnus-group-icon-list): Ditto.
+
+2003-01-16  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-mime-print-part): Use mm-handle-media-type.
+
+	* message.el (message-mode-menu): Use it.
+	(message-mode-menu): Deactivate "Yank Original" if there's no
+	reply buffer.
+
+	* messagexmas.el (message-xmas-redefine): Redefine in XEmacs.
+
+	* message.el (message-mark-active-p): New function.
+
+2003-01-15  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-use-bogofilter-headers, spam-bogofilter-header)
+	(spam-bogofilter-database-directory): new variables
+	(spam-check-bogofilter-headers, spam-check-bogofilter)
+	(spam-bogofilter-register-with-bogofilter)
+	(spam-bogofilter-register-spam-routine)
+	(spam-bogofilter-register-ham-routine)
+	(spam-group-ham-processor-bogofilter-p): new functions for the new
+	Bogofilter interface
+	(spam-summary-prepare-exit): use the new Bogofilter functions
+	(spam-list-of-checks): added spam-use-bogofilter-headers
+	(spam-bogofilter-score): rewrote function
+	(spam-check-bogofilter): optional score parameter, uses
+	spam-check-bogofilter-headers better
+	(spam-check-bogofilter-headers): optional score parameter
+
+	* gnus.el (gnus-install-group-spam-parameters): new variable, t by
+	default, in the gnus-start customization group.  Used to disable
+	the spam-*/ham-* parameters.
+	(gnus-group-ham-exit-processor-bogofilter): new ham processor
+
+2003-01-15  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-xmas.el (gnus-xmas-redefine): Use region-exists-p in
+	XEmacs.
+
+	* gnus-ems.el (gnus-mark-active-p): do.
+
+2003-01-15  Kevin Ryde  <user42@zip.com.au>
+
+	* gnus.texi (Using MIME): Mention auto-compression-mode with
+	gnus-mime-copy-part.
+
+2003-01-15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-send): Don't warn about duplicates when
+	superseding.
+
+2003-01-15  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-split-download-body): New variable.
+	(nnimap-split-articles): Use it.
+
+2003-01-14  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-check-overview-buffer): This data
+	integrity checker was incorrectly flagging, and removing, articles
+	whose article number was negative.
+	(gnus-agent-fetch-group-1): When executed in the group's summary
+	buffer, refresh each downloaded line to update the status flag and
+	font.  Preserve the value of gnus-newsgroup-headers so that
+	gnus-agent-fetch-articles can split the requests by size.
+	(gnus-agent-expire): Corrected day calculation for when
+	gnus-agent-expire-days contains a list.
+
+2003-01-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-audio.el (gnus-audio-au-player): Use executable-find.
+
+2003-01-13  Jhair Tocancipa Triana <jhair_tocancipa@@gmx.net>
+
+	* gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use
+	  /usr/bin/play as default player.
+	  (gnus-audio-play): Added ARG-DESCRIPTOR to prompt for a file to play.
+
+2003-01-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-inews-add-send-actions): Allow a list of
+	articles to be marked as well.
+
+2003-01-14  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+	* gnus-agent.el (gnus-agent-get-undownloaded-list): Include the
+	fictious headers generated by nnagent (ie. Undownloaded Article
+	####) in the list of articles that have not been downloaded.
+
+	* gnus-int.el (): Added require declarations to resolve
+	compile-time warnings.
+	(gnus-open-server): If the server status is set to offline,
+	recursively execute gnus-open-server to open the offline backend
+	(e.g. nnagent).
+
+2003-01-14  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (gnus-article-reply-with-original): Use
+	gnus-mark-active-p.
+	(gnus-article-followup-with-original): do.
+
+2003-01-13  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-sum.el: Removed `(when t ...)' around `gnus-define-keys'.
+
+2003-01-13  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-score.el (gnus-score-edit-file-at-point): New function.
+	(gnus-score-find-trace): Bind it to `e' key.  Added `q' for quit.
+
+2003-01-13  Romain FRANCOISE  <romain@orebokech.com>
+
+	* gnus-fun.el (gnus-x-face-from-file): Quote file name.
+	(gnus-face-from-file): Ditto.
+
+2003-01-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-articles-to-read): Don't just apply
+	gnus-alter-articles-to-read-function to the unread articles.
+
+2003-01-13  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* deuglify.el (gnus-article-outlook-unwrap-lines)
+	(gnus-article-outlook-repair-attribution)
+	(gnus-article-outlook-rearrange-citation): New function names,
+	renamed from "gnus-outlook-" to "gnus-article-outlook-".  Changed
+	doc-string.
+
+	* gnus-sum.el (gnus-summary-mode-map): Use new function names,
+	removed `W k' key binding (use `W Y f' instead).
+	(gnus-summary-make-menu-bar): Use new function names.
+
+2003-01-13  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-fun.el (gnus-random-x-face): Doc fix.
+	(gnus-insert-random-x-face-header): New function.
+
+2003-01-13  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Deactivate items if
+	mark is not active.
+
+	* gnus-msg.el (gnus-inews-do-gcc): Comment.
+
+	* gnus-ems.el (gnus-mark-active-p): New function.
+
+	* gnus-group.el (gnus-topic-mode-p): New function.
+	(gnus-group-make-menu-bar): Show more key bindings in topic mode.
+	Deactivate items if mark is not active.
+
+2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bumped version.
+	(gnus-summary-line-format): Doc fix.
+
+2003-01-12 22:02:49 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.12 is released.
+
+2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mail-source.el (mail-sources): Removed autoload to make it
+	compile under XEmacs.
+
+2003-01-12  Raymond Scholz  <ray-2003@zonix.de>
+
+	* gnus-msg.el (gnus-confirm-mail-reply-to-news):  May be a
+	regexp or a function too.
+	(gnus-confirm-treat-mail-like-news): New variable.  Ask for
+	confirmation even if the original article is mail.
+
+2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-inews-add-send-actions): Get the right
+	articles to be marked when not yanking.
+
+2003-01-12  Fran,Ag(Bois-David Collin  <Francois-David.Collin@curie.fr>
+
+	* mm-decode.el (mm-get-part): Use mm-with-unibyte-current-buffer.
+
+2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-face-from-file): Autoload.
+
+	* gnus-cite.el (gnus-cite-delete-overlays): Protect against more
+	errors.
+
+2003-01-12  Simon Josefsson  <jas@extundo.com>
+
+	* sieve.el (sieve-upload-and-bury): New.  Suggested by
+	kai.grossjohann@uni-duisburg.de (Kai Gro,A_(Bjohann).
+
+	* sieve-mode.el (sieve-mode-map): Bind s-u-a-b to C-c C-c.
+	Suggested by kai.grossjohann@uni-duisburg.de (Kai Gro,A_(Bjohann).
+
+2003-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-ignored-headers): Don't include the ^ and :
+	in every string.
+
+	* gnus.el (gnus-version-number): Bumped version number.
+
+2003-01-12 13:46:20 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.11 is released.
+
+2003-01-12  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-fetch-reply-field): Narrow to headers.
+
+	* gnus-msg.el (gnus-inews-do-gcc): Don't try to mark GCC's as read
+	if Gnus isn't alive.
+
+2003-01-11  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-fetch-group-1): Remove downloadable
+	marks from articles that are already stored in the agent.
+	(gnus-agent-backup-overview-buffer): New debug tool.  Creates a
+	backup copy of an invalid .overview file for later analysis.
+
+2003-01-12  Gregorio Gervasio, Jr.  <gtgj@pacbell.net>
+
+	* gnus-sum.el (gnus-summary-exit): Reverse change to make group
+	exit work with two frames.
+
+2003-01-11  Fran,Ag(Bois-David Collin  <Francois-David.Collin@wanadoo.fr>
+
+	* message.el (message-forward-make-body): Use mule4.
+
+2003-01-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-mode-map): Move wide-reply command.
+
+2003-01-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* deuglify.el (gnus-outlook-deuglify-attrib-verb-regexp): Added
+	castellano.
+	(gnus-outlook-display-hook): New variable.
+	(gnus-outlook-display-article-buffer): New function.
+	(gnus-outlook-unwrap-lines, gnus-outlook-repair-attribution)
+	(gnus-outlook-deuglify-article): Made them interactive and added
+	optional arg.  Use `g-o-d-a-b'.
+	(gnus-article-outlook-deuglify-article): Use `g-o-d-a-b'.
+
+	* gnus-sum.el: Added autoloads.
+	(gnus-summary-mode-map): Added gnus-summary-wash-deuglify-map.
+	(gnus-summary-make-menu-bar): Added "(Outlook) Deuglify" menu.
+
+2003-01-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-display-mime): Use the mime emulation
+	variable.
+
+	* gnus-sum.el (gnus-article-emulate-mime): New variable.
+
+	* gnus-start.el (gnus-read-newsrc-el-file): Make sure that the
+	newsrc-alist is initialized properly.
+
+	* mail-source.el (mail-sources): Autoload.
+
+	* gnus-sum.el (gnus-summary-make-false-root-always): Default to
+	nil.
+
+	* gnus-msg.el (gnus-configure-posting-styles): Make sure we don't
+	insert two newlines.
+
+	* message.el (message-check-news-header-syntax): Compute the
+	header length correctly.
+
+2003-01-10  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-expire): Do not remove article from
+	alist when keeping fetched article file.
+	(gnus-agent-retrieve-headers): When parsing response for article
+	numbers, use the same algorithm as gnus-agent-braid-nov to protect
+	against garbage in the server's response.
+
+	* gnus-int.el (gnus-request-expire-articles,
+	gnus-request-move-article): Only expire when the group's server
+	has been agentized.
+
+2003-01-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-cite.el (gnus-cite-delete-overlays): Protect against
+	errors when deleting overlays.
+
+	* gnus-score.el (gnus-score-followup): Allow tracing.
+
+	* gnus-art.el (gnus-treat-display-face): New variable.
+	(article-display-face): New command.
+
+	* gnus-fun.el (gnus-face-from-file): New function.
+	(gnus-convert-face-to-png): Ditto.
+
+	* gnus-art.el (gnus-ignored-headers): Added Face.
+
+2003-01-10  Simon Josefsson  <jas@extundo.com>
+
+	* nndraft.el (nndraft-request-group): Avoid crash in
+	directory-files when draft directory doesn't exists.
+
+	* gnus-sum.el (gnus-select-article-hook): Add :option.
+
+2003-01-10  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-use-stat): new variable
+	(spam-group-spam-processor-stat-p)
+	(spam-group-ham-processor-stat-p): new convenience functions
+	(spam-summary-prepare-exit): add spam/ham processors to sequence
+	(spam-list-of-checks): add spam-use-stat to list of checks
+	(spam-split): conditionally load the spam-stat tables
+	(spam-stat-register-spam-routine, spam-stat-register-ham-routine,
+	spam-check-ifile): new functions
+
+	* spam-stat.el (spam-stat): typo fix
+	(spam-stat-install-hooks): new variable
+	(spam-stat-split-fancy-spam-group): added documentation clarification
+	(spam-stat-split-fancy-spam-threshhold): new variable
+	(spam-stat-install-hooks): make hooks conditional
+	(spam-stat-split-fancy): use spam-stat-split-fancy-spam-threshhold
+
+	* gnus.el (gnus-group-ham-exit-processor-stat, spam-process): add
+	spam-stat ham/spam processor symbols
+
+2003-01-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-start.el (gnus-read-newsrc-el-file): Make sure the .eld
+	file exists.
+
+2003-01-10  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-read-group-1): Don't select first
+	undownloaded/downloadable only when unplugged.
+
+2003-01-10  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-srvr.el (gnus-browse-foreign-server): Optimize inner loop.
+
+2003-01-09  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-ifile): fixed call-process-region to use the
+	db parameter only if it's set
+	(spam-ifile-register-with-ifile): ditto
+
+2003-01-09  Alex Schroeder  <alex@emacswiki.org>
+
+	* spam-stat.el (spam-stat-save): Set spam-stat-ngood and
+	spam-stat-nbad before creating the hash table.
+	(spam-stat-reset): Set spam-stat-ngood and spam-stat-nbad to 0.
+	Changed copyright statement to FSF.
+
+2003-01-09  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-catchup): Do not mark cached nor
+	processable articles as read.
+	(gnus-agent-summary-fetch-series): Remove processable and
+	downloadable marks on all downloaded articles in the series.
+
+	* nntp.el (nntp-report): Throw error after reporting the problem.
+	(nntp-accept-process-output): Corrected error check to report an
+	error when the process is nil.
+
+2003-01-09  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-tool-bar-map): Add preview.
+
+2003-01-09  Jesper Harder  <harder@ifa.au.dk>
+
+	* mml.el (mml-preview): Get rid of MIME handles and buffers after
+	previewing.
+
+2003-01-08  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--grp-add-art): Fix wrong-type-argument
+	bug when the (n+1)th article to be added to a group has a smaller
+	number than the n articles already added.
+
+2003-01-08  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-mode-field-menu): Use backquote.
+
+2003-01-08  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: fixed the BBDB autoloads again, using
+	bbdb-search-simple now (which is not a macro, thank god)
+
+	* lpath.el (bbdb-search): removed function from maybe-fbind list
+
+	* gnus.el (ham-process-destination): added new parameter for
+	destination of ham articles found in spam groups at summary exit
+
+	* spam.el (spam-get-ifile-database-parameter): use spam-ifile-database-path
+	(spam-check-ifile, spam-ifile-register-with-ifile): use spam-get-ifile-database-parameter
+	(spam-ifile-database-path): added new parameter for ifile's database
+	(spam-move-spam-nonspam-groups-only): new parameter to determine
+	if spam should be moved from all groups or only some
+	(spam-summary-prepare-exit): fixed logic to use
+	spam-move-spam-nonspam-groups-only when deciding to invoke
+	spam-mark-spam-as-expired-and-move-routine; always invoke that
+	routine after the spam has been expired-or-moved in case there's
+	some spam left over; use spam-ham-move-routine in spam groups
+	(spam-ham-move-routine): new function to move ham articles to the
+	ham-process-destinations group parameter
+
+2003-01-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-spec.el (gnus-parse-complex-format): %~ => ~*.
+
+	* gnus-agent.el (gnus-agent-fetch-selected-article): Use
+	gnus-summary-update-article-line.
+
+2003-01-08  Simon Josefsson  <jas@extundo.com>
+
+	* nnmail.el (nnmail-expiry-target-group): Request group, create it
+	not successful.
+
+2003-01-08  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el (bbdb-records): Fbind it for both Emacs and XEmacs.
+
+2003-01-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-ifile): fixed the spam-ifile-all-categories
+	logic, finally
+
+2003-01-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-spec.el (gnus-parse-format): %C is a complex format.
+	(gnus-parse-format): Change to %~.
+
+	* message.el (message-generate-headers): Don't generate optional
+	empty headers.
+
+2003-01-07  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-cross-post-default)
+	(message-cross-post-note-function, message-shoot-gnksa-feet)
+	(message-strip-subject-trailing-was, message-change-subject)
+	(message-mark-insert-file, message-cross-post-followup-to)
+	(message-cross-post-followup-to, message-mode-map)
+	(message-generate-unsubscribed-mail-followup-to)
+	(message-make-mail-followup-to): Minor changes to doc-strings and
+	error messages.  Updated copyright line.
+
+	* message.el (message-make-mail-followup-to,
+	message-generate-unsubscribed-mail-followup-to): New function
+	names.  Renamed functions: "-mft" -> "-mail-followup-to".
+	(message-make-mft, message-gen-unsubscribed-mft): Removed function
+	names.
+
+	* mml.el (mml-preview-insert-mail-followup-to): New function name.
+	(mml-preview-insert-mft): Removed function name.
+	(mml-preview): Use new function names.
+
+	* gnus-art.el (gnus-article-edit-mode-map): Use new function names.
+
+	* message.el (message-mode-field-menu): Moved header related
+	commands from "Message" to "Field" menu.
+
+2003-01-07  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-generate-headers-first): Added customization
+	if variable is a list.
+
+2003-01-07  Michael Shields  <shields@msrl.com>
+
+	* gnus-art.el (gnus-article-next-page): Correctly handle the case
+	where the last line of the article is the last line of the window.
+
+2003-01-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-debug): Use ignore-errors.
+
+	* gnus-agent.el (gnus-agent-fetch-selected-article): Use
+	`gnus-summary-update-line'.
+
+2003-01-08  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-unbuttonized-mime-types)
+	(gnus-buttonized-mime-types): Doc fix.
+
+2003-01-08  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-decode.el (mm-inline-media-tests): .xpm is 'x-xpixmap'.
+
+2003-01-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-group-alist): Add and clear up.
+
+2003-01-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: removed unnecessary condition-case for loading bbdb-com.el
+
+	* lpath.el (bbdb-search): added BBDB functions for a better way to
+	fix missing functions
+
+	* spam.el (spam-check-ifile): if should be an unless
+
+	* spam.el: define 'ignore alias for spam-BBDB-register-routine,
+	spam-enter-ham-BBDB, and bbdb-create-internal initially to hush up warnings
+	(spam-ifile-all-categories): doc string fixed to be less than 80 chars
+
+2003-01-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Added
+	gnus-summary-refer-thread to thread menu.
+
+2003-01-07  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-fetch-group-1): When fetching within a
+	summary buffer, articles that cannot be fetched are marked as
+	canceled.
+
+	* nntp.el (nntp-with-open-group): The quit signal handler must
+	propagate the quit signal to the next outer handler so that the
+	caller knows that the request aborted abnormally.
+
+2003-01-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-check-ifile, spam-ifile-register-with-ifile)
+	(spam-ifile-register-spam-routine)
+	(spam-ifile-register-ham-routine): added ifile functionality that
+	does not use ifile-gnus.el to classify and register articles
+	(spam-get-article-as-string): convenience function
+	(spam-summary-prepare-exit): added ifile spam and ham registration
+	(spam-ifile-all-categories, spam-ifile-spam-category)
+	(spam-ifile-path, spam-ifile): added customization options
+
+	* gnus.el (gnus-group-ham-exit-processor-ifile): added ifile ham
+	exit processor
+	(spam-process): added gnus-group-ham-exit-processor-ifile to the
+	list of choices
+
+2003-01-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-score.el (gnus-score-followup): Also score immediate
+	followups.
+
+2003-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnweb.el (nnweb-asynchronous-p): Changed to nil.
+
+2003-01-07  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-mode-menu): Fix receipt balloon help.
+
+2003-01-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-msg.el (gnus-group-post-news): Don't assume that "" will
+	always be interpreted as news.
+
+2003-01-07  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sieve.el (gnus-sieve-script): Use the crosspost argument to
+	gnus-sieve-script, instead of the global variable
+	gnus-sieve-crosspost.  One-line patch from Steinar Bang
+	<sb@dod.no>.
+
+2003-01-06  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus.el: Renamed gnus-summary-*-uncached-face as
+	gnus-summary-*-undownloaded-face to avoid confusing the agent with
+	the cache.
+
+	* gnus-sum.el: Ditto.
+
+2003-01-06  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-fetch-group): Modified to permit execution
+	in either the group or summary buffer.
+	New command "JS", in summary buffer, will fetch articles per the
+	group's category, predicate, and processable flags.
+	(gnus-agent-summary-fetch-series): Rewritten to call
+	gnus-agent-session-fetch-group once with all articles in the
+	series.
+	(gnus-agent-summary-fetch-group): Fixed bug and modified code to
+	return list of fetched articles.
+	(gnus-agent-fetch-articles): Split fetch list into sublists such
+	that the article buffer is only slightly larger than
+	gnus-agent-max-fetch-size.  Added unwind-protect to ensure that
+	the group's article alist is saved.
+	(gnus-agent-fetch-headers): The 'killed' and 'cached' marks no
+	longer result in the agent trying to fetch an article.
+	(gnus-agent-fetch-group-1): Can now be called in either the group
+	or summary buffer.  Removed the max-fetch-size code that I added
+	on 2002-12-13 as that capability is now part of
+	gnus-agent-fetch-articles.  Added code to update summary buffer.
+	When called in the group buffer, articles that can not be fetched
+	are AUTOMATICALLY MARKED AS READ.
+
+	* gnus-sum.el (): Modified eval-when-compile to minimize
+	misleading compilation warnings.
+	(gnus-update-summary-mark-positions): Changed code to use
+	gnus-undownloaded-mark rather than gnus-downloaded-mark.
+
+	* nnheader.el (nnheader-insert-nov-file): Do not try to insert an
+	empty file as the parser assumes that the file isn't empty.
+
+	* nntp.el (nntp-send-string): The process-send-string call can,
+	because it performs I/O on the process, change the process' state
+	from open to closed.  If this happens, call nntp-report
+	immediately to report the broken connection.
+	(nntp-report): Rewritten to avoid needing a global variable to
+	determine the appropriate course of action.  Instead, two function
+	implementations are provided and the nntp-report function value is
+	bound to the appropriate implementation.
+	(nntp-retrieve-data): Moved nntp-report call to end of implementation.
+	(nntp-with-open-group): Now binds nntp-report's function cell
+	rather than binding gnus-with-open-group-first-pass.  Added a
+	condition-case to detect a quit during a nntp command.  When the
+	quit occurs, the current connection is closed as a fetch articles
+	request could have several megabytes queued up for reading.
+	(nntp-retrieve-headers): Bind articles to itself.  If
+	nntp-with-open-group repeats this command, I must have access to
+	the original list of articles.
+	(nntp-retrieve-groups): Ditto for groups.
+	(nntp-retrieve-articles): Ditto for articles.
+	(*): Replaced nntp-possibly-change-group calls to
+	nntp-with-open-group forms in all, but one, occurrance.
+	(nntp-accept-process-output): Bug fix. Detect when called with
+	null process.
+
+2003-01-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-util.el (mm-find-mime-charset-region): Don't do Latin-9 hack
+	if we don't need to.
+	(mm-iso-8859-x-to-15-region): Fix misplaced parenthesis.
+
+2003-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el (gnus-group-make-web-group): Pass the select
+	method on to group-create.
+	(gnus-group-line-format-alist): %U is an integer.
+
+	* gnus-sum.el (gnus-summary-exit-no-update): Don't update
+	ephemeral groups.
+	(gnus-summary-read-group-1): Ditto.
+	(gnus-group-make-articles-read): Ditto.
+
+	* mm-url.el (mm-url-program): Doc fix.
+
+	* message.el (message-mode-map): Rebound
+	message-insert-wide-reply.
+
+2003-01-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-xmas.el (gnus-xmas-group-startup-message): Bind the oort
+	color as `gnus-group-startup-message' does.
+
+2003-01-05  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: fixed line lengths to 80 chars or less
+
+	* gnus-sum.el (gnus-read-mark-p): added the spam-mark as a
+	"not-read" mark
+	(gnus-summary-mark-forward): added the spam-mark to the list of
+	marks not to be marked as "read" when viewed
+
+2003-01-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-inews-make-draft): Quote article-reply.
+
+	* gnus-group.el (gnus-number-of-unseen-articles-in-group):
+	Protect against unactive groups.
+
+	* message.el (message-check-news-header-syntax): Check long
+	header lines.
+	(message-check-news-header-syntax): Update `start'.
+
+	* gnus-group.el (gnus-group-expire-articles): Doc fix.
+	(gnus-group-line-format): %U.
+	(gnus-group-line-format-alist): ?U.
+	(gnus-number-of-unseen-articles-in-group): New function.
+
+	* nntp.el (nntp-accept-process-output): Use a 0.1 second timeout.
+
+	* gnus.el (gnus-version-number): Bump version number.
+
+2003-01-05 01:53:30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.10 is released.
+
+2003-01-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Fix version number.
+
+2003-01-05 01:40:09 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.08 is released.
+
+2003-01-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-util.el: Add mm-string-make-unibyte.
+
+	* gnus-group.el (gnus-group-jump-to-group): Make it work for
+	UTF-8 groups.
+
+2003-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-variable-list): Write gnus-format-specs last.
+
+	* gnus-sum.el (gnus-summary-goto-subjects): Fix typo.
+
+2003-01-04  Kevin Ryde  <user42@zip.com.au>
+
+	* gnus-art.el (gnus-mime-jka-compr-maybe-uncompress): New
+	function.
+
+2003-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-exit): Bind gnus-group-is-exiting-p.
+	(gnus-summary-read-group-1): Update group line.
+	(gnus-summary-exit-no-update): Update group on exit.
+
+	* gnus-group.el (gnus-group-line-format): Add %*.
+	(gnus-group-line-format-alist): Ditto.
+	(gnus-group-insert-group-line): Set it.
+	(gnus-group-is-exiting-p): New variable.
+	(gnus-group-insert-group-line): Use it.
+
+2003-01-03  Teodor Zlatanov  <tzz@beld.net>
+
+	* spam.el (spam-enter-ham-BBDB, spam-BBDB-register-routine):
+	enable BBDB ham processing
+	(spam-blacklist-register-routine): enable blacklist spam processing
+	(spam-whitelist-register-routine): enable whitelist ham processing
+	(spam-fetch-field-from-fast): fast fetching of the "from" field
+	from (gnus-data-list)
+	(spam-summary-prepare-exit): works completely now
+	(spam-use-blacklist): oops, should be nil by default
+	(spam-summary-prepare-exit): spam-use-PROCESSOR is only for
+	split processing now; before it was for summary exit as
+	well but that's done with the spam-contents and spam-process
+	parameters now
+
+2003-01-03  Jesper Harder  <harder@ifa.au.dk>
+
+	* mml.el (mml-insert-tag): Don't quote non-ASCII unibyte
+	characters.
+
+2003-01-02  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-group-spam-contents-p, spam-group-ham-contents-p)
+	(spam-group-processor-p, spam-group-processor-bogofilter-p)
+	(spam-group-processor-ifile-p, spam-group-processor-blacklist-p)
+	(spam-group-processor-whitelist-p, spam-group-processor-BBDB-p)
+	(spam-mark-spam-as-expired-and-move-routine)
+	(spam-generic-register-routine, spam-BBDB-register-routine)
+	(spam-ifile-register-routine, spam-blacklist-register-routine)
+	(spam-whitelist-register-routine): new functions
+	(spam-summary-prepare-exit): added summary exit processing (expire
+	or move) of spam-marked articles for spam groups; added slots for
+	all the spam-*-register-routine functions
+
+2003-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* pop3.el (pop3-retr): Wait 500 msecs.
+	(pop3-read-response): Ditto.
+
+	* gnus-msg.el (gnus-setup-message): Get the evaliation order
+	right.
+	(gnus-inews-make-draft): New function.
+	(gnus-setup-message): Use it.
+
+	* message.el (message-required-headers): Add From.
+
+2003-01-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+	Trivial patch from Norbert Koch <nk@viteno.net>.
+
+	* gnus-msg.el (gnus-gcc-externalize-attachments): Fix typo.
+
+2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-generate-headers): Let header formatters do
+	their work.
+
+2003-01-02  Raymond Scholz  <ray-2003@zonix.de>
+
+	* deuglify.el (gnus-article-outlook-deuglify-article):
+	Rehighlight, reapply treatments and call
+	`gnus-article-prepare-hook'.  Suggested by Niels Olof Bouvin.
+	(gnus-outlook-repair-attribution-block): Recognize cited
+	attributions.  Suggested by Niklas Morberg.
+
+2003-01-02  Pete Kazmier  <pete@kazmier.com>
+
+	* gnus-art.el (gnus-treat-predicate): Check condition first.
+
+2003-01-02  Jesper Harder  <harder@ifa.au.dk>
+
+	* lpath.el: Add url-http-file-exists-p.
+
+	* gnus-group.el (gnus-group-fetch-charter): Use
+	http://TLH.news-admin.org/charters/GROUPNAME as a fallback.
+
+2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-draft-headers): Also generate From to get a
+	nicer draft buffer summary.
+
+	* gnus-xmas.el (gnus-xmas-read-event-char): Take an optional
+	parameter.
+
+	* gnus-art.el (article-wash-html): Clean up.
+	(article-wash-html): Typo fix.
+
+	* gnus-msg.el (gnus-summary-mail-forward): Clean up.
+	(gnus-summary-mail-forward): To many lists of lists.
+
+	* gnus-art.el (article-wash-html): Clean up.
+
+2003-01-02  pete-temp  <pete-temp-12-29-2002@kazmier.com>
+
+	* gnus-art.el (gnus-treat-wash-html): New variable.
+
+2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-check-news-header-syntax): Allow posting.
+	(message-check-news-header-syntax): Fix logic for sure, this
+	time.
+
+2003-01-02  Matthieu Moy  <Matthieu.Moy@imag.fr>
+
+	* message.el (message-check-news-header-syntax): Check syntax of
+	continuation headers.
+
+2003-01-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-url-regexp,
+	(gnus-button-mid-or-mail-regexp, gnus-button-alist,
+	(gnus-header-button-alist): Regexps are case insensitive here.
+
+2003-01-02  Simon Josefsson  <jas@extundo.com>
+
+	* dig.el (query-dig): Doc fix.
+
+2003-01-02  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-fetch-selected-article): Update whole
+	summary buffer line, not just the download mark.
+
+2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-goto-subjects): New function.
+	(gnus-summary-insert-dormant-articles): New command and
+	keystroke.
+
+	* gnus-cache.el (gnus-summary-insert-cached-articles): Use new
+	function for mass insertion of subjects.
+
+	* nndraft.el (nndraft-generate-headers): Don't move point.
+
+	* gnus.el (nnheader): Require nnheader.
+
+	* nndraft.el (nndraft-request-associate-buffer): Use
+	make-local-variable.
+
+2003-01-02  Michael Shields  <shields@msrl.com>
+
+	* nndraft.el (nndraft-request-associate-buffer): Make
+	write-contents-hooks buffer-local before setting it.
+
+2003-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-group-parameter-value): Take an extra param.
+	(gnus-group-fast-parameter): Let group param results be nil.
+
+	* gnus-art.el (gnus-article-forward-header): New function.
+	(article-date-ut): Use it to remove continuation date headers.
+
+	* gnus-sum.el (gnus-summary-walk-group-buffer): Supply prompt to
+	read-event.
+	(gnus-summary-remove-bookmark): Clean up.
+	(gnus-summary-set-bookmark): Clean up.
+
+	* gnus-util.el (gnus-read-event-char): Take an optional prompt.
+
+	* gnus.el (gnus-group-startup-message): Bind data-directory to
+	the Gnus etc directory.
+
+2003-01-01  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-summary-prepare-exit): added slots for spam- and
+	ham-processing of articles; use the new
+	spam-group-(spam|ham)-contents-p functions
+	(spam-group-spam-contents-p, spam-group-ham-contents-p): new
+	convenience functions
+	(spam-mark-junk-as-spam-routine): use the new
+	spam-group-spam-contents-p function
+
+	* gnus.el (spam-process, spam-contents, spam-process-destination):
+	added new parameters with corresponding global variables
+	(gnus-group-spam-exit-processor-ifile,
+	gnus-group-spam-exit-processor-bogofilter,
+	gnus-group-spam-exit-processor-blacklist,
+	gnus-group-spam-exit-processor-whitelist,
+	gnus-group-spam-exit-processor-BBDB,
+	gnus-group-spam-classification-spam,
+	gnus-group-spam-classification-ham): added new symbols for the
+	spam-process and spam-contents parameters
+
+	* spam.el (spam-ham-marks, spam-spam-marks): changed list
+	customization and list itself to store mark symbol rather than
+	mark character.
+	(spam-bogofilter-register-routine): added logic to generate mark
+	values list from spam-ham-marks and spam-spam-marks, so (member)
+	would work.
+
+2003-01-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-cross-post-followup-to): Fix comment.
+
+2003-01-01  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-ham-marks, spam-spam-marks): changed list
+	customization and list itself to store mark symbol rather than
+	mark character.
+	(spam-bogofilter-register-routine): added logic to generate mark
+	values list from spam-ham-marks and spam-spam-marks, so (member)
+	would work.
+
+2003-01-01  Raymond Scholz  <ray-2002@zonix.de>
+
+	* message.el (message-signature-insert-empty-line): New variable.
+
+2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el: Renamed functions and variables: "xpost" ->
+	"cross-post", "-fup2" -> "-followup-to".
+	(message-cross-post-old-target, message-cross-post-default,
+	message-cross-post-note, message-followup-to-note,
+	message-cross-post-note-function): New variables names.
+	(message-xpost-old-target, message-xpost-default,
+	message-xpost-note, message-fup2-note,
+	message-xpost-note-function): Removed variable names.
+	(message-cross-post-followup-to-header,
+	message-cross-post-insert-note, message-cross-post-followup-to):
+	New function names.
+	(message-xpost-fup2-header, message-xpost-insert-note,
+	message-xpost-fup2): Removed function names.
+
+2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-send-mail): Added message-cleanup-headers to
+	prevent newlines in headers.
+
+2003-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* dns.el (dns-make-network-process): Comment.
+
+	* gnus-sum.el (gnus-summary-display-while-building): Default to
+	nil.
+
+2003-01-01  Wes Hardaker  <wes@hardakers.net>
+
+	* gnus-sum.el (gnus-summary-display-while-building): New
+	variable.
+
+2003-01-01  Raymond Scholz  <ray-2003@zonix.de>
+
+	* deuglify.el (gnus-outlook-rearrange-article): Kill overlays
+	before rearranging the article.
+
+2003-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nndraft.el (nndraft-generate-headers): New function.
+	(nndraft-request-associate-buffer): Use it to write headers on
+	buffer save.
+
+	* message.el (message-generate-headers): Let the function be a
+	lambda form.
+	(message-draft-headers): New variable.
+
+	* gnus-msg.el (gnus-inews-make-draft-meta-information): New
+	function.
+	(gnus-setup-message): Use it.
+
+	* message.el (message-generate-headers-first): Doc fix.
+	(message-setup-1): Use new function for getting which headers to
+	generate.
+	(message-headers-to-generate): New function.
+
+2003-01-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-save-alist): Make directory.
+
+2002-12-31  Reiner Steib  <4uce.02.r.steib@gmx.net>
+
+	* gnus-sum.el (gnus-summary-limit-to-age): Make prompt string
+	mention negatives.
+
+2002-12-31  Raymond Scholz  <ray-2002@zonix.de>
+
+	* deuglify.el (gnus-outlook-rearrange-article): Use
+	`transpose-regions' instead of tempering the kill-ring.
+	(gnus-article-outlook-deuglify-article): Rehighlight article
+	instead of a complete redisplay.
+
+2002-12-31  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el: most defvars are defcustoms now
+
+	patches from Michael Shields  <shields@msrl.com>
+
+	* spam.el (spam-bogofilter-articles): Select the article
+	body using gnus-summary-show-article t instead of
+	gnus-summary-select-article; this presents the raw text
+	without running any hooks.
+
+	* spam.el (spam-bogofilter-articles): Use message-remove-header
+	to remove headers; the old way incorrectly removed just the first
+	line of folded headers.
+
+2002-12-31  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-start.el (gnus-load): Replace `ding-file' with `file'.
+
+2002-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-start.el (gnus-load): New function.
+	(gnus-read-newsrc-el-file): Use it.
+
+2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-art.el (gnus-button-valid-fqdn-regexp): New variable.
+	(gnus-button-handle-apropos-documentation): New function.
+	(gnus-button-handle-ctan): New function.
+	(gnus-button-alist): Use them.  Improve some regexps.
+	(gnus-button-prefer-mid-or-mail): Addition to doc-string.
+
+2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-subscribed-p): New function.
+	(message-send-mail): Use it.
+	* mml.el (mml-preview-insert-mft): New function.
+	(mml-preview): Use it.
+
+2002-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-thread-latest-date): Protect against errors
+	when sorting by date.
+
+	* gnus-art.el (gnus-article-edit-mode): New variable.
+	(gnus-article-setup-buffer): Warn user about discarding edits.
+
+	* gnus-sum.el (gnus-summary-pipe-output): Clean up.
+	(gnus-summary-pipe-output): Take a symbolic prefix to save all
+	headers.
+
+	* mm-uu.el (mm-uu-configure-list): Default to (shar . disabled).
+
+2002-12-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* message.el (message-completion-alist): Added "Mail-Followup-To"
+	and "Mail-Copies-To".
+
+2002-07-21  Jesper harder  <harder@ifa.au.dk>
+
+	* gnus-group.el: Add key bindings for
+	gnus-group-sort-groups-by-real-name and
+	gnus-group-sort-selected-groups-by-real-name.
+
+2002-07-21  Jesper harder  <harder@ifa.au.dk>
+
+	* gnus.texi (Sorting Groups): Add key bindings for
+	gnus-group-sort-groups-by-real-name and
+	gnus-group-sort-selected-groups-by-real-name.
+
+2002-12-30  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-use-dig): new variable for blackhole checking
+	through dig.el
+	(spam-check-blackholes): added dig.el checking functionality and
+	more verbose reporting; query-dig is autoloaded from dig.el
+	(spam-use-blackholes): disabled by default
+	(spam-blackhole-servers): removed rbl.maps.vix.com from the
+	blackhole servers list
+
+2002-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-required-headers): New variable.
+
+2002-12-30  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* dig.el (query-dig): new function
+
+2002-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* flow-fill.el (fill-flowed): Don't infloop on too long fill
+	prefixes.
+
+	* dns.el (query-dns): Protect against errors.
+
+	* gnus-msg.el (gnus-article-yanked-articles): New variable.
+	(gnus-inews-add-send-actions): Mark all answered messages as
+	answered.
+
+2002-08-10  Jari Aalto  <jari.aalto@poboxes.com>
+
+	* nnmail.el (nnmail-split-it): Added tracing to
+	`:' split rule
+
+2002-08-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* mm-decode.el (mm-mailcap-command): Remove the quotes around '%s'
+	and "%s" so we don't overquote them.
+
+2002-08-13  Hrvoje Niksic  <hniksic@xemacs.org>
+
+	* (mm-display-external): Display the actual command that has been
+	executed in the echo area.
+
+2002-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-topic.el (gnus-topic-display-missing-topic): Bind entry.
+
+	* message.el (message-with-reply-buffer): New macro.
+	(message-fetch-reply-field): Use it.
+	(message-insert-wide-reply): New command and keystroke.
+	(message-carefully-insert-headers): New function.
+	(message-insert-to): Use new function.
+
+	* gnus-topic.el (gnus-topic-display-missing-topic): New function.
+	(gnus-topic-goto-missing-group): Use it.
+
+	* message.el (message-required-news-headers): Removed Lines.
+	(message-reply): Don't insert References first.
+	(message-followup): Ditto.
+	(message-make-references): New function.
+	(message-followup): Set message-reply-headers before generating
+	the buffer stuff.
+
+2002-12-29  Jesper Harder  <harder@ifa.au.dk>
+
+	* mml.el (mml-generate-mime-1): Reverse the order of
+	encoding/flowing.
+
+2002-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnmail.el (nnmail-expiry-target-group): Mark articles as read
+	after moving them.
+
+	* gnus-sum.el (gnus-summary-dummy-line-format): Update format to
+	fit with newer standard format.
+	(gnus-summary-make-false-root-always): New variable.
+	(gnus-gather-threads-by-subject): Use it.
+
+	* message.el (message-get-reply-headers): Take an address list
+	optional argument.
+
+2002-12-28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-keep-backlog): Change default to 20.
+
+	* gnus-agent.el (gnus-agent-check-overview-buffer): Start from
+	start.
+	(gnus-agent-check-overview-buffer): Remove negative article
+	numbers.
+
+	* nnmail.el (nnmail-split-fancy-with-parent-ignore-groups): Doc fix.
+	(nnmail-cache-ignore-groups): Doc fix.
+
+	* nnimap.el (nnimap-debug): Made into a flag and defcustomed.
+	(nnimap-debug-buffer): New variable.
+	(nnimap-debug): Use it.
+
+2002-12-28  Lars Magne Ingebrigtsen  <kgreiner@xpediantsolutions.com>
+
+	* gnus.el (gnus-summary-high-uncached-face): New color scheme.
+
+2002-12-28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-check-overview-buffer): Sort lines if
+	they aren't already sorted.
+
+2002-12-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-mode-menu): Add ellipses to menu items
+	expecting user interaction.
+	(message-mode-field-menu): do.
+
+2002-12-26  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-highlight-line): Don't bind `list' --
+	it isn't used any more.
+
+2002-12-22  Jesper Harder  <harder@ifa.au.dk>
+
+	* binhex.el (binhex-decoder-program): Fix docstring.
+
+2002-12-21  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* mm-decode.el (mm-mailcap-command): Do not backslash-quote
+	special chars if the mailcap file uses single quotes around %s.
+	From Laurent Martelli <laurent@bearteam.org>.
+
+2002-12-19  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus-int.el (gnus-request-update-info): nnchoke-r-u-i might not
+	return the info object.
+
+2002-12-18  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus-int.el (gnus-request-update-info): Artificially add
+	(1 . (1- min)) to the read range, in case the backend doesn't
+	store marks for nonexistent articles.
+
+2002-12-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* binhex.el (binhex-insert-char): Eval-and-compile.
+
+2002-12-17  Jesper Harder  <harder@ifa.au.dk>
+
+	* lpath.el: Add tool-bar-local-item-from-menu.
+
+	* message.el (message-tool-bar-local-item-from-menu): New function.
+	(message-tool-bar-map): Use it.
+
+2002-12-14  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-uu.el (gnus-uu-digest-headers): Mention nil value in docstring.
+
+	* gnus-art.el (gnus-article-header-rank): Last header in
+	gnus-sorted-header-list should have higher rank than non-members.
+
+2002-12-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-close-agent): Don't blank out the list of
+	covered methods.
+
+2002-12-12  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* nntp.el (nntp-with-open-group-first-pass): Do not wrap in
+	eval-when-compile.  Suggested by Kevin Greiner.
+
+2002-12-13  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-max-fetch-size): New, defcustom.
+	(gnus-agent-fetch-headers): Initialize gnus-agent-overview-buffer
+	even though no headers may have been fetched
+	(gnus-agent-fetch-group-1, and perhaps others, require this
+	behavior).
+	(gnus-agent-fetch-group-1): Fetch articles in chucks so that the
+	server buffer is constrained by gnus-agent-max-fetch-size.
+	Multiple chunks in the same group may perform arbitrarily large
+	updates.
+
+2002-12-12  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus-agent.el (gnus-agent-fetch-selected-article): Added call to
+	gnus-summary-update-download-mark to update the article in the
+	summary.
+
+2002-12-11  Kevin Greiner <kgreiner@xpediantsolutions.com>
+
+	* gnus.el (gnus-summary-high-uncached-face,
+	gnus-summary-normal-uncached-face, gnus-summary-low-uncached-face)
+	New faces.
+
+	* gnus-agent.el (gnus-agent-downloaded-article-face): REMOVED.  I
+	added this on 2002-11-23 but it just wasn't working out as
+	intended.  The idea isn't entirely dead, three new faces
+	gnus-summary-*-uncached-face are being added to gnus.el to provide
+	the basis for an improved implementation.
+	(gnus-agent-read-servers): Undo the change made on 2002-11-23. The
+	proper file to open is lib/servers.
+	(gnus-summary-set-agent-mark): Expanded documentation.  Unmarking
+	(i.e. removing the article from gnus-newsgroup-downloadable) will
+	now restore the article's default mark rather than simply setting
+	no mark.
+	(gnus-agent-get-undownloaded-list): Corrected documentation.
+	Added code to set new summary local variable,
+	gnus-newsgroup-agentized.  Reworked impl so that it doesn't create
+	a temporary list.  No longer sets gnus-newsgroup-downloadable.
+	(gnus-agent-summary-fetch-group): Keep gnus-newsgroup-undownloaded
+	up to date.  Call new gnus-summary-update-download-mark to keep
+	summary buffer up-to-date.
+	(gnus-agent-fetch-selected-article): Keep
+	gnus-newsgroup-undownloaded up to date.
+	(gnus-agent-fetch-articles): Return list of articles that were
+	successfully fetched.
+	(gnus-agent-check-overview-buffer): No more thingatpt.
+	(gnus-agent-expire): No longer deletes NOV entries of unread
+	articles.
+	(gnus-agent-unread-articles): New function.
+	(gnus-agent-regenerate-group): The article number must be
+	terminated by a tab character.  Added more messages to report
+	repairs.  Inhibit quits while writing changes so it is now safe
+	have to quit regeneration.  Renamed gnus-tmp-downloaded back to
+	downloaded to 1) resolve the unbound references and 2) avoid
+	confusing this list with the gnus-tmp-downloaded in gnus-sum.el
+
+	* gnus-art.el (gnus-article-prepare): The agent
+	downloaded/undownloaded mark is no longer stored as the article's
+	mark.
+
+	* gnus-salt.el (gnus-tree-highlight-node): Added uncached as
+	gnus-summary-highlight may use it.  Added downloaded as
+	gnus-summary-highlight was using it.
+
+	* gnus-sum.el (gnus-undownloaded-mark): Changed from ?@ to ?- as
+	the download mark now follows Kai's +/- convention.
+	(gnus-downloaded-mark): Added ?+ mark.
+	(gnus-summary-highlight): Added rules to select
+	gnus-summary-high-uncached-face,
+	gnus-summary-normal-uncached-face, and
+	gnus-summary-low-uncached-face.  Removed the
+	gnus-agent-downloaded-article-face.
+	(gnus-summary-line-format-alist): Implemented the download flag
+	format (?O) as named in the manual.  This implementation displays
+	either gnus-undownloaded-mark, gnus-downloaded-mark, or
+	gnus-no-mark.
+	(gnus-newsgroup-agentized): New local variable that identifies
+	which groups are agentized.  While the agent is now on by default,
+	you don't have to agentize every server that you use.
+	(gnus-update-summary-mark-positions): Completed support for the
+	download type of mark.
+	(gnus-summary-insert-line): Added undownloaded to the parameters.
+	(gnus-summary-prepare-threads): Set gnus-tmp-downloaded for
+	reference by the gnus-summary-line-format-spec.
+
+	* nntp.el (nntp-with-open-group): This macro handles dropped or
+	broken connections by opening a new connection and repeating the
+	failed command.
+	(nntp-retrieve-headers-with-xover): Some NNTP servers respond to
+	XOVER commands preceeding the active articles with the nov entry
+	of the first available article.  When gnus connected to such a
+	server, the unexpected nov entry would result in duplicate lines
+	in the agent's overview file.  This patch fixes the duplicate
+	lines problem and improves performance by skipping over all
+	articles IDs that preceed the first nov entry in the server's
+	reply.
+
+2002-12-11  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-tmp-downloaded): New internal variable.
+	(gnus-summary-highlight): Use it instead of `downloaded'.
+	(gnus-summary-highlight-line): Ditto.
+
+	* gnus-agent.el (gnus-agent-regenerate-group): Ditto.
+
+2002-12-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-variable-list): Add gnus-agent-covered-methods.
+
+	* gnus-agent.el (gnus-agent-check-overview-buffer): Remove debug
+	calls.
+
+	* gnus-sum.el (gnus-summary-highlight-line): Don't set the
+	downloaded variable if we're in an uncovered group.
+
+	* gnus-agent.el (gnus-agent-downloaded-article-face): Change the
+	font to soemthing less noticeable.
+	(gnus-agent-group-covered-p): New function.
+
+2002-12-09  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-braid-nov): Remove corrupted lines.
+	Because of an unknown bug, the group buffer is saved in .overview
+	file.
+
+2002-12-09  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* nntp.el (nntp-send-command): Braino in last commit.  Replace
+	`and' with `or'.
+
+2002-12-08  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* nntp.el (nntp-send-command): Assume that echo does not happen
+	when nntp-open-connection-function is nntp-open-network-stream.
+	Suggested by Sebastian D.B. Krause <krause@my.gnus.org>.
+
+2002-12-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-retrieve-headers-1): Update the parser.
+
+2002-12-06  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-group): bugfix: don't erase
+	nntp-server-buffer if we aren't going to write to it.
+
+2002-12-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+	Trivial patch from Itai Zukerman <zukerman@math-hat.com>.
+
+	* mm-decode.el (mm-w3m-safe-url-regexp): Fix parenthesis.
+
+2002-12-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* rfc2047.el (rfc2047-decode-region): Remove newlines between
+	decoded words.
+
+2002-12-03  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus.el (fboundp): After loading mm-util, make sure it was the
+	right one.
+
+2002-11-29  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-art.el (gnus-inhibit-mime-unbuttonizing): Moved here from
+	gnus-sum.  Made into a user option.
+
+	* gnus-sum.el (gnus-simplify-ignored-prefixes)
+	(gnus-summary-mark-article-as-unread)
+
+2002-11-29  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* time-date.el (date-to-time): Typo.
+
+	* parse-time.el: Typo.
+
+	* nnsoup.el (nnsoup-retrieve-headers): Typo.
+
+	* nnmail.el (nnmail-split, nnmail-process-unix-mail-format): Typos.
+
+	* nnimap.el:
+	(nnimap-split-rule, nnimap-find-minmax-uid): Typos.
+
+	* mm-encode.el (mm-safer-encoding): Typo.
+
+	* messcompat.el: Typo.
+
+	* message.el (message-face-alist): Typo.
+
+	* imap.el (imap-interactive-login, imap-open): Typos.
+
+	* ietf-drums.el (ietf-drums-text-token, ietf-drums-qtext-token): Typos.
+
+	* gnus.el: Typo.
+
+	* gnus-win.el (gnus-configure-frame): Typo.
+
+	* gnus-util.el (gnus-atomic-progn-assign): Typo.
+
+	* gnus-topic.el (gnus-topic-sort-topics): Typo.
+
+	* gnus-sum.el (gnus-summary-article-number)
+	(gnus-summary-read-group-1, gnus-summary-mark-article)
+	(gnus-summary-fetch-faq, gnus-refer-article-methods): Typos.
+
+	* gnus-mule.el (gnus-mule-add-group): Typo.
+
+	* gnus-mlspl.el (gnus-group-split-fancy): Typo.
+
+	* gnus-group.el (gnus-group-fetch-faq): Typo.
+
+	* gnus-art.el (gnus-decode-header-methods): Typo.
+
+	* flow-fill.el: Typo.
+
+2002-11-19  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* binhex.el (binhex-decode-region): Don't hardcode point-min == 1.
+
+2002-11-29  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-sum.el (gnus-simplify-ignored-prefixes)
+	(gnus-summary-mark-article-as-unread)
+	(gnus-mark-article-as-unread, gnus-summary-highlight-line):
+	Reformatting to avoid long lines.
+	(gnus-inhibit-mime-unbuttonizing): Moved to gnus-art.
+
+2002-11-28  Daiki Ueno  <ueno@unixuser.org>
+
+	* gnus-agent.el (gnus-agent-fetch-group-1): Article numbers should
+	be accessed through `mail-header-number'.
+
+2002-11-27  Kevin Greiner  <kgreiner@xpediantsolutions.com>
+
+	* gnus-sum.el (gnus-summary-insert-old-articles): No longer passes
+	compressed range to gnus-summary-insert-articles.
+
+2002-11-26  Kevin Ryde <user42@zip.com.au>
+
+	* gnus-art.el (gnus-mime-copy-part): Look for filename
+	parameter under content-disposition, not content-type.
+
+	* gnus-sum.el (gnus-summary-find-uncancelled): New function.
+	(gnus-summary-reselect-current-group): Use it.
+
+2002-11-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-uncached-articles): if
+	gnus-agent-load-alist fails, return ARTICLES.
+
+	* nnrss.el (nnrss-group-alist): Update the link of Jabber.
+
+2002-11-26  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-sum.el (gnus-summary-insert-old-articles): Remove
+	superfluous function call.
+	(gnus-summary-catchup-all, gnus-summary-catchup-all-and-exit):
+	Add warning to docstring.
+
+2002-11-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-agent.el: Autoload number-at-point instead.
+	(gnus-agent-check-overview-buffer): No warning for deactivate-mark.
+
+2002-11-26  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-check-overview-buffer): Explicitly
+	require thingatpt (for number-at-point) and protect against
+	deactivate-mark being unbound (on XEmacs).
+
+2002-11-25  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-check-overview-buffer): Make debugger
+	print message on entry.
+
+	From Kevin Greiner <kgreiner@xpediantsolutions.com>.
+
+	* gnus-range.el (gnus-range-difference): New function.
+	* gnus-sum.el (gnus-summary-insert-old-articles): Use it.
+
+2002-11-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-sum.el (gnus-summary-insert-old-articles): Use
+	gnus-remove-from-range instead of gnus-range-difference which
+	doesn't exist.
+
+2002-11-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+	From Kevin Greiner <kgreiner@xpediantsolutions.com>.
+
+	* gnus-agent.el (gnus-agent-downloaded-article-face): New face,
+	used for showing which articles have been downloaded.
+	(gnus-agent-article-alist): Format change.  Add documentation.
+	(gnus-agent-summary-mode-map): New keybinding `J s' for fetching
+	process-marked articles.
+	(gnus-agent-summary-fetch-series): Command for `J s'.  Articles
+	in the series are individually fetched to minimize lose of
+	content due to an error/quit.
+	(gnus-agent-synchronize-flags-server, gnus-agent-add-server): Use
+	gnus-message instead of message.
+	(gnus-agent-read-servers): Use file lib/methods instead of
+	lib/servers.  TODO: Why?
+	(gnus-summary-set-agent-mark): Adapt to new agent-alist format.
+	(gnus-agent-get-undownloaded-list): Remove articles that appear to
+	come from the agent.  This means that they are not downloaded.
+	(gnus-agent-fetch-selected-article): Don't use history.
+	(gnus-agent-save-history, gnus-agent-enter-history)
+	(gnus-agent-article-in-history-p, gnus-agent-history-path):
+	Removed function; history is not used anymore.
+	(gnus-agent-fetch-articles): Fix handling of crossposted articles.
+	(gnus-agent-crosspost): Started rewrite then realized that a typo
+	in gnus-agent-fetch-articles ensures that this function is never
+	called.  This will need to be fixed later.
+	(gnus-agent-check-overview-buffer): Some sanity checks on the
+	agent overview buffer.  This is a safety net used during
+	development.
+	(gnus-agent-flush-cache): The gnus-agent-article-alist format has
+	changed, write a number to the file indicating this.
+	(gnus-agent-fetch-headers): Rewrite to respect
+	gnus-agent-consider-all-articles without relying on the
+	`.fetched' files.  Make it fast.
+	(gnus-agent-braid-nov): Change resulting from
+	gnus-agent-fetch-headers change.
+	(gnus-agent-load-alist, gnus-agent-save-alist): Don't use
+	`.fetched' files.
+	(gnus-agent-read-agentview): New function, used by
+	gnus-agent-load-alist.
+	(gnus-agent-load-fetched-headers): Remove.
+	(gnus-agent-save-alist): Rewrite to accomodate new format.
+	(gnus-agent-fetch-group-1): Make sure list of articles is in the
+	same order as in gnus-newsgroup-headers.
+	(gnus-agent-expire): Document and implement extra args ARTICLES,
+	GROUP, FORCE.  Do not restrict usage.
+	(gnus-agent-uncached-articles): New function.
+	(gnus-agent-retrieve-headers): Use it.
+	(gnus-agent-regenerate-group): No longer needs to be called from
+	gnus-agent-regenerate.  Individual groups may be regenerated. The
+	regeneration code now fixes duplicate, and mis-ordered, NOV entries.
+	The article fetch dates are validated in the article alist.  The
+	article alist is pruned of entries that do not reference existing
+	NOV entries.  All changes are computed then applied with
+	inhibit-quit bound to t.  As a result, it is now safe to quit out of
+	regeneration.  The optional clean parameter has been replaced with
+	an optional reread parameter.  Clean is no longer necessary as
+	regeneration gets the appropriate setting from
+	gnus-agent-consider-all-articles.  The new reread parameter will
+	result in fetched, or all, articles being marked as unread.
+	(gnus-agent-regenerate): Removed code to regenerate the history
+	file as it is no longer used.
+
+	* gnus-start.el (gnus-make-ascending-articles-unread): New
+	function, for efficient mass-marking.
+
+	* gnus-sum.el (gnus-summary-highlight): Use new face for
+	downloaded articles.
+	(gnus-article-mark): Prefer to indicate read/unread status over
+	downloaded status.
+	(gnus-summary-highlight-line-0): New function, maybe rehighlights
+	line.
+	(gnus-summary-highlight-line): Use new face for downloaded
+	articles.
+	(gnus-summary-insert-old-articles): Improved performance by
+	replacing the initial LIST of older articles with a compressed
+	RANGE of older articles.  Some servers appear to lie about
+	their active range so the original list could contain millions
+	of article numbers.  The range is not expanded into a list
+	until the optional ALL parameter has been applied.
+
+2002-11-18  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-category-mode): Typo in doc string.
+
+2002-11-21  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el:
+	added patch from Andreas Fuchs <asf@void.at> to prevent apply errors
+
+	* spam.el: added `M s t' and `M s x' key mappings
+
+2002-11-20  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-morse-message): Narrow to body.
+
+2002-11-19  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-morse-message): Load
+	morse.el (unmorse-region not autoloaded in Emacs 20 nor XEmacs).
+	(unmorse-region): Autoload it instead.
+
+2002-11-18  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-morse-message): New function.
+	(gnus-summary-wash-map): Bind to `W m'.
+	(gnus-summary-make-menu-bar): Add.
+
+	* nnimap.el (nnimap-request-expire-articles): Compress sequence
+	before storing \Deleted mark on expired articles.
+
+2002-11-17  Shenghuo Zhu <zsh@cs.rochester.edu>
+	Trivial patch from Markus Rost <rost@math.ohio-state.edu>
+
+	* gnus-sum.el (gnus-summary-goto-unread): Doc fix - escape open
+	parens in column 0.
+
+2002-11-17  Juanma Barranquero  <lektu@terra.es>
+
+	* nnweb.el (nnweb-google-create-mapping): Fix typo.
+
+	* nnlistserv.el (nnlistserv-kk-create-mapping): Likewise.
+
+	* gnus-nocem.el (gnus-nocem-liberal-fetch): Likewise.
+
+2002-11-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-set-auto-save-file-name): Use
+	make-directory, to avoid the dependence on gnus-util.
+
+2002-11-16  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-callback-callback-function):
+	(nnimap-callback-buffer): Removed, these cannot be global but must
+	be embedded into the callback.
+	(nnimap-make-callback): New.  Embedd article number, callback and
+	buffer in function.
+	(nnimap-callback, nnimap-request-article-part): Update.
+
+2002-11-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mml.el (mml-preview): Bind message-this-is-mail if it is mail.
+
+2002-11-13  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus.el (gnus-summary-line-format): Document %C.
+
+2002-11-11  Simon Josefsson  <jas@extundo.com>
+
+	* pgg.el (pgg-encrypt, pgg-decrypt, pgg-sign, pgg-verify): Display
+	output when called interactively.
+
+2002-11-08  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-edit-exit): Kill local variables.
+
+	* message.el (message-draft-coding-system): Improve comment; use
+	mm-auto-save-coding-system for the default value.
+
+	* nndraft.el (nndraft-request-article): Revert to the state before
+	2002-10-29; regexp-quote mail-header-separator.
+
+2002-11-06  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-draft.el (gnus-draft-setup): Set gnus-message-group-art to
+	allow editing of drafts from an nnvirtual group.
+
+2002-11-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nndraft.el (nndraft-request-article): Replace emacs-mule with
+	mm-auto-save-coding-system.
+
+	* message.el (message-draft-coding-system): Default to
+	iso-2022-7bit.
+
+	* mm-util.el (mm-auto-save-coding-system): Undo last change to
+	restore the default value to emacs-mule or escape-quoted.
+
+2002-11-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-encrypt-body): Inhibit encrypting of
+	a delayed or a queued article as well as a draft.
+
+	* gnus-sum.el (gnus-summary-edit-article): Inhibit editing of a
+	delayed or a queued article in the raw format; treat a delayed
+	article as a raw article as well as a draft.
+	(gnus-summary-setup-default-charset): Clear gnus-newsgroup-charset
+	for the delayed group.
+
+	* nndraft.el (nndraft-request-article): Ignore auto save files for
+	a delayed or a queued article; don't bother to decode a queued
+	article; don't bind nnmail-file-coding-system for a queued article.
+
+	* nnmail.el (nnmail-split-fancy-with-parent): Ignore the delayed
+	and the queue group.
+
+2002-11-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-group.el (gnus-group-delete-group):
+	gnus-cache-active-hashtb might be void.
+
+2002-11-02  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-gpg.el (pgg-gpg-encrypt-region): Makes PGG respect the
+	setting of the default user ID.  From Raymond Scholz
+	<ray-2002@zonix.de>.
+
+2002-11-01  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-bodies.el (mm-body-encoding): Don't return 8bit for 7bit
+	charset.
+
+2002-10-31  Ted Zlatanov <tzz@lifelogs.com>
+	From Alex Schroeder <alex@emacswiki.org>
+	* spam-stat.el (spam-stat-process-directory): add dir to message
+	(spam-stat-reduce-size): No longer remove words
+	with values close to 0.5, because the default value is 0.2.
+
+2002-10-31  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-util.el (gnus-user-date-format-alist): Clarify and correct
+	documentation.
+
+2002-10-28  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-fetched-headers)
+	(gnus-agent-load-fetched-headers)
+	(gnus-agent-save-fetched-headers): Remove variable and two
+	functions.  Kevin Greiner's version of gnus-agent-fetch-headers
+	works better.
+	(gnus-agent-fetch-headers): New implementation from Kevin
+	Greiner.  Uses gnus-agent-article-alist to store information
+	about fetched messages which aren't on the server anymore.  The
+	trick is to return a list of considered messages to the caller,
+	but to only fetch those which haven't been fetched yet.
+
+2002-10-30  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-def.el (pgg-passphrase-cache-expiry): New, defcustom.
+
+	* pgg.el (pgg-passphrase-cache-expiry): Removed.
+
+2002-10-30  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* mm-view.el (mm-w3m-local-map-property): Make it work with older
+	versions of emacs-w3m than 1.3.3.
+
+	* lpath.el: Bind w3m-minor-mode-map.
+
+	* mm-view.el (mm-w3m-mode-command-alist)
+	(mm-w3m-mode-dont-bind-keys, mm-w3m-mode-ignored-keys): Removed.
+	(mm-w3m-mode-map): Undefined for Emacs21 and XEmacs.
+	(mm-setup-w3m): Simplified.
+	(mm-w3m-local-map-property): New function.
+	(mm-inline-text-html-render-with-w3m): Use it.
+
+	* gnus-art.el (gnus-article-wash-html-with-w3m): Use
+	mm-w3m-local-map-property.
+
+2002-10-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-auto-save-coding-system): Default to
+	iso-2022-7bit.
+
+	* nndraft.el (nndraft-request-article): Decode an article using
+	the coding-system emacs-mule if it seems to have been saved using
+	emacs-mule.
+	(nndraft-request-replace-article): Use message-draft-coding-system
+	instead of mm-auto-save-coding-system for the draft or delayed
+	group.
+
+2002-10-28  Josh  <huber@alum.wpi.edu>
+
+	* mml.el (mml-mode-map): Fixed keybindings for mml-secure-*
+	functions.
+
+2002-10-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+	From mah@everybody.org (Mark A. Hershberger).
+
+	* mm-url.el (mm-url-insert-file-contents): Make it return the same
+	type values ("url" size) regardless of the values of
+	mm-url-use-external.
+
+2002-10-26  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* nnimap.el (nnimap-request-article-part): Try harder to show
+	group name in debugging message.
+
+2002-10-25  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-save-fetched-headers): Create
+	directory if it doesn't exist.
+	(gnus-agent-fetch-headers): Remove old cruft that tried to
+	abstain from downloading articles more than once if
+	gnus-agent-consider-all-articles was true.  This is now done
+	properly via the .fetched files.
+
+2002-10-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nndraft.el (nndraft-request-article): Treat delayed articles
+	like drafts.
+
+2002-10-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-agent.el (gnus-agent-load-alist): Fix parenthesis.
+
+2002-10-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-save-alist, gnus-agent-load-alist):
+	Remove unused optional arg DIR and corresponding code.
+
+	* nnimap.el (nnimap-request-article-part): Include group name in
+	debugging output.
+
+2002-10-24  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus-agent.el (gnus-agent-fetch-headers): Add some comments.
+
+2002-10-23  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+
+	* gnus-agent.el (gnus-agent-fetched-headers): New variable,
+	contains range of headers that have been fetched by the agent
+	already.  Compare gnus-agent-article-alist.
+	(gnus-agent-file-header-cache): Like
+	gnus-agent-file-loading-cache, but for gnus-agent-fetched-headers.
+	(gnus-agent-fetch-headers): Improve comment.  Revert to old
+	seen/recent logic.
+	Remember which headers have been fetched before and don't fetch
+	them again the next time round.
+	(gnus-agent-load-fetched-headers)
+	(gnus-agent-save-fetched-headers): New functions, for remembering
+	which headers have been fetched before.
+
+2002-10-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Remove useless bindings.
+
+2002-10-22  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-execute-command): Disable visual
+	features while searching.
+
+2002-10-22  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* pgg.el (pgg-snarf-keys): Do not refer unbinded local variables.
+
+2002-10-22  Simon Josefsson  <jas@extundo.com>
+
+	* pgg.el (pgg-encrypt, pgg-decrypt, pgg-sign, pgg-verify)
+	(pgg-snarf-keys): Add.
+
+2002-10-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Fbind bbdb-records.
+
+	* spam.el: Don't autoload bbdb-records.
+
+2002-10-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* spam.el: Set autoload for bbdb-records after loading bbdb-com to
+	prevent inf-loop.
+
+2002-10-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnslashdot.el: Removed some test lines.
+	More test.
+
+2002-10-21  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-agent.el (gnus-agent-fetch-headers): Remove articles that
+	are known to be downloaded already.
+
+2002-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mm-view.el (mm-text-html-renderer-alist): Add w3m-standalone.
+	(mm-text-html-washer-alist): Ditto.
+
+2002-10-19  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* nnheader.el (nnheader-remove-body): Fix an error of detecting
+	boundary between headers and body.
+	* nnml.el (nnml-parse-head): Ditto.
+
+2002-10-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnslashdot.el (nnslashdot-generate-active): Ignore any bogus
+	entries.
+
+	* gnus-group.el (gnus-fetch-group): Allow an optional
+	specification of the articles to select.
+
+	* gnus-srvr.el (gnus-server-prepare): Removed superfluous cdr.
+
+2002-10-20  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-agent.el (gnus-agent-fetch-group-1): After fetching
+	headers from the group, update variable `articles' to contain
+	only those numbers where headers exist.  (When fetching all
+	articles in a group, Gnus creates lots of numbers where there is
+	no articles.)
+
+2002-10-20  Steve Youngs  <youngs@xemacs.org>
+
+	* pgg-parse.el (pgg-parse-public-key-algorithm-alist): XEmacs
+	doesn't have the 'alist custom type, use cons cells instead.
+	(pgg-parse-symmetric-key-algorithm-alist): Ditto.
+	(pgg-parse-hash-algorithm-alist): Ditto.
+	(pgg-parse-compression-algorithm-alist): Ditto.
+	(pgg-parse-signature-type-alist): Ditto.
+
+	* pgg-gpg.el (pgg-gpg-extra-args): Fix custom mismatch.
+
+	* pgg-pgp5.el (pgg-pgp5-extra-args): Ditto.
+
+	* pgg-pgp.el (pgg-pgp-extra-args): Ditto.
+
+2002-10-19  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-open-server): Check imap-state in IMAP server
+	buffer.
+
+2002-10-18  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-spec.el (gnus-make-format-preserve-properties)
+	(gnus-xmas-format, gnus-parse-simple-format): Preserve text
+	properties also on XEmacs.  `gnus-xmas-format' is like format but
+	preserves text properties on XEmacs (though it only understands
+	simple format specs).  The variable
+	`gnus-make-format-preserve-properties' controls whether the
+	function is used, and is checked in `gnus-parse-simple-format'.
+	Patch by Paul Moore <gustav@morpheus.demon.co.uk>.
+
+	* gnus-agent.el (gnus-agent-fetch-articles): More debugging
+	output.
+	(gnus-agent-consider-all-articles): New variable.
+	(gnus-agent-get-undownloaded-list): Comment that marks todo item.
+	(gnus-agent-fetch-headers): Depending on
+	gnus-agent-consider-all-articles, maybe get all articles.
+	(gnus-category-predicate-alist, gnus-agent-read-p): New predicate
+	`read'.
+	(gnus-predicate-imples-unread): New function.
+	(gnus-agent-fetch-headers): Optimize to call
+	gnus-list-of-unread-articles if that is sufficient.
+	Check unseen and recent instead of seen and recent.
+	(gnus-agent-fetch-headers): Abstain from calling
+	gnus-list-range-intersection if range (a . b) would have (> a b).
+
+2002-10-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-send-mail): Make it possible to perform
+	edebug-defun.
+
+2002-10-18  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-button-man-handler): Change default to
+	`manual-entry' (defined in both emacsen).
+	(gnus-button-man-handler): Remove emacsen difference and use
+	`manual-entry'.
+
+2002-10-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* spam.el: Wrap autoload settings for bbdb-records,
+	executable-find and ifile-spam-filter with eval-and-compile.
+	(spam-display-buffer-contents): Remove.
+	(spam-bogofilter-score): Merge spam-display-buffer-contents.
+
+2002-10-17  Ted Zlatanov  <tzz@lifelogs.com>
+
+	* spam.el (spam-display-buffer-contents): New function.
+	(spam-bogofilter-score): use spam-display-buffer-contents, patch
+	from Katsumi Yamaoka <yamaoka@jpl.org>.
+
+2002-10-17  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* nnheader.el (nnheader-parse-naked-head): New function.
+	(nnheader-parse-head): Use the above function, in order to handle
+	continuation lines properly.
+	(nnheader-remove-body): New function.
+	(nnheader-remove-cr-followed-by-lf): New function.
+	(nnheader-ms-strip-cr): Use the above function.
+
+	* gnus-agent.el (gnus-agent-regenerate-group): Call
+	`nnheader-remove-body'; use `nnheader-parse-naked-head' instead of
+	`nnheader-parse-head'.
+	* gnus-cache.el (gnus-cache-possibly-enter-article): Ditto.
+
+	* gnus-msg.el (gnus-inews-yank-articles): Do not unfold
+	continuation lines by itself; call `nnheader-parse-naked-head'
+	instead of `nnheader-parse-head'.
+	* nndiary.el (nndiary-parse-head): Ditto.
+	* nnfolder.el (nnfolder-parse-head): Ditto.
+	* nnimap.el (nnimap-retrieve-headers-progress): Ditto.
+	* nnmaildir.el (nnmaildir--update-nov): Ditto.
+	* nnml.el (nnml-parse-head): Ditto.
+
+2002-10-17  Steve Youngs  <youngs@xemacs.org>
+
+	* gnus-art.el (gnus-button-man-handler): Add 'manual-entry' for
+	XEmacs, default to it if featurep 'xemacs.
+
+2002-10-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* spam-stat.el: Check for the existence of hash functions instead
+	of the Emacs version to decide whether to load cl.  Suggested by
+	Kai Gro,A_(Bjohann.
+
+2002-10-15  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-agent.el (gnus-agent-fetch-selected-article): Open history
+	if it isn't open yet.
+
+2002-10-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el: Require mm-url only when compiling.
+	(gnus-group-fetch-charter): Require mm-url.
+
+	* spam-stat.el: Require cl for the functions gethash,
+	hash-table-count, make-hash-table and mapc for Emacs 20.
+	(puthash): Alias to cl-puthash for Emacs 20.
+	(with-syntax-table): New macro for Emacs 20.
+
+2002-10-12  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-spec.el (gnus-pad-form): Use gnus-string-width-function.
+
+2002-10-11  Ted Zlatanov <tzz@lifelogs.com>
+
+	* spam.el (spam-check-ifile): added ifile as a spam checking
+	backend, and spam-use-ifle as the variable to toggle that check.
+
+2002-10-12  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-beginning-of-line): New variable.
+	(message-beginning-of-line): Use it.
+
+2002-10-11  Ted Zlatanov <tzz@lifelogs.com>
+
+	* spam.el: more compilation fixes for BBDB
+
+	* spam-stat.el added code from Alex Schroeder <alex@gnu.org>
+	(spam-stat-reduce-size): Interactive.
+	(spam-stat-reset): New function.
+	(spam-stat-save): Interactive.
+
+2002-10-11  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.el: Autoload gnus-delay-initialize.
+
+	* message.el: Autoload gnus-delay-article.
+
+2002-10-11  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-spec.el (gnus-balloon-face-function): Use the help-echo
+	text property in Emacs.
+
+2002-10-11  Simon Josefsson  <jas@extundo.com>
+
+	* mml2015.el (mml2015-pgg-decrypt, mml2015-pgg-clear-decrypt)
+	(mml2015-pgg-verify, mml2015-pgg-clear-verify): Remove CR.
+
+	* mml1991.el (mml1991-pgg-sign): Remove CR.
+
+2002-10-10  Simon Josefsson  <jas@extundo.com>
+
+	* mml2015.el (mml2015-pgg-decrypt): Set gnus details even when
+	decrypt failed.
+	(mml2015-trust-boundaries-alist): Removed.
+	(mml2015-gpg-extract-signature-details): Don't use it.
+	(mml2015-unabbrev-trust-alist): New.
+	(mml2015-gpg-extract-signature-details): Use it.
+
+2002-10-10  Ted Zlatanov <tzz@lifelogs.com>
+
+	* spam.el: compilation fixes, spam-check-bbdb function is nil if no
+	BBDB installed
+
+	* spam-stat.el: added code from Alex Schroeder <alex@gnu.org> to do
+	statistical analysis of spam in Lisp only
+
+2002-10-10  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-open-server): Re-open server if it isn't in
+	auth, selected or examine state.
+
+	* pgg-gpg.el (pgg-gpg-verify-region): Filter out stuff into output
+	buffer and error buffer depending on type of information.
+
+	* mml2015.el (mml2015-gpg-extract-signature-details): Parse
+	--status-fd stuff even if gpg.el is not used (revert earlier
+	change).
+	(mml2015-pgg-{clear-,}verify): Store both output and errors as
+	gnus details.
+	(mml2015-pgg-{clear-,}verify): Extract signature info from errors
+	buffer.
+
+	* pgg.el (pgg-verify-region): Use it.
+
+	* pgg-def.el (pgg-query-keyserver): New variable.
+
+	* pgg.el (pgg-decrypt-region): Bind pgg-default-user-id to
+	key-identifier in packet.  Is this a good idea?
+
+	* mml.el (mml-mode-map): Add security commands that operates on
+	MIME parts.
+	(mml-menu): And menu items for them.
+
+	* mml1991.el (mml1991-pgg-encrypt): Remove headers.
+
+	* mml.el (mml-parse-1): Support sender in #secure tags.
+
+	* mml1991.el (mml1991-pgg-sign): Only use message-sender if it is
+	defined.
+
+	* mml-sec.el (mml-smime-encrypt-buffer): Warn about combined signing.
+	(mml-pgp-encrypt-buffer): Support combined signing.
+
+	* mml1991.el (mml1991-mailcrypt-encrypt): Support combined signing.
+	(mml1991-gpg-encrypt): Ditto.
+	(mml1991-pgg-encrypt): Ditto.
+	(mml1991-encrypt): Pass sign parameter.
+
+	* mml-sec.el (mml-signencrypt-style-alist): Defcustom.
+	(mml-signencrypt-style): Mention the variable.
+
+2002-10-09  Simon Josefsson  <jas@extundo.com>
+
+	* mml1991.el (mml1991-pgg-sign): Bind pgg-default-user-id, not
+	pgg-gpg-user-id.
+
+	* pgg.el (pgg-insert-url-with-w3): Ignore errors.
+	(pgg-fetch-key-function): Nil if w3 is not installed.
+
+2002-10-08  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-agent.el (gnus-agent-fetch-selected-article): Bind
+	gnus-agent-current-history.
+
+2002-10-06  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-parse-status): Don't use read to read token.
+
+2002-10-05  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-agent.el (gnus-agent-fetch-selected-article): Do nothing
+	for methods not covered by the agent, and when unplugged.
+
+2002-10-05  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-gpg.el (pgg-gpg-encrypt-region): Query passphrase when
+	signing.
+
+	* gnus-agent.el (gnus-agent-read-servers): If getting method from
+	a named server fails, ignore the server.
+
+	* mml1991.el (mml1991-pgg-sign): Do QP.
+
+	* pgg-gpg.el (pgg-gpg-encrypt-region): Make signencrypt really
+	work.
+
+2002-10-04  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-gpg.el (pgg-gpg-encrypt-region): Make signencrypt work.
+
+	* pgg-pgp.el (pgg-pgp-verify-region): Inline
+	binary-write-decoded-region from MEL.
+
+	* pgg.el (pgg-encrypt-region): Support sign.
+
+	* pgg-gpg.el (pgg-gpg-encrypt-region): Ditto.
+
+	* mml2015.el (mml2015-pgg-encrypt): Ditto.
+
+	* pgg.el, pgg-def.el, pgg-parse.el, pgg-gpg.el, pgg-pgp5.el,
+	pgg-pgp6.el: Moved from ../pgg/.  Modifications compared to EMIKO
+	branch where PGG was taken from in the ChangeLog entries below.
+
+2002-10-01  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-pgp.el: Don't require mel.  Don't use luna.
+	(pgg-scheme-pgp-instance, pgg-make-scheme-pgp): Remove.
+	(pgg-pgp-process-region): Use expand-file-name instead of concat.
+	(pgg-pgp-process-region): Don't use binary-funcall.
+
+	* pgg-pgp5.el (pgg-pgp5-process-region): Don't use binary-funcall.
+
+	* pgg-gpg.el (pgg-gpg-process-region): Use expand-file-name
+	instead of concat.
+
+	* pgg-pgp5.el (pgg-pgp5-process-region): Ditto.
+
+2002-09-29  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-parse.el (pgg-char-int, pgg-string-as-unibyte): Prevent byte
+	compile warnings.
+
+	* pgg.el (pgg-decrypt-region): Don't parse packet.
+
+	* pgg.el, pgg-gpg.el, pgg-pgp5.el: Don't depend on luna.el.
+
+2002-09-29  Daiki Ueno <ueno@unixuser.org>
+
+	* pgg.el: Remove dependency on calist.el.
+
+2002-09-28  Simon Josefsson  <jas@extundo.com>
+
+	* pgg.el (pgg-temporary-file-directory): New variable.
+	(pgg-verify-region): Don't assume set-buffer-multibyte exists.
+
+	* pgg-pgp5.el (pgg-pgp5-process-region, pgg-scheme-verify-region)
+	(pgg-scheme-snarf-keys-region): Use pgg-temporary-file-directory.
+
+	* pgg-parse.el (pgg-char-int): Defalias.
+	(pgg-format-key-identifier, pgg-byte-after, pgg-read-byte)
+	(pgg-read-bytes, pgg-read-body): Use it.
+	(pgg-decode-packets): Don't use MEL, use base64-*.
+	(pgg-parse-armor): Don't assume set-buffer-multibyte exists.
+	(pgg-string-as-unibyte): Defalias.
+	(pgg-parse-armor-region): Use it.
+
+	* pgg-gpg.el (pgg-gpg-process-region): Use
+	pgg-temporary-file-directory.
+
+	* luna.el: Don't def-edebug.
+
+	* pgg-pgp5.el (pgg-scheme-verify-region): Inline
+	binary-write-decoded-region from MEL.
+
+	* pgg-pgp5.el, pgg-gpg.el: Don't require mel.
+
+	* alist.el, calist.el: Don't require product/APEL.
+
+	* pgg-parse.el (top-level): Remove dependency on static.el,
+	pccl.el, mel.el.
+	(pgg-parse-crc24, pgg-parse-crc24-string): Only define if
+	`define-ccl-program' is boundp, instead of using broken.
+
+2002-10-01  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-required-mail-headers): Remove Lines:.
+
+2002-10-03  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Jesper Harder.
+
+	* gnus-group.el (gnus-group-fetch-charter,
+	gnus-group-fetch-control): Prompt for group if given a prefix
+	argument.
+	* gnus-sum.el (t): Add gnus-group-fetch-charter and
+	gnus-group-fetch-control to summary key map and menu.
+
+2002-10-03  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--group-maxnum-art): fix maximum article
+	number when there are no articles.
+
+2002-10-03  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-agent.el (gnus-agent-summary-fetch-group): Optional prefix
+	arg ALL means to fetch all articles, not only downloadable ones.
+	(gnus-agent-fetch-selected-article): New function for
+	gnus-select-article-hook or gnus-mark-article-hook.
+
+2002-10-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+	From Peter von der Ahe <nospam2159@daimi.au.dk>.
+
+	* gnus-ems.el (gnus-x-splash): Set coding-system-for-read to
+	raw-text.
+
+2002-09-30  Ted Zlatanov <tzz@lifelogs.com>
+
+	* spam.el: merged changes from pinard@iro.umontreal.ca (Fran,Ag(Bois
+	Pinard).
+	Major revamp of the code, documentation is in comments in the file
+	for now.
+
+2002-09-30  Simon Josefsson  <jas@extundo.com>
+
+	* mml2015.el (mml2015-pgg-clear-verify): Verifying in a unibyte
+	buffer seem to be needed?
+
+2002-09-29  Simon Josefsson  <jas@extundo.com>
+
+	* mml1991.el (pgg-output-buffer, pgg-errors-buffer): Prevent byte
+	compile warnings.
+
+	* mml1991.el (mml1991-function-alist): Add pgg.
+	(mml1991-pgg-sign, mml1991-pgg-encrypt): New functions.
+	(mml1991-pgg-encrypt): Fix recipients querying.
+
+2002-09-28  Simon Josefsson  <jas@extundo.com>
+
+	* mml2015.el (autoload): Autoload correct files.  Trivial patch
+	from dme@dme.org.
+	(mml2015-pgg-decrypt, mml2015-pgg-verify): Make sure either nil or
+	handle is returned.
+
+2002-09-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-start.el (gnus-fixup-nnimap-unread-after-getting-new-news):
+	Protect against non-existent of `nnimap-mailbox-info'.
+
+2002-09-27  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-start.el (gnus-fixup-nnimap-unread-after-getting-new-news): New.
+	(gnus-setup-news-hook): Use it.
+	(gnus-after-getting-new-news-hook): Ditto.
+
+	* nnimap.el (nnimap-fixup-unread-after-getting-new-news): Remove.
+
+2002-09-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+	From Mats Lidell <matsl@contactor.se>.
+
+	* gnus-art.el (gnus-article-mode-syntax-table): Replace "-" to " ".
+
+2002-09-27  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* gnus-sum.el (gnus-nov-parse-line): When an error is signaled in
+	the part to decode encoded words, use raw words instead of decoded
+	words.
+
+2002-09-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnimap.el (nnimap-update-unseen): Use gnus-gethash-safe.
+
+	* mm-view.el (mm-w3m-mode-ignored-keys): New variable.
+	(mm-setup-w3m): Use it.
+
+2002-09-27  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-article-mode-syntax-table): Make M-. work in
+	article buffers.
+
+	* nnimap.el (nnimap-fixup-unread-after-getting-new-news): Autoload
+	it just in case.
+	(nnimap-update-unseen): New function; update unseen count in
+	`n-m-info'.
+	(nnimap-close-group): Call it.
+
+	* gnus-start.el (gnus-setup-news-hook): Add n-f-u-a-g-n-n.
+	(gnus-after-getting-new-news-hook): Ditto.
+
+	* nnimap.el (nnimap-retrieve-groups): Move the quick mail check
+	message into verboselevel 9.  Change slow mail check message.
+	(nnimap-retrieve-groups): Use prefixed names in n-mailbox-info.
+	(nnimap-fixup-unread-after-getting-new-news): New function, to be
+	used as a hook after getting new mail.
+
+2002-09-26  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-parse-resp-text-code): The UNSEEN value in
+	SELECT/EXAMINE is first unseen article, not number of unseen
+	articles.  Make them distinct by renaming the former to
+	`first-unseen' instead of `unseen'.
+
+	* nnimap.el (nnimap-retrieve-groups): Get uidvalidity and unseen
+	too.
+	(nnimap-retrieve-groups): Don't used cached data if uidvalidity
+	changed.
+	(nnimap-retrieve-groups): Store uidvalidity and unseen data too.
+
+	* gnus-int.el (gnus-server-unopen-status): Defcustom.
+
+	* mml-sec.el (mml-signencrypt-style): Docstring to font-lock
+	better.
+
+	* mml2015.el (mml2015-pgg-decrypt): Only add security information
+	if dissecting resulting buffer actually had any information.
+
+2002-09-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-group-sort-by-method): Remove `symbol-name'
+	because the function `string<' allows symbols.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Ditto.
+
+2002-09-25  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-forward-make-body): Revert an early change
+	because 8-bit utf-8 emails.
+
+2002-09-25  Bj,Av(Brn Torkelsson  <torkel@acc.umu.se>
+
+	* gnus-agent.el (gnus-category-line-format): Doc fixes (mostly added
+	links to Info)
+	* gnus-art.el (gnus-treat-highlight-signature):
+	* gnus-art.el (gnus-treat-buttonize):
+	* gnus-art.el (gnus-treat-buttonize-head):
+	* gnus-art.el (gnus-treat-emphasize):
+	* gnus-art.el (gnus-treat-strip-cr):
+	* gnus-art.el (gnus-treat-unsplit-urls):
+	* gnus-art.el (gnus-treat-leading-whitespace):
+	* gnus-art.el (gnus-treat-hide-headers):
+	* gnus-art.el (gnus-treat-hide-boring-headers):
+	* gnus-art.el (gnus-treat-hide-signature):
+	* gnus-art.el (gnus-treat-fill-article):
+	* gnus-art.el (gnus-treat-hide-citation):
+	* gnus-art.el (gnus-treat-hide-citation-maybe):
+	* gnus-art.el (gnus-treat-strip-list-identifiers):
+	* gnus-art.el (gnus-treat-strip-pgp):
+	* gnus-art.el (gnus-treat-strip-pem):
+	* gnus-art.el (gnus-treat-strip-banner):
+	* gnus-art.el (gnus-treat-highlight-headers):
+	* gnus-art.el (gnus-treat-highlight-citation):
+	* gnus-art.el (gnus-treat-date-ut):
+	* gnus-art.el (gnus-treat-date-local):
+	* gnus-art.el (gnus-treat-date-english):
+	* gnus-art.el (gnus-treat-date-lapsed):
+	* gnus-art.el (gnus-treat-date-original):
+	* gnus-art.el (gnus-treat-date-iso8601):
+	* gnus-art.el (gnus-treat-date-user-defined):
+	* gnus-art.el (gnus-treat-strip-headers-in-body):
+	* gnus-art.el (gnus-treat-strip-trailing-blank-lines):
+	* gnus-art.el (gnus-treat-strip-leading-blank-lines):
+	* gnus-art.el (gnus-treat-strip-multiple-blank-lines):
+	* gnus-art.el (gnus-treat-unfold-headers):
+	* gnus-art.el (gnus-treat-fold-headers):
+	* gnus-art.el (gnus-treat-fold-newsgroups):
+	* gnus-art.el (gnus-treat-overstrike):
+	* gnus-art.el (gnus-treat-display-xface):
+	* gnus-art.el (gnus-treat-display-smileys):
+	* gnus-art.el (gnus-treat-from-picon):
+	* gnus-art.el (gnus-treat-mail-picon):
+	* gnus-art.el (gnus-treat-newsgroups-picon):
+	* gnus-art.el (gnus-treat-body-boundary):
+	* gnus-art.el (gnus-treat-capitalize-sentences):
+	* gnus-art.el (gnus-treat-fill-long-lines):
+	* gnus-art.el (gnus-treat-play-sounds):
+	* gnus-art.el (gnus-treat-translate):
+	* gnus-art.el (gnus-treat-x-pgp-sig):
+	* gnus-art.el (gnus-mime-button-line-format):
+	* gnus-art.el (gnus-button-man-level):
+	* gnus-art.el (gnus-button-emacs-level):
+	* gnus-cus.el (gnus-group-parameters):
+	* gnus-gl.el (bbb-build-mid-scores-alist):
+	* gnus-group.el (gnus-group-line-format):
+	* gnus-mlspl.el (gnus-group-split-setup):
+	* gnus-mlspl.el (gnus-group-split):
+	* gnus-msg.el (gnus-mailing-list-groups):
+	* gnus-msg.el (gnus-posting-styles):
+	* gnus-nocem.el (gnus-nocem-issuers):
+	* gnus-score.el (gnus-score-regexp-bad-p):
+	* gnus-srvr.el (gnus-server-line-format):
+	* gnus-topic.el (gnus-topic-line-format):
+	* gnus.el (gnus-summary-line-format):
+	* mail-source.el (mail-sources):
+	* message.el (message-subscribed-address-file):
+	* nnmail.el (nnmail-split-fancy):
+
+2002-09-24  Evgeny Roubinchtein  <zhenya@freeshell.org>
+
+	* mail-source.el(mail-source-run-script): use `functionp' to test
+	whether the argument `script' is in fact a function.
+	(mail-sources): adjust the defcustom to allow users to specify a
+	function or a string as the value of the `:prescript' and
+	`:postscript' arguments of the `file' and `pop3' mail sources.
+
+2002-09-25  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--grp-add-art): fix minimum article
+	number when article 1 does not exist.
+
+2002-09-25  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-art.el (gnus-button-handle-apropos-variable): Fall back to
+	apropos if apropos-variable does not exist.
+	(gnus-button-guessed-mid-regexp)
+	(gnus-button-handle-describe-prefix, gnus-button-alist): Better
+	regexes.  From Reiner Steib.
+	(gnus-button-handle-describe-function)
+	(gnus-button-handle-describe-variable): Doc fix.  From Reiner Steib.
+	(gnus-button-handle-describe-key, gnus-button-handle-apropos)
+	(gnus-button-handle-apropos-command): Doc fix.  From Reiner Steib.
+
+2002-09-25  Mark A. Hershberger  <mah@everybody.org>
+	Trivial patch.
+
+	* nnrss.el (nnrss-save-server-data): Save nnrss-group-alist in
+	the file.
+
+2002-09-24  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-1): Create nndraft:queue, nndraft:drafts.
+
+2002-09-24  Simon Josefsson  <jas@extundo.com>
+
+	* mml2015.el (top-level): Require mm-util for mm-make-temp-file.
+	(mml2015-use): Prefer PGG if installed.
+	(mml2015-function-alist): Add PGG wrappers.
+	(mml2015-gpg-extract-signature-details): Check mml2015-use too.
+	(mml2015-gpg-extract-signature-details): PGG strips "gpg: "
+	prefix, make regexp optionally skip it.
+	(mml2015-pgg-decrypt, mml2015-pgg-clear-decrypt)
+	(mml2015-pgg-verify, mml2015-pgg-clear-verify, mml2015-pgg-sign)
+	(mml2015-pgg-encrypt): New functions.
+	(defvar, autoload): Prevent byte-compile warnings.
+
+2002-09-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+	From TSUCHIYA Masatoshi <tsuchiya@namazu.org>.
+
+	* gnus-art.el (article-strip-banner): Check for the existence of
+	from header.
+
+2002-09-23  Kai Gro,b_(Bjohann  <grossjoh@ls6.informatik.uni-dortmund.de>
+
+	* gnus-art.el (gnus-button-guessed-mid-regexp): Improved regexp.
+	(gnus-button-alist): Improved regexp for
+	gnus-button-handle-mid-or-mail (false positives), fixed
+	gnus-button-handle-man entries.
+	From Reiner Steib.
+
+2002-09-23  Paul Jarc  <prj@po.cwru.edu>
+	From Josh Huber.
+
+	* nnmaildir.el (nnmaildir--update-nov): fix wrong-type error when
+	nnmail-extra-headers is non-nil.
+
+2002-09-23  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el: Store article numbers persistently.  General
+	revision.
+	(nnmaildir-request-expire-articles): handle 'immediate and 'never
+	for nnmail-expiry-wait; delete instead of moving if 'force is
+	given.
+
+2002-09-23  Simon Josefsson  <jas@extundo.com>
+	Trivial fix from beaker@iavmb.pl (Krzysztof J,Bj(Bdruczyk).
+
+	* smime.el (smime-sign-buffer): Get key and extra certs.
+	(smime-get-key-with-certs-by-email): Utility function.
+
+2002-09-21  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	Trivial patch from Micha Wiedenmann <mw-u1@gmx.de>
+
+	* gnus-soup.el (gnus-soup-add-article): Mark as read only when the
+	article exists.
+
+2002-09-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-next-group): Switch to the summary buffer.
+
+2002-09-20  Kai Gro,b_(Bjohann  <grossjoh@ls6.informatik.uni-dortmund.de>
+	From Reiner Steib.
+
+	* gnus-art.el (gnus-button-handle-custom,
+	gnus-button-handle-mid-or-mail,
+	gnus-button-handle-describe-{function,variable,key},
+	gnus-button-handle-apropos{,command,variable}): New functions.
+	(gnus-button-prefer-mid-or-mail,gnus-button-guessed-mid-regexp,
+	gnus-button-{man,emacs,mail}-level): New variables.
+	(gnus-button-alist): Use the above to buttonize emacs and mail
+	related links.
+
+2002-09-18  Juanma Barranquero  <lektu@terra.es>
+
+	* gnus-int.el (gnus-status-message): Fix spacing.
+
+	* imap.el (imap-continuation): Fix typos.
+
+2002-09-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-configure-posting-styles): Sort results.
+
+	* gnus-art.el (gnus-article-reply-with-original): Correct
+	with-current-buffer scope.
+
+	* message.el (message-completion-alist): Add Reply-To, From, etc.
+
+2002-09-18  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-request-expire-articles): Make flag setting
+	conditional.  From Nevin Kapur <nevin@jhu.edu>.
+
+2002-09-17  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-expiry-target): Don't search for which
+	articles exists here.
+	(nnimap-request-expire-articles): Do it here instead.  Only expire
+	when articles are found.  Suggested by Nevin Kapur
+	<nevin@jhu.edu>.
+
+2002-09-17  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Reiner Steib <reiner.steib@gmx.de>.
+
+	* message.el (message-strip-subject-trailing-was)
+	(message-change-subject, message-add-archive-header)
+	(message-xpost-fup2-header, message-xpost-insert-note)
+	(message-xpost-fup2, message-reduce-to-to-cc): New functions
+	adopted from message-utils.el.  Add functions to the keymap, mode
+	describtion and menu.
+	(message-change-subject,message-xpost-fup2): Signal error if
+	current header is empty.
+	(message-xpost-insert-note): Changed insert position.
+	(message-archive-note): Ensure to insert note in message body (not
+	in head).
+	(message-archive-header, message-archive-note)
+	(message-xpost-default, message-xpost-note, message-fup2-note)
+	(message-xpost-note-function): New variables adopted from
+	message-utils.el.  Changed some doc-strings.
+	(message-mark-insert-{begin,end}): Rename from
+	message-{begin,end}-inserted-text-mark (message-utils.el), changed
+	values.
+	(message-subject-trailing-was-query)
+	(message-subject-trailing-was-ask-regexp)
+	(message-subject-trailing-was-regexp): New variables.
+	(message-to-list-only): Added doc-string and menu entry.
+
+	* message-utils.el: Removed.  Functions are now in message.el.
+
+2002-09-16  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-reply-with-original,
+	gnus-article-followup-with-original): Switch to
+	gnus-summary-buffer before reply/followup.
+
+2002-09-15  John Paul Wallington  <jpw@shootybangbang.com>
+
+	* gnus-sum.el (gnus-summary-toggle-header): The article window may
+	not exist. Toggle it anyway.
+
+2002-09-13  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-copy-article-buffer): Bind mail-header-separator.
+
+	* gnus-art.el (article-fill-long-lines): Fill-paragraph properly.
+	Trivial patch from Urban Engberg <ue@ccieurope.com>.
+
+	* rfc2047.el (message-posting-charset): Defvar it.
+	(rfc2047-charset-encoding-alist): Use B for iso-8859-7 and
+	iso-8859-8. Fix doc.  Suggested by Dave Love <fx@gnu.org>.
+
+	* mail-source.el (mail-source-fetch): Hide password.
+
+	* gnus-sum.el (gnus-summary-next-group): Semi-exit only when needed.
+
+2002-09-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+	From John Paul Wallington <jpw@shootybangbang.com>.
+
+	* gnus.el (gnus-visual, gnus-meta): Fix typo.
+
+2002-09-11  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-address-banner-alist): Doc fix.
+
+2002-09-11  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-expiry-target): Only expiry-target existing articles.
+	(nnimap-split-rule): Doc fix.
+	(nnimap-request-expire-articles): Cleanup code.
+
+2002-09-11  Katsumi Yamaoka  <yamaoka@jpl.org>
+	From TSUCHIYA Masatoshi <tsuchiya@namazu.org>.
+
+	* gnus-art.el (gnus-article-address-banner-alist): New option.
+	(article-strip-banner): Refer the above option to split banners of
+	free mail servers, when no group parameter is specified.
+
+2002-09-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-wait-for-string): Check for a process in the
+	current buffer instead of `nntp-server-buffer'.
+
+2002-09-09  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-button-man-handler): New variable.
+	(gnus-button-alist): Use g-b-handle-man.
+	(gnus-button-handle-man): New, call g-b-man-handler.
+
+2002-09-08  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-button-alist): Buttonize man page links.
+
+2002-09-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-dumbquotes-map): Add \230.
+
+2002-09-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-srvr.el (gnus-browse-make-menu-bar): Add "d".
+
+	* gnus-sum.el (gnus-summary-limit-to-unseen): New command and
+	keystroke.
+
+	* gnus-srvr.el (gnus-browse-describe-group): New command and
+	keystroke.
+
+2002-09-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-treat-body-boundary): Don't quote a
+	value for gnus-decoration property.
+
+2002-09-06  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* nnmail.el (nnmail-cache-fetch-group): Don't return "" (empty
+	string) as group name in case we have a CRLF in the file.
+
+2002-09-04  Jesper Harder  <harder@ifa.au.dk>
+
+	* rfc1843.el (rfc1843-decode-loosely): Move to mime customization
+	group.
+	(rfc1843-decode-hzp): do.
+	(rfc1843-newsgroups-regexp): do.
+
+2002-09-04  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-canlock-generate): Make sure sha1 doesn't
+	call external programs.
+
+2002-09-03  Simon Josefsson  <jas@extundo.com>
+
+	* nntp.el (nntp-wait-for-string): Dont infloop if process died.
+
+	* gnus-agent.el (gnus-agent-batch): Add doc.
+
+2002-09-03  Josh Huber  <huber@alum.wpi.edu>
+
+	* gnus-msg.el (gnus-summary-handle-replysign): Change the order we
+	check for signed and encrypted parts.
+	* mml.el (mml-parse-1): Correct small typo which preventing
+	setting recipients in a secure tag.
+
+2002-09-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-coding-system-priorities): Default to a list of
+	iso-2022-jp and others for the Japanese environment.
+
+2002-09-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el (gnus-frame-or-window-display-name): Exclude
+	invalid display names.
+
+2002-08-30  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-fetch-control): Fix typo in last
+	commit.  From Reiner Steib <4uce.02.r.steib@gmx.net>.
+
+2002-08-26  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.el (gnus-group-charter-alist): New option.
+	(gnus-group-fetch-control-use-browse-url): New option.
+
+	* gnus-group.el (gnus-group-fetch-charter): New function.
+	(gnus-group-fetch-control): New function.
+	Add them to the keymap and menu. Require mm-url.
+
+2002-08-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-mlspl.el (gnus-group-split-fancy): Doc fix.
+	From Alex Schroeder <alex@emacswiki.org>.
+
+2002-08-29  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-group.el (gnus-group-make-menu-bar): Add ellipses to menu
+	items expecting user interaction.
+
+	* gnus-topic.el (gnus-topic-make-menu-bar): do.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): do.
+
+	* gnus-srvr.el (gnus-server-make-menu-bar): do.
+
+	* mml.el (mml-menu): do.
+
+2002-08-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mail-source.el (mail-source-touch-pop): New function.
+
+	* message.el (message-smtpmail-send-it): New function.
+	(message-send-mail-function): Add it for a candidate.
+
+2002-08-27  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-msg.el (posting-charset-alist): Use
+	gnus-define-group-parameter instead of defcustom.
+	(gnus-put-message): Handle SPC in GCC.
+	(gnus-inews-insert-gcc): Ditto.
+	(gnus-inews-insert-archive-gcc): Ditto.
+
+2002-08-26  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-agent.el (gnus-agent-auto-agentize-methods): New variable.
+	(gnus-agentize): Auto agentize all nntp and nnimap groups.
+	(gnus-agent-possibly-save-gcc): Autoload.
+	Suggested by (KOSEKI Yoshinori) <kose@meadowy.org>.
+
+2002-08-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.el (gnus-other-frame-function): New user option.
+	(gnus-other-frame): Use it; add a doc-string; make it work with
+	the gnuclient program.
+
+	* gnus-util.el (gnus-frame-or-window-display-name): New function.
+
+	* lpath.el: Fbind `frame-parameter', `make-frame-on-display',
+	`device-connection' and `dfw-device'.
+
+2002-08-22  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-art.el (gnus-emphasis-alist): Strikethru had a lot of false
+	positives, make it stricter.  From Jochen Hein (trivial change).
+
+2002-08-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.el (gnus-other-frame): Trivial fix.
+
+2002-08-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.el (gnus-other-frame-parameters): New user option.
+	(gnus-other-frame-object): New variable.
+	(gnus-other-frame): Make it search for existing Gnus frame; don't
+	read new news; delete frame on exit.
+
+	* gnus-util.el (gnus-select-frame-set-input-focus): New function.
+
+	* lpath.el: Fbind w32-focus-frame and x-focus-frame.
+
+2002-08-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+	From $B>.4X(B $B5HB'(B (KOSEKI Yoshinori) <kose@meadowy.org>.
+
+	* message.el (message-set-auto-save-file-name): Add support for
+	the Cygwin Emacs; the system-type is `cygwin'.
+	* nnheader.el (nnheader-file-name-translation-alist): Ditto.
+
+2002-08-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-button-url-regexp): Use POSIX regexp if possible.
+
+	* nnmh.el (nnmh-request-list-1): Use %.0f instead of %d to
+	avoid arithmetic errors.
+
+2002-08-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el: Don't fbind `gnus-article-replace-with-quoted-text'.
+
+2002-08-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-ignored-supersedes-headers): Add X-Hashcash.
+	(message-ignored-resent-headers): Add envelope From.
+
+2002-08-18  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus.el (gnus-summary-line-format): Document %k specifier.
+
+2002-08-17  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-sum.el (gnus-summary-line-message-size): New function.
+	(gnus-summary-line-format-alist): Use it.
+
+2002-08-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-make-date-line): Refer to the value for
+	`gnus-article-time-format' in the summary buffer.
+
+	* message.el (message-cite-prefix-regexp): Exclude ":" and ",A;(B".
+
+2002-08-14  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-button-alist): Use ' not ` for default value
+	quoting.
+	(gnus-button-alist): Fix doc.
+	(gnus-header-button-alist): Use ' not ` for default value quoting.
+	(gnus-header-button-alist): Don't inline gnus-button-url-regexp,
+	rationale similar to 2002-05-01 change.
+	(gnus-article-add-buttons-to-head): Evaluate expression.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Add MIME button option.
+
+2002-08-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-font-lock-keywords): Refer to the value for
+	`message-cite-prefix-regexp' dynamically.
+
+2002-08-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-decode-header-methods): Doc fix.
+
+2002-08-12  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-shell-open): Allow non-list `imap-shell-program'.
+	(imap-shell-open): Skip initial junk before IMAP greeting.
+
+2002-08-11  Simon Josefsson  <jas@extundo.com>
+
+	* message-utils.el (message-xpost-default,
+	message-xpost-fup2-header, message-xpost-fup2): Fixed
+	Typos.  Trivial changes from Reiner Steib
+	<4uce.02.r.steib@gmx.net>.
+
+2002-08-09  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-canlock-password): Set
+	canlock-password-for-verify to newly generated canlock-password.
+	When Emacs is restarted, Custom makes sure this is set, but during
+	the same session we must set it manually.
+
+2002-08-07  Jesper Harder  <harder@ifa.au.dk>
+
+	* yenc.el: New file.
+
+	* mm-uu.el (mm-uu-yenc-decode-function): New variable.
+	(mm-uu-type-alist): Add yenc.
+	(mm-uu-yenc-filename): New function.
+	(mm-uu-yenc-extract): New function.
+
+	* mm-bodies.el (mm-decode-content-transfer-encoding): Add yenc.
+
+2002-08-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* dgnushack.el (merge): Don't use coerce.
+
+2002-05-27  Jesper Harder  <harder@ifa.au.dk>
+
+	* mailcap.el (mailcap-mime-data): Test window-system rather than
+	mm-device-type.
+	(mailcap-mime-data): Call xdvi and gv with "-safer".
+
+	* mm-util.el: Don't define mm-device-type.
+
+2002-08-05  Simon Josefsson  <jas@extundo.com>
+
+	* mm-util.el (mm-coding-system-priorities): coding-system type not
+	supported everywhere.
+
+2002-08-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bumped version number.
+
+2002-08-04 01:48:57 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.07 is released.
+
+2002-08-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-thread-sort-functions): Doc fix.
+	(gnus-article-sort-functions): Doc fix.
+	(t): New keystroke.
+	(gnus-article-sort-by-random): New function.
+	(gnus-thread-sort-by-random): New function.
+
+2002-08-02  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-logic.el (gnus-advanced-integer): Swap arguments in
+	funcall.  From Scott A Crosby <scrosby@cs.rice.edu>.
+
+2002-07-31  Danny Siu  <dsiu@adobe.com>
+
+	* nnimap.el (nnimap-split-articles): do not call nnmail-fetch-field
+	when splitting malformed messages without message-id
+
+2002-07-28  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Niklas Morberg <niklas.morberg@axis.com>.
+
+	* nnweb.el (nnweb-type, nnweb-type-definition)
+	(nnweb-gmane-create-mapping, nnweb-gmane-wash-article)
+	(nnweb-gmane-search, nnweb-gmane-identity): Added gmane
+	functionality.
+	* nnweb.el: Removed old non-functioning search engines.
+
+2002-07-27  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-forward-make-body): Don't use
+	`message-forward-ignored-headers' when doing a "raw" followup (it
+	is important to preserve e.g. CTE).
+
+	* flow-fill.el (fill-flowed): Disable filladapt-mode.
+
+	* gnus-sieve.el (gnus-sieve-guess-rule-for-article): Don't
+	regexp-quote, Cyrus Sieve is fixed.
+
+	* sieve-manage.el (sieve-manage-deletescript): New function.
+
+	* sieve.el (sieve-manage-mode-map): Fix down-mouse-2 and down-mouse-3.
+	(sieve-manage-mode): Fix menubar.
+	(sieve-activate): Change some messages.
+	(sieve-deactivate-all): New function.
+	(sieve-deactivate): New alias.
+	(sieve-remove): New function.
+	(sieve-help): Fix help.
+	All suggested by Ned Ludd.
+
+2002-07-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-inline-text-html-with-images): Doc fix.
+	(mm-w3m-safe-url-regexp): New user option.
+
+	* mm-view.el (mm-inline-text-html-render-with-w3m): Use
+	`mm-w3m-safe-url-regexp' to bind `w3m-safe-url-regexp'.
+
+2002-07-23  Karl Kleinpaste  <karl@charcoal.com>
+
+	* gnus-sum.el (gnus-summary-delete-article): Force
+	nnmail-expiry-target to 'delete, so that absolute deletion
+	happens when absolute deletion is requested.
+
+2002-07-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Nevin Kapur <nevin@jhu.edu>.
+
+	* nnmail.el (nnmail-fancy-expiry-target): Treat nonexisting
+	headers as empty headers.
+
+2002-07-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Jochen Hein <jochen@jochen.org>.
+
+	* gnus-art.el (gnus-emphasis-alist): Add strikethrough and
+	correct typo.
+	(gnus-emphasis-strikethru): New face.
+
+2002-07-20  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Jason Merrill <jason@redhat.com>.
+
+	* nnfolder.el (nnfolder-retrieve-headers): Avoid searching the
+	entire file for each of a sequence of missing articles.
+
+	* gnus-salt.el (gnus-binary-display-article): Respect an existing
+	value for gnus-view-pseudos.
+
+	* gnus-sum.el (gnus-summary-insert-new-articles): Count down to
+	avoid nreverse.
+
+2002-07-14  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Ted Zlatanov <teodor.zlatanov@divine.com>.
+
+	* gnus-sum.el (gnus-auto-expirable-marks): Remove `spam'.
+	(gnus-summary-mode-line-format-alist): Add %h for number of
+	spams.
+	(gnus-newsgroup-spam-marked): New variable.
+	(gnus-summary-local-variables): Add gnus-newsgroup-spam-marked.
+	(gnus-article-read-p, gnus-article-mark)
+	(gnus-set-global-variables, gnus-set-global-variables)
+	(gnus-article-marked-p, gnus-summary-mark-article-as-read)
+	(gnus-summary-mark-article-as-unread)
+	(gnus-summary-mark-article-as-unread, gnus-summary-mark-article)
+	(gnus-mark-article-as-read, gnus-mark-article-as-unread)
+	(gnus-mark-article-as-unread, gnus-summary-catchup): Grok spam.
+
+2002-07-10  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-split-to-groups): Allow group string to be a
+	function.  From KANEMATSU Daiji <kdaiji@bea.com>.
+
+2002-07-09  Nevin Kapur  <nevin@jhu.edu>
+
+	* gnus-sum.el (gnus-summary-delete-article): Respect group
+	parameters while expiring.
+
+2002-07-08  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (article-make-date-line): Fix string.  From Henrik
+	Enberg.
+
+2002-07-08  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-art.el (article-unsplit-urls): Only display MIME when this
+	function is called interactively.  From Niklas Morberg.
+
+2002-07-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-topic.el (gnus-topic-indent, gnus-topic-unindent): Change
+	cdaar to cdar and car.
+
+	* nnsoup.el (nnsoup-retrieve-headers, nnsoup-request-type)
+	(nnsoup-read-active-file, nnsoup-article-to-area): Ditto.
+
+2002-07-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-toggle-header): Show headers anyway;
+	don't break a narrowed article.
+
+	* nntp.el (nntp-via-rlogin-command-switches): Doc fix.
+	(nntp-open-via-rlogin-and-telnet): Ditto.
+
+2002-07-02  Didier Verna  <didier@xemacs.org>
+
+	* nnmail.el (nnmail-split-methods): fix custom type.
+
+2002-07-02  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-art.el (article-unsplit-urls): Keep URL buttonized after
+	unsplitting.  From Niklas Morberg <niklas.morberg@axis.com>.
+
+2002-07-01  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-msg.el (gnus-summary-resend-default-address): New user option.
+	(gnus-summary-resend-message): Use it.
+
+2002-06-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-via-rlogin-command-switches): New variable.
+	(nntp-open-via-rlogin-and-telnet): Re-revert; use the var above.
+
+2002-06-28  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-font-lock-keywords): Don't fontify
+	headers in the message body, only in the header.
+	(message-font-lock-make-header-matcher): New function, used by
+	message-font-lock-keywords.
+	From Katsumi Yamaoka <yamaoka@jpl.org>.
+
+2002-06-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-open-via-rlogin-and-telnet): Revert last change.
+
+2002-06-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-open-via-rlogin-and-telnet): Hide commandline args.
+
+2002-06-26  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-font-lock-keywords): Revert 2002-06-22
+	change.
+
+2002-06-24  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-font-lock-keywords): Put colon in header
+	name match.
+
+2002-06-22  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-font-lock-keywords): Don't use header faces
+	in the body.  Thanks to Stefan Monnier for the hint on the
+	implementation.
+
+2002-05-09  Miles Bader  <miles@gnu.org>
+
+	* gnus-cite.el (gnus-cite-blank-line-after-header): New variable.
+	(gnus-article-hide-citation): Respect it.
+
+2002-04-12  Juanma Barranquero  <lektu@terra.es>
+
+	* pop3.el (pop3-open-server): Fix typo.
+
+2002-06-18  Josh Huber  <huber@alum.wpi.edu>
+
+	* gnus.el (gnus-find-subscribed-addresses): Use add-to-list
+	instead of push to ignore duplicate to-(list|address) values.
+	* nnmail.el (nnmail-cache-ignore-groups): New.
+	* nnmail.el (nnmail-cache-insert): Obey nnmail-cache-ignore-groups
+
+2002-06-18  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el (gnus-delay-send-queue): Delete the delay header
+	before sending.  Suggested by Jan Rychter.
+
+2002-06-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el (remove): New compiler macro.
+	(last, coerce, subseq): Remove compiler macros for those built-in
+	or unused functions.
+
+2002-06-17  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-start.el (gnus-clear-system, gnus-read-newsrc-file): Make
+	sure to write byte-compiled versions of gnus-*-format-alist to
+	.newsrc.eld.  From Simon Josefsson.
+
+2002-06-16  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-agent.el (gnus-agent-read-servers)
+	(gnus-agent-write-servers): Put server name (string like
+	"nnchoke:frumple") in the file instead of a server specification
+	(Lisp expression like (nnchoke "frumple" ...parameters...)).
+	From Bj,Ax(Brn Mork <bmork@dod.no>.
+
+2002-06-16  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-cache.el (gnus-cache-remove-article): n is &optional.  From
+	Reiner Steib <4uce.02.r.steib@gmx.net>.
+
+2002-06-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnheader.el (nnheader-file-name-translation-alist): Set the
+	default value for MS Windows systems.
+
+	* gnus-ems.el (nnheader-file-name-translation-alist): Removed.
+
+2002-06-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-beginning-of-line): Keep the region active
+	in XEmacs.  Suggested by TAKAHASHI Kaoru <kaoru@kaisei.org>.
+
+2002-06-13  Josh Huber  <huber@alum.wpi.edu>
+
+	* gnus-msg.el (gnus-summary-followup): Use g-s-handle-replysign.
+	* gnus-msg.el (gnus-summary-reply): Ditto.
+	* gnus-msg.el (gnus-summary-handle-replysign): New.
+
+2002-06-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-send-mail-with-sendmail): Kill errbuf even
+	if sending failed.
+
+2002-06-11  Josh Huber  <huber@alum.wpi.edu>
+
+	* gnus-start.el (gnus-dribble-enter): Don't call set-window-point anymore
+	* mml2015.el (mml2015-mailcrypt-encrypt): Accept optional argument
+	to sign while encrypting.
+
+2002-06-11  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-int.el (gnus-request-move-article): Agent expire article if
+	successfuly moved.
+
+	* nnweb.el (nnweb-google-create-mapping): Honors the value of
+	nnweb-max-hits.  From Niklas Morberg <niklas.morberg@axis.com>.
+
+2002-06-10  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-int.el (gnus-request-expire-articles): Fix last change?
+
+2002-06-09  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-delete-article): Don't agent expire here.
+
+	* gnus-int.el (gnus-request-expire-articles): Do it here instead.
+
+2002-06-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* flow-fill.el (fill-flowed): Ignore errors.
+
+2002-06-06  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-send-mail-with-sendmail): Improve error message.
+
+2002-06-06  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-interactive): Change default from nil to t.
+	Better to be safe than to be fast.
+
+2002-06-05  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-send-mail-with-sendmail): Check return value
+	from call-process-region.
+
+2002-06-04  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-msg.el (gnus-group-mail, gnus-group-news)
+	(gnus-group-post-news, gnus-summary-mail-other-window)
+	(gnus-summary-news-other-window, gnus-summary-post-news): Bind
+	gnus-article-copy to nil, thereby inhibiting the `header' posting
+	style match to use data from last viewed article.
+	Suggested by Hrvoje Niksic.
+
+2002-06-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* spam.el (spam-point-at-eol): New alias.
+	(spam-parse-whitelist): Use it.
+
+2002-06-03  Simon Josefsson  <jas@extundo.com>
+
+	* nnmail.el (nnmail-mail-splitting-decodes): New variable.
+	(nnmail-article-group): Use it.
+
+2002-05-30  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-msg.el (gnus-inews-yank-articles): Merge split header lines
+	so that code reading them won't be surprised.  From Jesper Harder
+	<harder@ifa.au.dk>.
+
+2002-05-29  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-delete-article): Agent expire deleted
+	articles.
+
+	* gnus.el (gnus-agent-cache): Doc fix.
+	(gnus-agent): Change default to t.
+
+	* gnus-agent.el (gnus-agent-expire): Make it accept optional
+	ARTICLES, GROUP and FORCE parameters.
+
+2002-05-28  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-line-format): Doc fix.
+
+2002-05-28  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-msg.el (gnus-inews-yank-articles): Unfold headers of
+	original article before yanking.  From Jesper Harder
+	<harder@ifa.au.dk>.
+
+2002-05-26  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-menu-split): New function.
+	(gnus-summary-make-menu-bar): Split charset submenu.
+	(gnus-summary-menu-maxlen): New variable.
+	(gnus-summary-menu-split): Use it.
+
+2002-05-25  Simon Josefsson  <jas@extundo.com>
+
+	* mml.el (mml-preview): Generate some headers.
+
+	* gnus.el (gnus-large-newsgroup): Fix :type.
+
+	* nnimap.el (nnimap-nov-is-evil): Change default to t (because the
+	Agent cache NOV's by default now).
+	(nnimap-nov-is-evil): Make it default to `gnus-agent' instead.
+
+2002-05-18  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-dependencies-add-header): Avoid one unecessary
+	call to gnus-parent-id when we check for References loops.
+	(gnus-summary-prepare-threads): Avoid simplifying every Subject
+	twice by saving the simplified subject string in simp-subject.
+
+2002-05-23  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-msg.el (gnus-confirm-mail-reply-to-news): Typo.  Trivial
+	change from Benjamin Rutt <rutt+news@cis.ohio-state.edu>.
+
+	* nnweb.el (nnweb-type): Remove dejanewsold.  Trivial change from
+	Niklas Morberg <niklas.morberg@axis.com>.
+
+2002-05-22  Simon Josefsson  <jas@extundo.com>
+
+	* sieve.el (sieve-change-region): Define it before it is used.
+
+	* gnus-msg.el (gnus-confirm-mail-reply-to-news)
+	(gnus-summary-reply): Ask for confirmation when replying to news.
+	Defaults to not ask.  From Benjamin Rutt
+	<rutt+news@cis.ohio-state.edu>.
+
+	* nnimap.el (nnimap-nov-is-evil): Improve doc.
+
+2002-05-21  Simon Josefsson  <jas@extundo.com>
+
+	* sieve-mode.el (sieve-manage): Fix autoloads.
+
+	* sieve-manage.el (sieve-manage-cram-md5-auth): Just send the SASL
+	name (makes it work with recent Cyrus timsieved).
+
+2002-05-20  Jason  <jbaker@cs.utah.edu>
+	Trivial patch.
+
+	* gnus-art.el (gnus-request-article-this-buffer): Try
+	reconnecting if you don't get the message.
+
+2002-05-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-enter-digest-group): Only get
+	Reply-To headers from the headers.
+
+2002-05-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mm-url.el (mm-url-insert): Remove junk message.
+
+2002-05-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnslashdot.el (nnslashdot-request-list): Parse new html.
+	(nnslashdot-use-front-page): New variable.
+	(nnslashdot-request-list): Use it.
+
+	* mm-url.el (mm-url-timeout): New variable.
+	(mm-url-retries): Ditto.
+	(mm-url-insert): Use it.
+
+2002-05-16  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-simplify-all-whitespace): New function.
+	(gnus-simplify-subject-functions): Mention g-s-a-w.
+
+2002-05-15  Josh Huber  <huber@alum.wpi.edu>
+
+	* nnbabyl.el (nnbabyl-request-accept-article): Pass group to
+	nnmail-cache-insert.
+	* nndiary.el (nndiary-request-accept-article): Ditto.
+	* nnfolder.el (nnfolder-request-accept-article): Ditto.
+	* nnimap.el (nnimap-request-accept-article): Ditto.
+	* nnmail.el (nnmail-process-unix-mail-format): Ditto.
+	* nnmail.el (nnmail-check-duplication): Ditto. (from gnus-art)
+	* nnmbox.el (nnmbox-request-accept-article): Ditto.
+	* nnmh.el (nnmh-request-accept-article): Ditto.
+	* nnmail.el (nnmail-cache-insert): Change group to required,
+	removed code which tried to figure out the group.
+
+2002-05-13  Josh Huber  <huber@alum.wpi.edu>
+
+	* mml.el (mml-generate-mime-1): Fix mml generation for signed only
+	messages. From Hans de Graaff <hans@degraaff.org>.
+	* nnml.el (nnml-request-accept-article): Pass in the group name to
+	nnmail-cache-insert, since it's available.
+
+2002-05-10  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndoc.el (nndoc-mime-digest-type-p): Set proper file-end.
+
+2002-05-08  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Florian Weimer <fw@deneb.enyo.de>.
+
+	* gnus.el (subscribed): New group parameter.
+	(gnus-find-subscribed-addresses): Use it.
+
+2002-05-08  Josh Huber  <huber@alum.wpi.edu>
+
+	* mml-sec.el (mml-signencrypt-style-alist): Rename.  Also, changed
+	the default for pgpmime to support pgp v2.
+	* mml-sec.el (mml-signencrypt-style): New accessor function to
+	allow users to get/set the signencrypt style more easily without
+	frobbing the alist directly.
+	* mml.el (mml-generate-mime-1): Use accessor function.
+
+2002-05-08  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-art.el (gnus-article-mode-syntax-table): Specify matching
+	parenthesis for "<" and ">".  Suggested by Andreas Schwab
+	<schwab@suse.de>.
+
+2002-05-07  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* nnmail.el (nnmail-cache-insert): Prefer group-art over group
+	when intuiting the group the message is written to.  From Josh
+	Huber <huber@alum.wpi.edu>.
+
+2002-05-06  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-topic.el (gnus-group-topic-parameters): Work when group
+	buffer doesn't show group.  From Matt Armstrong <matt@lickey.com>.
+
+2002-05-06  Josh Huber  <huber@alum.wpi.edu>
+
+	* mml2015.el (mml2015-gpg-encrypt): Changed name of optional
+	argument, and fixed compiler warning. (added autoload for
+	gpg-encrypt).
+
+2002-05-04  Simon Josefsson  <jas@extundo.com>
+
+	* mml1991.el (mml1991-function-alist): Doc fix.
+
+	* mml.el (mml-preview): Bind gnus-newsrc-hashtb temporarily if it
+	doesn't exist (for previewing messages without having Gnus
+	started).
+
+	* mm-util.el (mm-coding-system-priorities): Defcustom.
+
+	* mm-encode.el (mm-content-transfer-encoding-defaults): Defcustom.
+
+2002-05-01  Josh Huber  <huber@alum.wpi.edu>
+
+	* gnus-msg.el (gnus-message-replysignencrypted): enabled by
+	default.
+	* mml-sec.el:
+	* mml-sec.el (mml-signencrypt-style): New.
+	* mml-sec.el (mml-pgpmime-encrypt-buffer): Accept optional
+	argument `sign'.
+	* mml-sec.el (mml-secure-message-encrypt-pgp): Changed default to
+	signencrypt.
+	* mml-sec.el (mml-secure-message-encrypt-pgpmime): Ditto.
+	* mml.el (mml-generate-mime-1): Changed logic so a part which is
+	both signed & encryped is processed in one operation. (rather than
+	two separate ops: sign, then encrypt)
+	* mml2015.el (mml2015-gpg-extract-signature-details): Give some
+	indication if a message is signed by an expired key.
+	* mml2015.el (mml2015-gpg-encrypt): Accept optional argument which
+	enables combined sign & encrypt operation. (this was always on
+	before).
+	* mml2015.el (mml2015-encrypt): Accept optional argument `sign'.
+
+2002-05-01  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-retrieve-groups): Use separate data for each
+	server.
+	(nnimap-mailbox-info): defvar instead of defvoo.
+
+2002-05-01 20:09:21 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.06 is released.
+
+2002-05-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* lpath.el: Bind url-package-version.
+
+2002-05-01  Simon Josefsson  <jas@extundo.com>
+
+	* nnfolder.el (nnfolder-request-delete-group): Figure out nov/mrk
+	filename before deleting the group itself, because the presence of
+	a group filename decides if long filenames are used or not.
+
+	* gnus-art.el (gnus-button-alist): Don't inline
+	gnus-button-url-regexp.  This makes it possible to change g-b-u-r
+	without also modifying g-button-alist.
+	(gnus-button-alist): Fix type to allow variable as well as regexp.
+	(gnus-article-add-buttons): Evaluate regexp.  Strings evaluate to
+	themselves, variables to its contents.
+	(gnus-button-entry): Ditto.
+
+2002-05-01  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-parse-resp-text-code, imap-parse-status): Treat
+	UIDNEXT as a string.
+
+	* nnimap.el (nnimap-string-lessp-numerical): New function.
+	(nnimap-retrieve-groups): Compare UIDNEXT as strings instead of
+	integers.
+
+2002-04-29  Simon Josefsson  <jas@extundo.com>
+
+	* nnmail.el (nnmail-cache-insert): Accept optional group
+	parameter.
+
+	* nnimap.el (nnimap-retrieve-groups): Don't send STATUS when
+	n-r-g-a is disabled.
+
+2002-04-29  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-split-fancy): Fix doc.
+	(nnimap-split-fancy): Fix doc.
+
+	* nnimap.el (nnimap-retrieve-groups-asynchronous): New variable.
+	(nnimap-mailbox-info): New internal variable.
+	(nnimap-retrieve-groups): Implement faster new mail check.
+
+	* nnimap.el (nnimap-split-articles): Support
+	nnmail-cache-accepted-message-ids.
+	(nnimap-request-accept-article): Ditto.
+
+	* imap.el (imap-mailbox-status-asynch): New command.
+
+2002-04-29  Nevin Kapur  <nevin@jhu.edu>
+
+	* gnus.el (gnus-find-subscribed-addresses): Return nil when there
+	are no subscribed mail groups.
+	- Strip quoted names when comparing addresses
+
+2002-04-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* mm-decode.el (mm-text-html-renderer): Change customize type to
+	const.
+
+	* gnus-msg.el (gnus-discouraged-post-methods): Fix typo.
+	(gnus-debug-exclude-variables): do.
+
+2002-04-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-article-mail): Use gnus-msg-mail instead.
+	Trivial change from Karl Pfl,Ad(Bsterer <sigurd@12move.de>.
+
+2002-04-27  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dns.el (dns-make-network-process): New macro.
+	(query-dns): Use it.
+
+2002-04-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-summary-reply): Remove unbound variable
+	article-buffer.
+
+	* mm-url.el (mm-url-package-name): New variable.
+	(mm-url-package-version): New variable.
+	(mm-url-insert-file-contents): Bind url-package-name and
+	url-package-version here.
+	* nnrss.el (nnrss-insert-w3): Move the bindings.
+
+	* nnrss.el (nnrss-insert-w3): Bind url-package-name and
+	url-package-version. Trivial change from Andrew J Cosgriff
+	<ajc@polydistortion.net>
+
+	* mm-decode.el (mm-save-part): Fill in file name when GUI saving
+	attachments. Trivial change from Peter 'Luna' Runestig
+	<peter@runestig.com>.
+
+2002-04-19  Jesper Harder  <harder@ifa.au.dk>
+
+	* nnkiboze.el (nnkiboze-request-scan): Call
+	nnkiboze-possibly-change-group.
+	(nnkiboze-generate-group): Use mm-with-unibyte to avoid encoding
+	problems.
+	(nnkiboze-generate-group): Set newsrc to the *highest* article
+	number kibozed, not the lowest.
+
+2002-04-15  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-art.el (article-unsplit-urls): Allow trailing SPC.
+
+2002-04-24  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Dan Christensen <jdc+news@uwo.ca>.
+
+	* nndoc.el (nndoc-type-alist, nndoc-lanl-gov-announce-type-p)
+	(nndoc-transform-lanl-gov-announce, nndoc-generate-lanl-gov-head):
+	Recognize math postings.  Extract Date (now ignores "(15kb)").
+	Extract email address using gnus-extract-address-components
+	instead of just taking the first word.  Create Date and From
+	headers for message which are missing these headers.  Get rid
+	of spurious \\ lines (purely cosmetic).  Extend body-end and
+	file-end regexps, to exclude more garbage from the message.
+	Make URL rephrasing regexp more flexible, to match current
+	format.
+
+2002-04-23  Simon Josefsson  <jas@extundo.com>
+
+	* netrc.el: New file, functions copied from gnus-util.el by Ted
+	Zlatanov <tzz@lifelogs.com>.
+
+	* gnus-util.el: Require netrc.
+	(gnus-netrc-get, gnus-netrc-machine, gnus-parse-netrc): Aliased to
+	new code in netrc.el.
+
+2002-04-23  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-msg.el (gnus-summary-resend-message-edit): Remove
+	message-ignored-resent-headers, too.  From Matthieu Moy
+	<Matthieu.Moy@imag.fr>.
+
+2002-04-22  Bj,Av(Brn Torkelsson  <torkel@acc.umu.se>
+
+	* gnus-srvr.el (gnus-server-browse-in-group-buffer): it is a
+	boolean not a string
+	* gnus-group.el (gnus-group-line-format): add description of %C
+	* gnus-group.el (gnus-group-line-format-alist): add gnus-tmp-comment
+	  as %C
+	* gnus-group.el (gnus-group-insert-group-line): add gnus-tmp-comment
+
+2002-04-22  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-scan): typo: set
+	nnmaildir-get-new-mail, not nnmaildir-new-mail.  Don't call
+	nnmail-get-new-mail for 'find-new-groups.
+
+2002-04-21  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-update-info,
+	nnmaildir-request-group, nnmaildir-retrieve-groups): remove
+	unnecessary calls to nnmaildir-request-scan.
+
+2002-04-20  Josh Huber  <huber@alum.wpi.edu>
+
+	* gnus-msg.el:
+	* gnus-msg.el (gnus-message-replysign): New.
+	* gnus-msg.el (gnus-message-replyencrypt): New.
+	* gnus-msg.el (gnus-message-replysignencrypted): New.
+	* gnus-msg.el (gnus-summary-reply): Use the three new variables
+	(above) to automatically encrypt/sign to encrypted/signed
+	messages.
+	* message.el:
+	* message.el (message-mode-map): Add keybinding for
+	`message-to-list-only'
+	* message.el (message-mode): Add description for
+	`message-to-list-only'
+	* message.el (message-to-list-only): New.
+	* message.el (message-make-mft): Changed to use the cl loop macro,
+	and added optional flag to return only the matched list. (for use
+	in new message-to-list-only function)
+
+2002-04-20  Josh Huber  <huber@alum.wpi.edu>
+
+	* gnus-msg.el:
+	* gnus-msg.el (gnus-message-replysign):
+	* gnus-msg.el (gnus-replysign): New.
+	* gnus-msg.el (gnus-replyencrypt): New.
+	* gnus-msg.el (gnus-replysignencrypted): New.
+	* gnus-msg.el (gnus-summary-reply):
+	* message.el:
+	* message.el (message-mode-map):
+	* message.el (message-mode):
+	* message.el (message-to-list-only): New.
+	* message.el (message-make-mft):
+
+2002-04-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-win.el (gnus-configure-windows-hook): Fix typo.
+
+2002-04-18  Josh Huber  <huber@alum.wpi.edu>
+
+	* message.el (message-gen-unsubscribed-mft): accept a prefix
+	argument so CC can be included with C-u C-c C-f C-a
+
+2002-04-17  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Ted Zlatanov <teodor.zlatanov@divine.com>.
+
+	* spam.el (spam-whitelist, spam-blacklist, spam-enter-whitelist):
+	Improve docstring.
+	(spam-enter-blacklist): New command.
+
+	* gnus-sum.el (gnus-spam-mark): New mark.
+	(gnus-auto-expirable-marks): Add gnus-spam-mark.
+	(gnus-summary-make-tool-bar): Correct conditional.
+	(gnus-summary-limit-to-unread): Add gnus-spam-mark.
+	(gnus-summary-mark-as-spam): New command.
+
+2002-04-13  Josh Huber  <huber@alum.wpi.edu>
+
+	* mml-sec.el (mml-secure-message): changed to support arbritrary
+	modes.
+	* mml-sec.el (mml-secure-message-encrypt-(smime|pgp|pgpmime)):
+	changed to support "signencrypt" mode.
+	* mml.el (mml-parse-1): changed to support different secure modes
+	more easily. (for signencrypt)
+
+2002-04-11  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* gnus-sum.el (gnus-update-summary-mark-positions)
+	(gnus-summary-toggle-header):
+	* gnus-uu.el (gnus-uu-binhex-article, gnus-uu-reginize-string)
+	(gnus-uu-expand-numbers, gnus-uu-post-make-mime)
+	(gnus-uu-post-encoded):
+	* nnfolder.el (nnfolder-possibly-change-group):
+	* nnimap.el (nnimap-retrieve-headers):
+	* nnmbox.el (nnmbox-create-mbox): Don't assume point-min == 1.
+
+2002-04-08  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* nnml.el (nnml-save-nov, nnml-generate-nov-file):
+	* pop3.el (pop3-md5): Don't hardcode point-min == 1.
+
+2002-04-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-srvr.el (gnus-server-set-info): Clear
+	`gnus-server-method-cache' when `gnus-server-alist' is changed.
+	From Daiki Ueno <ueno@unixuser.org>.
+
+2002-04-11  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): Force
+	viewing of security buttons.  Thanks to Nicolas Kowalski
+	<Nicolas.Kowalski@imag.fr>.
+
+	* smime.el (smime-CA-directory): Fix doc.  Thanks to Arne
+	J,Ax(Brgensen <arne+usenet@daimi.au.dk>.
+	(smime-sign-buffer): Work in XEmacs.  Thanks to Nicolas Kowalski
+	<Nicolas.Kowalski@imag.fr>.
+	(smime-decrypt-buffer): Ditto.
+
+2002-04-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-prepare): Place point on the emtpy
+	header line.
+
+2002-04-11  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus.el (gnus-refer-article-method): Change `dejanews' to `google'.
+
+2002-04-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-delete-marked-with): Fix typo.
+
+2002-04-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-view.el (mm-inline-text-html-render-with-w3): Don't ignore
+	errors when debug.
+
+2002-04-07  Josh Huber  <huber@alum.wpi.edu>
+
+	* message.el (message-make-mft): Changed MFT code from using
+	message-recipients (which included Bcc) to use only the To and CC
+	headers.
+
+2002-04-05  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-art.el (gnus-treat-from-picon): Add to gnus-picon group and
+	add link.
+	(gnus-treat-mail-picon): Ditto.
+	(gnus-treat-newsgroups-picon): Ditto.
+	(gnus-picon-databases): Fix custom type.
+	(gnus-picon-databases): Add link.
+	(gnus-article-x-face-command): Add to gnus-picon group.
+
+2002-04-01  Jesper Harder  <harder@ifa.au.dk>
+
+	* message.el (message-buffer-naming-style): Remove.
+
+2002-04-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-make-tool-bar): Load tool-bar first.
+
+	* message.el (message-tool-bar-map): Ditto.
+
+	* gnus-sum.el (gnus-summary-make-tool-bar): Ditto.
+
+2002-04-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnwarchive.el (nnwarchive-mail-archive-article): Fix typo.
+
+2002-04-01  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el: fixed some buggy invocations of nnmaildir--pgname.
+
+2002-03-31  Andrew Cohen  <cohen@andy.bu.edu>
+	Trivial patch.
+
+	* dns.el: open-network-stream under XEmacs does udp.
+
+2002-03-31  Lars Magne Ingebrigtsen  <larsi@quimbies.gnus.org>
+
+	* spam.el (spam-enter-whitelist): New function.
+	(spam-parse-whitelist): Ditto.
+	(spam-refresh-list-cache): Ditto.
+	(spam-address-whitelisted-p): New function.
+
+	* dns.el (query-dns): Use TCP when make-network-process isn't
+	available.
+	(dns-servers): New variable.
+	(dns-parse-resolv-conf): New function.
+	(query-dns): Use it.
+
+	* spam.el: New file.
+
+	* dns.el (query-dns): Test.
+
+2002-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* lpath.el (featurep): Bind make-network-process.
+
+2002-03-31  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el: Use defstruct.  Use a single copy of
+	nnmail-extra-headers to save memory.  Store server's group name
+	prefix instead of each group's prefixed name.
+	* nnnil.el (nnnil-retrieve-headers, nnnil-request-list): Erase
+	nntp-server-buffer.
+
+2002-03-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* dns.el: New file.
+
+2002-03-28  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-dummy-line-format):
+	* gnus.el (gnus-summary-line-format): Fixing links to Info.
+	Trivial change from Bj,Av(Brn Torkelsson <torkel@pdc.kth.se>.
+
+2002-03-29  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-sum.el (gnus-summary-move-article)
+	(gnus-summary-copy-article): Mention `gnus-move-split-methods' in
+	the doc string.
+
+2002-03-28  Simon Josefsson  <jas@extundo.com>
+
+	* mml-sec.el (mml-secure-message): Search after
+	mail-header-separator from top of message.
+
+2002-03-28  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el: Cosmetic changes.
+	(nnmaildir--with-nntp-buffer, nnmaildir--with-work-buffer,
+	nnmaildir--with-nov-buffer, nnmaildir--with-move-buffer,
+	nnmaildir--group-ls): New macros/functions.  Use them.
+	(nnmaildir--unlink): Evalutate argument only once.
+
+2002-03-27  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-sum.el (gnus-summary-highlight): Use `eq' when comparing
+	symbols.
+	(gnus-summary-highlight-line): Use `gnus-point-at-bol' and
+	`gnus-point-at-eol'.
+
+2002-03-27  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--subdir, nnmaildir--nov-dir,
+	nnmaildir--marks-dir): New macros.  Use them.
+	Use inhibit-quit for atomicity instead of in-memory journaling.
+	(nnmaildir--edit-prep): New function.
+	(Local Variables): Use it.
+
+2002-03-26  Pavel@Janik.cz (Pavel Jan,Am(Bk)
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Fix typo.
+
+2002-03-25  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-mode): Fix doc.
+
+2002-03-25  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-subject-re-regexp): Skip Re[42]: junk.  From
+	Matthieu Moy <Matthieu.Moy@imag.fr>.
+
+2002-03-24  Jesper Harder  <harder@ifa.au.dk>
+
+	* mml-sec.el (mml-unsecure-message): Add docstring.
+
+2002-03-23  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmail.el (nnmail-large-newsgroup): Fix doc, allow non-numeric
+	value.
+	Trivial change from andre@slamdunknetworks.com
+
+2002-03-22  Josh Huber  <huber@alum.wpi.edu>
+
+	* mml.el (mml-mode-map): Added a keybinding for
+	`mml-unsecure-message'.  Also, added a menu entry for said
+	function in the Attachments menu.
+
+2002-03-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* canlock.el (canlock-version): Remove.
+	(canlock-sha1-with-openssl): Don't use `canlock-string-as-unibyte'
+	here; simplify \x insertions.
+	(canlock-sha1): New function, always return a unibyte string.
+	(canlock-make-cancel-key): Use `canlock-sha1'; simplify truncation
+	of a password.
+	(canlock-insert-header): Use `canlock-sha1'.
+	(canlock-verify): Ditto.
+
+2002-03-21  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-fix-before-sending): Add an option that
+	ignores illegible text.
+	Trivial change from Mark Milhollan <mlm@attglobal.net>
+
+	* message.el (message-font-lock-keywords): Support multi-line MML
+	tags.
+
+	* gnus-sum.el (gnus-print-buffer): Remove gnus-decoration.
+	Trivial change from lorentey@elte.hu (L,Bu(Brentey K,Aa(Broly)
+
+2002-03-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Use intern'ed function
+	symbols for "View as different encoding" submenu.
+
+2002-03-19  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Add "View as different
+	encoding" submenu.
+
+2002-03-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-process-prefix): Make sure there is a mark.
+
+2002-03-19  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-sum.el (gnus-sum-thread-tree-root)
+	(gnus-sum-thread-tree-single-indent)
+	(gnus-sum-thread-tree-vertical, gnus-sum-thread-tree-indent)
+	(gnus-sum-thread-tree-leaf-with-other)
+	(gnus-sum-thread-tree-single-leaf): Make customizable.
+
+2002-03-16  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-util.el (gnus-extract-address-components): Don't break on
+	names such as James "Kibo" Parry.  From Francis Litterio
+	<franl@world.std.com>.
+
+2002-03-13  Simon Josefsson  <jas@extundo.com>
+
+	* pop3.el (pop3-open-server): Revert multibyte change.  From
+	Pavel@Janik.cz (Pavel Jan,Am(Bk).
+
+	* message.el (message-send-mail-with-qmail): Make it work.  From
+	Pavel@Janik.cz (Pavel Jan,Am(Bk).
+
+2002-03-13  Josh Huber  <huber@alum.wpi.edu>
+
+	* message.el (message-make-mft): Set case-fold-search while
+	generating the MFT.  Also, a little cleanup in the MFT code.
+
+2002-03-12  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-qmail-inject-args): May be function.
+	(message-send-mail-with-qmail): Call function if m-q-i-a is
+	function.  From fn@hungry.org (Faried Nawaz).
+
+2002-03-12  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-abbrevs-loaded): Remove.
+	(mailabbrev): Require it.
+
+	* nnslashdot.el (nnslashdot-request-article): Remove IFRAME.
+
+2002-03-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* pop3.el (pop3-open-server): Set process buffer unibyte.
+
+2002-03-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-subscribe-to-mailing-list): New function.
+
+2002-03-10  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-request-article): Remove javascript
+	too.
+
+2002-03-09  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-save-parts-default-mime): Remove
+	duplication.
+	(gnus-summary-save-parts-type-history): Ditto.
+	(gnus-summary-save-parts-last-directory): Ditto.
+	Trivial change from andre@slamdunknetworks.com
+
+2002-03-09  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus-start.el (gnus-auto-subscribed-groups): Include nnmaildir.
+
+2002-03-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-request-article): Use "<!-- no ad 6
+	-->" as the end of the first article.
+
+	* gnus-msg.el (gnus-summary-resend-message-edit): New function.
+	From Matthieu Moy <Matthieu.Moy@imag.fr>
+
+	* message.el (message-add-action): Use add-to-list.
+	(message-delete-action): New function.
+
+	* nndoc.el (nndoc-mail-in-mail-type-p): Break a long regexp into
+	pieces.
+
+2002-03-05  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnnil.el: New file.
+	* gnus.el (gnus-valid-select-methods): Include nnnil.
+
+2002-03-05  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-syntax-checks): Because canlock is
+	supported, we disable sender syntax check.
+	(message-shoot-gnksa-feet): Add cancel-messages option doc.
+
+	* gnus-draft.el (gnus-draft-send): If interactive, use its default
+	value of message-syntax-checks.
+
+	* qp.el (quoted-printable-decode-region): Doc addition.
+	From: Eli Zaretskii <eliz@is.elta.co.il>
+
+	* mail-source.el (make-source-make-complex-temp-name): Use
+	make-temp-file.
+
+	* mm-util.el (mm-make-temp-file): New function.
+	* nneething.el (nneething-file-name): Use it.
+	* mml-smime.el (mml-smime-encrypt): Ditto.
+	* mm-view.el (mm-inline-wash-with-file): Ditto.
+	* mm-decode.el (mm-display-external, mm-create-image-xemacs): Ditto.
+	* gnus-uu.el (gnus-uu-decode-binhex, gnus-uu-decode-binhex-view)
+	(gnus-uu-digest-mail-forward, gnus-uu-initialize): Ditto.
+	* gnus-start.el (gnus-slave-save-newsrc): Ditto.
+	* gnus-fun.el (gnus-convert-image-to-gray-x-face): Ditto.
+	* gnus-art.el (gnus-mime-print-part): Ditto.
+
+2002-03-04  Paul Jarc  <prj@po.cwru.edu>
+
+	* message.el (nnmaildir-article-number-to-base-name): New
+	function.
+	(nnmaildir-base-name-to-article-number): New function.
+
+2002-03-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* smime.el (smime-make-temp-file): Don't quote
+	`temporary-file-directory'.
+
+2002-03-04  Simon Josefsson  <jas@extundo.com>
+
+	* smime.el (smime-sign-region): Rename argument keyfiles to
+	keyfile. You only sign something with one key.
+	(smime-sign-buffer): Better completing-read prompt.
+	(smime-decrypt-buffer): Ditto.
+
+	* smime.el (smime-make-temp-file): Make it work under XEmacs.
+
+	* mm-view.el (mm-view-pkcs7-decrypt): Better prompt for
+	completing-read.
+	(mm-view-pkcs7-decrypt): CRLF->LF.
+
+2002-03-04  Paul Jarc  <prj@po.cwru.edu>
+
+	* message.el (message-hierarchical-addresses): New variable.
+	(message-get-reply-headers): Use it.
+	From Ted Zlatanov <teodor.zlatanov@divine.com>
+
+2002-03-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-mode): If buffer-file-name, don't set auto
+	save file name.
+	Trivial change from Geoff Greene <ggreene@wpi.edu>
+
+2002-03-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-multiple-choice): Use message. XEmacs only
+	takes one argument in read-char.
+
+	* message.el (message-fix-before-sending): Forward a char.
+	Check mmu-multibyte-p, add control-1.
+
+2002-03-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-read-init-file): Ditto.
+
+	* gnus-agent.el (gnus-agent-fetch-session): Ditto.
+
+	* dgnushack.el (dgnushack-make-load): Ditto.
+
+	* mail-source.el (mail-source-fetch): Extract the right error
+	code.
+
+	* message.el (message-fix-before-sending): Check illegible text.
+
+	* gnus-util.el (gnus-multiple-choice): New function.
+
+	* gnus-kill.el (gnus-score-insert-help): Removed, because it is
+	also defined in gnus-score.el.
+
+2002-03-01  Paul Jarc  <prj@po.cwru.edu>
+
+	* message.el (message-get-reply-headers): downcase email addresses
+	for comaparisons for duplicate removal.
+
+2002-03-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-view.el (mm-view-pkcs7-verify): New function. A bogus
+	implementation of PKCS#7, which just allows users read the
+	message.
+	(mm-view-pkcs7): Use it.
+
+2002-02-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (large-newsgroup-initial): New parameter.
+
+	* gnus-sum.el (gnus-articles-to-read): Use large-newsgroup-initial.
+	(gnus-summary-insert-old-articles): Ditto.
+
+2002-02-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-articles-to-read): `gnus-large-newsgroup' is
+	used as the default answer of the question, "How many articles?".
+	From TSUCHIYA Masatoshi <tsuchiya@namazu.org>
+
+	* nnagent.el (nnagent-retrieve-headers): Remove articles with
+	small numbers.
+
+2002-02-24  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* deuglify.el: Fix comments.
+
+2002-02-23  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* html2text.el (html2text-clean-anchor): If there is no HREF,
+	insert nothing.
+
+	* mml.el (mml-generate-mime-1): Add cdr.
+	From: andre@slamdunknetworks.com
+
+	* mm-view.el (mm-text-html-renderer-alist): Add html2text.
+	(mm-text-html-washer-alist): Ditto.
+
+	* mm-decode.el (mm-text-html-renderer): Add html2text.
+
+	* html2text.el: Face lift.
+
+	* html2text.el: New file from Joakim Hove <hove@phys.ntnu.no>.
+
+2002-02-22  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el: Add gnus-article-outlook-deuglify-article.
+
+	* deuglify.el: Change copy right. Add autoload. Add coding-system.
+
+	* deuglify.el: New file. The original file name is
+	gnus-outlook-deuglify.el from Raymond Scholz <rscholz@zonix.de>.
+
+	* mm-decode.el (mm-display-external): Use
+	mm-file-name-rewrite-functions.  From <andre@slamdunknetworks.com>
+
+2002-02-22  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-list): Report the highest
+	article number, not the total number of articles.
+
+2002-02-21  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el: Move uu key map here.
+	(gnus-summary-make-menu-bar): Add gnus-summary-save-parts.
+
+2002-02-21  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-expire-articles): Use
+	nnmail-expiry-wait* if expire-age parameter is not set.
+
+2002-02-21  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-sort-groups-by-real-name): New
+	function.
+	(gnus-group-sort-selected-groups-by-real-name): New function.
+	(gnus-group-make-menu-bar): Add sort by real name.
+
+	* gnus-sum.el (gnus-dependencies-add-header): If replaced, don't
+	rebuild.
+	(gnus-summary-edit-article-done): Gnus-get-newsgroup-headers takes
+	nil as dependencies as well.
+
+2002-02-20  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndoc.el (nndoc-dissect-mime-parts-sub): Fix MIME-Version header
+	for mime-parts.
+
+	* gnus-art.el (gnus-article-edit-done): Widen the buffer.
+
+	* gnus-group.el (gnus-group-name-decode): Don't test
+	multibyte-string, because it breaks XEmacs.
+	From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp>
+
+	* message.el (message-send-mail): Be talkative.
+
+	* mm-decode.el (mm-inlined-types): Add application/x-emacs-lisp.
+	(mm-automatic-display): Ditto.
+
+	* mailcap.el (mailcap-mime-data): Ditto.
+	From: Reiner Steib <4uce.02.r.steib@gmx.net>
+
+2002-02-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* many files: Remove trailing whitespaces, replace spc+tab with
+	tab, replace leading whitespaces with tabs.
+
+2002-02-19  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus-sum.el (gnus-summary-toggle-header): Fix handling of
+	articles with no body and no blank line after the header.
+
+2002-02-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-dissect-multipart): Consider the case of empty
+	parts.
+
+	* ietf-drums.el (ietf-drums-syntax-table): Modify syntax of
+	non-ascii chars.
+
+	* rfc2231.el (rfc2231-parse-string): Support non-ascii chars.
+
+	* gnus-art.el (gnus-article-wash-html-with-w3): Remove
+	w3-delay-image-loads.
+	* mm-view.el (mm-inline-text-html-render-with-w3): Ditto.
+	(mm-w3-prepare-buffer): Ditto.
+
+	* mail-source.el (mail-source-fetch-directory): Run scripts.
+
+2002-02-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-respond-to-confirmation): Do the right thing
+	for Majordomo confirmations.
+
+2002-02-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-respond-to-confirmation): New command.
+
+2002-02-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnultimate.el (nnultimate-retrieve-headers): Clean up.
+
+2002-02-18  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus-util.el (gnus-parent-id): Ignore trailing whitespace in the
+	References header field.  From Mark Thomas <mthomas@cmu.edu>.
+
+2002-02-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-view.el (mm-inline-render-with-file): With unibyte buffer.
+	(mm-inline-render-with-stdin): Ditto.
+	(mm-inline-render-with-function): Ditto.
+	(mm-inline-wash-with-file): Bind coding-system-for-write.
+	(mm-inline-wash-with-stdin): Ditto.
+
+2002-02-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	Suggested by Felix Natter <fnatter@gmx.net>
+
+	* gnus-art.el (gnus-mime-view-part-externally): Rename from
+	gnus-mime-externalize-view.
+	(gnus-mime-view-part-internally): Rename from
+	gnus-mime-internalize-view.
+	(gnus-article-view-part-externally): Rename from
+	gnus-article-externalize-part.
+	(gnus-mime-action-alist): Change correspondingly.
+	(gnus-mime-button-commands): Ditto.
+	(gnus-mime-action-alist): Remove duplication.
+
+	* gnus-sum.el (gnus-summary-mime-map): Change correspondingly.
+
+2002-02-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-dissect-buffer): Add loose-mime parameter.
+
+	* gnus-art.el (gnus-display-mime): Use it.
+
+	* mm-partial.el (mm-partial-find-parts): Use it.
+
+	* gnus-sum.el (gnus-article-loose-mime): Rename from
+	gnus-article-no-strict-mime.
+	(gnus-summary-save-parts): Use it.
+
+2002-02-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Remove unused
+	local variable.
+
+	* gnus-art.el (article-display-x-face): Don't sort multiple
+	X-Faces.
+
+2002-02-18  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Improved to speed
+	up.  Suggested by Yuuichi Teranishi <teranisi@gohome.org>.
+
+	* gnus-art.el (article-display-x-face): Sort gray X-Faces.
+
+2002-02-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	Some ideas is inspired by code from Hrvoje Niksic
+	<hniksic@arsdigita.com>
+
+	* gnus-art.el (gnus-article-wash-function): Set the default to
+	nil, so that we use mm-text-html-renderer instead.
+	(article-wash-html): Use mm-text-html-renderer.
+
+	* mm-decode.el (mm-inline-media-tests): Use mm-inline-text-*.
+	(mm-text-html-renderer): New variable.
+	(mm-inline-text-html-renderer): Set the default to nil, so that we
+	use mm-text-html-renderer instead.
+
+	* mm-view.el (mm-inline-text-html): New function.
+	(mm-text-html-renderer-alist): New variable.
+	(mm-inline-text-vcard): New function.
+	(mm-inline-text): Split.
+	(mm-links-remove-leading-blank): New function.
+	(mm-inline-render-with-file): New function.
+	(mm-inline-render-with-stdin): New function.
+	(mm-inline-render-with-function): New function.
+	(mm-text-html-washer-alist): New variable.
+	(mm-inline-wash-with-file): New function.
+	(mm-inline-wash-with-stdin): New function.
+
+2002-02-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message-utils.el: Fix installation doc.
+	From: Reiner Steib <4uce.02.r.steib@gmx.net>
+
+2002-02-16  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-discouraged-post-methods): New variable.
+	(gnus-post-method): Use it.
+	(gnus-summary-cancel-article): Find the correct post-method.
+
+	* gnus-soup.el (gnus-soup-send-packet): Via ... using ...
+	* message.el (message-send-news): Ditto.
+	Suggested by Lloyd Zusman <ljz@asfast.com> and IPmonger
+	<ipmonger@delamancha.org>
+
+	* gnus.el (gnus-select-method): Fix doc.
+	(gnus-server-string): Use 'using nntp'.
+
+	* gnus-agent.el (gnus-slave-unplugged): New command.
+	From: Felix Natter <fnatter@gmx.net>
+
+2002-02-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-edit-done): Kill-all-local-variables.
+	Call edit-done-function first, then change the window
+	configuration.
+	(gnus-article-edit-mode-map): Add message key bindings. Add menu.
+	(gnus-article-edit-mode): mml-mode.
+
+	* gnus-util.el (gnus-byte-compile): Work around a bug in XEmacs
+	21.4. Suggested by Russ Allbery <rra@stanford.edu> .
+
+	* message-utils.el: Adopt the file.
+
+	* message-utils.el: New file.
+	From Holger Schauer <Holger.Schauer@gmx.de>
+
+2002-02-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-move-article): Select-article only
+	when gnus-move-split-methods is non-nil. And we don't render or
+	mark the article.
+
+	* gnus-fun.el (gnus-shell-command-to-string): New function.
+	(gnus-shell-command-on-region): New function.
+	(gnus-random-x-face): Use them.
+	(gnus-x-face-from-file): Ditto.
+	(gnus-convert-image-to-gray-x-face): Ditto.
+	(gnus-convert-gray-x-face-to-xpm): Ditto.
+	(gnus-convert-image-to-x-face-command): Don't use 2>/dev/null.
+
+2002-02-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-treat-display-xface): Don't use
+	`shell-command-to-string' when compiling.
+	(gnus-treat-display-grey-xface): Ditto.
+
+2002-02-13  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--article-count): If the group is
+	completely empty, report minimum article number as 1 instead of 0.
+
+2002-02-13  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-get-predicate): Use nconc.
+
+	* gnus-sum.el (gnus-summary-display-make-predicate): Use
+	gnus-summary-display-cache as cache.
+
+	* nndoc.el (nndoc-type-alist): Add mail-in-mail type.
+	(nndoc-mail-in-mail-type-p): New function.
+	(nndoc-mail-in-mail-article-begin): New function.
+
+2002-02-12  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mailcap.el (mailcap-mime-data): Use enriched-decode.
+
+	* gnus-cite.el (gnus-article-fill-cited-article): Bind
+	use-hard-newlines to nil.
+
+	* gnus-xmas.el (gnus-xmas-image-type-available-p): Assume that
+	image is not available if window-system is not available.
+
+	* gnus-sum.el (gnus-summary-display-make-predicate): Add unread.
+
+2002-02-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-article-unpropagated-mark-lists): Don't propagate
+	bookmark, because update-mark doesn't handle it correctly.
+
+2002-02-09  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-soup.el (gnus-soup-send-packet): Send news and mail
+	directly instead of calling message-send-mail.
+
+	* gnus-start.el (gnus-read-descriptions-file): Use
+	gnus-default-charset.
+
+	* mm-util.el (mm-guess-mime-charset): New function.
+
+	* gnus.el (gnus-default-charset): Use it.
+	(gnus-group-charset-alist): Remove .*, Let gnus-default-charset be
+	the default.
+
+2002-02-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-treat-display-grey-xface): New variable.
+	(article-display-x-face): Use it.  Disable grey xface, if
+	uncompface is not found.
+
+	* message.el (message-mode): Don't enable multibyte on an indirect
+	buffer.
+
+	* nnrss.el (nnrss-content-function): New variable.
+	(nnrss-request-article): Use it.
+
+2002-02-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el: Add article-unsplit-urls.
+	* gnus-sum.el: Ditto.
+	* gnus-art.el (gnus-treat-strip-cr): New variable.
+	(gnus-treatment-function-alist): Use it.
+	(article-unsplit-urls): New function.
+	(gnus-article-make-menu-bar): Use it.
+	From: Michael Cook <michael.cook@cisco.com>
+
+2002-02-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-braid-nov): Find the first article to
+	copy.
+
+2002-02-07  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus-util.el (gnus-split-references): Allow (broken) Message-IDs
+	with internal whitespace.
+	(gnus-parent-id): Ditto.
+
+2002-02-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-treat-body-boundary): Add
+	gnus-decoration property.
+	* gnus-msg.el (gnus-copy-article-buffer): Remove gnus-decoration.
+
+	* message.el (message-mode): Set local-abbrev-table.
+	From Matt Armstrong <matt@lickey.com>.
+
+	* gnus-art.el (gnus-article-treat-unfold-headers): Don't remove
+	too many spaces.
+
+	* rfc2047.el (rfc2047-unfold-region): Ditto.
+	(rfc2047-decode-region): Don't unfold. Let
+	gnus-article-treat-unfold-headers do it.
+
+	* gnus-sum.el (gnus-dependencies-add-header): Fix typo.
+	From: Jesper Harder <harder@ifa.au.dk>
+
+2002-02-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-posting-styles): Add x-face-file.
+	(gnus-configure-posting-styles): Use it.
+	(gnus-configure-posting-styles): Remove trailing newspaces.
+
+2002-02-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-articles-to-read): Fetch all if the predicate
+	is non-nil.
+
+	* mm-util.el (mm-use-find-coding-systems-region): Add doc.
+
+	* gnus.el (gnus-server-to-method): Switch position with
+	gnus-server-get-method.
+	(gnus-agent): Add doc.
+
+	* gnus-sum.el (gnus-article-no-strict-mime): New variable.
+	(gnus-summary-save-parts): Use it.
+
+	* gnus-art.el (gnus-display-mime): Use it.
+	* mm-partial.el (mm-partial-find-parts): Use it.
+
+	* nnweb.el (nnweb-google-parse-1): Use a correct format of date.
+
+	* gnus-agent.el (gnus-agent-summary-make-menu-bar): Fix typo.
+	From Stefan Reich,Av(Br <xsteve@riic.at>.
+
+	* nnagent.el (nnagent-request-expire-articles): Don't delete
+	files.
+
+2002-02-05  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-gen-unsubscribed-mft): New function.
+	From Sriram Karra <karra@cs.utah.edu>.
+
+	* gnus.el (gnus-article-unpropagated-mark-lists): Backslash the
+	open parenthesis.
+
+	* mm-view.el (mm-w3-prepare-buffer): Bind url-gateway-unplugged.
+	(mm-inline-text-html-render-with-w3): Ditto.
+	* gnus-art.el (gnus-article-wash-html-with-w3): Ditto.
+	Suggested by Dave Love  <d.love@dl.ac.uk>.
+
+	* mm-url.el (mm-url-load-url): Require w3-vars for old versions.
+
+	* nntp.el (nntp-send-command-and-decode): Check PROCESS.
+	* nntp.el (nntp-send-command): Ditto.
+	* nntp.el (nntp-send-command-nodelete): Ditto.
+
+2002-02-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-url.el (mm-url-load-url): New function.
+	(mm-url-insert-file-contents): Use it.
+
+	* gnus-msg.el (gnus-summary-mail-forward): Use gnus-article-charset.
+
+	* message.el (message-forward-make-body): Correctly copy
+	forward-buffer.
+
+	* rfc2047.el (rfc2047-decode-region): Don't decode us-ascii characters.
+
+2002-02-04  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-article-followup-with-original): Mark with
+	force, prevent errors when following up from article buffer.
+	(gnus-article-reply-with-original): Ditto.
+
+	* binhex.el (binhex-decoder-switches): Fix doc.  From
+	Pavel@Janik.cz (Pavel Jan,Am(Bk).
+
+2002-02-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-treatment-function-alist): Move hide-citation,
+	highlight-citation after emphasize.
+
+2002-02-04  Simon Josefsson  <jas@extundo.com>
+
+	* nnfolder.el (nnfolder-open-marks):
+
+	* nnml.el (nnml-open-marks): Message when done.  From David
+	Edmondson <dme@sun.com>.
+
+2002-02-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* imap.el (imap-anonymous-auth): Fix typo.
+	From: Steinar Bang <sb@dod.no>
+
+	* gnus-cache.el (gnus-cache-braid-nov): Use set-buffer instead of
+	save-excursion.
+	(gnus-cache-braid-heads): Ditto.
+
+	* gnus-agent.el (gnus-agent-copy-nov-line): Move to the correct
+	line, because there are extra articles in the overview buffer.
+
+	* nntp.el (nntp-retrieve-groups): Check whether BUF is live.
+
+	* message.el (message-forward-rmail-make-body): Directly use
+	rmail-msg-restore-non-pruned-header to avoid calling
+	vertical-motion.
+
+2002-02-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-cache.el (gnus-summary-insert-cached-articles):
+	(gnus-summary-limit-include-cached): gnus-newsgroup-cached is sorted.
+
+	* gnus-group.el (gnus-group-mark-article-read): Nreverse
+	gnus-newsgroups-unselected.
+
+	* gnus-agent.el (gnus-summary-set-agent-mark): Use
+	gnus-add-to-sorted-list.
+
+	* gnus-sum.el (gnus-summary-update-info): gnus-newsgroup-unreads
+	gnus-newsgroup-unselected are sorted. Use gnus-sorted-union.
+	(gnus-build-all-threads): Use gnus-add-to-sorted-list.
+	(gnus-update-read-articles): UNREAD is sorted.
+	(gnus-newsgroup-unreads, gnus-newsgroup-unselected)
+	(gnus-newsgroup-marked, gnus-newsgroup-cached)
+	(gnus-newsgroup-expirable, gnus-newsgroup-downloadable)
+	(gnus-newsgroup-dormant): Require sorted.
+
+	* gnus-dired.el (gnus-dired-find-file-mailcap): Correctly handle
+	directories.
+	(gnus-dired-print): New function.
+
+	* gnus-art.el (gnus-mime-print-part): Add argument filename. Call
+	ps-despool.
+
+2002-02-02  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-dired.el (turn-on-gnus-dired-mode): Autoload.  Make defun.
+
+2002-02-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-1): Call gnus-agentize if gnus-agent is
+	t. This makes gnus-agent customizable without putting
+	gnus-agentize into .gnus.
+
+	* gnus.el (gnus-agent): Make it customizable.
+
+	* gnus-dired.el: New file.
+	From Benjamin Rutt <brutt@bloomington.in.us>
+
+	* gnus-cache.el (gnus-cache-articles-in-group): Remove from active
+	if no article.
+	(gnus-cache-possibly-remove-article): Ditto.
+	(gnus-cache-possibly-enter-article): Use gnus-add-to-sorted-list.
+
+2002-02-01  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-int.el (gnus-request-accept-article): Use gnus-get-function.
+
+2002-02-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-view.el (mm-w3m-mode-dont-bind-keys): New variable.
+	(mm-setup-w3m): Don't bind keys listed in the above.
+
+2002-02-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-view.el (mm-inline-text-html-render-with-w3m): Bind
+	`w3m-safe-url-regexp' with nil if `mm-inline-text-html-with-images'
+	is non-nil; bind `w3m-force-redisplay' with nil.
+
+	* gnus-art.el (gnus-article-wash-html-with-w3m): Ditto.
+
+	* mm-decode.el (mm-inline-text-html-with-images): Supplement docs.
+
+2002-01-31  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-request-replace-article): Unfold. Don't
+	use mail-header-unfold-field.
+
+	* gnus-cache.el (gnus-summary-insert-cached-articles): Use
+	gnus-summary-limit.
+
+	* gnus-range.el (gnus-add-to-sorted-list): New function.
+	* gnus-sum.el (gnus-mark-article-as-read): Use it.
+	(gnus-mark-article-as-unread): Ditto.
+	(gnus-summary-mark-article-as-unread): Ditto.
+	(gnus-build-get-header): Ditto.
+	(gnus-summary-prepare-threads): Ditto.
+	(gnus-summary-insert-pseudos): Ditto.
+	(gnus-articles-to-read): Use gnus-sorted-union and gnus-sorted-nunion.
+	(gnus-summary-insert-new-articles): Use gnus-sorted-nunion.
+	(gnus-summary-insert-old-articles): Ditto.
+
+	* gnus-msg.el (gnus-posting-styles): Add new format of header.
+	(gnus-configure-posting-styles): Support the new format.
+
+	* mail-source.el (mail-source-bind, mail-source-bind-common): Set
+	edebug-form-spec to (sexp body).
+	Suggested by Joe Wells <jbw@izanami.cee.hw.ac.uk>.
+
+	* message.el (message-reply-headers): Add doc.
+
+2002-01-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-delete-group): Nix the entry in
+	gnus-cache-active-hashtb.
+
+	* gnus-agent.el (gnus-agent-mark-unread-afer-downloaded): New variable.
+	(gnus-agent-summary-fetch-group): Use it.
+
+	* gnus-msg.el (gnus-debug-files): New variable.
+	(gnus-debug-exclude-variables): New variable.
+	(gnus-debug): Use them.
+
+	* gnus-range.el (gnus-range-length): Don't use gnus-uncompress-range.
+
+2002-01-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-cite-prefix-regexp): Use text-mode-syntax-table.
+	(message-mode-syntax-table): Move back the previous position.
+
+	* nnagent.el (nnagent-retrieve-headers): Use gnus-sorted-difference.
+
+	* gnus-agent.el (gnus-agent-retrieve-headers): Use
+	gnus-sorted-difference.
+
+	* nnsoup.el (nnsoup-request-expire-articles): Use
+	gnus-sorted-difference.
+
+	* nnheader.el: Autoload gnus-sorted-difference.
+
+	* nnfolder.el (nnfolder-request-expire-articles): Use
+	gnus-sorted-difference.
+
+	* gnus-cache.el (gnus-cache-retrieve-headers): Use
+	gnus-sorted-difference.
+
+	* gnus-range.el: Autoload cookies.
+	(gnus-sorted-difference): New function.
+	(gnus-sorted-ndifference): New function.
+	(gnus-sorted-nintersection): Rename from
+	gnus-set-sorted-intersection.
+	(gnus-sorted-nunion): Rename from gnus-set-sorted-union.
+	(gnus-list-range-difference): Rename from
+	gnus-inverse-list-range-intersection.
+	(gnus-inverse-list-range-intersection): Use defalias.
+
+	* gnus-sum.el (gnus-select-newsgroup): Use gnus-sorted-difference,
+	gnus-sorted-ndifference, and gnus-sorted-nintersection.
+	(gnus-articles-to-read): Use gnus-sorted-difference.
+	(gnus-summary-limit-mark-excluded-as-read): Use
+	gnus-sorted-intersection and gnus-sorted-ndifference.
+	(gnus-list-of-read-articles): Use gnus-list-range-difference.
+	(gnus-summary-insert-articles): Use gnus-sorted-difference.
+
+	* gnus-sum.el (gnus-summary-update-info): Use gnus-sorted-union.
+
+2002-01-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-wash-html-with-w3m): Add keymap
+	property to the buffer for using emacs-w3m command keys.
+
+	* mm-decode.el (mm-inline-text-html-with-w3m-keymap): New user
+	option.
+
+	* mm-view.el (mm-w3m-mode-map): New variable.
+	(mm-w3m-mode-command-alist): New variable.
+	(mm-w3m-minor-mode): Removed.
+	(mm-setup-w3m): Setup `mm-w3m-mode-map'; don't add minor mode.
+	(mm-inline-text-html-render-with-w3m): Add keymap property to the
+	buffer for using emacs-w3m command keys.
+
+2002-01-29  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-mode-syntax-table): Move forward.
+	(message-cite-prefix-regexp): Auto detect non word constituents.
+	(message-cite-prefix-regexp): Don't use with-syntax-table.
+
+	* gnus-sum.el (gnus-summary-update-info): Use
+	gnus-list-range-intersection.
+
+	* gnus-agent.el (gnus-agent-fetch-headers): Use
+	gnus-list-range-intersection.
+
+	* gnus-range.el (gnus-range-normalize): Use correct predicate.
+	(gnus-list-range-intersection): Use it.
+	(gnus-inverse-list-range-intersection): Ditto.
+	(gnus-sorted-intersection): Add doc.
+	(gnus-set-sorted-intersection): Add doc.
+	(gnus-sorted-union): New function.
+	(gnus-set-sorted-union): New function.
+
+	* gnus-range.el (gnus-list-range-intersection): Correct the logic.
+	(gnus-inverse-list-range-intersection): Ditto.
+
+2002-01-29  Karl Kleinpaste  <karl@charcoal.com>
+
+	* mm-uu.el (mm-uu-type-alist): Add optional leading `0'.
+
+	* gnus-uu.el (gnus-uu-shar-name-marker): Add optional leading `0'
+	and permit `:' and `\' in order to handle full Windows pathnames.
+	(gnus-uu-begin-string): Add optional leading `0'.  Leading `0' is
+	technically not correct per standard, but seems to have common use.
+
+2002-01-29  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-uu.el (gnus-uu-expand-numbers): Ignore errors when
+	replacing numbers.
+
+2002-01-28  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-followup-with-original): Use (mark).
+
+	* gnus-score.el (gnus-score-insert-help): Move to (point-min).
+	Don't split when the window is small, e.g. when a small *BBDB*
+	window is the lowest one.
+
+	* gnus-agent.el (gnus-agent-retrieve-headers): Use
+	nnheader-find-nov-line to speed up. Use nreverse, because it is
+	sorted. Use nnheader-insert-nov-file.
+
+2002-01-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-decode.el (mm-inline-text-html-with-images): New user option.
+
+	* mm-view.el (mm-inline-text-html-render-with-w3m): Bind the value
+	of `w3m-display-inline-images' with the value of
+	`mm-inline-text-html-with-images'.
+	From: TSUCHIYA Masatoshi <tsuchiya@namazu.org>.
+
+	* gnus-art.el (gnus-article-wash-html-with-w3m): Ditto.
+
+2002-01-27  Richard M. Stallman  <rms@gnu.org>
+
+	* time-date.el: Add autoload cookies.  Many doc fixes.
+	(time-add): New function.
+	(time-subtract): Renamed from subtract-time.
+	(subtract-time): New alias for time-subtract.
+
+2002-01-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-wash-html-with-w3m): Replace w3m to
+	emacs-w3m in doc-string.
+
+	* lpath.el: Bind `w3m-cid-retrieve-function-alist' and
+	`w3m-current-buffer'.
+
+2002-01-27  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* gnus-art.el (gnus-article-wash-html-with-w3m): Handle cid: URLs.
+
+	* mm-view.el (mm-setup-w3m): Add `mm-w3m-cid-retrieve' to
+	`w3m-cid-retrieve-function-alist' for `gnus-article-mode'.
+	(mm-w3m-cid-retrieve): New function.
+	(mm-inline-text-html-render-with-w3m): Handle cid: URLs.
+
+2002-01-27  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-fetch-articles): Don't save empty articles.
+
+2002-01-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-util.el (gnus-cache-file-contents): Don't use equalp.
+
+2002-01-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnheader.el (nnheader-insert-nov-file): Increased cutoff to
+	32K.
+
+	* gnus-sum.el (gnus-summary-expire-articles): Clean up.
+
+	* nnmail.el (nnmail-article-group): Decode headers before running
+	split rules over them.
+	(nnmail-mail-splitting-charset): New variable.
+
+	* smiley.el: Replaced with smiley-ems.el.
+
+2002-01-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-url.el (mm-url-predefined-programs): Add w3m.
+	(mm-url-program): Ditto.
+
+2002-01-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnml.el (nnml-use-compressed-files): New variable.
+	(nnml-filenames-are-evil): Removed.
+	(nnml-current-group-article-to-file-alist): Don't use.
+	(nnml-update-file-alist): Inhibit.
+	(nnml-article-to-file): Use new var.
+
+2002-01-26  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-parse-without-error): Add edebug-form-spec.
+
+	* nnagent.el (nnagent-retrieve-headers): loop until eobp.
+
+2002-01-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-load-alist): Use new caching
+	function.
+
+	* gnus-util.el (gnus-cache-file-contents): New function.
+
+	* gnus-agent.el (gnus-agent-file-loading-cache): New variable.
+	(gnus-agent-load-alist): Use it.
+
+	* nnagent.el (nnagent-retrieve-headers): Use optimized function.
+
+	* nnheader.el (nnheader-insert-nov-file): New function.
+
+	* gnus-util.el (gnus-parse-without-error): Correct the loop.
+
+	* gnus-sum.el (gnus-dependencies-add-header): Use in-reply-to if
+	there are no references.
+	(gnus-extract-message-id-from-in-reply-to): New function.
+	(gnus-nov-parse-line): Use in-reply-to if there are no
+	references.
+
+2002-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnagent.el (nnagent-retrieve-headers): Use new macro.
+
+	* gnus-util.el (gnus-parse-without-error): New macro.
+
+2002-01-25  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-wash-html-with-w3m): Call w3m-region.
+	(gnus-article-wash-function): use locate-library to decide which
+	to use.
+
+2002-01-25  Simon Josefsson  <jas@extundo.com>
+
+	* pop3.el (pop3-munge-message-separator): Work if no date.
+	Trivial patch from Marius Vollmer <mvo@zagadka.ping.de>.
+
+2002-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-save-alist): Fix.
+
+	* nnagent.el (nnagent-retrieve-headers): Must have cut too much by
+	mistake.  Reinstated lost code.
+
+2002-01-25  Josh Huber  <huber@alum.wpi.edu>
+
+	* mml2015.el (mml2015-mailcrypt-decrypt): Display a signature if
+	one exists in the case of an encrypted message with an internal
+	signature.
+
+2002-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-save-alist): Optimized.
+
+2002-01-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el: Commented out the experimental code.
+
+2002-01-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-range.el (gnus-inverse-list-range-intersection): Off-by-one
+	error.
+
+	* gnus.el (gnus-server-to-method): Made into subst.
+	(gnus-server-method-cache): New variable.
+	(gnus-server-to-method): Use it.
+	(gnus-group-method-cache): New variable.
+	(gnus-find-method-for-group-1): Renamed.
+	(gnus-find-method-for-group): New function.
+	(gnus-group-method-cache): Removed.
+
+	* gnus-sum.el (gnus-compute-unseen-list): Use new optimized
+	function.
+
+	* gnus-range.el (gnus-members-of-range): New function.
+	(gnus-list-range-intersection): Renamed.
+	(gnus-inverse-list-range-intersection): New function.
+
+	* gnus-sum.el (gnus-compute-unseen-list): Made into own function.
+
+	* nnagent.el (nnagent-retrieve-headers): New implementation.
+
+	* gnus-agent.el (gnus-agent-get-undownloaded-list): New, faster
+	implementation.
+
+2002-01-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Fbind `w3m-charset-to-coding-system'; bind
+	`w3m-meta-content-type-charset-regexp'.
+
+	* mm-view.el (mm-inline-text-html-render-with-w3m): Decode
+	charset-encoded html contents.
+
+2002-01-24  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-request-article): Make sure it is not
+	an empty file.
+
+	* nnweb.el (url): Ignore errors when request url.
+
+	* nnrss.el: Clean up the comments.
+
+2002-01-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* lpath.el: Fbind `w3m-region'; bind `w3m-mode-map'.
+
+	* mm-decode.el (mm-inline-text-html-renderer): New user option.
+	(mm-inline-media-tests): Test whether the value of
+	`mm-inline-text-html-renderer' is a function for text/html.
+
+	* mm-view.el (mm-inline-text-html-render-with-w3): New function
+	separated from `mm-inline-text'.
+	(mm-w3m-minor-mode): New variable.
+	(mm-w3m-setup): New variable.
+	(mm-setup-w3m): New function.
+	(mm-inline-text-html-render-with-w3m): New function.
+	(mm-inline-text): Funcall `mm-inline-text-html-renderer' for
+	text/html.
+
+2002-01-23  Paul Jarc  <prj@po.cwru.edu>
+
+	* lpath.el: fbind make-symbolic-link and unix-sync for nnmaildir.
+
+2002-01-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-xmas.el (gnus-xmas-redefine): Quote `gnus-completing-read'
+	and `gnus-xmas-completing-read'.
+
+2002-01-19  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* nneething.el (nneething-message-id-number): Abolished.
+	(nneething-encode-file-name): Not encode numerical characters.
+	(nneething-make-head): `nneething-message-id-number' is not
+	used to generate message IDs.
+
+2002-01-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-emphasis-alist): Include !? as sentence-ending
+	characters.
+
+2002-01-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-xmas.el (gnus-xmas-completing-read): New function.
+	(gnus-xmas-redefine): Redefine conditionally.
+
+2002-01-22  Josh Huber  <huber@alum.wpi.edu>
+
+	* mml.el (mml-parse-1): Fixed usage of recipients in the secure
+	tag.
+
+2002-01-22  Josh Huber  <huber@alum.wpi.edu>
+
+	* message.el (message-font-lock-keywords): Added the secure tag.
+	* mml-sec.el: Added functions to generate/modify/remove the secure
+	tag while in message mode.
+	* mml-sec.el (mml-secure-message): New.
+	* mml-sec.el (mml-unsecure-message): New.
+	* mml-sec.el (mml-secure-message-sign-smime): New.
+	* mml-sec.el (mml-secure-message-sign-pgp): New.
+	* mml-sec.el (mml-secure-message-sign-pgpmime): New.
+	* mml-sec.el (mml-secure-message-encrypt-smime): New.
+	* mml-sec.el (mml-secure-message-encrypt-pgp): New.
+	* mml-sec.el (mml-secure-message-encrypt-pgpmime): New.
+	* mml.el (mml-parse-1): Added code to recognise the secure tag and
+	convert it to either a part or multipart depending on if there are
+	other parts in the message.
+	* mml.el (mml-mode-map): Changed default sign/encrypt keybindings
+	to use the secure tag, rather than the part tag.
+	* mml.el (mml-preview): Added a save-excursion to keep cursor
+	position after doing an MML preview.
+
+2002-01-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnheader.el (nnheader-parse-overview-file): New function.
+	(nnheader-write-overview-file): New function.
+
+2002-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-group-fast-parameter): Check better if expansion
+	in wanted.
+
+	* nnweb.el (nnweb-type-definition): Clean up.
+
+2002-01-21  Alastair Burt  <burt@dfki.de>
+	Trivial patch.
+
+	* gnus-art.el (gnus-mm-display-part): Make sure that the summary
+	buffer exists before jumping to it.
+
+2002-01-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-wash-html-with-w3): Made into own
+	function.
+	(article-wash-html): Use it.
+	(gnus-article-wash-function): New variable.
+	(gnus-article-wash-html-with-w3m): New function.
+
+2002-01-20  Bj,Av(Brn Torkelsson  <torkel@acc.umu.se>
+
+	* dgnushack.el (dgnushack-compile): Compile smiley-ems for
+	XEmacs.
+
+2002-01-20  John H. Palmieri  <palmieri@math.washington.edu>
+
+	* gnus-fun.el (gnus-convert-image-to-gray-x-face): More standard
+	command line.
+
+2002-01-21  Simon Josefsson  <jas@extundo.com>
+
+	* canlock.el (base64-encode-string): Autoload it from base64.
+	(canlock-make-cancel-key): Base64 encode unibyte string.
+
+2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnfolder.el (nnfolder-request-accept-article): Unfold
+	x-from-line.
+	(nnfolder-request-replace-article): Ditto.
+
+2002-01-20  Nevin Kapur  <nevin@jhu.edu>
+
+	* gnus-group.el (gnus-group-best-unread-group): Use the right
+	positioning function.
+
+2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* smiley-ems.el (smiley-region): Use new function.
+	(smiley-update-cache): Use general image functions.
+	(smiley-region): Use general functions.
+
+	* gnus-util.el (gnus-graphic-display-p): New function.
+
+	* nnmail.el (nnmail-article-group): Allow outputting traces of
+	non-strings.
+
+	* nndoc.el (nndoc-type-alist): Rules for exim bounces.
+	(nndoc-exim-bounce-type-p): New function.
+
+	* message.el (message-dont-send): Doc fix.
+
+	* gnus-util.el (gnus-completing-read): Remove
+	inherit-input-method.
+
+	* gnus-art.el (gnus-treat-smiley): Doc fix.
+
+	* gnus-agent.el (gnus-agent-fetch-headers): Ignore seen and recent
+	articles.
+
+2002-01-19  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-gssapi-open): Don't wait for logout to complete.
+	(imap-kerberos4-open): Ditto.
+	(imap-open): Set port correctly, don't set auth.
+
+2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-version-number): Bump version number.
+
+2002-01-20 05:33:30 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.05 is released.
+
+2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnkiboze.el (nnkiboze-generate-group): Make sure the directory
+	exists.
+
+	* gnus-spec.el (gnus-string-width-function): New function.
+	(gnus-tilde-cut-form): Use it.
+	(gnus-tilde-max-form): Ditto.
+	(gnus-use-correct-string-widths): Default to (featurep 'xemacs).
+	(gnus-substring-function): Use it.
+	(gnus-tilde-cut-form): Ditto.
+	(gnus-substring-function): New function.
+
+	* message.el (message-check-news-header-syntax): New message.
+
+	* gnus.el (gnus-slave-no-server): Doc fix.
+
+	* gnus-spec.el (gnus-use-correct-string-widths): Default to t.
+
+2002-01-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-adjust-marked-articles): Fix the record for
+	`seen' if it looks like (seen NUM1 . NUM2).  It should be
+	(seen (NUM1 . NUM2)).
+
+2002-01-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-topic.el (gnus-topic-catchup-articles): Update article
+	number in closed topics.
+
+2002-01-19  Daniel Pittman  <daniel@rimspace.net>
+
+	* gnus-sum.el (gnus-summary-first-unseen-or-unread-subject): New
+	functions.
+
+2002-01-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-group-find-parameter): Clean up.
+
+	* gnus-sum.el (gnus-summary-goto-subject): Error on non-numerical
+	articles.
+
+	* gnus-util.el (gnus-completing-read-with-default): Renamed.
+
+	* nnmail.el (nnmail-article-group): Clean up.
+
+2002-01-19  Paul Stodghill  <stodghil@cs.cornell.edu>
+
+	* gnus-agent.el (gnus-category-name): Intern the category name.
+
+2002-01-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-topic.el (gnus-topic-move-group): Use gnus-topic-history.
+
+	* gnus-util.el (gnus-completing-read): New function.
+
+2002-01-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-add-wash-type): Use add-to-list.
+
+	* smiley-ems.el (smiley-region): Register smiley.
+	(smiley-toggle-buffer): Rewrite the function.
+	(smiley-active): Removed.
+
+2002-01-19  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-util.el (gnus-parent-id): Optimize null n case.  From
+	Jesper Harder <harder@ifa.au.dk>.
+
+2002-01-18  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* gnus-art.el (gnus-request-article-this-buffer): Call
+	`nneething-get-file-name' to extract the file name from the
+	message id.
+
+	* nneething.el (nneething-encode-file-name): New function.
+	(nneething-decode-file-name): Ditto.
+	(nneething-get-file-name): Ditto.
+	(nneething-make-head): Encode the file name and encapsulate it
+	into the field of the message id.
+
+2002-01-18  Simon Josefsson  <jas@extundo.com>
+
+	* nnml.el (nnml-request-update-info): Don't erase flags that isn't
+	stored in .marks.
+
+	* nnfolder.el (nnfolder-request-update-info): Ditto.
+
+2002-01-18  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-url-parse-query-string): Allow new line in value.
+
+2002-01-18  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-starttls-p): Don't check for binary.
+	(imap-gssapi-auth-p): Ditto.
+	(imap-kerberos4-auth-p): Ditto.
+	(imap-open): Change logic.  Iterate through all possible streams,
+	instead of bailing out after first failure.  Move authenticator
+	decision to `imap-authenticate'.
+	(imap-authenticate): Change logic, now finds the authenticator to
+	use, was previously in `imap-open'.
+	(imap-open): Return nil on failure.
+	(imap-open): Setup temp buffer correctly.
+	(imap-open): Return buffer only on success.
+	(imap-interactive-login, imap-interactive-login): Tell the user
+	which stream/authenticator is used for the queried
+	username/password.
+	(imap-open, imap-authenticate): Set variables.
+	(imap-gssapi-auth-p, imap-kerberos4-auth-p): Fix typo.
+	(imap-open): Don't assume how `with-temp-buffer' is implemented.
+
+2002-01-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-grab-cam-x-face): New function.
+
+2002-01-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-emphasis-alist): Allow matching "*this*.)".
+
+2002-01-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-toggle-group-plugged): New function.
+	(gnus-agent-group-mode-map): Bind it to "Jo".
+	(gnus-agent-group-make-menu-bar): Add it into menu bar.
+
+2002-01-17  Karl Kleinpaste  <karl@charcoal.com>
+
+	* gnus-xmas.el (gnus-group-toolbar): Add .newsrc save button.
+	(gnus-summary-mail-toolbar): Add mail article deletion button.
+
+	* smiley.el (smiley-deformed-regexp-alist): Eliminate noseless
+	false positives for lines of "^^^^".
+
+	* gnus-picon.el (gnus-picon-find-face): faces database is all
+	lowercase.
+
+2002-01-17  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-retrieve-headers): Use correct buffer.
+	(gnus-agent-braid-nov): Switch back to nntp-server-buffer. Remove
+	duplications.
+	(gnus-agent-batch): Bind gnus-agent-confirmation-function.
+
+2002-01-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-initial-limit): Inline
+	gnus-summary-limit-children.
+	(gnus-summary-initial-limit): Don't limit if
+	gnus-newsgroup-display is nil.
+	(gnus-summary-initial-limit): No, don't.
+
+	* gnus-util.el
+	(gnus-put-text-property-excluding-characters-with-faces): Inline
+	gnus-put-text-property.
+
+	* gnus-spec.el (gnus-default-format-specs): New variable.
+
+	* gnus-start.el (gnus-read-newsrc-file): Don't clear
+	gnus-format-specs.
+	(gnus-read-newsrc-el-file): Default to gnus-default-format-specs.
+
+	* gnus-spec.el (gnus-update-format-specifications): Really check
+	the Gnus version of the .newsrc.eld file.
+	(gnus-format-specs): Save the new default summary format.
+
+	* gnus-util.el (gnus-parent-id): Check whether references is empty
+	before splitting.
+
+	* gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): Inline some
+	functions.
+	(gnus-gather-threads-by-references): Inline
+	`gnus-split-references'.
+
+	* gnus-spec.el (gnus-summary-line-format-spec): New, optimized
+	default value of gnus-summary-line-format-spec.
+
+2002-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-retrieve-headers-1): A better error
+	message.
+	(nnslashdot-request-list): Ditto.
+	(nnslashdot-sid-strip): Removed.
+
+2002-01-15  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-close-asynchronous): Enable.
+	(nnimap-close-group): Expunge.
+
+2002-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-user-date-format-alist): Typo.
+	From: Frank Schmitt <usereplyto@Frank-Schmitt.net>
+
+2002-01-15  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* nneething.el (nneething-request-article): Set
+	`nnmail-file-coding-system' to `binary' locally, in order to read
+	files without any conversion.
+
+2002-01-15  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-retrieve-headers): Use
+	nnheader-file-coding-system and nnmail-active-file-coding-system.
+	(gnus-agent-regenerate-group): Ditto.
+	(gnus-agent-regenerate): Ditto.
+	(gnus-agent-write-active): Ditto.
+	Suggested by Katsumi Yamaoka <yamaoka@jpl.org>
+
+2002-01-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-button-alist): Don't highlight <URL:.
+	Suggested by Ian Fitchet <ian.fitchet@lunanbay.com>
+
+2002-01-14  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el: We don't need gnus-article-show-all-headers.
+
+	* gnus-art.el (article-show-all, gnus-article-show-all-header):
+	Ditto.
+
+	* gnus-sum.el (gnus-summary-select-article): Don't call
+	show-all-headers, because hidden headers are not hidden text any
+	more.
+
+2002-01-13  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-newline-and-reformat): Use `newline' instead
+	of inserting \n, so that the newline is marked as hard.
+
+	* gnus-spec.el (gnus-pad-form): Don't evaluate EL multiple times.
+	From Jesper Harder <harder@ifa.au.dk>.
+
+2002-01-12  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* imap.el (imap-close): Keep going if quit.
+
+	* gnus-agent.el (gnus-agent-retrieve-headers): Erase
+	nntp-server-buffer.
+
+2002-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* mm-view.el (mm-display-inline-fontify): Require font-lock to
+	avoid unbinding shadowed variables.
+
+	* gnus-art.el (gnus-picon-databases): Moved here.
+	(gnus-picons-installed-p): Moved here.
+	(gnus-article-reply-with-original): Use `mark'.
+
+	* gnus.el (gnus-picon): Moved here and renamed.
+
+	* gnus-art.el (gnus-treat-from-picon): Only be on if picons are
+	installed.
+	(gnus-treat-mail-picon): Ditto.
+	(gnus-treat-newsgroups-picon): Ditto.
+
+	* gnus-picon.el (gnus-picons-installed-p): New function.
+
+2002-01-12  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-go-online): Fix doc.
+
+2002-01-12  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-need-unselect-to-notice-new-mail)
+	(nnimap-before-find-minmax-bugworkaround): Use it.
+	(nnimap-find-minmax-uid): Don't reselect current mailbox.
+	(nnimap-dont-close): New variable.
+	(nnimap-close-group): Use it.
+
+2002-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-reply-with-original): Use
+	`mark-active'.
+
+	* gnus-msg.el (gnus-summary-reply): Don't bug out on regions.
+
+	* gnus-logic.el (gnus-advanced-score-rule): Thinko fix.
+	(gnus-score-advanced): Clean up.
+	(gnus-score-advanced): Accept a multiple of the score.
+
+2002-01-12  Simon Josefsson  <jas@extundo.com>
+
+	* flow-fill.el (fill-flowed-display-column)
+	(fill-flowed-encode-columnq): New variables.  Suggested by
+	Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Gro,b_(Bjohann).
+	(fill-flowed-encode, fill-flowed): Use them.
+
+	* message.el (message-send-news, message-send-mail): Use
+	m-b-s-n-p-e-h-n.
+
+	* mml.el (autoload): Autoload fill-flowed-encode.
+	(mml-buffer-substring-no-properties-except-hard-newlines): New
+	function.
+	(mml-read-part): Use it.
+	(mml-generate-mime-1): Encode format=flowed if appropriate.
+	(mml-insert-mime-headers): Insert format=flowed.
+
+	* flow-fill.el (fill-flowed-encode): New function.
+	(fill-flowed): Bind fill-column to window width.
+
+2002-01-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-buffer-name): Return the dead name if
+	it exists.
+	(gnus-summary-setup-buffer): Wake up dead summary buffers.
+	(gnus-summary-buffer-name): Don't return the dead name after all.
+	(gnus-summary-setup-buffer): Kill the dead buffer.
+
+	* gnus-art.el (gnus-article-followup-with-original): Store the
+	value of the mark before deactivating it.
+
+2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-fun.el (gnus-display-x-face-in-from): Fake it.
+	From: Karl Kleinpaste <karl@charcoal.com>
+
+	* gnus-art.el (article-display-x-face): Ditto.
+	(gnus-article-reply-with-original): Use gnus-region-active-p.
+	(gnus-article-followup-with-original): Ditto.
+
+	* gnus-sum.el (gnus-summary-read-group-1): Don't select
+	downloadable article either.
+
+2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-display-x-face): Insert From:.
+
+	* gnus-sum.el (gnus-summary-move-article): Don't draw the
+	article. Bind gnus-display-mime-function and
+	gnus-article-prepare-hook.
+
+	* gnus-agent.el (gnus-agent-retrieve-headers): Load agentview.
+	(gnus-agent-toggle-plugged): Use gnus-agent-go-online. Move
+	gnus-agent-possibly-synchronize-flags to the last.
+	(gnus-agent-go-online): New function. New variable.
+
+2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-regenerate-group): Add clean option.
+	(gnus-agent-regenerate): Ditto.
+
+2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-ignored-news-headers)
+	(message-ignored-mail-headers): Add X-Gnus-Agent-Meta-Information:.
+	Suggested by ARISAWA Akihiro <ari@atesoft.advantest.co.jp>
+
+	* gnus.el (gnus-gethash-safe): New macro.
+
+	* gnus-agent.el (gnus-agent-regenerate-history): New function.
+	(gnus-agent-regenerate): Show messages.
+
+2002-01-11  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-regenerate-group): New function.
+	(gnus-agent-regenerate): New function.
+	(gnus-agent-save-alist): Sort.
+	(gnus-agent-copy-nov-line): Test eobp.
+	(gnus-agent-retrieve-headers): Erase buffer.
+
+2002-01-10  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-charset-to-coding-system): Change charset to cs.
+	From: Torsten Hilbrich <email@myrkr.in-berlin.de>
+
+	* gnus.el (gnus-agent-covered-methods): Move here.
+	(gnus-online): New function.
+	(gnus-agent-method-p): Move here.
+
+	* nnagent.el (nnagent-retrieve-headers): Check whether arts is
+	nil. Remove articles-alist.
+
+	* gnus-start.el (gnus-get-unread-articles): Check online.
+	(gnus-groups-to-gnus-format): Ditto.
+	(gnus-active-to-gnus-format): Ditto.
+
+	* gnus-agent.el (gnus-agent-get-function): Use it.
+	(gnus-agent-get-undownloaded-list): Ditto.
+	(gnus-agent-fetch-session): Only fetch online methods.
+
+	* gnus-srvr.el (gnus-server-make-menu-bar): Add offline.
+	(gnus-server-mode-map): Ditto.
+	(gnus-server-offline-face): New face.
+	(gnus-server-offline-face): New variable.
+	(gnus-server-font-lock-keywords): Add offline.
+	(gnus-server-insert-server-line): Ditto.
+	(gnus-server-offline-server): New function.
+
+	* gnus-int.el (gnus-open-server): Turn to offline.
+	(gnus-server-unopen-status): New variable.
+
+2002-01-10  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnkiboze.el (nnkiboze-request-article): Use
+	gnus-agent-request-article.
+
+	* nnagent.el (nnagent-retrieve-headers): Don't use nnml
+	function. Insert undownloaded NOV.
+
+	* gnus-agent.el (gnus-agent-retrieve-headers): New function.
+	(gnus-agent-request-article): New function.
+
+	* gnus.el (gnus-agent-cache): New variable.
+
+	* gnus-int.el (gnus-retrieve-headers): Use
+	gnus-agent-retrieve-headers.
+	(gnus-request-head): Use gnus-agent-request-article.
+	(gnus-request-body): Ditto.
+
+	* gnus-art.el (gnus-request-article-this-buffer): Use
+	gnus-agent-request-article.
+
+	* gnus-sum.el (gnus-summary-read-group-1): Don't show the first
+	article if it is undownloaded.
+
+2002-01-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-spec.el (gnus-spec-tab): Deal with wide characters.
+
+2002-01-09  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* canlock.el (canlock-string-as-unibyte): New macro.
+	(canlock-sha1-with-openssl): Return a unibyte string.
+	(canlock-make-cancel-key): Treat Message-ID as a unibyte string.
+
+2002-01-09  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-expand-group-parameters): Match \N or \& only.
+
+2002-01-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-encode.el (mm-content-transfer-encoding-defaults): Add
+	application/x-emacs-lisp.
+
+	* gnus-msg.el (gnus-bug): Use application/emacs-lisp.
+
+	* nntp.el (nntp-request-article): Add group parameter.
+	(nntp-request-head): Ditto.
+	(nntp-find-group-and-number): Add parameter group. Figure out
+	number if the status line doesn't give (e.g. quimby.gnus.org).
+
+2002-01-08  Simon Josefsson  <jas@extundo.com>
+
+	* mml.el (mml-generate-mime-1): Set recipient correctly.
+
+2002-01-08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-read-from-minibuffer): Add parameter
+	initial-contents.
+	* gnus-msg.el (gnus-summary-resend-message): Use it.
+
+	* gnus-group.el (gnus-group-read-ephemeral-group): Restore the old
+	behavior of quit-config.
+
+	* message.el (message-make-from): Don't quote fullname.
+	From: Bj,Ax(Brn Mork <bmork@dod.no>
+
+	* gnus-group.el (gnus-group-suspend): Don't kill message buffers.
+	From: <andre@slamdunknetworks.com>
+
+2002-01-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-mark-article-read): Typo. Increase n.
+
+	* gnus-art.el (gnus-header-button-alist): Handle mailto.
+
+	* mml.el (mml-preview): Bind gnus-original-article-buffer because
+	article-decode-group-name uses it.  Bind gnus-article-prepare-hook
+	because bbdb may use it.
+
+2002-01-07  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* nneething.el (nneething-request-article): When a non-text file
+	is converted to an article, its data is encoded in base64.  Call
+	`nneething-make-head' with options to specify MIME types.
+	(nneething-make-head): Add optional arguments to specify MIME
+	types.
+
+2002-01-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-fun.el (gnus-display-x-face-in-from): Fake a "From: "
+	header if there is not.
+
+	* gnus-xmas.el (gnus-xmas-put-image): Insert " " if bobp.
+
+	* gnus-msg.el (gnus-gcc-mark-as-read): New variable.
+	(gnus-inews-mark-gcc-as-read): Obsolete variable.
+	(gnus-inews-do-gcc): Use them.
+
+	* gnus-group.el (gnus-group-mark-article-read): Put holes into
+	gnus-newsgroup-unselected.
+
+2002-01-06  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-ssl-open, imap-ssl-open, imap-parse-fetch): Use
+	condition-case, not ignore-errors.
+
+2002-01-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-insert-old-articles): Bind
+	gnus-fetch-old-headers.
+
+	* gnus-art.el (article-display-x-face): Use the current buffer
+	unless `W f'. Otherwise, X-Face may be shown in the header of a
+	forwarded part.
+	(gnus-treatment-function-alist): Treat xface before hiding
+	headers.
+
+2002-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el (gnus-group-read-ephemeral-group): Fix
+	parameters.
+
+2002-01-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-multibyte-p): Define conditionally when load.
+	(mm-guess-charset): New function.
+	(mm-charset-after): Use it.
+	(mm-detect-coding-region): New function.
+	(mm-detect-mime-charset-region): New function.
+
+	* gnus-sum.el (gnus-summary-show-article): Use
+	mm-detect-coding-region.
+
+2002-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-make-fqdn): Be less violent.
+
+	* gnus.el (gnus-logo-color-style): Compute custom form
+	automatically.
+
+	* gnus-sum.el (gnus-summary-enter-digest-group): Feed the adaptive
+	score file of the parent to the document group.
+
+	* gnus-group.el (gnus-group-read-ephemeral-group): Add an optional
+	parameters parameter.
+
+	* gnus-score.el (gnus-score-load-file): Clean up.
+
+2002-01-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-thread-sort-by-most-recent-number): Fix typo.
+	From: Damien Wyart <damien.wyart@free.fr>
+
+	* gnus-util.el (gnus-local-map-property): In Emacs 21, use keymap.
+
+2002-01-05  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-select-group-hook): Typo.
+
+	* rfc2047.el (rfc2047-decode-string): Return immediately if there
+	is no quoted-printable-encoded STRING.
+	From: Jesper Harder <harder@ifa.au.dk>
+
+	(rfc2047-decode-string): Decode it.
+
+2002-01-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-logo-color-alist): Added more colors from Luis.
+
+2002-01-05  Keiichi Suzuki  <keiichi@nanap.org>
+	Trivial patch.
+
+	* nntp.el (nntp-possibly-change-group): Erase contents of nntp
+	buffer to get rid of junk line.
+
+2002-01-05  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-mode-map): Bind message-goto-from to C-c C-f
+	C-o.
+	(message-mode-map): Bind message-insert-or-toggle-importance to
+	C-c C-u.
+	(message-mode-map): Bind message-disposition-notification-to to
+	C-c M-n.
+	(message-mode-menu): Add m-d-n-t.
+	(message-mode-field-menu): Add m-goto-from.
+	(message-mode): Doc fix.
+	(message-goto-from): New function.
+	(message-insert-disposition-notification-to): New function.
+	(message-tool-bar-map): Add receipt button.
+
+2002-01-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-thread-latest-date): New function.
+	(gnus-thread-sort-by-most-recent-number): Renamed.
+	(gnus-thread-sort-functions): Doc fix.
+	(gnus-select-group-hook): Don't use setq on a hook.
+	(gnus-thread-latest-date): Use date, not number
+
+	* gnus-agent.el (gnus-agent-expire-days): Doc fix.
+	(gnus-agent-expire): Allow regexp of expire-days.
+
+	* gnus-art.el (gnus-article-reply-with-original): Deactivate
+	region.
+	(gnus-article-followup-with-original): Ditto.
+
+	* gnus-sum.el (gnus-thread-highest-number): Doc fix.
+
+	* gnus-art.el (gnus-mime-display-alternative): Use
+	gnus-local-map-property.
+	(gnus-mime-display-alternative): Ditto.
+	(gnus-insert-mime-security-button): Ditto.
+	(gnus-insert-next-page-button): Ditto.
+	(gnus-button-prev-page): Take optional args.
+	(gnus-insert-prev-page-button): widget-convert.
+
+	* gnus-util.el (gnus-local-map-property): New function.
+
+	* gnus-art.el (gnus-prev-page-map): Use parent map.
+	(gnus-next-page-map): Ditto.
+
+	* gnus-spec.el (gnus-parse-format): Clean up.
+	(gnus-parse-format): Do complex formatting for %=.
+
+	* gnus-fun.el (gnus-display-x-face-in-from): Add the string
+	"X-Face: " to the data in the built-in scenario.
+
+	* gnus-spec.el (gnus-parse-simple-format): Use gnus-pad-form.
+	(gnus-correct-pad-form): Renamed.
+	(gnus-tilde-max-form): Clean up.
+	(gnus-pad-form): Use gnus-use-correct-string-widths.
+
+	* gnus-fun.el (gnus-display-x-face-in-from): Use native xface
+	support if that is available.
+
+	* gnus-sum.el (gnus-thread-highest-number): New function.
+	(gnus-thread-sort-by-most-recent-thread): New function.
+	(gnus-thread-sort-functions): Doc fix.
+
+2002-01-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-select-article): Disable multibyte in
+	all cases.
+	(gnus-summary-mode): Enable it in all cases.
+	(gnus-summary-display-article): Ditto.
+	(gnus-summary-edit-article): Ditto.
+
+	* gnus-ems.el (gnus-put-image): Really return glyph.
+
+	* gnus-art.el (gnus-article-x-face-command): Fix :type.
+	(gnus-treat-smiley): Don't take "P" in the interactive form.
+
+2002-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* compface.el (uncompface): XEmacs and Emacs have differing
+	capabilities.
+
+	* gnus-fun.el (gnus-display-x-face-in-from): Use face.
+
+	* gnus-ems.el (gnus-article-xface-ring-internal): Removed.
+	(gnus-article-xface-ring-size): Removed.
+	(gnus-article-display-xface): Removed.
+	(gnus-remove-image): Cleaned up.
+
+	* gnus-xmas.el (gnus-xmas-create-image): Convert pbm to xbm.
+	(gnus-xmas-create-image): Take pbm files.
+	(gnus-x-face): Removed.
+	(gnus-xmas-article-display-xface): Removed.
+
+	* gnus-fun.el (gnus-display-x-face-in-from): Bind
+	default-enable-multibyte-characters.
+
+	* compface.el (uncompface): Doc fix.
+
+	* gnus-art.el (gnus-article-x-face-command): Use
+	gnus-display-x-face-in-from.
+
+	* gnus-xmas.el (gnus-xmas-put-image): Return the image.
+
+	* gnus-ems.el (gnus-put-image): Return the image.
+
+	* gnus-fun.el (gnus-display-x-face-in-from): New function.
+	(gnus-x-face): Moved here.
+
+2002-01-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-xmas.el (gnus-xmas-put-image): Don't insert SPC or make
+	invisible if string is nil.
+	(gnus-xmas-article-display-xface): Use it.
+
+	* gnus-ems.el (gnus-put-image): Explicitly use SPC, and add text
+	property when string is nil.
+	(gnus-article-display-xface): Use it.
+
+2002-01-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (article-display-x-face): Check whether valid grey
+	face was returned.
+	(article-display-x-face): Place image in the right spot.
+
+	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Get rid of
+	stderr.
+	(gnus-convert-gray-x-face-to-xpm): Check whether output is valid.
+
+2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-xmas.el (gnus-xmas-create-image): Take optional
+	parameters.
+	(gnus-xmas-put-image): Allow non-strings to be passed.
+
+	* gnus-art.el (article-display-x-face): Use optional parameters.
+
+	* gnus-ems.el (gnus-create-image): Take optional parameters.
+
+	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Use uncompface.
+
+	* compface.el (compface-xbm-p): Removed.
+
+	* gnus-ems.el (gnus-article-compface-xbm): Removed.
+	(gnus-article-display-xface): Use compface.
+
+	* compface.el: New file.
+
+	* gnus-fun.el (gnus-convert-pbm-to-x-face-command): Remove quotes.
+	(gnus-convert-image-to-x-face-command): Ditto.
+	(gnus-random-x-face): Quote argument.
+	(gnus-x-face-from-file): Ditto.
+
+2002-01-03  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-request-expire-articles): evaluate
+	the expire-group parameter once per article rather than once
+	per group; bind `nnmaildir-article-file-name' and `article'
+	for convenience.  Leave article alone when expire-group
+	specifies the current group.
+	(nnmaildir--update-nov): be more concurrency-friendly with
+	temp file names.
+
+2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-start.el (gnus-read-init-file): Cleaned up.
+
+2002-01-03  Dave Love  <d.love@dl.ac.uk>
+
+	* gnus-start.el (gnus-startup-file-coding-system): Removed.
+	(gnus-read-init-file): Don't use it.
+
+2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-fetch-session): Run hook.
+
+2002-01-03  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-start.el (gnus-read-init-file): Don't force coding system
+	for ~/.gnus.  From Dave Love <fx@gnu.org>.
+
+2002-01-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nntp.el (nntp-send-buffer): Use mm-with-unibyte-current-buffer.
+	* nnspool.el (nnspool-request-post): Ditto.
+
+	* mm-util.el (mm-use-find-coding-systems-region): New variable.
+	(mm-find-mime-charset-region): Use it.
+
+2002-01-03  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus.el (gnus-summary-line-format): Added :link.
+	* gnus-topic.el (gnus-topic-line-format): Ditto.
+	* gnus-sum.el (gnus-summary-dummy-line-format): Ditto.
+	* gnus-srvr.el (gnus-server-line-format): Ditto.
+	* gnus-group.el (gnus-group-line-format): Ditto.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Use correct syntax for
+	:keys, it works on both Emacsen.
+
+2002-01-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-charset-to-coding-system): Don't setq charset.
+
+2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-summary-send-map): Fix binding for very-wide.
+
+2002-01-03  Reiner Steib  <reiner.steib@gmx.de>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Menu bar entries for
+	very wide reply.
+
+2002-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-picon.el (gnus-picon-transform-address): Cache stuff.
+	(gnus-picon-cache): New variable.
+	(gnus-picon-transform-newsgroups): Cache stuff.
+
+	* gnus-art.el (gnus-article-reply-with-original): New command.
+	(gnus-article-followup-with-original): New command.
+
+	* gnus-msg.el (gnus-copy-article-buffer): Take optional BEG and
+	END parameters.
+	(gnus-summary-followup): Take a list of list of articles.
+	(gnus-inews-yank-articles): Allow lists of article/regions.
+
+	* gnus-art.el (gnus-article-read-summary-keys): `R' and `F' are no
+	longer the usual commands.
+
+	* gnus-fun.el (gnus-convert-image-to-gray-x-face): Use pnmnoraw.
+	(gnus-convert-gray-x-face-to-xpm): Don't use six parameters to
+	shell-command-on-region.
+
+2002-01-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-picon.el (gnus-picon-transform-newsgroups): Fix for the case
+	  "Newsgroups: rec.music.beatles.moderated, rec.music.beatles".
+
+2002-01-03  Steve Youngs  <youngs@xemacs.org>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): XEmacs doesn't
+	understand ':keys', wrap it in an featurep 'xemacs.
+
+2002-01-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-ems.el (gnus-article-display-xface): Show xface in the
+	order of headers (Actually, it is called in a reversed order). Add
+	'gnus-image-text-deletable property.
+	(gnus-remove-image): Remove text with such a property.
+
+	* gnus-xmas.el (gnus-xmas-article-display-xface): Don't use
+	gnus-put-image.
+
+	* gnus-art.el (gnus-article-treat-fold-newsgroups): Replace ", *"
+	with ", "
+
+2002-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el (gnus-convert-gray-x-face-to-xpm): Renamed.
+
+	* gnus-art.el (gnus-ignored-headers): Hide all X-Faces.
+	(article-display-x-face): Display grey X-Faces.
+
+	* gnus-fun.el (gnus-convert-gray-x-face-region): New function.
+	(gnus-convert-gray-x-face-to-ppm): Ditto.
+	(gnus-convert-image-to-gray-x-face): Ditto.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Add a :keys to
+	gnus-summary-show-raw-article.
+
+2002-01-02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	Display picons in XEmacs without showing text.
+
+	* gnus-xmas.el (gnus-xmas-create-image): Don't use
+	mm-create-image-xemacs to create xbm glyph, because it deletes
+	temporary files.
+	(gnus-xmas-put-image): Use end-glyph. Make text invisible.
+	(gnus-xmas-remove-image): Make text visible, remove glyph.
+
+	* gnus-picon.el (gnus-picon-transform-newsgroups)
+	(gnus-picon-transform-address): Insert spec backward, due to the
+	incompatibility of gnus-xmas-put-image.
+
+2002-01-02  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
+
+	* gnus-fun.el (gnus-convert-pbm-to-x-face-command): Doc fix.
+
+2002-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el: Doc fix.
+
+	* gnus-art.el: Doc fix.
+
+	* gnus-agent.el: Doc fix.
+
+2002-01-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-diary.el, gnus-delay.el: Fix copyright lines.
+
+2002-01-01  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir--update-nov): automatically parse
+	NOV data out of the message again if nnmail-extra-headers has
+	changed.
+
+2002-01-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-fun.el: New file.
+	(gnus-convert-image-to-x-face-command): New variable.
+	(gnus-insert-x-face): New function.
+	(gnus-random-x-face): Renamed.
+	(gnus-x-face-from-file): Renamed.
+
+	* gnus-art.el (gnus-body-boundary-delimiter): Changed default to
+	"_".
+	(gnus-body-boundary-delimiter): Typo fix.
+
+2002-01-02  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-article-treat-body-boundary): Handle nil.
+	(gnus-body-boundary-delimiter): Fix type.
+
+2002-01-01  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-treat-buttonize, gnus-treat-buttonize-head)
+	(gnus-treat-emphasize, gnus-treat-strip-cr)
+	(gnus-treat-leading-whitespace, gnus-treat-hide-headers)
+	(gnus-treat-hide-boring-headers, gnus-treat-hide-signature)
+	(gnus-treat-fill-article, gnus-treat-hide-citation)
+	(gnus-treat-hide-citation-maybe)
+	(gnus-treat-strip-list-identifiers, gnus-treat-strip-pgp)
+	(gnus-treat-strip-pem, gnus-treat-strip-banner)
+	(gnus-treat-highlight-headers, gnus-treat-highlight-citation)
+	(gnus-treat-date-ut, gnus-treat-date-local)
+	(gnus-treat-date-english, gnus-treat-date-lapsed)
+	(gnus-treat-date-original, gnus-treat-date-iso8601)
+	(gnus-treat-date-user-defined, gnus-treat-strip-headers-in-body)
+	(gnus-treat-strip-trailing-blank-lines)
+	(gnus-treat-strip-leading-blank-lines)
+	(gnus-treat-strip-multiple-blank-lines)
+	(gnus-treat-unfold-headers, gnus-treat-fold-headers)
+	(gnus-treat-fold-newsgroups, gnus-treat-overstrike)
+	(gnus-treat-display-xface, gnus-treat-display-smileys)
+	(gnus-treat-from-picon, gnus-treat-mail-picon)
+	(gnus-treat-newsgroups-picon, gnus-treat-body-boundary)
+	(gnus-treat-capitalize-sentences, gnus-treat-fill-long-lines)
+	(gnus-treat-play-sounds, gnus-treat-translate)
+	(gnus-treat-x-pgp-sig): Doc fix, add link to manual.
+
+	* gnus-art.el (gnus-body-boundary-delimiter): New variable.
+	(gnus-article-treat-body-boundary): Use it.
+
+	* message.el (message-mode): Fix doc.
+	(message-mode-menu): Fix names.
+
+2002-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-first-subject): Really go to unseen
+	articles.
+
+	* gnus-picon.el (gnus-picon-find-face): Search MISC for all types.
+	(gnus-picon-transform-address): Search for unknown faces as well.
+	(gnus-picon-find-face): Don't search "news" for MISC.
+	(gnus-picon-user-directories): Changed default back to exclude
+	"unknown".
+
+	* gnus-sum.el (gnus-summary-hide-all-threads): Reversed logic.
+
+	* gnus-picon.el (gnus-picon-find-face): Search through all
+	databases.
+	(gnus-picon-find-face): New implementation.
+
+	* gnus-topic.el (gnus-topic-goto-previous-topic): New command and
+	keystroke.
+	(gnus-topic-goto-next-topic): Ditto.
+
+	* gnus.el (gnus-summary-line-format): Changed default.
+
+	* nnmail.el (nnmail-extra-headers): Change default.
+
+	* gnus-sum.el (gnus-extra-headers): Change default.
+
+	* message.el (message-news-other-window): Changed "news" to
+	"posting".
+	(message-news-other-frame): Ditto.
+	(message-do-send-housekeeping): Ditto.
+
+	* gnus-sum.el (gnus-summary-maybe-hide-threads): Use predicate
+	function.
+	(gnus-article-unread-p): New function.
+	(gnus-article-unseen-p): New function.
+	(gnus-dead-summary-mode-map): Typo.
+
+	* gnus-util.el (gnus-make-predicate): New function.
+	(gnus-make-predicate-1): New function.
+
+	* gnus-sum.el: New function.
+	(gnus-map-articles): New function.
+
+	* gnus-art.el (gnus-treat-fold-headers): New variable.
+	(gnus-article-treat-fold-headers): New command and keystroke.
+
+	* gnus-sum.el (gnus-dead-summary-mode-map): Clean up.
+	(gnus-dead-summary-mode-map): Bind q to bury-buffer.
+
+2002-01-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-fcc-externalize-attachments): New variable.
+	(message-do-fcc): Use it.
+
+	* gnus-msg.el (gnus-gcc-externalize-attachments): New variable.
+	(gnus-inews-do-gcc): Use it.
+
+	* mml.el (mml-tweak-sexp-alist): New variable.
+	(mml-externalize-attachments): New variable.
+	(mml-tweak-part): Use mml-tweak-sexp-alist.
+	(mml-tweak-externalize-attachments): New function.
+
+2002-01-01  Steve Youngs  <youngs@xemacs.org>
+
+	* gnus-xmas.el (gnus-xmas-article-display-xface): Uncomment
+	'set-glyph-face' so x-face back/foreground can be set.
+
+2001-12-31  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-fix-before-sending): Fix a typo.
+
+2002-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-treat-smiley): Renamed command.
+	(gnus-article-remove-images): New command and keystroke.
+
+	* gnus-sum.el (gnus-summary-toggle-smiley): Removed.
+
+	* smiley-ems.el (gnus-smiley-display): Removed.
+
+	* gnus.el (gnus-version-number): Update version.
+
+	* message.el (message-text-with-property): Renamed and moved
+	here.
+	(message-fix-before-sending): Highlight invisible text and place
+	point there.
+
+2002-01-01 02:32:53 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.04 is released.
+
+2002-01-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-delay.el (gnus-delay-send-queue): Renamed.
+
+	* gnus-art.el (gnus-ignored-headers): More headers,
+
+	* ietf-drums.el (ietf-drums-parse-addresses): Use `error' instead
+	of `scan-error', since XEmacs doesn't seem to support that.
+
+2001-12-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-best-unread-article): Take a prefix
+	arg.
+	(gnus-summary-best-unread-subject): Ditto.
+	(gnus-summary-best-unread-subject): No, don't.
+	(gnus-summary-better-unread-subject): New command.
+
+	* gnus-xmas.el (gnus-xmas-put-image): Insert the string itself.
+
+	* lpath.el ((featurep 'xemacs)): fbind url function.
+
+	* gnus-xmas.el (gnus-xmas-article-display-xface): Use data, not
+	buffer.
+	(gnus-xmas-remove-image): Implementation that does something.
+	(gnus-xmas-article-display-xface): Mark images properly.
+
+	* gnus-art.el (gnus-mime-print-part): Use mm-temp-directory.
+
+2001-12-31  Florian Weimer  <fw@deneb.enyo.de>
+
+	* gnus.el (gnus): Warn if trying to run Gnus un-byte-compiled.
+
+2001-12-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el (gnus-group-line-format): Added %O to the default
+	value.
+
+	* gnus-util.el (gnus-text-with-property): The smallest point is
+	point-min.
+
+	* smiley-ems.el (smiley-region): Return images.
+	(gnus-smiley-display): Allow toggling.
+	(smiley-region): Use text properties, not overlays.
+
+	* gnus-xmas.el (gnus-xmas-remove-image): New function, not
+	implemented yet.
+
+	* smiley-ems.el (smiley-update-cache): Check for valid types.
+
+	* gnus-art.el (gnus-with-article-buffer): New macro.
+
+	* gnus-picon.el (gnus-picon-transform-newsgroups): Keep the
+	strings as well as the glyphs.
+	(gnus-picon-transform-address): Ditto.
+	(gnus-picon-insert-glyph): Ditto.
+	(gnus-picon-transform-newsgroups): Toggle.
+	(gnus-picon-transform-address): Toggle.
+
+	* gnus-ems.el (gnus-remove-image): New function.
+	(gnus-put-image): Take an optional string.
+
+	* gnus-util.el (gnus-text-with-property): New function.
+
+	* gnus-art.el (gnus-delete-images): New function.
+
+	* gnus-ems.el (gnus-article-display-xface): Mark and store image.
+
+	* gnus-art.el (gnus-article-wash-status-entry): Renamed.
+	(gnus-article-wash-status): Use it.
+	(gnus-signature-toggle): Clean up.
+	(gnus-add-wash-status): New function.
+	(gnus-delete-wash-status): New function.
+	(gnus-article-hide-text-type): Use them throughout.
+	(gnus-add-image): New function.
+
+	* gnus-ems.el (gnus-article-display-xface): Use new interface.
+
+	* gnus-xmas.el (gnus-xmas-article-display-xface): Use new
+	interface.
+
+	* gnus-art.el (article-display-x-face): Cleaned up.
+
+	* rfc2047.el (rfc2047-field-value): New function.
+
+	* mail-parse.el (mail-header-field-value): New alias.
+
+	* gnus-art.el (gnus-mime-print-part): Fix typos.
+
+	* smiley-ems.el (gnus-smiley-file-types): New variable.
+	(smiley-update-cache): Use it.
+	(smiley-regexp-alist): Suffix-less smiley names.
+	(smiley-regexp-alist): Added more smileys.
+
+	* gnus-sum.el (gnus-print-buffer): Made into own function.
+	(gnus-summary-print-article): Use it.
+
+	* mailcap.el (mailcap-mime-info): Actually return the bit that we
+	looked for when REQUEST is a string.
+
+	* gnus-art.el (gnus-mime-button-commands): Add printing
+	keystroke.
+	(gnus-mime-copy-part): Doc fix.
+	(gnus-mime-print-part): New command.
+
+2001-12-31  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-parse-fetch): Notice empty flags responses.  From
+	Nic Ferrier <nferrier@tf1.tapsellferrier.co.uk>.
+
+2001-12-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-picon.el (gnus-treat-from-picon): Autoload.
+	(picon): Fix doc.
+
+	* gnus-win.el (gnus-window-to-buffer): gnus-picon-buffer-name no
+	longer exists. Remove those codes.
+	* gnus.el (gnus-use-picons): Ditto.
+
+2001-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-treat-fold-newsgroups): Don't
+	infloop.
+
+	* gnus-sum.el (t): New `W D' map.
+
+	* gnus-art.el (gnus-treat-fold-newsgroups): New variable.
+	(gnus-article-treat-body-boundary): Clean up.
+	(gnus-body-boundary-face): Removed.
+	(gnus-article-goto-header): Moved here.
+	(gnus-article-goto-header): Allow better regexps.
+	(gnus-article-treat-fold-newsgroups): New command.
+
+	* gnus-sum.el (gnus-summary-move-article): We have to select an
+	article to give `gnus-read-move-group-name' an opportunity to
+	suggest an appropriate default.
+
+	* rfc2047.el (rfc2047-fold-line): New function.
+	(rfc2047-unfold-line): Ditto.
+	(rfc2047-fold-region): Don't fold just after the header name.
+
+	* mail-parse.el (mail-header-fold-line): New alias.
+	(mail-header-unfold-line): Ditto.
+
+	* gnus-art.el (gnus-body-boundary-face): Renamed.
+	(gnus-article-treat-body-boundary): Use it.
+	(gnus-article-treat-body-boundary): Use an invisible header and a
+	line of underline characters.
+
+2001-12-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* ietf-drums.el (ietf-drums-parse-addresses): Recover from errors.
+
+	* gnus-picon.el (gnus-picon-transform-address): Skip bad addresses.
+	(gnus-picon-split-address): New function.
+	(gnus-picon-find-face): Use it.
+	(gnus-picon-transform-address): Use it. Set first to t for each
+	address.
+
+	* gnus-art.el (gnus-with-article-headers): Move to here. Define
+	the macro then use it.
+	(gnus-treatment-function-alist): Treat picons earlier.
+
+2001-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-body-separator-face): New variable.
+	(gnus-article-treat-body-boundary): Use a blank, colored line.
+
+	* gnus-picon.el (gnus-picon-find-face): Look into misc/MISC as
+	well.
+
+	* gnus-art.el (gnus-treat-body-boundary): New variable.
+	(gnus-article-treat-unfold-headers): Use helper macro.
+	(gnus-article-treat-body-boundary): New command.
+
+	* gnus.el (gnus-logo-color-style): Change the default color.
+	(gnus-splash-face): Gray, gray.
+
+	* gnus-xmas.el (gnus-xmas-group-startup-message): Use general
+	colors.
+
+	* gnus.el (gnus-logo-color-alist): Moved here and renamed.
+	(gnus-logo-color-style): Ditto.
+	(gnus-logo-colors): Ditto.
+
+	* gnus-picon.el (gnus-picon-create-glyph): Cache glyphs.
+
+	* gnus-art.el (gnus-treat-newsgroups-picon): New variable.
+
+	* gnus-picon.el (gnus-treat-newsgroups-picon): New function.
+	(gnus-picon-transform-newsgroups): New function.
+
+	* ietf-drums.el (ietf-drums-parse-addresses): Accept a nil
+	string.
+
+	* gnus-picon.el (gnus-treat-mail-picon): Renamed.
+
+	* gnus-art.el (gnus-treat-cc-picon): New variable.
+	(gnus-treat-mail-picon): Renamed.
+
+	* gnus-picon.el: New implementation.
+	(gnus-picon-find-face): Renamed.
+	(gnus-treat-from-picon): Use it.
+	(gnus-picon-transform-address): Renamed.
+	(gnus-treat-from-picon): Use it.
+	(gnus-picon-create-glyph): Renamed.
+	(gnus-picon-transform-address): Use it.
+	(gnus-treat-cc-picon): New command.
+
+	* mm-decode.el (mm-create-image-xemacs): Separated out into
+	function.
+	(mm-get-image): Use it.
+
+	* gnus-art.el (gnus-treat-display-picons): Simplify.
+	(gnus-treat-from-picon): Renamed.
+
+	* gnus-ems.el (gnus-create-image): New function.
+	(gnus-put-image): New function.
+
+	* gnus-art.el (gnus-article-treat-unfold-headers): Doc fix.
+	(gnus-with-article-headers): New macro.
+	(gnus-article-goto-header): New function.
+
+	* gnus-xmas.el (gnus-image-type-available-p): New function.
+
+	* gnus-ems.el (gnus-image-type-available-p): New function.
+
+2001-12-30  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-check-group): Find the correct tag, because
+	xml.el is changed.
+
+2001-12-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-article-treat-unfold-headers): Only fold when
+	lines are shorter than the window width.
+	(gnus-ignored-headers): More headers.
+
+2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-treat-unfold-lines): New variable.
+	(gnus-treat-unfold-headers): Renamed.
+	(gnus-article-treat-unfold-headers): New command and keystroke.
+
+	* rfc2047.el (rfc2047-encode-message-header): Clean up.
+
+	* gnus-int.el (gnus-open-server): Mark quit-ed server as denied.
+
+2001-12-29  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* sha1-el.el (sha1-use-external): New variable.
+	(sha1-region): Use it.
+	(sha1-string): Ditto.
+
+	* dgnushack.el (dgnushack-compile): Compile gnus-picon for Emacs.
+	* gnus-picon.el: Less warnings when compile.
+
+2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-picon.el (gnus-picons-news-directories): Removed obsolete
+	alias.
+	(gnus-picons-database): Default to list.
+	(gnus-picons-lookup-internal): Use it.
+
+	* nnmail.el (nnmail-article-group): Default nnmail-split-methods
+	to "bogus".
+
+	* gnus-win.el (gnus-configure-windows-hook): New hook.
+
+2001-12-29  Sascha L,A|(Bdecke  <sascha@meta-x.de>
+
+	* gnus-win.el (gnus-configure-windows): Minimize tree buffer.
+
+2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-update-marks): Don't uncompress the seen
+	lists.
+	(gnus-select-newsgroup): Don't append; push.
+	(gnus-adjust-marked-articles): Remove obsolete ranges from
+	`seen'.
+	(gnus-update-marks): Clean up.
+	(gnus-select-newsgroup): Don't stomp gnus-newsgroup-seen.
+
+2001-12-29  Frank Schmitt  <usereplyto@Frank-Schmitt.net>
+
+	* gnus-sum.el (gnus-summary-limit-to-age): Allow negative days.
+
+2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-auto-select-subject): New variable.
+	(gnus-summary-best-unread-subject): New function.
+	(gnus-summary-best-unread-article): Use it.
+	(gnus-summary-first-unseen-subject): New function and command.
+
+	* gnus-art.el (gnus-treatment-function-alist): Emphasize after
+	other treatments.
+
+	* gnus-util.el (gnus-put-overlay-excluding-newlines): New
+	function.
+
+	* gnus-art.el (gnus-article-show-hidden-text): Remove the type
+	from the list of hidden types.
+
+	* mm-view.el (mm-inline-text): Ditto.
+	(mm-inline-text): Ditto.
+	(mm-w3-prepare-buffer): Ditto.
+
+	* gnus-art.el (article-wash-html): Inhibit more remote fetching.
+
+2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-ignored-headers): Added more headers.
+
+2001-12-29  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus-srvr.el (gnus-browse-foreign-server): Compute the prefix
+	once.
+
+2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-srvr.el (gnus-server-browse-in-group-buffer): Doc fix.
+
+2001-12-28  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-srvr.el (gnus-browse-foreign-server): Fix typo.  From
+	Jesper Harder <harder@ifa.au.dk>.
+
+2001-12-27  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-select-newsgroup): Make
+	`gnus-newsgroup-unseen' sorted.  Make `gnus-newsgroup-unseen'
+	contain all articles (instead of none) when no seen marks have
+	been set for the group.
+	(gnus-update-marks): Use `gnus-range-add' on a uncompressed list
+	instead, it seems to result in shorter ranges.
+
+2001-12-26 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-iso-8859-x-to-15-region): Use
+	insert-before-markers.
+	From Jesper Harder <harder@ifa.au.dk>
+
+2001-12-26  Paul Jarc  <prj@po.cwru.edu>
+
+	* nnmaildir.el (nnmaildir-save-mail): create the destination
+	groups if they do not exist.
+
+2001-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* canlock.el (canlock-sha1-with-openssl): Remove unused variable.
+
+2001-12-22 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-read-ephemeral-group): Call
+	gnus-group-real-name.
+
+	* gnus-sum.el (gnus-decode-encoded-word-methods): Backslash paren.
+	(gnus-newsgroup-variables): Ditto.
+
+	* gnus.el (gnus-group-prefixed-name): If group name is prefixed,
+	return it.
+
+2001-12-21  Paul Jarc  <prj@po.cwru.edu>
+
+	* gnus.el (gnus-valid-select-methods): Include nnmaildir.
+	* nnmaildir.el (top-level): Add commentary.
+	(nnmaildir-version): Indicate that nnmaildir is now a standard
+	part of Gnus, not separately released.
+
+2001-12-21 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el, gnus-picon.el, gnus-sieve.el, gnus-sum.el:
+	* gnus-xmas.el, imap.el, mailcap.el, mm-util.el, nnfolder.el:
+	* nnheader.el, nnmail.el: Nil/NIL vs. nil.
+	From  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
+
+2001-12-20 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmaildir.el: Copyright changes. Require cl only at compile time.
+
+2001-12-20  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (top-level): Don't require cl.  Suggested by ShengHuo
+	ZHU <zsh@cs.rochester.edu>.
+	(nnimap-close-group): Don't quote KEYLIST items.  Suggested by
+	Brian P Templeton <bpt@tunes.org>.
+
+2001-12-19 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmaildir.el: New file.
+	From Paul Jarc <prj@po.cwru.edu>.
+
+2001-12-19 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndoc.el (nndoc-type-alist): Move forward to the end.
+
+2001-12-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.el (gnus-find-subscribed-addresses): Replace `mapc' with
+	`dolist'.
+
+2001-12-19 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-win.el (gnus-frames-on-display-list): New function.
+	(gnus-get-buffer-window): Use it.
+
+2001-12-19 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnwarchive.el (nnwarchive-mail-archive-xover): Fix the regexp.
+
+2001-12-18 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-win.el (gnus-get-buffer-window): Use gnus-delete-if.
+
+2001-12-18 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	   From Harald Meland <Harald.Meland@usit.uio.no>
+
+	* gnus-win.el (gnus-get-buffer-window): New function.
+	(gnus-all-windows-visible-p): Use it.
+
+	* gnus-util.el (gnus-horizontal-recenter)
+	(gnus-horizontal-recenter, gnus-horizontal-recenter)
+	(gnus-horizontal-recenter, gnus-set-window-start): Use it.
+
+	* gnus-score.el (gnus-score-insert-help): Use it.
+
+	* gnus-salt.el (gnus-tree-recenter, gnus-generate-tree)
+	(gnus-generate-tree, gnus-highlight-selected-tree)
+	(gnus-highlight-selected-tree, gnus-tree-highlight-article): Use
+	it.
+
+	* gnus-art.el (gnus-article-set-window-start)
+	(gnus-mm-display-part, gnus-request-article-this-buffer)
+	(gnus-button-next-page, gnus-button-prev-page)
+	(gnus-article-button-next-page, gnus-article-button-prev-page):
+	Use it.
+
+2001-12-18  Josh Huber  <huber@alum.wpi.edu>
+
+	* ChangeLog, ChangeLog.1, nnwfm.el, smiley.el:
+	* gnus-cite.el, gnus-delay.el, gnus-spec.el, message.el:
+	* mml1991.el, nnultimate.el: Removed buffer-file-coding-system tag.
+
+2001-12-18 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* ChangeLog,  ChangeLog.1, nnwfm.el,  gnus-smiley.el:
+	* gnus-cite.el, gnus-delay.el, gnus-spec.el, message.el:
+	* mml1991.el, nnultimate.el: Add `coding'.
+
+2001-12-17  Josh Huber  <huber@alum.wpi.edu>
+
+	* ChangeLog: changed coding to buffer-file-coding-system
+	* ChangeLog.1: same
+	* nnwfm.el: same
+	* gnus-smiley.el: same
+	* gnus-cite.el: moved -*- magic cookie -*- to Local Variables
+	* gnus-delay.el: same
+	* gnus-spec.el: same
+	* message.el: same
+	* mml1991.el: same
+	* nnultimate.el: same
+
+2001-12-16  Simon Josefsson  <jas@extundo.com>
+	Inspired by code by Dirk Meyer <dischi@tzi.de>.
+
+	* gnus-sum.el (gnus-summary-muttprint-program): New variable.
+	(gnus-summary-save-map): Add muttprint.
+	(gnus-summary-make-menu-bar): Ditto.
+	(gnus-summary-muttprint): New function.
+
+	* gnus-art.el (gnus-summary-pipe-to-muttprint): New function.
+
+2001-12-14 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* uudecode.el (uudecode-decode-region-internal): Speedup by using
+	temporary list instead of buffer.
+
+	* mm-url.el (executable-find): autoload.
+
+2001-12-12  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
+
+	* gnus-mlspl.el (gnus-group-split-fancy): Doc fix (add reference
+	to variable, follow doc-string conventions).
+
+2001-12-13  Josh Huber  <huber@alum.wpi.edu>
+
+	* gnus-cus.el (gnus-extra-topic-parameters): added topic parameter
+	subscribe-level
+	* gnus-topic.el (gnus-subscribe-topics): use it.
+
+2001-12-13 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-summary-mail-forward): Forward all marked
+	messages. (A small patch with indentation)
+	From Sean Neakums <sneakums@zork.net>.
+
+	* gnus-uu.el (gnus-uu-grab-articles): Set gnus-current-article to
+	nil after shooting down the gnus-original-article-buffer.
+
+2001-12-13 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* uudecode.el (uudecode-use-external): New variable.
+	(uudecode-decode-region): Automatically detect external program.
+
+	* binhex.el (binhex-use-external): New variable.
+	(binhex-decode-region-internal): New function.
+	(binhex-decode-region): Automatically detect external program.
+
+	* mm-uu.el (mm-uu-decode-function,mm-uu-binhex-decode-function):
+	Use them.
+
+2001-12-12  Simon Josefsson  <jas@extundo.com>
+
+	* nnvirtual.el (nnvirtual-always-rescan)
+	(nnvirtual-component-regexp): Fix doc.
+
+	* nnoo.el (defvoo): Add doc to defvoo variables.
+
+	* nnml.el (nnml-directory, nnml-active-file)
+	(nnml-newsgroups-file, nnml-get-new-mail, nnml-nov-is-evil)
+	(nnml-marks-is-evil, nnml-filenames-are-evil)
+	(nnml-prepare-save-mail-hook, nnml-inhibit-expiry): Fix doc.
+
+	* nnmh.el (nnmh-directory, nnmh-get-new-mail)
+	(nnmh-prepare-save-mail-hook, nnmh-be-safe): Fix doc.
+	(nnmh-possibly-change-directory): Use `nnheader-report' instead of
+	`error'.
+
+	* nnmbox.el (nnmbox-mbox-file, nnmbox-active-file)
+	(nnmbox-get-new-mail, nnmbox-prepare-save-mail-hook):
+
+	* nnfolder.el (nnfolder-directory, nnfolder-active-file)
+	(nnfolder-newsgroups-file, nnfolder-get-new-mail)
+	(nnfolder-save-buffer-hook, nnfolder-inhibit-expiry)
+	(nnfolder-nov-is-evil, nnfolder-marks-is-evil): Fix doc.
+
+	* nnbabyl.el (nnbabyl-mbox-file, nnbabyl-active-file)
+	(nnbabyl-get-new-mail, nnbabyl-prepare-save-mail-hook): Fix doc.
+
+	* imap.el, nnimap.el: Fix indentation.
+
+	* gnus-sieve.el (gnus-sieve-article-add-rule): Autoload it.
+
+2001-12-12  Didier Verna  <didier@xemacs.org>
+
+	* gnus-msg.el (gnus-group-news): New function.
+	* gnus-group.el (gnus-group-mode-map): bind it to `i'.
+	* gnus-group.el (gnus-group-make-menu-bar): add a menu item for it.
+	* gnus-salt.el (gnus-carpal-group-buffer-buttons): add a button
+	for it.
+	* gnus-msg.el (gnus-summary-news-other-window): New function.
+	* gnus-msg.el ((gnus-summary-send-map "S" gnus-summary-mode-map)):
+	bind it to `i'.
+	* gnus-sum.el (gnus-summary-mode-map): bind it to `i'.
+	* gnus-sum.el (gnus-summary-make-menu-bar): add a menu item for it.
+	* gnus-salt.el (gnus-carpal-summary-buffer-buttons): add a button
+	for it (called with a prefix).
+	* gnus-msg.el (gnus-configure-posting-styles): add an optional
+	group-name argument.
+	* gnus-msg.el (gnus-setup-message): use it.
+
+2001-12-12 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-show-article): Fix doc.
+
+2001-12-10 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mime-to-mml): Remove Content-Disposition too.
+
+2001-12-09 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-buffer-name): Decode group name.
+	* gnus-group.el (gnus-group-name-decode): Decode unibyte
+	strings only.
+	From TSUCHIYA Masatoshi <tsuchiya@namazu.org>
+
+2001-12-08  Nevin Kapur  <nevin@jhu.edu>
+
+	* nnmail.el (nnmail-fancy-expiry-targets): New variable.
+	(nnmail-fancy-expiry-target): Use it.
+	Suggestions from Simon Josefsson <jas@extundo.com>.
+
+2001-12-07 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-show-article): Recount lines if not exist.
+
+2001-12-07 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnwfm.el (nnwfm-create-mapping): Use gnus-url-unhex-string.
+
+	* gnus-util.el (gnus-url-unhex-string): Move here.
+
+2001-12-07 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-decode-entities-unibyte-string): Use
+	mm-url-decode-entities-nbsp.
+
+	* nnlistserv.el, nnultimate.el, nnwarchive.el, nnweb.el:
+	* webmail.el, nnwfm.el: Use mm-url.
+
+	* mm-url.el (mm-url-fetch-form): Move from nnweb.
+	(mm-url-remove-markup): Move from nnweb.
+	(mm-url-fetch-simple): Move from webmail.
+
+	* nnslashdot.el (nnslashdot-request-post): Use mm-url-fetch-form.
+
+2001-12-07 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-print-truncate-and-quote): New function.
+	(gnus-summary-print-article): Use it.
+
+	* gnus-util.el (gnus-replace-in-string): Typo.
+
+2001-12-06 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnweb.el (nnweb-replace-in-string): Removed.
+
+	* gnus-util.el (gnus-replace-in-string): New function.
+	(gnus-mode-string-quote): Use it.
+
+	* nnrss.el (nnrss-format-string): Use gnus-replace-in-string.
+	* nnwfm.el (nnwfm-create-mapping): Ditto.
+
+2001-12-06 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* dgnushack.el (dgnushack-compile): nnrss.el and
+	nnslashdot.el don't depend on nnweb, url, w3.
+
+	* nnrss.el: Use mm-url.
+
+2001-12-06 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-url.el (mm-url-insert-file-contents): Support file:.
+
+2001-12-05 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-view.el: Lower case for the description line. Sync from the
+	Emacs CVS.
+
+2001-12-05 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-find-new-groups): Fix doc.
+	From:  Stefan Monnier  <monnier@cs.yale.edu>
+
+2001-12-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-view.wl (mm-inline-text): Decode a charset-encoded rich text.
+
+2001-12-04 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-url.el: Require executable.
+	Suggested by Katsumi Yamaoka <yamaoka@jpl.org>.
+
+2001-12-03 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* pop3.el (pop3-munge-message-separator): Only use valid date.
+	Trivial patch from Michael Welsh Duggan <md5i@cs.cmu.edu>.
+
+	* Makefile.in: gnus-load.elc may not be generated.
+
+2001-12-03 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-url.el: New file.
+	* nnslashdot.el: Use it.
+	* mm-extern.el (mm-extern-url): Use it.
+
+2001-12-01 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-save-article): Nix
+	gnus-display-mime-function and gnus-article-prepare-hook.
+
+	* gnus-spec.el (gnus-parse-complex-format): Properly handle %C at
+	the beginning of lines.
+	(gnus-complex-form-to-spec): Ditto.
+
+2001-12-01 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-make-mft): Fix the m-s-a-file regexp.
+	From Paul Jarc <prj@po.cwru.edu>.
+
+2001-11-30 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el: New variable message-subscribed-address-file;
+	use it in message-make-mft.  From Paul Jarc <prj@po.cwru.edu>.
+
+2001-11-30 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-tab-body-function): Set to nil.
+	(message-tab): Use text-mode-map or global-map.
+	Suggested by Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>.
+
+2001-11-30  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-agent.el (gnus-agent-fetch-headers): Use gnus-range-add
+	instead of gnus-union, for speed.  Suggested by Christoph Conrad
+	<christoph.conrad@gmx.de>.
+	(gnus-agent-fetch-group-1): Add verbose message.
+
+2001-11-29 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-write-active): Make sure sym is a cons
+	of integers.
+
+2001-11-29  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-newgroups-header-regexp)
+	(message-completion-alist, message-tab-body-function): Use
+	defcustom rather than defvar.
+	(message-tab): Mention `message-tab-body-function' in doc.
+	Suggested by Karl Eichwalder.
+
+2001-11-28 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-uu.el (gnus-uu-save-article): Use #part instead of #mml.
+
+2001-11-28 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnheader.el (nnheader-find-nov-line): Don't use macro
+	gnus-delete-line.
+
+	* gnus-group.el (gnus-group-name-decode): Defun instead of defsubst.
+	(gnus-group-name-charset): Ditto.
+
+	* gnus-util.el (gnus-buffer-live-p): Ditto.
+
+2001-11-28 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* sieve-manage.el (sieve-manage-stream-alist): Backslash before
+	open parenthesis in doc.
+	(sieve-manage-authenticator-alist): Typo in doc.
+	* imap.el (imap-authenticator-alist): Typo in doc.
+	(imap-stream-alist): Backslash.
+
+	* gnus-sum.el (gnus-summary-limit-to-author): Missing arguments.
+	  Thanks to david.goldberg6@verizon.net (David S. Goldberg)
+
+2001-11-27 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-topic.el (gnus-topic-mode): Add LOCAL for add-hook.
+
+	* message.el (message-mode): make-local-hook is harmless in Emacs 21.
+
+	* gnus-msg.el (gnus-configure-posting-styles): use
+	make-local-hook. Add LOCAL for add-hook.
+
+2001-11-27  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-mode): Use `make-local-hook' unless
+	obsolete.
+	Patch by Katsumi Yamaoka <yamaoka@jpl.org>.
+
+2001-11-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* canlock.el: Remove sha1.el and base64.el stuff.
+
+2001-11-26  Didier Verna  <didier@xemacs.org>
+
+	* nnmbox.el (nnmbox-create-mbox): create the mbox file directory
+	if needed.
+
+2001-11-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-tamago-not-in-use-p): New function.
+	(message-strip-forbidden-properties): Use it.
+
+2001-11-26  Didier Verna  <didier@xemacs.org>
+
+	* gnus-start.el (gnus-check-first-time-used): only check for
+	existence of .el[d] files.
+
+2001-11-25 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-coding-system-priorities): Add backslash in the doc.
+
+	* message.el (message-setup-1): Clean up mc-*.
+
+2001-11-25 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-directory-sep-char-regexp): New variable.
+	* gnus-score.el (gnus-score-find-bnews): Use it.
+
+	* gnus-sum.el (gnus-summary-limit-to-subject): An exclusion version.
+	(gnus-summary-limit-to-author): Ditto.
+	(gnus-summary-limit-to-extra): Ditto.
+	(gnus-summary-find-matching): Support not-matching argument.
+
+2001-11-25  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-wash-subject): Use `insert' rather than
+	`insert-string', which is deprecated.
+
+2001-11-24  Simon Josefsson  <jas@extundo.com>
+
+	* mm-encode.el (mm-encode-content-transfer-encoding): Fix error
+	message. (Gnus does not "default" to using 8bit for the message,
+	it default to use 8bit encoding and the user-supplied CTE
+	value. Calling this behaviour "treating it as 8bit" is perhaps
+	better.)
+
+	* mm-bodies.el (mm-body-encoding): Intern encoding if needed
+	(compare mm-charset-to-coding-system).
+
+2001-11-23 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* canlock.el (canlock-sha1-with-openssl): Use unibyte
+	buffer. Correctly decode hex.
+
+2001-11-21 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-category-insert-line): Convert category
+	names to strings.
+
+2001-11-20 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (sha1): eval-and-compile.
+
+2001-11-20  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-allow-no-recipients): New variable.
+	(message-send): Use it, customize the prompting when posting to
+	Gcc/Fcc alone.  From prj@po.cwru.edu (Paul Jarc).
+
+2001-11-20 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-coding-system-priorities): New variable.
+	(mm-sort-coding-systems-predicate): New function.
+	(mm-find-mime-charset-region): Resort coding systems if needed.
+	Suggested by Katsumi Yamaoka <yamaoka@jpl.org>.
+
+2001-11-20  Didier Verna  <didier@xemacs.org>
+
+	* gnus-group.el (gnus-group-make-help-group): new optional
+	argument to control the error behavior.
+	* gnus-start.el (gnus-check-first-time-used): use it to avoid
+	erroring.
+
+2001-11-19  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-mode-map): Use C-c C-f C-i for Importance:
+	instead of C-c C-u.  Suggested by Per Abrahamsen
+	<abraham@dina.kvl.dk>.
+
+2001-11-18 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-read-folder): Use group instead of
+	nnfolder-current-group.
+	Suggested by K,Ba(Broly L,Bu(Brentey <lorentey@elte.hu>.
+
+2001-11-17  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-send): Ask user if Fcc/Gcc should be
+	performed when no other sender was specified.
+	Suggested by prj@po.cwru.edu (Paul Jarc).
+
+2001-11-17  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-mode, message-mode-map): Use C-c C-u for
+	Importance: instead of C-c C-p (used by SC).
+
+2001-11-16  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-insert-importance-high)
+	(message-insert-importance-low): Save point.
+
+	* mail-source.el (mail-source-fetch-imap): Fix BODY.PEEK return
+	value.
+
+2001-11-16  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-strip-special-text-properties): New option.
+	(message-strip-forbidden-properties): Obey it.
+
+2001-11-14  Sam Steingold  <sds@gnu.org>
+
+	* gnus-score.el: Fixed some doc strings to properly quote symbols.
+
+2001-11-15  Simon Josefsson  <jas@extundo.com>
+
+	Support "Importance:" header in Message.
+
+	* message.el (message-mode-map): Bind C-c C-p to
+	`message-insert-or-toggle-importance'
+	(message-mode-menu): Add message-insert-importance-{high,low}.
+	(message-insert-importance-high, message-insert-importance-low)
+	(message-insert-or-toggle-importance): New functions.
+	(message-tool-bar-map): Add {un,}important.
+	(message-mode): Doc fix.
+
+2001-11-15  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-tool-bar-map): Fix attach toolbar tooltip.
+
+	* mml.el (mml-menu): Fix toolbar tooltip.
+
+2001-11-15 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-save-marks): gnus-prin1 takes one argument.
+	* nnml.el (nnml-save-marks): Ditto.
+
+	* gnus-sum.el (gnus-newsgroup-variables): Fix doc.
+
+2001-11-15  Simon Josefsson  <jas@extundo.com>
+
+	* nnml.el (nnml-save-marks):
+	* nnfolder.el (nnfolder-save-marks): Use `gnus-prin1'.
+	Suggested by Istvan Marko <mi-gnus@imarko.dhs.org>.
+
+2001-11-15  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-art.el (gnus-article-wash-status-strings): Use
+	`copy-sequence', not `copy-seq'.
+
+2001-11-15  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-art.el (gnus-article-wash-status-strings): New constant.
+	(gnus-gnus-article-wash-status-entry): New function.
+	(gnus-article-wash-status): Use it.
+
+2001-11-13 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml1991.el: Add coding header.
+
+2001-11-12  Simon Josefsson  <jas@extundo.com>
+
+	* mml1991.el (mml1991-use, mml1991-function-alist): New variables.
+	(mml1991-gpg-sign, mml1991-gpg-encrypt): Renamed, from
+	`mml1991-sign' and `mml1991-encrypt'.
+	(mml1991-encrypt, mml1991-sign): New glue functions.
+	(mml1991-mailcrypt-sign, mml1991-mailcrypt-encrypt): New functions.
+
+	* mml.el (mml-mode-map): `C-c RET o' map for PGP.
+	(mml-menu): Add PGP to menu.
+
+	* mml-sec.el (top-level): Require mml1991.  Don't require smime.
+	(mml-sign-alist, mml-encrypt-alist): Add "pgp".
+	(mml-pgp-sign-buffer, mml-pgp-encrypt-buffer)
+	(mml-secure-sign-pgp, mml-secure-encrypt-pgp): New glue functions.
+
+	* mml2015.el: Mention RFC 3156.
+
+	* mml1991.el: New file.  From Sascha L,A|(Bdecke <sascha@meta-x.de>.
+
+2001-11-12 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-auto-subscribed-groups): Use ^nnml.
+
+	* gnus-sum.el (gnus-summary-move-article): Use number-to-string.
+	  From <Michael.Cook@cisco.com>
+
+2001-11-11  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (top-level): Autoload sha1.
+	(message-canlock-generate): Use sha1 instead of md5 (sha1 used by
+	canlock, no need to require two different hash algs).  Suggested
+	by Ferenc Wagner <wferi@bolyai1.elte.hu>.
+
+2001-11-09  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.el (gnus-local-domain): Fix doc.  From Pavel Jan,Am(Bk
+	<Pavel@Janik.cz>.
+
+2001-11-09  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-point-in-header-p): New function.
+	(message-do-auto-fill): Use it.
+	(message-beginning-of-line): New function.  Goes to beginning of
+	header value (i.e., end of header name), or to beginning of line
+	if already at beginning of value.  Behaves like
+	`beginning-of-line' when in message body.
+	(message-mode-map): Bind it.
+
+2001-11-08  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-msg.el (gnus-posting-styles): Add doc.
+
+2001-11-07  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sieve.el (gnus-sieve-generate): Don't invoke sieve-mode.
+
+	* sieve-mode.el (sieve-control-commands-face)
+	(sieve-control-commands-face, sieve-action-commands-face)
+	(sieve-test-commands-face, sieve-tagged-arguments-face): New
+	faces.
+	(sieve-font-lock-keywords): Use them.
+	(sieve-mode): Only set font-lock-defaults in emacs.
+
+	* gnus-art.el (gnus-default-article-saver): Add
+	gnus-summary-save-body-in-file.
+	(gnus-summary-write-to-file): Fix doc.
+
+2001-11-07  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-art.el (gnus-treat-highlight-signature): Add cross
+	reference to the correct chapter in the manual.
+
+	* mml.el (mml-mode): Add cross reference to Emacs MIME manual.
+	Suggested by "Golubev I. N." <gin@mo.msk.ru>.
+
+2001-11-07 06:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-preview): Bind mail-header-separator.
+
+2001-11-07  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el: Always require canlock.
+	(message-ignored-supersedes-headers): Include Cancel-Lock and
+	Cancel-Key.
+	(message-insert-canlock): Don't require canlock.
+	(message-cancel-news): Don't check whether canlock is available.
+	(message-supersede): Support cancel-locks.
+
+	* gnus-art.el: Don't autoload canlock.
+
+2001-11-06 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mail-source.el (mail-source-fetch-imap): ASYNC param.
+	From: <andre@slamdunknetworks.com>
+
+2001-11-06 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* many files: Fix copyright lines.
+
+2001-11-05 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-generate-mime-1): Use mm-with-unibyte-current-buffer.
+	Suggested by Dave Love  <fx@gnu.org>.
+
+2001-11-04 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-kill-buffer): Remove auto-save file after
+	confirm.
+
+	* message.el (message-send-mail): Call message-generate-headers
+	once.  Suggested by Matt Armstrong <matt@lickey.com>.
+
+	* gnus-topic.el (gnus-topic-rename): Initial-input.
+	Suggested by Katsuhiro Hermit Endo <hermit@koka-in.org>.
+
+2001-11-03  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-forbidden-properties): New constant.
+	(message-strip-forbidden-properties): New function.
+	(message-mode): Activate it.
+
+2001-11-02 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-iso-8859-15-compatible): Fix doc.
+	(mm-hack-charsets): Fix doc.
+
+2001-11-02  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-int.el (gnus-check-server): Message "...done" when done.
+
+	* imap.el (imap-close): Don't message (imap-send-command-wait
+	returns if the connection is dropped).
+	(imap-wait-for-tag): Nix out message only when necessary.
+
+	* gnus-sieve.el (gnus-sieve-script): Use "stop" instead of "elsif"
+	for non-crossposting.
+	(gnus-sieve-crosspost): Default to t to be consistent with other
+	parts of Gnus.
+
+2001-11-01 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-iso-8859-15-compatible): Add inconvertible chars.
+	(mm-iso-8859-x-to-15-table): Ditto.
+	(mm-iso-8859-x-to-15-region): Ditto.
+	(mm-find-mime-charset-region): Ditto.
+
+2001-11-01  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-close-asynchronous): New variable.
+	(nnimap-close-group): Use it.
+	(nnimap-expunge): Don't use it.
+
+	* imap.el (imap-callbacks): New variable.
+	(imap-remassoc): Copied from `gnus-remassoc'.
+	(imap-add-callback): New function.
+	(imap-mailbox-expunge, imap-mailbox-close): Support asynchronous
+	behaviour.
+	(imap-parse-response): Call the callback.
+
+	* message.el (message-insert-canlock): New variable.
+	(message-canlock-generate, message-canlock-password)
+	(message-insert-canlock): New functions.
+	(message-send-news): Call `message-insert-canlock'.
+	(top-level): Require canlock when compiling.
+	(message-insert-canlock): Require canlock before we need it.
+
+2001-11-01 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-copy-article-buffer): Copy sequence.
+
+2001-11-01 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* dgnushack.el (dgnushack-make-load): A workaround for
+	custom-add-loads bug in some versions of XEmacs.
+
+2001-11-01 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-charset-synonym-alist): Revert (some).
+
+2001-11-01 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-iso-8859-x-to-15-region): New function.
+	(mm-hack-charsets): New variable.
+	(mm-iso-8859-15-compatible): New variable.
+	(mm-iso-8859-x-to-15-table): New variable.
+	(mm-find-mime-charset-region): Add parameter hack-charsets.
+
+	* mm-bodies.el (mm-encode-body): Use it.
+	* mml.el (mml-parse-1): Ditto.
+
+2001-11-01  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-make-menu-bar): Add Sieve.
+
+2001-11-01 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-charset-to-coding-system): Return nil, if charset
+	is nil.
+
+2001-11-01 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* smiley-ems.el (smiley-update-cache): Auto detect file type.
+
+	* message.el (message-forward-rmail-make-body): Use
+	save-window-excursion.
+	(message-encode-message-body): Search with noerror.
+	(message-setup-1): Convert compose-mail send-actions to
+	message-send-actions.
+
+2001-11-01  Simon Josefsson  <jas@extundo.com>
+
+	* sieve.el: Don't require easy-mmode. Suggested by Katsumi Yamaoka
+	<yamaoka@jpl.org>.
+
+2001-10-31 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* sieve-manage.el (sieve-string-bytes): No complain.
+
+2001-11-01  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-mode-map): Bind "D u" to
+	`gnus-sieve-update' and "D g" to `gnus-sieve-generate'. (Functions
+	has autoload cookies, so no `require' should be necessary.)
+
+	* sieve.el, sieve-mode.el, sieve-manage.el, gnus-sieve.el: New
+	files.
+
+2001-10-31  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-cus.el (gnus-group-parameters): Support integer `display'
+	parameter.
+
+	* gnus-sum.el (gnus-select-newsgroup): If group parameter
+	`display' is a number (and C-u wasn't used to enter group), only
+	fetch that number of articles.
+
+2001-10-31  Matt Armstrong  <matt@lickey.com>
+
+	* gnus.el (gnus-find-subscribed-addresses): Doc fix:
+	not-subscribed -> subscribed.
+
+2001-10-31 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From: Josh Huber <huber@alum.wpi.edu>
+
+	* message.el (message-subscribed-address-functions): New variable.
+	(message-subscribed-addresses): New variable.
+	(message-subscribed-regexps): New variable.
+	(message-goto-mail-followup-to): New function.
+	(message-send-mail): Add Mail-Followup-To.
+	(message-make-mft): New function.
+
+	* gnus.el (gnus-find-subscribed-addresses): New function.
+
+2001-10-31 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mail-source.el (mail-source-fetch): If debug, don't regain signals.
+	(mail-source-fetch-pop): Ditto.
+	(mail-source-check-pop): Ditto.
+
+	* gnus-start.el (gnus-read-init-file): Ditto.
+	(gnus-activate-group): Ditto.
+	(gnus-read-newsrc-el-file): Ditto.
+
+2001-10-30 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-get-reply-headers): Make sure there is ", ".
+
+	* mm-util.el (mm-mime-mule-charset-alist): Move down and call
+	mm-coding-system-p. Don't correct it only in XEmacs.
+	(mm-charset-to-coding-system): Use mm-coding-system-p and
+	mm-get-coding-system-list.
+	(mm-emacs-mule, mm-mule4-p): New variables.
+	(mm-enable-multibyte, mm-disable-multibyte,
+	mm-enable-multibyte-mule4, mm-disable-multibyte-mule4,
+	mm-with-unibyte-current-buffer,
+	mm-with-unibyte-current-buffer-mule4): Use them.
+	(mm-find-mime-charset-region): Treat iso-2022-jp.
+
+	From  Dave Love  <fx@gnu.org>:
+
+	* mm-util.el (mm-mime-mule-charset-alist): Make it correct by
+	construction.
+	(mm-charset-synonym-alist): Remove windows-125[02].  Make other
+	entries conditional on not having a coding system defined for
+	them.
+	(mm-mule-charset-to-mime-charset): Use
+	find-coding-systems-for-charsets if defined.
+	(mm-charset-to-coding-system): Don't use
+	mm-get-coding-system-list.  Look in mm-charset-synonym-alist
+	later.  Add last resort search of coding systems.
+	(mm-enable-multibyte-mule4, mm-disable-multibyte-mule4)
+	(mm-with-unibyte-current-buffer-mule4): Just treat Mule 5 like
+	Mule 4.
+	(mm-find-mime-charset-region): Re-write.
+	(mm-with-unibyte-current-buffer): Restore buffer as well as
+	multibyteness.
+
+2001-10-30 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* canlock.el, sha1-el.el, hex-util.el: Move from contrib
+	directory. Thanks to Katsumi Yamaoka <yamaoka@jpl.org> and Shuhei
+	KOBAYASHI <shuhei@aqua.ocn.ne.jp>.
+
+2001-10-30 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-display-x-face): Nix buffer-read-only
+	again.
+
+	* mml2015.el (mml2015-gpg-verify): Convert <LF> to <CR><LF>.
+
+2001-10-30 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-spec.el (gnus-parse-simple-format): Use
+	  buffer-substring-no-properties.
+
+2001-10-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-verify-cancel-lock): New function.
+
+	* nnheader.el (nntp-process-response): New variable.
+	(nnheader-init-server-buffer): Make `nntp-process-response'
+	buffer-local in `nntp-server-buffer'.
+
+	* nntp.el (nntp-prepare-post-hook): New hook.
+	(nntp-wait-for): Save a server's ID in `nntp-process-response'.
+	(nntp-async-trigger): Ditto.
+	(nntp-request-post): Insert a server's ID if there's no Message-ID
+	header; run `nntp-prepare-post-hook'.
+
+2001-10-30 04:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-decode-group-name): Use nnmail-fetch-field
+	instead.
+
+	* message.el (message-forward-subject-author-subject): Don't use
+	message-news-p, which widens the buffer.
+	(message-forward-make-body): New function.
+	(message-forward): Use it.
+	(message-insinuate-rmail): New function.
+	(message-forward-rmail-make-body): New function.
+
+2001-10-30 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-extern.el (mm-extern): Provide it.
+
+	* mm-partial.el (mm-partial): Provide it.
+
+2001-10-28 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-setup-message): Call post-command-hook.
+
+2001-10-29  Simon Josefsson  <jas@extundo.com>
+
+	* mml.el (mml-preview): Bind message-this-is-news if it is
+	news. From Jesper Harder <harder@myrealbox.com>.
+
+2001-10-28  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-group-make-articles-read): Inline group.
+
+2001-10-29  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* smiley-ems.el (smiley-regexp-alist): Add support for sad and
+	ironic smilies.
+
+2001-10-27  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-indent-citation): Don't add trailing
+	whitespace when citing text.
+
+	* gnus.el (gnus-group-faq-directory): Fix.  From Jesper Harder
+	<harder@ifa.au.dk>.
+
+2001-10-26 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnweb.el (nnweb-possibly-change-server): Create nnweb-hashtb if
+	not available.
+	(nnweb-request-scan): Nix nnweb-hashtb if ephemeral.
+	(nnweb-type-definition): Add google as alias of dejanews.
+	(nnweb-google-parse-1): Forward 1 line.
+
+2001-10-26  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-msg.el (gnus-summary-mail-forward): Doc fix: add pointer to
+	variable `message-forward-ignored-headers'.
+
+2001-10-24  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus.el (gnus-expand-group-parameter): New function.
+	(gnus-expand-group-parameters): Call it.
+	(gnus-group-fast-parameter): New function.
+	(gnus-group-find-parameter): Call it.
+
+2001-10-23  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus.el (gnus-news-group-p): Rewrote.  Now accepts a header
+	vector (it didn't before because of a bug).
+	* gnus-msg.el (gnus-post-news): Use header vector directly, if
+	available.  Before it converted it to an article number.
+
+	This makes followup to news articles with negative numbers in
+	nnvirtual groups use news instead of mail.
+
+2001-10-23  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus.el (post-method): Use `native' instead of `nil'.
+
+	* gnus-msg.el (gnus-post-method): Ditto.
+
+2001-10-23  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus.el (gnus-define-group-parameter): Grammar fix.
+
+2001-10-22  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-msg.el (gnus-extended-version): Include
+	system-configuration.
+	Suggested by Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Gro,b_(Bjohann).
+
+2001-10-22  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus.el (post-method): Customization fix: `native' is not a
+	valid value.
+	* gnus-msg.el (gnus-post-method): Doc and customization fix:
+	`native' is not a valid value.
+
+2001-10-21  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap): Defgroup
+	(nnimap-strict-function, nnimap-strict-function-match): New
+	widget, from Per Abrahamsen  <abraham@dina.kvl.dk>.
+	(nnimap-split-crosspost, nnimap-split-inbox)
+	(nnimap-split-rule, nnimap-split-predicate)
+	(nnimap-split-predicate): Defcustom.
+	(nnimap-split-inbox, nnimap-expunge-search-string)
+	(nnimap-importantize-dormant): Remove "*" from doc.
+
+2001-10-20  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-sum.el (gnus-summary-limit-to-score): Prompt for score if
+	not supplied via prefix arg.  From Lisp, make arg mandatory.
+	Suggested by Frank Schmitt.
+
+2001-10-20  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-do-auto-fill): Avoid calling
+	'rfc822-goto-eoh'.
+
+2001-10-20  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Paul Jarc <prj@po.cwru.edu>.
+
+	* message.el (message-get-reply-headers): Restructure the logic
+	and add comments.  From Paul Jarc <prj@po.cwru.edu>.
+
+2001-10-20  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-cancel-news): Support cancel-locks.
+	Suggested by Per Abrahamsson.
+
+	* nnml.el (nnml-marks-changed-p): Use `equal' when comparing
+	conses.  From David Z Maze <dmaze@MIT.EDU>.
+
+	* nnfolder.el (nnfolder-marks-changed-p): Ditto.
+
+2001-10-19  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* mm-decode.el (mm-default-directory): Fix customize type.
+
+	* message.el (message-setup-fill-variables): Kludge to use
+	normal-auto-fill-function even if auto fill is already activated.
+
+2001-10-19  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-do-auto-fill): New version that does not
+	rely on text properties, by Simon Josefsson <jas@extundo.com>.
+	(message-setup-1): Removed the `message-field' property.
+
+	* gnus-draft.el (gnus-draft-edit-message): Removed the
+	`message-field' property.
+
+2001-10-19  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-draft.el (gnus-draft-edit-message): Change `field' to
+	`message-field'.  The `field' property has a special significance in
+	Emacs 21.
+
+	* message.el (message-send, message-setup-1): Ditto.
+
+2001-10-18  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-group-make-articles-read): Call g-r-set-mark
+	when undoing.
+
+2001-10-18  Simon Josefsson  <jas@extundo.com>
+	From Frank Schmitt <usereplyto@Frank-Schmitt.net>
+
+	* gnus-sum.el (gnus-summary-limit-to-display-predicate): Fix typo.
+	(gnus-summary-make-menu-bar): Ditto.
+
+2001-10-17  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-expiry-target): Make sure it is back to the
+	server. Suggested by ShengHuo ZHU <zsh@cs.rochester.edu>.
+
+2001-10-17 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-line-format-alist): user-date entry.
+	* gnus-util.el (gnus-user-date): New function.
+	From Frank Schmitt <usenet@Frank-Schmitt.net>.
+
+2001-10-17  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-check-news-header-syntax): Special case
+	nnvirtual groups.
+
+	* gnus-sum.el (gnus-summary-respool-default-method): Changed
+	customize type to `symbol'.
+
+2001-10-17 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-spec.el (gnus-parse-simple-format): Support extended spec
+	%&foo;.
+	(gnus-parse-simple-format): Support user extended spec too.
+	%u&foo; invokes gnus-user-format-function-foo.
+
+2001-10-17 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnml.el (nnml-request-expire-articles): Make sure it is back to
+	the server.
+	* nnmbox.el (nnmbox-request-expire-articles): Ditto.
+	* nnfolder.el (nnfolder-request-expire-articles): Ditto.
+	* nnbabyl.el (nnbabyl-request-expire-articles): Ditto.
+	* nndiary.el (nndiary-request-expire-articles): Ditto.
+	(nndiary-schedule): Defsubst it before use it.
+	(nndiary-error): eval-and-compile.
+
+2001-10-17  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-msg.el (gnus-post-method): Changed two instances of
+	`active' to `current' and one `null' to `not'.
+
+2001-10-16  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Katsumi Yamaoka <yamaoka@jpl.org>.
+
+	* message.el (message-setup-fill-variables): Use
+	`normal-auto-fill-function' instead of `auto-fill-function'.
+
+2001-10-16  Simon Josefsson  <jas@extundo.com>
+
+	* mml2015.el (mml2015-fix-micalg): Fix for Mutt-bug.
+	(mml2015-gpg-decrypt-1): Decanonicalize decrypted MIME
+	body. (Mailcrypt seem to do this, but gpg.el doesn't.)
+
+2001-10-16  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	Patch by Oliver Scholz <oscholz@my.gnus.org>.
+
+	* gnus-draft.el (gnus-draft-edit-message): Add text property
+	`field' with value `header' to message headers.
+	* message.el (message-setup-1): Really add text property to all of
+	the header, not just part of it.
+
+2001-09-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el (gnus-group-sort-by-server): Use it.
+
+	* gnus.el (gnus-method-to-full-server-name): New, bogus function.
+
+	* gnus-topic.el (gnus-topic-sort-groups-by-server): New command
+	and keystroke.
+
+2001-10-14  Simon Josefsson  <jas@extundo.com>
+
+	* dig.el: Doc fix.
+
+	* smime.el: Doc fix.
+
+	* gnus-msg.el (gnus-inews-do-gcc): Port header encoded-word
+	charset magic from message.el.
+
+2001-10-12  Simon Josefsson  <jas@extundo.com>
+	Suggested by david.goldberg6@verizon.net (David S. Goldberg)
+
+	* gnus-cite.el (gnus-article-toggle-cited-text): Don't remove
+	'cite from g-a-wash-types.
+	(gnus-cite-toggle): Ditto.  Add 'cite.  Set modeline.
+	(gnus-article-hide-citation): Fix.
+
+	* gnus-cite.el (gnus-article-hide-citation): Add `c' mode line
+	character.
+	(gnus-article-toggle-cited-text): Toggle `c' mode line character.
+
+	* gnus-art.el (gnus-treat-hide-citation-maybe): Remove duplicate
+	definition.
+	(gnus-signature-toggle): Toggle `s' mode line character.
+
+	* gnus-art.el (article-emphasize): Set `g-a-wash-types' after
+	doing stuff that clears it.
+
+2001-10-12  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-cache.el (gnus-summary-limit-include-cached): Rewrite.
+	From Eric Marsden <emarsden@laas.fr>.
+
+2001-10-12 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-do-auto-fill): Use gnus-point-at-bol.
+	(autoload): Add some autoloads.
+
+2001-10-12  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	Suggested by Oliver Scholz <epameinondas@gmx.de>.
+
+	* message.el (message-do-auto-fill): New function.  Like
+	`do-auto-fill' but don't fill when in the message header.
+	(message-setup-1): Put a text property on the message header.
+	(message-setup-fill-variables): Use `message-do-auto-fill'.
+
+2001-10-10 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-send-mail-partially): Insert an empty line
+	first, because of the change of message-make-lines.
+
+2001-10-10  Florian Weimer  <fw@deneb.enyo.de>
+
+	* mm-util.el (mm-charset-synonym-alist): If Emacs doesn't support
+	iso-8859-15, make it an alias for iso-8859-1.
+
+2001-10-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-send-news): Don't modify the value of
+	`message-syntax-checks' if it is not a list (possibly it is
+	`dont-check-for-anything-just-trust-me').
+
+2001-10-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-group.el (gnus-group-name-charset-group-alist): Use
+	`find-coding-system' for XEmacs to check whether the coding-system
+	`utf-8' is available.
+
+2001-10-09 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* dgnushack.el (dgnushack-compile): Detect mh-e and xml.
+
+2001-10-09  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-send-news): Oops, missed case with no
+	"Followup-To" header...
+
+2001-10-09  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-send-news): Allow
+	`gnus-group-name-charset-group-alist' to affect encoding of the
+	"Newsgroups" and "Followup-To" headers.
+
+2001-10-07 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* Makefile.in (install-el): Depend on gnus-load.el.
+
+2001-10-07 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* Makefile.in (install-el): Use -f.
+	From: Amos Gouaux <amos+lists.ding@utdallas.edu>
+
+2001-10-07  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-send-news): Don't encode Followups-To when
+	`gnus-group-name-charset-group-alist is' ".*".  [Yuck]
+
+	* gnus-util.el (gnus-decode-newsgroups): No space in newsgroup
+	header.
+
+	* gnus-art.el (article-decode-group-name): Also decode
+	"Followup-To".
+
+	* rfc2047.el (rfc2047-encode-message-header): Encode without
+	asking for null methods.
+
+	* gnus-group.el (gnus-group-name-charset-group-alist): Make utf-8
+	default charset for newsgroup names in accordance with USEFOR.
+
+	* gnus-group.el (gnus-group-name-charset-method-alist,
+	gnus-group-name-charset-group-alist): Removed "*" from doc
+	strings, "*" should not be used for complex variables.
+
+2001-10-06  Simon Josefsson  <jas@extundo.com>
+
+	Support UTF-8 group names better.
+
+	* message.el (message-check-news-header-syntax): Encode group
+	names before comparison.
+
+	* gnus-msg.el (gnus-copy-article-buffer): Run all
+	`gnus-article-decode-hook's except `article-decode-charset'
+	instead of hardcoding call to one of them.
+
+	* gnus-art.el (gnus-article-decode-hook): Add
+	`article-decode-group-name'.
+	(article-decode-group-name): New function, use `g-d-n'.
+
+	* gnus-group.el (gnus-group-insert-group-line): Decode
+	gnus-tmp-group using `g-d-n'.
+
+	* gnus-util.el (gnus-decode-newsgroups): New function.
+
+2001-10-06  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-srvr.el (gnus-browse-foreign-server): Fixed bug non-nil
+	`gnus-group-name-charset-group-alist'.
+
+2001-10-06 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* Makefile.in: Install el in install. Add uninstall.
+
+2001-10-05  Simon Josefsson  <jas@extundo.com>
+
+	* nnheader.el (gnus-verbose-backends, gnus-nov-is-evil): Custom.
+
+	* gnus-sum.el (gnus-summary-move-article): Also activate new groups.
+
+	* nnfolder.el (nnfolder-normalize-buffer): Don't insert \n\n in
+	empty folders.
+
+	* gnus-sum.el (gnus-select-newsgroup): Don't enable `display'
+	limiting if read-all (C-u RET) was used.
+
+2001-10-04  Simon Josefsson  <jas@extundo.com>
+
+	* mail-source.el (mail-source-movemail-program): New variable.
+	(mail-source-movemail): Use it.  Suggested by Taylor Hutt
+	<thutt@thutt.vmware.com>.
+
+2001-10-03  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-from-or-to-or-newsgroups): New param.
+	(gnus-summary-line-format-alist): Fix param.
+
+2001-10-02  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-request-move-article): Use imap.el directly,
+	don't go through `nnimap-request-expire-articles' to delete the
+	article.  Thanks to prj@po.cwru.edu (Paul Jarc).
+
+2001-10-02 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-write-active): The min in the
+	agent/active may be larger than that in the server/active.
+
+2001-10-01  Simon Josefsson  <jas@extundo.com>
+
+	* mail-source.el (mail-source-fetch-imap): Use BODY.PEEK if server
+	is IMAP4rev1.
+
+	* nnml.el (gnus-article-unpropagatable-p): Autoload gnus-sum.
+
+	* nnfolder.el: Ditto.
+
+2001-09-30  Dan Christensen  <jdc@uwo.ca>
+
+	* gnus-sum.el (gnus-summary-extract-address-component): New function.
+	(gnus-summary-from-or-to-or-newsgroups): Optimize.
+
+2001-09-29  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-mode-map): Keybinding for `gnus-delay-article'.
+	(message-mode-menu): Menu item for same.
+
+	* gnus-group.el (gnus-group-make-menu-bar): Menu item for sending
+	delayed articles.
+
+	* gnus-delay.el (gnus-delay-send-drafts): Do nothing if
+	nndraft:delayed does not exist.
+	(gnus-delay-initialize): Don't set up keymap, that's done from
+	message.el now.
+	(gnus-delay, gnus-delay-group, gnus-delay-header)
+	(gnus-delay-default-delay, gnus-delay-default-hour): Customize.
+
+2001-09-29  Simon Josefsson  <jas@extundo.com>
+
+	* mm-util.el (mm-mime-mule-charset-alist): Encode mule-utf-8 as
+	utf-8, not eight-bit-control.
+
+	* imap.el (imap-shell-host, imap-default-user, imap-use-utf7)
+	(imap-log, imap-debug): Custom.
+	(imap-log-buffer, imap-debug-buffer): New constants.
+	(imap-kerberos4-open, imap-gssapi-open, imap-ssl-open)
+	(imap-network-open, imap-shell-open, imap-starttls-open)
+	(imap-send-command-1, imap-send-command, imap-arrival-filter)
+	(imap-debug): Use imap-*-buffer.
+
+	* nndoc.el (nndoc-article-type): Add mailman.
+	(nndoc-type-alist): Ditto.
+	(nndoc-mailman-type-p): New function.
+
+2001-09-28 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-xmas.el (gnus-article-x-face-command): Merge it into
+	gnus-art.el.
+
+2001-09-27  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-topic.el (gnus-topic-mode-map): Add catchup.
+	(gnus-topic-catchup-articles): New function. Suggested by Robin
+	S. Socha <robin-dated-1001857693.185e29@socha.net>.
+
+2001-09-27 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Gerd M,Av(Bllmann <gerd@gnu.org>.
+
+	* gnus-ems.el (gnus-article-display-xface): Insert xface after
+	previous ones.
+
+2001-09-27 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Daiki Ueno  <ueno@unixuser.org>
+
+	* gnus-sum.el (gnus-summary-show-article): The arglist of
+	detect-coding-region is incompatible.
+
+2001-09-26 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Katsuhiro Hermit Endo <hermit@koka-in.org>
+
+	* gnus-group.el (gnus-group-delete-group): Typo.
+
+2001-09-26  Simon Josefsson  <jas@extundo.com>
+
+	* nnmail.el (nnmail-expiry-target-group): Add doc warning.
+
+	* nnimap.el (nnimap-expiry-target): Use temp buffer.
+
+2001-09-26 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-cus.el (gnus-group-parameters): Display as sexp.
+
+2001-09-22  Simon Josefsson  <jas@extundo.com>
+
+	* nnml.el (nnml-open-marks): Remove unpropagatable marks.
+
+	* nnfolder.el (nnfolder-open-marks): Ditto.
+
+	* gnus-sum.el (gnus-article-unpropagatable-p): New function.
+	(gnus-update-marks): Use it.
+	(gnus-update-marks): Use `gnus-article-mark-to-type' instead of
+	hardcoded list.
+
+	* gnus.el (gnus-article-special-mark-lists): Add killed.
+	(gnus-article-unpropagated-mark-lists): New constant.
+
+2001-09-22  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-mode-hook): Add gnus-pick-mode as
+	custom option.
+
+2001-09-23  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-draft.el (gnus-draft-setup): Add mark in backend as well.
+
+2001-09-23 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-button-mailto): Hack save-selected-window-window.
+
+2001-09-22  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-group.el (gnus-group-sort-function): Fix customize type to
+	accept lists of functions.
+
+2001-09-20  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-catchup): Update expire marks in
+	backend.  Also, if ALL also set expire marks on tick/dormant.
+
+2001-09-20  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-tab-body-function): New variable.
+	* message.el (message-tab): Use it.
+
+2001-09-19  Sam Steingold  <sds@gnu.org>
+
+	* gnus-win.el (gnus-buffer-configuration): Respect
+	`gnus-bug-create-help-buffer'.
+
+2001-09-18  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-spec.el (gnus-correct-pad-form): Re-revert.
+	(gnus-parse-simple-format): Re-revert.
+
+2001-09-16  Katsuhiro Hermit Endo  <hermit@koka-in.org>
+	Trivial patch.
+
+	* gnus-spec.el (gnus-parse-complex-format): Don't fold search
+	case.  (Thanks to Daiki Ueno <ueno@unixuser.org>.)
+
+2001-09-18  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-spec.el (gnus-correct-pad-form): Remove until papers are
+	signed.
+	(gnus-parse-simple-format): Don't use it.
+
+2001-09-17  Miles Bader  <miles@gnu.org>
+
+	* gnus-srvr.el (gnus-server-insert-server-line): Don't let an
+	error querying a backend abort the whole process.
+
+2001-09-17 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-srvr.el (gnus-server-mode): Fix bogus fontification.
+	From Gerd M,Av(Bllmann <gerd@gnu.org>.
+
+2001-09-17  Didier Verna  <didier@xemacs.org>
+
+	* nndiary.el: version 0.2-b14.
+	* gnus-diary.el (gnus-diary-check-message): fix `read-string'
+	compatibility problem with XEmacs 21.1.
+
+2001-09-15  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-line-format): Document %c.
+
+	* nnml.el (nnml-parse-head): Handle CRLF files.
+	(nnml-generate-nov-file): Ditto.
+	(nnml-retrieve-headers): Ditto.
+
+2001-09-15  Michael Welsh Duggan  <md5i@cs.cmu.edu>
+
+	* gnus-spec.el (gnus-parse-format): Don't treat %c as %C.
+
+2001-09-13  Martin Kretzschmar  <Martin.Kretzschmar@inf.tu-dresden.de>
+
+	* gnus-spec.el (gnus-correct-substring): Still stopped one
+	character before we wanted (never included last character).
+	(gnus-tilde-max-form, gnus-tilde-cut-form) Made readable again,
+	add missing "," (once per function)
+
+2001-09-14  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-start.el (gnus-group-mode-hook): Moved from gnus-group
+	(otherwise e.g. gnus-agentize in .gnus overrides the customized
+	default before gnus-group is loaded and the variable set.)
+
+	* nnimap.el (nnimap-request-set-mark): Do not store bookmark,
+	killed or unsent marks.
+
+	* gnus-draft.el (gnus-draft-setup): Don't set mark when there
+	isn't an article to set it on (e.g. when you `a' in a group).
+
+2001-09-12  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
+
+	* mm-util.el (mm-charset-synonym-alist): add windows-1250 so we
+	can read e-mails from Microsoft Outlook users not using ISO
+	8859-2 character set.
+
+2001-09-12 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-diary.el: Minor modifications to avoid warnings.
+	(gnus-summary-misc-menu): defvar.
+	(gnus-diary-check-message): Use gnus-point-at-eol.
+	(gnus-diary-kill-entire-line): eval-and-compile.
+
+2001-09-12  Didier Verna  <didier@xemacs.org>
+
+	* nndiary.el: new version (0.2-b13).
+	* nndiary.el (nndiary-mail-sources): doc update.
+	* nndiary.el (nndiary-split-methods): ditto.
+	* nndiary.el (nndiary-request-accept-article-hooks): New.
+	* nndiary.el (nndiary-request-accept-article): use it, check
+	message validity.
+	* nndiary.el (nndiary-get-new-mail): changed default to nil.
+	* nndiary.el (nndiary-schedule): fix bug (misplaced
+	condition-case): it didn't return nil on error.
+	* gnus-diary.el: new version.
+	* gnus-diary.el (gnus-diary-summary-line-format): removed %I.
+	* gnus-diary.el (gnus-diary-header-value-history): New.
+	* gnus-diary.el (gnus-diary-narrow-to-headers): New.
+	* gnus-diary.el (gnus-diary-add-header): New.
+	* gnus-diary.el (gnus-diary-check-message): New.
+	* gnus-diary.el (message-mode-map): bind the above to `C-c D c'.
+	* gnus-diary.el (gnus-article-edit-mode-map): ditto.
+
+2001-09-10 TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+	* gnus-sum.el (gnus-select-newsgroup): Make
+	`gnus-current-select-method' buffer-local.
+
+	* gnus-art.el (gnus-request-article-this-buffer): Refer
+	`gnus-current-select-method' in the current summary buffer.
+
+2001-09-10  Simon Josefsson  <jas@extundo.com>
+	From Daniel Pittman <daniel@rimspace.net>
+
+	* gnus-spec.el (gnus-correct-pad-form): Fix.
+
+2001-09-09  Simon Josefsson  <jas@extundo.com>
+
+	* mm-decode.el (mm-inline-media-tests): Add
+	application/x-emacs-lisp.
+	(mm-attachment-override-types): Add
+	application/{x-,}pkcs7-signature.
+
+	* gnus-srvr.el (gnus-server-mode-hook, gnus-server-exit-hook)
+	(gnus-server-line-format, gnus-server-mode-line-format)
+	(gnus-server-browse-in-group-buffer): Customize.
+
+2001-09-08 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnml.el (nnml-marks-changed-p): Typo.
+	(nnml-save-marks, nnml-open-marks): Use gnus-sethash.
+	(nnml-marks-changed-p): Use gnus-gethash.
+	(nnml-marks-modtime): Use gnus-make-hashtable.
+
+	* nnfolder.el (nnfolder-marks-changed-p): Typo.
+	(nnfolder-request-expire-articles, nnfolder-save-marks)
+	(nnfolder-open-marks): Typo.
+	(nnfolder-save-marks, nnfolder-open-marks): Use gnus-sethash.
+	(nnfolder-marks-changed-p): Use gnus-gethash.
+	(nnfolder-marks-modtime): Use gnus-make-hashtable.
+
+2001-09-08  Simon Josefsson  <jas@extundo.com>
+
+	* nnfolder.el (nnfolder-marks-modtime): New variable.
+	(nnfolder-marks-changed-p): New function.
+	(nnfolder-save-marks, nnfolder-open-marks): Save modtime.
+	(nnfolder-request-update-info): Don't update if marks didn't change.
+
+	* nnml.el (nnml-marks-modtime): New variable.
+	(nnml-marks-changed-p): New function.
+	(nnml-save-marks, nnml-open-marks): Save modtime.
+	(nnml-request-update-info): Don't update if marks didn't change.
+
+	* gnus-agent.el (gnus-agent-any-covered-gcc)
+	(gnus-agent-add-server, gnus-agent-remove-server): Use
+	gnus-agent-method-p.
+
+	* gnus-art.el (gnus-buttonized-mime-types): New variable.
+	(gnus-unbuttonized-mime-type-p): Use it.
+
+	* gnus-agent.el (gnus-agent-fetch-group): If online, actually
+	fetch group.
+
+2001-09-08  Simon Josefsson  <jas@extundo.com>
+	From Daniel Pittman <daniel@rimspace.net>
+
+	* gnus-spec.el (gnus-correct-pad-form): New function.
+	(gnus-parse-simple-format): Use it.
+
+2001-09-07  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-group-sort-groups): Unmark all groups.
+	(gnus-group-sort-selected-groups): Ditto.  Suggested by Harry
+	Putnam <reader@newsguy.com>.
+	(gnus-group-sort-selected-groups): Touch dribble file.
+
+2001-09-07 Raja R Harinath  <harinath@cs.umn.edu>
+
+	* nnml.el (nnml-filenames-are-evil): New variable.
+	(nnml-article-to-file-alist): Rename to ...
+	(nnml-current-group-article-to-file-alist): ... this.
+	Respect `nnml-filenames-are-evil'.
+	(nnml-active-number): Update.
+	(nnml-update-file-alist): Update.
+	(nnml-request-article): Use nnheader-article-to-file-alist.
+	(nnml-request-rename-group): Likewise.
+
+2001-09-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-insert-line): Fix.
+
+2001-09-06  Bj,Av(Brn Torkelsson  <torkel@acc.umu.se>
+
+	* gnus-sum.el: Bind g-s-t-s to "W g".
+	* gnus-sum.el (gnus-summary-make-menu-bar): Add g-s-t-s.
+	* gnus-sum.el (gnus-summary-toggle-smiley): New function. Toggles
+	display of graphical smilies.
+
+2001-09-07 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-setup-news): A typo.
+	From Bill White <billw@wolfram.com>.
+
+2001-09-06  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-insert-line): Insert forwarded, recent
+	and unseen marks.
+
+2001-09-05  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* nnmail.el (nnmail-split-fancy): Document `junk'.
+
+2001-09-04  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-search): Don't error if server is broken.
+
+2001-09-02  Benjamin Rutt  <brutt@bloomington.in.us>
+
+	* nnmbox.el (nnmbox-find-article): Fix infinite loop when
+	searching for an article that isn't in the mbox.
+
+2001-09-02 23:12:48  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnslashdot.el (nnslashdot-retrieve-headers-1): Get references
+	right, and get all the comments.
+
+2001-09-02  Simon Josefsson  <jas@extundo.com>
+	Suggested by Dan Christensen <jdc+news@uwo.ca>
+
+	* nnfolder.el (nnfolder-request-update-info): Fix message.
+
+	* nnml.el (nnml-request-update-info): Ditto.
+
+2001-09-01  Simon Josefsson  <jas@extundo.com>
+
+	* nnml.el (nnml-request-expire-articles): Also bind
+	`nnml-current-group' and `nnml-article-file-alist' when using
+	expiry-target. (Otherwise nnml will be in a inconsistent internal
+	state causing all kind of problems.)
+	(nnml-request-expire-articles): If `nnml-article-to-file' or
+	`file-attributes' failes, return article as un-expirable instead
+	of treating it as expired.
+
+2001-08-31  Sam Steingold  <sds@gnu.org>
+
+	* imap.el (imap-mailbox-examine, imap-mailbox-examine-1): Fix a
+	typo: `exmine' --> `examine'.
+
+2001-08-30 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndoc.el (nndoc-forward-type-p): It is not a digest.
+
+2001-08-30 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnml.el (nnml-check-directory-twice): Remove.
+	(nnml-retrieve-headers): Ditto.
+	(nnml-article-to-file): Use nnheader-directory-files-is-safe.
+
+2001-08-30  Andrew Innes  <andrewi@gnu.org>
+
+	* nnheader.el (nnheader-directory-files-is-safe): No need to read
+	directory twice on Windows, or on GNU Emacs-21.
+
+2001-08-30  Andrew Innes  <andrewi@gnu.org>
+
+	* nnml.el (nnml-request-article): Use nnml-article-to-file-alist.
+	(nnml-request-rename-group): Ditto.
+	(nnml-active-number): Ditto.
+	(nnml-request-create-group): Use nnml-directory-articles.
+	(nnml-request-expire-articles): Use nnml-directory-articles, which
+	gets list from nov database if available.
+	(nnml-get-nov-buffer): New function.
+	(nnml-open-nov): Use it.
+	(nnml-update-file-alist): Use nnml-article-to-file-alist, which
+	gets alist from nov database if available.
+	(nnml-directory-articles): New function.
+	(nnml-article-to-file-alist): New function.
+
+2001-08-30  Andrew Innes  <andrewi@gnu.org>
+
+	* mm-decode.el (mm-display-external): Use `name' as filename, if
+	`filename' attribute is not present.
+
+2001-08-30  Andrew Innes  <andrewi@gnu.org>
+
+	* mail-source.el (mail-source-flash): New defcustom.
+	(mail-source-new-mail-p): Ring visible bell if appropriate.
+	(mail-source-start-idle-timer): Use unwind-protect to ensure idle
+	timer is cleared even if mail check signals an error.
+
+2001-08-29 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-move-article): Only update marks of
+	type 'list.
+
+2001-08-29 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* flow-fill.el (fill-flowed): eol might be point-max.
+
+2001-08-27  Simon Josefsson  <jas@extundo.com>
+
+	* nnml.el (nnml-request-update-info): Fix message.
+	(nnml-open-marks): Ditto.
+
+	* nnfolder.el (nnfolder-request-update-info):
+	(nnfolder-open-marks): Fix message.
+
+2001-08-25  Simon Josefsson  <jas@extundo.com>
+
+	* nnfolder.el (nnfolder-save-marks): Don't create directory named
+	after group in ~/.
+
+2001-08-25  Simon Josefsson  <jas@extundo.com>
+	From Andreas Jaeger  <aj@suse.de>
+
+	* nnfolder.el (nnfolder-open-marks): Fix typo.
+	* nnml.el (nnml-open-marks): Likewise.
+
+2001-08-25  Simon Josefsson  <jas@extundo.com>
+
+	Make nnfolder groups self-contained as far as marks are concerned.
+
+	* nnfolder.el (nnfolder-marks-directory, nnfolder-marks-is-evil)
+	(nnfolder-marks, nnfolder-marks-file-suffix): New variables.
+	(nnfolder-open-server): Make marks directory.
+	(nnfolder-request-delete-group): Delete marks file.
+	(nnfolder-request-delete-group): Check of nov/marks file exist
+	before deleting.
+	(nnfolder-request-rename-group): Rename marks file.
+	(nnfolder-request-rename-group): Only rename nov/mark if they exists.
+	(nnfolder-request-set-mark, nnfolder-request-update-info)
+	(nnfolder-group-marks-pathname, nnfolder-save-marks)
+	(nnfolder-open-marks): New functions.
+	(top-level): Require gnus.
+
+2001-08-25 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnweb.el (nnweb-type-definition): Use google raw file.
+	(nnweb-google-parse-1): Ditto.
+	(nnweb-google-identity): Ditto.
+	(nnweb-reference-wash-article): Move nnweb-decode-entities here.
+	(nnweb-altavista-wash-article): Ditto.
+	(nnweb-request-article): Remove nnweb-decode-entities.
+
+	* nnml.el: Require 'gnus.
+
+2001-08-25  Simon Josefsson  <jas@extundo.com>
+
+	* nnml.el (nnml-marks-is-evil): Add doc.
+
+2001-08-25  Simon Josefsson  <jas@extundo.com>
+
+	* nnml.el (nnml-save-marks): Wrap saving marks in a
+	condition-case, to allow user to start Gnus if saving marks failed
+	for some reason.
+
+2001-08-24 16:05:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-spec.el (gnus-compile): Don't compile gnus-version.
+
+	* gnus-group.el (gnus-update-group-mark-positions): Bind
+	gnus-group-update-hook to nil.
+
+2001-08-24 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-generate-mime-1): Force as multibyte string.
+
+2001-08-24 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-insert-line)
+	(gnus-summary-prepare-threads): gnus-tmp-lines should be a string.
+	From Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+	* gnus-spec.el (gnus-correct-substring): Take optional END.
+
+	* nnrss.el (nnrss-request-article): Remove \n.
+	(nnrss-retrieve-headers): Lines number is -1.
+
+2001-08-24  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-group.el (gnus-info-clear-data): Call
+	nnfoo-request-set-mark to propagate marks.  Fix bug:
+	`gnus-group-update-line' doesn't update read range unless we call
+	`gnus-get-unread-articles-in-group' first.
+
+	* nnimap.el (nnimap-request-set-mark): Don't propagate seen flags
+	to server.
+
+2001-08-23 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-create-info-command): Return an interactive
+	function.
+
+2001-08-23 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Katsumi Yamaoka <yamaoka@jpl.org>
+
+	* gnus-spec.el (gnus-parse-complex-format): Use equal.
+
+2001-08-23 18:43:05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-select-newsgroup): Use it.
+
+	* gnus-util.el (gnus-not-ignore): New function.
+
+	* lpath.el (featurep): Don't fbind char-int.
+
+	* gnus-util.el (gnus-create-info-command): New function.
+
+	* gnus-group.el (gnus-group-edit-group): Make C-c C-i go to the
+	right node.
+
+	* gnus-sum.el (gnus-select-newsgroup): Clean up.
+	(gnus-summary-limit-children): Use 'identity instead of `all'.
+	(gnus-summary-limit-to-display-predicate): New command and
+	keystroke.
+
+2001-08-23 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-group-alist): Use fm-releases.rdf.
+
+	* gnus-spec.el (gnus-format-specs): Miss a right parenthesis.
+
+2001-08-23 18:43:05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-spec.el: Add the Gnus version.
+	(gnus-update-format-specifications): If the Gnus version changes,
+	nix out the format spec cache.
+
+	* gnus.el (gnus-continuum-version): Made into a command and
+	optionalize the VERSION.
+
+	* gnus-spec.el (gnus-parse-complex-format): Remove %C specs from
+	the start of the lines.
+
+2001-08-22 00:06:52  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-visual-p): Define function before use of
+	function.
+
+2001-08-21 23:28:02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-adjust-marked-articles): Use new variable.
+	(gnus-article-mark-to-type): New function.
+	(gnus-update-missing-marks): Only update marks of type 'list.
+
+	* gnus.el (gnus-article-special-mark-lists): New variable.
+
+2001-08-21 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-limit-children): Check 'all.
+	(gnus-select-newsgroup): Still use 'all.
+	(gnus-summary-initial-limit): Comparing with 'all.
+
+2001-08-20 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-activate-group): If dont-check, don't update
+	active.
+
+2001-08-20 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-retrieve-headers-1): Replace
+	nnslashdot-*-retrieve-headers.
+	(nnslashdot-request-article): Fix for slashcode 2.2.
+	(nnslashdot-make-tuple): New function.
+	(nnslashdot-read-groups): Use it.
+
+2001-08-20 01:34:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-expand-group-parameters): Don't alter the variable
+	list.
+
+	* gnus-sum.el (gnus-summary-move-article): Don't select article.
+
+2001-08-20  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-msg.el (gnus-inews-do-gcc): If archive server can't be
+	opened, error instead of continuing (and exploding later).
+
+2001-08-20 01:34:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.el (gnus-expand-group-parameters): Return the parameter
+	list.
+
+	* gnus-sum.el (gnus-summary-show-article): Doc fix.
+	(gnus-summary-show-article): Guess at charset if required.
+
+	* gnus-spec.el (gnus-correct-substring): Stopped one character
+	before we wanted.
+
+2001-08-19  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
+
+	* earcon.el (earcon-auto-play): Remove unused option.
+
+2001-08-19 16:14:41  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-score.el (gnus-score-headers): Move the "Scoring..."
+	message down in levels, since it happens very fast.
+
+	* smiley-ems.el (smiley-update-cache): Respect the symbol version
+	of smiley-regexp-alist.
+
+	* mm-view.el (mm-inline-text): Ignore vcard errors.
+
+	* gnus-art.el (gnus-ignored-headers): Added more junk headers.
+
+	* gnus-score.el (gnus-all-score-files): Use append instead of
+	nconc.
+
+	* gnus.el (gnus-splash-face): Doc fix.
+
+	* mm-decode.el (mm-mailcap-command): Use
+	mm-path-name-rewrite-functions.
+	(mm-path-name-rewrite-functions): New variable.
+
+	* gnus-spec.el (gnus-parse-complex-format): React to ?=.
+	(gnus-complex-form-to-spec): Insert tab.
+	(gnus-spec-tab): New function.
+
+	* gnus-sum.el (gnus-select-newsgroup): Set the marks before
+	entering the group.
+
+	* gnus-spec.el (gnus-complex-form-to-spec): Insert Lisp to match
+	the positional spec.
+	(gnus-parse-complex-format): React to %C.
+
+	* gnus-ems.el (gnus-char-width): Moved here.
+
+	* gnus-sum.el (gnus-select-newsgroup): Set
+	gnus-newsgroup-articles.
+	(gnus-unseen-mark): New variable.
+	(gnus-newsgroup-unseen): Ditto.
+	(gnus-newsgroup-seen): Ditto.
+	(gnus-adjust-marked-articles): Use them.
+	(gnus-update-marks): Use them.
+	(gnus-summary-update-secondary-mark): Display.
+	(gnus-summary-prepare-threads): Display.
+
+	* gnus-msg.el (gnus-inews-group-method): Use and return the
+	method, not the server.
+
+2001-08-19  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-srvr.el (gnus-server-agent-face): New.
+	(gnus-server-agent-face): New.
+	(gnus-server-mode): Turn on font-lock-mode.
+
+	* gnus.el (gnus-server-visual): Add defgroup.
+
+2001-08-19  Simon Josefsson  <jas@extundo.com>
+	From Joe Casadonte <jcasadonte@northbound-train.com>
+
+	* gnus-srvr.el (gnus-server-opened-face, gnus-server-closed-face,
+	gnus-server-denied-face): New.
+	(gnus-server-opened-face, gnus-server-closed-face,
+	gnus-server-denied-face): New.
+	(gnus-server-font-lock-keywords): Add.
+
+2001-08-19  Simon Josefsson  <jas@extundo.com>
+
+	* nnml.el (nnml-request-set-mark): Return nil.
+	(nnml-save-marks): Use nnml-possibly-create-directory.
+	(nnml-open-marks): Only work in temp buffer when inserting/reading
+	.marks file.
+
+2001-08-18 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-expand-group-parameters): Fix.
+
+	* gnus-spec.el (gnus-char-width): New function.
+	(gnus-correct-substring, gnus-correct-length): Use it.
+
+	* message.el (message-required-mail-headers): Fix doc.
+
+2001-08-18 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-group-make-articles-read): gnus-request-set-mark.
+
+	* mm-decode.el (mm-save-part-to-file): Insert the handle.
+
+2001-08-18 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-threaded-retrieve-headers):
+	slashdot 2.2 (not fully fixed yet).
+	(nnslashdot-request-article): Ditto.
+
+2001-08-18  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-util.el (gnus-remassoc, gnus-update-alist-soft): Moved from
+	nnimap.
+
+	* nnimap.el (nnimap-remassoc, nnimap-update-alist-soft): Moved to
+	gnus-util.
+	(nnimap-request-update-info-internal): Use new functions.
+
+	* nnml.el (nnml-request-set-mark, nnml-request-update-info): Use
+	new functions.
+
+2001-08-18  Simon Josefsson  <jas@extundo.com>
+
+	Make nnml groups self-contained as far as marks are concerned.
+
+	* nnml.el (nnml-request-delete-group): Delete marks file.
+	(nnml-request-rename-group): Move marks file.
+	(nnml-marks-file-name, nnml-marks-is-evil, nnml-marks): New server
+	variables.
+	(nnml-request-set-mark, nnml-request-update-info): New server
+	functions.
+	(nnml-save-marks, nnml-open-marks): New functions.
+
+2001-08-18  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-sum.el (gnus-summary-move-article): Use `add' instead of
+	`set' when setting marks.
+
+2001-08-17 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-info-find-node): Take an argument.
+
+	* gnus-art.el (gnus-button-handle-info): New function.
+	(gnus-url-unhex-string): Replace "+" with " ".
+
+2001-08-17 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-check-news-header-syntax): Check bad From.
+
+2001-08-18 00:14:45  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-spec.el (gnus-correct-length): New function.
+	(gnus-correct-substring): New function.
+	(gnus-tilde-max-form): Use it.
+
+2001-08-17  Nevin Kapur  <nevin@jhu.edu>
+
+	* nnmh.el: Docstring changes as below.
+
+	* nnml.el: Docstring changes as below.
+
+	* nnbabyl.el: Docstring changes as below.
+
+	* nnmbox.el: Docstring changes as below.
+
+	* nnfolder.el: Added docstrings identifying each virtual server
+	parameter.
+
+2001-08-18  Simon Josefsson  <jas@extundo.com>
+
+	* mml.el (mml-menu): Collapse Attach, Insert and Security submenu.
+
+2001-08-17  Bj,Av(Brn Torkelsson  <torkel@acc.kth.se>
+
+	* message.el: rename "Abort Message" to "Postpone Message".
+	Remove "Attach file as MIME" from Message menu, it's already in
+	the MIME menu.
+
+2001-08-17 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* smime.el (smime-point-at-eol): eval-and-compile.
+	(smime-make-temp-file): New function.
+	(smime-sign-region, smime-encrypt-region, smime-decrypt-region):
+	Use it.
+
+2001-08-17 10:41:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-fetch-group): Go online if offline.
+	(gnus-agent-summary-fetch-group): New command and keystroke.
+
+	* gnus-art.el (gnus-insert-mime-button): Tiny clean-up.
+	(gnus-mime-display-security): Make it respect
+	gnus-unbuttonized-mime-type-p.
+
+	* gnus-sum.el (gnus-articles-to-read): Comments.
+	(gnus-article-marked-p): New function.
+	(gnus-summary-display-make-predicate): New function.
+	(gnus-select-newsgroup): Use them.
+
+	* mm-decode.el (mm-save-part-to-file): Made it not error.
+
+2001-08-17  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-wait-for-tag): If process-status isn't open or
+	run, return nil instead of sit-for looping.
+
+2001-08-17 10:41:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* lpath.el (featurep): fbind xml-parse-region.
+
+	* gnus.el (gnus-message-archive-method): Default to "archive".
+	(gnus-message-archive-method): Doc fix.
+	(gnus-parameters-get-parameter): Cleaned up.
+	(gnus-expand-group-parameter): New function.
+
+	* gnus-start.el (gnus-setup-news): Push the archive server only
+	the server list.
+
+	* mml.el (mml-menu): Changed name to "Attachments".
+
+	* mm-decode.el (mm-destroy-postponed-undisplay-list): Only message
+	when there is something to detroy.
+
+2001-05-21 17:11:46  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-srvr.el (gnus-server-browse-in-group-buffer): Default to
+	nil.
+
+2001-08-15  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el (gnus-delay-article): Allow "01:23" time spec,
+	which specifies a time today or tomorrow.
+
+2001-08-15  Simon Josefsson  <jas@extundo.com>
+	From Pavel@Janik.cz (Pavel Jan,Am(Bk)
+
+	* gnus-agent.el (gnus-agent-make-mode-line-string)
+	(gnus-agent-toggle-plugged): Use new API.
+
+2001-08-14  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el (gnus-delay-send-drafts): Fix check whether
+	deadline has expired.
+
+2001-08-12  Simon Josefsson  <jas@extundo.com>
+	Suggested by Kai.Grossjohann@CS.Uni-Dortmund.DE
+
+	Support `recent' mark indicating newly arrived messages (to
+	separate from old but unread messages).
+
+	* nnimap.el (nnimap-retrieve-groups): Push dummy article into
+	`nnmail-split-history' if recent is > 0.
+	(nnimap-request-update-info-internal): Update `recent' marks.
+	(nnimap-request-set-mark): Never set `recent' marks.
+	(nnimap-mark-to-predicate-alist, nnimap-mark-to-flag-alist): Add
+	recent.
+
+	* gnus-sum.el (gnus-recent-mark): New mark.
+	(gnus-newsgroup-recent): New variable.
+	(gnus-summary-local-variables): Add gnus-newsgroup-recent.
+	(gnus-summary-prepare-threads): Mark recent articles.
+	(gnus-summary-add-mark): Support recent.
+	(gnus-summary-update-secondary-mark): Support recent.
+
+	* gnus.el (gnus-article-mark-lists): Add recent.
+
+2001-08-12  Simon Josefsson  <jas@extundo.com>
+
+	* mm-bodies.el (mm-decode-content-transfer-encoding): Returns
+	whether successful decoding took place.  Add doc.
+
+2001-08-12  Simon Josefsson  <jas@extundo.com>
+	Suggested by Per Abrahamsen <abraham@dina.kvl.dk>
+
+	* gnus.el (gnus-summary-line-format, gnus-parameters):
+	* gnus-gl.el (gnus-summary-grouplens-line-format):
+	* gnus-salt.el (gnus-summary-pick-line-format):
+	* gnus-spec.el (gnus-format-specs): %n is 23 chars.
+
+2001-08-11 09:40:00  Karl Kleinpaste  <karl@charcoal.com>
+	Committed by Kai Gro,b_(Bjohann.
+
+	* gnus-score.el (gnus-score-string): Fix `match' regexp
+	for `extra' header case.
+
+2001-08-10 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmbox.el (nnmbox-read-mbox): No warning.
+
+2001-08-10 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndoc.el (nndoc-article-type): Fix doc.
+	(nndoc-generate-article-function): New variable.
+	(nndoc-dissection-function): New variable.
+	(nndoc-type-alist): Add oe-dbx.
+	(nndoc-oe-dbx-type-p): New function.
+	(nndoc-oe-dbx-dissection): New function.
+	(nndoc-oe-dbx-generate-article): New function.
+
+2001-08-11  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el (gnus-delay-send-drafts): Cleaner way to check
+	whether deadline has been reached.  Patch from Dan Nicolaescu
+	<dann@godzilla.ics.uci.edu>.
+
+2001-08-10 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-ml.el (turn-on-gnus-mailing-list-mode): Use
+	gnus-group-find-parameter. Suggested by Janne Rinta-Manty
+	<rintaman@cs.Helsinki.FI>.
+
+	* mail-source.el (mail-source-movemail): The error buffer is
+	modified, but nothing in it.
+
+2001-08-10 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-bogus-system-names): New variable.
+	(message-make-fqdn): Use it.
+
+2001-08-09 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndraft.el (nndraft-request-group): Use
+	nndraft-auto-save-file-name.
+
+2001-08-09  Simon Josefsson  <jas@extundo.com>
+
+	* mm-view.el (mm-view-pkcs7-decrypt): Operate in current buffer.
+	Don't ask whether to decrypt.  Just leave result in buffer (don't
+	call mm).
+
+	* mm-decode.el (mm-dissect-buffer): Possibly verify/decrypt single
+	parts as well.
+	(mm-inline-media-tests): Ignore application/{x-,}pkcs7-mime.
+	(mm-possibly-verify-or-decrypt): Support application/{x-,}pkcs7-mime.
+
+2001-08-09  Simon Josefsson  <jas@extundo.com>
+
+	* mm-decode.el (mm-insert-part): Return decoding success status.
+	(mm-save-part-to-file): Error if decoding failed.
+
+2001-08-09 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-tab): Use indent-relative.
+	(message-mode): Don't bind indent-line-function to indent-relative.
+
+2001-08-09  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-get-reply-headers): Fix string. Suggested by
+	Christoph Conrad <cc@cli.de>.
+
+2001-08-08 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-tab): Use the current value of
+	indent-line-function.
+	(message-mode): Bind indent-line-function to indent-relative.
+
+2001-08-08  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-gssapi-auth-p, imap-kerberos4-auth-p): Also check
+	whether `imtest' is installed.
+
+2001-08-04  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	Trivial patch from Nuutti Kotivuori  <nuutti.kotivuori@smarttrust.com>
+
+	* gnus-sum.el (gnus-summary-show-article): Call
+	gnus-summary-update-secondary-secondary-mark.
+	* gnus-sum.el (gnus-summary-edit-article-done): Ditto.
+	* gnus-sum.el (gnus-summary-reparent-thread): Ditto.
+
+2001-08-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Misc -> Gnus.
+
+	* gnus-group.el (gnus-group-make-menu-bar): Ditto.
+
+	* mm-uu.el (mm-uu-dissect): Autoload. From Gerd M,Av(Bllmann
+	<gerd@gnu.org>.
+
+	* gnus-art.el (gnus-output-to-file): Bind file-name-coding-system.
+
+	* gnus-util.el (gnus-output-to-rmail): Ditto.
+	(gnus-output-to-mail): Ditto.
+
+	* nnmail.el (nnmail-pathname-coding-system): Set default to nil.
+
+2001-08-06  Florian Weimer  <fw@deneb.enyo.de>
+
+	* message.el (message-indent-citation): Use
+	`message-yank-cited-prefix' for empty lines.
+
+2001-08-05  Florian Weimer  <fw@deneb.enyo.de>
+
+	* message.el (message-indent-citation): Quote only lines starting
+	with ">" using `message-yank-cited-prefix'.
+
+2001-08-05  Nuutti Kotivuori  <nuutti.kotivuori@smarttrust.com>
+	Trivial patch.
+
+	* gnus-cache.el (gnus-cache-possibly-enter-article): Use
+	gnus-cache-fully-p.
+
+2001-08-04  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-cache.el (gnus-cache-possibly-update-active): Create active
+	file if it doesn't exist (by calling gnus-cache-read-active).
+
+2001-08-04  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-cache.el (gnus-cache-possibly-enter-article): Revert.
+	(gnus-cache-passively-or-fully-p): Removed.
+	(gnus-cache-fully-p): Fix it.
+
+	* mm-view.el (mm-pkcs7-signed-magic): Support more ASN.1 lengths.
+
+2001-08-04  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-cache.el (gnus-cache-fully-p)
+	(gnus-cache-passively-or-fully-p): New functions.
+	(gnus-cache-possibly-enter-article): Cosmetic change, use
+	`g-c-p-o-f-p'.
+	(gnus-cache-possibly-enter-article): Use `g-c-p-u-a'; last change
+	was bogus (`g-c-p-a-a' does not change active info, just change
+	the functions parameters).
+	(gnus-cache-possibly-remove-articles-1): Make sure articles are
+	not removed in groups that match `gnus-uncacheable-groups'.
+
+	Reported and modifications based on discussions with Nuutti
+	Kotivuori <nuutti.kotivuori@smarttrust.com>.
+
+2001-08-04  Simon Josefsson  <jas@extundo.com>
+	Trivial patch from Nuutti Kotivuori  <nuutti.kotivuori@smarttrust.com>
+
+	* gnus-cache.el (gnus-cache-possibly-update-active): New function;
+	calls `gnus-cache-update-active' if bounds has been extended.
+
+2001-08-04 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-security-verify-or-decrypt): Insert
+	before remove.
+	(gnus-mime-security-show-details): Ditto.
+
+2001-08-04  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* nnmail.el (nnmail-split-fancy-with-parent): Correct `mapconcat'
+	syntax.  Protect string-match against nil string and regexp.
+
+2001-08-03 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-find-charset-region): Remove control-1.
+
+2001-08-03 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-readable-p): Emacs 20 takes one argument.
+
+2001-08-04  Simon Josefsson  <jas@extundo.com>
+
+	* smime.el (smime-sign-region, smime-encrypt-region): Fix details
+	buffer.  Delete MIME-Version header.
+
+2001-08-03  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-cache.el (gnus-cache-possibly-enter-article): The article
+	that is entered does not necessarily have the highest article
+	number in the group, so use `gnus-cache-possibly-alter-active'
+	instead of `gnus-cache-update-active'.
+
+2001-08-03 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-gpg-extract-signature-details): Don't barf.
+
+2001-08-03  Simon Josefsson  <jas@extundo.com>
+
+	* mml.el (mml-menu): Rename from MML to Mime. Collapse Security
+	menu.
+
+2001-08-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.el (post-method): New group parameter.  It also provides
+	the user option `gnus-post-method-alist' and the internal function
+	`gnus-parameter-post-method'.
+
+	* gnus-msg.el (gnus-post-method): Bind the value of
+	`gnus-post-method' to the group parameter if it is defined.
+
+2001-08-02  Simon Josefsson  <jas@extundo.com>
+
+	* smime.el (smime-extra-arguments): Removed.
+	(smime-call-openssl-region): Don't use it.
+
+2001-08-02  Simon Josefsson  <jas@extundo.com>
+
+	* smime.el (smime-sign-region): Handle stderr.
+	(smime-encrypt-region): Ditto.
+
+	* mm-view.el (mm-pkcs7-signed-magic): Make it a regexp.  Don't
+	match the ASN.1 length bytes.
+	(mm-pkcs7-enveloped-magic): Ditto.
+	(mm-view-pkcs7-get-type): Don't regexp quote.
+
+2001-08-01 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Andreas Fuchs <asf@void.at>
+
+	* mml2015.el (mml2015-trust-boundaries-alist): Typo.
+
+2001-08-01 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-header-button-alist): References regexp.
+
+2001-08-01  Gerd Moellmann  <gerd@gnu.org>
+
+	* mm-view.el (autoload): Don't autoload `diff-mode' if it's
+	already fboundp.  Add INTERACTIVE arg to autoload form.
+
+2001-08-01 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-init): Add as gnus buffer.
+
+	* nnmail.el (nnmail-cache-open): Ditto.
+
+2001-07-31 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-button-fetch-group): Fix the regexp.
+
+2001-07-31  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-msg.el (gnus-post-method): Refer to `gnus-parameters'.
+
+2001-07-31 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	Originally from Pavel Jan,Am(Bk <Pavel@Janik.cz>
+
+	* gnus-agent.el (gnus-agent-make-mode-line-string): New function.
+	(gnus-agent-toggle-plugged): Use it.
+
+2001-07-31  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-startup-file-coding-system): Revert to binary.
+	(gnus-ding-file-coding-system): New variable.
+	(gnus-read-newsrc-el-file, gnus-save-newsrc-file)
+	(gnus-slave-save-newsrc): Use it.
+
+2001-07-31  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el (gnus-delay-initialize): Use standard define-key
+	syntax.
+
+2001-07-30 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	Originally from Andreas Fuchs <asf@void.at>
+
+	* mml2015.el (mml2015-trust-boundaries-alist): New variable.
+	(mml2015-gpg-pretty-print-fpr): New function.
+	(mml2015-gpg-extract-signature-details): More details, rename from
+	`m-g-e-from'.
+	(mml2015-gpg-verify): Use them.
+	(mml2015-gpg-clear-verify): Use them.
+
+2001-07-31  Simon Josefsson  <jas@extundo.com>
+
+	* mml-smime.el (mml-smime-sign, mml-smime-encrypt): Goto end of
+	buffer when done.
+
+2001-07-30  Simon Josefsson  <jas@extundo.com>
+
+	* smime.el (smime-call-openssl-region): Revert previous change,
+	just pass on buf to `call-process-region'.
+	(smime-verify-region): Doc fix.  Don't message stuff.  Use
+	`smime-new-details-buffer'.  Inserts error messages into buffer.
+	(smime-noverify-region): Ditto.
+	(smime-decrypt-region): Ditto.  Handles stderr separately.
+	(smime-verify-buffer, smime-noverify-buffer)
+	(smime-decrypt-buffer): Doc fix.
+	(smime-new-details-buffer): New function.
+	(smime-pkcs7-region, smime-pkcs7-certificates-region)
+	(smime-pkcs7-email-region): Use `smime-new-details-buffer'.
+	(smime-sign-region, smime-encrypt-region): Don't use
+	`insert-buffer'.
+
+	* mml-smime.el (mml-smime-verify): Fix security button strings.
+
+2001-07-30 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-save-part-and-strip): Save
+	gnus-article-mime-handles.
+
+2001-07-29  Simon Josefsson  <jas@extundo.com>
+
+	* mail-source.el (top-level): Require message for message-directory.
+	(mail-source-directory): Change default to message-directory.
+
+	* smime.el (smime-keys, smime-CA-directory, smime-CA-file)
+	(smime-certificate-directory, smime-openssl-program)
+	(smime-encrypt-cipher, smime-dns-server): Fix doc (leading "*").
+	(smime-extra-arguments): New variable.
+	(smime-dns-server): Fix customize group.
+	(smime-call-openssl-region): Use `smime-extra-arguments'.
+
+2001-07-29  Simon Josefsson  <jas@extundo.com>
+	From Vladimir Volovich <vvv@vsu.ru>
+
+	* smime.el (smime-call-openssl-region): Ignore stderr.
+
+2001-07-29  Simon Josefsson  <jas@extundo.com>
+	From Christoph Conrad <christoph.conrad@gmx.de>
+
+	* gnus-agent.el (gnus-agent-save-group-info): Don't destroy active
+	file.
+
+2001-07-29  Simon Josefsson  <jas@extundo.com>
+
+	* mm-view.el (mm-view-pkcs7-decrypt): Adhere to `mm-decrypt-option'.
+
+	Support S/MIME decryption.
+
+	* mm-decode.el (mm-inline-media-tests):
+	(mm-inlined-types):
+	(mm-automatic-display):
+	(mm-attachment-override-types): Add application/{x-,}pkcs7-mime.
+
+	* mm-view.el (mm-pkcs7-signed-magic):
+	(mm-pkcs7-enveloped-magic): New variables.
+	(mm-view-pkcs7-get-type): New function; identify PKCS#7 type.
+	(mm-view-pkcs7): New function; mm viewer for PKCS#7 blobs.
+	(mm-view-pkcs7-decrypt): New function; mm viewer for encrypted
+	PKCS#7 blobs.
+
+	* smime.el (smime-decrypt-region): Expand keyfile.
+
+2001-07-29  Simon Josefsson  <jas@extundo.com>
+
+	* nntp.el (nntp-open-ssl-stream): Don't mess with internal
+	`ssl.el' variables.
+
+	* gnus-agent.el (gnus-agent-save-group-info): Delete everything
+	but line instead of narrowing to it, because `nnmail-parse-active'
+	calls widen.  Thanks to Christoph Conrad
+	<christoph.conrad@gmx.de>.
+
+2001-07-29  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus.el (gnus-summary-line-format): Mention `gnus-sum-thread-*'
+	for %B spec.
+
+	* gnus-sum.el (gnus-summary-prepare-threads): If
+	gnus-sum-thread-tree-root is nil, use subject instead.
+	(gnus-sum-thread-tree-root, gnus-sum-thread-tree-single-indent)
+	(gnus-sum-thread-tree-vertical, gnus-sum-thread-tree-indent)
+	(gnus-sum-thread-tree-leaf-with-other)
+	(gnus-sum-thread-tree-single-leaf): Documentation.
+	(gnus-sum-thread-tree-single-indent): Allow nil.
+
+2001-07-28 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-fill-paragraph): Do nothing if the user
+	wants filladapt-mode.
+
+2001-07-27 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-image-type-from-buffer): New function.
+	(mm-get-image): Use it.
+
+2001-07-27 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-large-newsgroup): Add doc, "If it is nil, ..."
+
+	* gnus-art.el (gnus-mime-view-all-parts): buffer-read-only covers
+	mm-display-parts too.
+
+2001-07-27 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-request-accept-article): Bind
+	nntp-server-buffer.
+
+	* nnmail.el (nnmail-parse-active): Read from buffer instead of
+	nntp-server-buffer.
+
+2001-07-27 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-check-news-header-syntax): Use
+	message-post-method.
+	(message-send-news): Bind message-post-method.
+
+2001-07-27 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-tweak-type-alist): New variable.
+	(mml-tweak-function-alist): New variable.
+	(mml-tweak-part): New function.
+	(mml-generate-mime-1): Use it.
+
+2001-07-26 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-request-accept-article): Replace
+	nnfolder-request-list.
+
+2001-07-27  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-open-server): Set nnimap-server-buffer if
+	nnoo-change-server failed to do it.
+
+2001-07-26 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-parameters): Make it customizable.
+
+2001-07-26 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mm-display-part): Narrow to point if eobp.
+
+	* message.el (message-set-auto-save-file-name): More
+	poor-system-types.
+
+	* mailcap.el (mailcap-parse-mimetypes): poor-system-types.
+
+	* gnus-ems.el (nnheader-file-name-translation-alist): M$Windows-NT
+	supports +.
+
+2001-07-26 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-readable-p): New function.
+	(mm-inline-media-tests): Fix the default testers.
+
+2001-07-26  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-version): Bump version number.
+
+2001-07-26 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Steven E. Harris <seh@speakeasy.org>
+
+	* nnheader.el (nnheader-translate-file-chars): cygwin32 is running
+	in M$Windows too.
+
+2001-07-26  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el (gnus-delay-send-drafts): Don't `error'.
+
+2001-07-25 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-bcklg.el (gnus-backlog-shutdown): Make interactive.
+
+	* mm-decode.el (mm-get-image): Guess then use the type.
+
+	* gnus-art.el (gnus-mime-view-part-as-type): Don't copy cache.
+
+2001-07-25 12:54:00  Danny Siu  <dsiu@adobe.com>
+
+	* gnus-sum.el (gnus-summary-prepare-threads): Shouldn't do tree
+	display (%B) for threads if threading is off.
+
+2001-07-25 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Henrik Enberg <henrik@enberg.org>
+
+	* gnus-msg.el: Customization patch.
+
+2001-07-25 22:22:22  Raymond Scholz  <rscholz@zonix.de>
+
+	* nnmail.el (nnmail-split-fancy-with-parent-ignore-groups): New
+	variable.
+	(nnmail-split-fancy-with-parent): Ignore certain groups.
+
+2001-07-25 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-byte-compile): New function.
+	(gnus-use-byte-compile): New variable.
+	(gnus-make-sort-function): Use it.
+
+	* nnmail.el (nnmail-get-new-mail): Use it.
+
+	* gnus-agent.el (gnus-category-make-function): Simple function or
+	compiled function.
+	(gnus-agent-fetch-group-1): Don't use (caaddr predicate).
+
+	* gnus-gl.el (bbb-build-rate-command): Remove quote before lambda.
+	* gnus-topic.el (gnus-topic-sort-topics-1): Ditto.
+	(gnus-topic-sort-topics-1): Use gnus-byte-compile.
+
+	* message.el (message-check-news-header-syntax): Remove quote.
+
+2001-07-24 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-use-mail-followup-to): `t' is not a
+	documented value.
+
+2001-07-24 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-display-arrow): Test fboundp.
+
+2001-07-24 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-encode.el (mm-encode-buffer): Don't use 7bit encoding if
+	there are long lines.
+
+2001-07-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el (copy-list): New compiler macro.
+
+2001-07-24 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-bounce): If no Return-Path, the whole
+	content is considered as the original message.
+
+	* nnml.el (nnml-check-directory-twice): New variable.
+	(nnml-article-to-file): Use it.
+	(nnml-retrieve-headers): Hack it.
+
+2001-07-24 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-win.el (gnus-buffer-configuration): New configure.
+
+	* gnus-art.el (gnus-mm-display-part): Don't select-window if it is
+	not alive.
+
+	* mm-decode.el (mm-remove-part): Don't murder the current window (nil).
+	(mm-display-external): Use display-term configure.
+
+2001-07-24  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el (gnus-delay-default-hour): New variable.
+	(gnus-delay-article): Allow specific date in YYYY-MM-DD format.
+
+2001-07-23 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Karl Kleinpaste <karl@charcoal.com>
+
+	* gnus-sum.el (gnus-summary-line-format-alist): Add %B.
+	(gnus-summary-prepare-threads): Ditto.
+
+	* gnus.el (gnus-summary-line-format): Add %B.
+
+2001-07-23 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-articles-to-read): Use gnus-group-decoded-name.
+
+	* mm-util.el (mm-string-as-multibyte): New function.
+
+	* nnmh.el (nnmh-request-list-1): Encode, not decode!
+
+2001-07-23 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-universal-coding-system): New variable.
+
+	* gnus-start.el (gnus-startup-file-coding-system): Use it.
+
+	* score-mode.el (score-mode-coding-system): Use it.
+
+2001-07-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-start.el (gnus-setup-news): Call
+	`gnus-check-bogus-newsgroups' just after the native server is
+	opened.
+
+2001-07-23  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* nnmail.el (nnmail-do-request-post): Util function to be used by
+	`nnchoke-request-post' for all nnmail-derived backends.
+
+	* nnml.el (nnml-request-post): Use it.
+
+	* gnus.el (gnus-valid-select-methods): nnml is a post-mail
+	backend, for it groks nnml-request-post.
+
+	* gnus-group.el (gnus-group-highlight, gnus-group-highlight-line):
+	Treat `mail-post' backends like `mail' backends, not like `news'
+	backends.
+
+2001-07-22 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-setup-message): make-local-hook.
+
+2001-07-22  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el (gnus-delay-article): Fix `read-string' for
+	XEmacs.  Allow more units.  Submitted by Karl Kleinpaste
+	<karl@charcoal.com>, slightly changed by Kai.
+
+	* message.el (message-check-news-header-syntax): When checking
+	whether the groups exist, check the right server based on
+	`gnus-post-method'.
+
+2001-07-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-delay.el: New file.
+
+2001-07-21 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-read-coding-system): Take two arguments.
+
+	* gnus-sum.el (gnus-summary-show-article): Use
+	mm-read-coding-system.
+
+	* gnus-art.el (article-de-quoted-unreadable):
+	(article-de-base64-unreadable, article-wash-html):
+	(gnus-mime-inline-part, gnus-mime-view-part-as-charset): Ditto.
+
+2001-07-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* nnml.el (nnml-request-post): New function.  Can be used for
+	annotations in nnml groups.
+
+2001-07-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nntp.el (nntp-request-newgroups): Use UTC date for NEWGROUPS
+	command.
+
+	* gnus-start.el (gnus-find-new-newsgroups): Use
+	`message-make-date' instead of `current-time-string'.
+	(gnus-ask-server-for-new-groups): Ditto.
+	(gnus-check-first-time-used): Ditto.
+
+2001-07-20 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-score.el (gnus-home-score-file): nnheader-translate-file-chars.
+
+2001-07-18  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-shorten-references): Change `maxcount' and
+	`cut' to obey USEFOR draft 5.
+
+2001-07-12  Colin Walters  <walters@cis.ohio-state.edu>
+
+	* gnus-sum.el (gnus-summary-display-arrow): New variable.
+	(gnus-summary-set-article-display-arrow): New function.
+	(gnus-summary-goto-subject): Use it.
+
+2001-07-18 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-import-article): Insert date if
+	doesn't exist.
+
+2001-07-18 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-content-type-parameters): New variable.
+	(mml-content-disposition-parameters): New variable.
+	(mml-insert-mime-headers): Use them.
+	(mml-parse-1): Accept charset.
+
+2001-07-17 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-select-group): Doc fix.
+
+	* gnus-eform.el (gnus-edit-form-done): Return nil if end-of-file.
+
+2001-07-17  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* dgnushack.el (dgnushack-make-auto-load): Advise `make-autoload'
+	to handle `define-derived-mode'.
+
+2001-07-16 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From:  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* message.el (message-mode): Use define-derived-mode.
+	(message-tab): message-completion-alist.
+
+	* imap.el (imap-interactive-login): Use make-local-variable.
+	(imap-open): Ditto.
+	(imap-authenticate): Ditto.
+
+	* gnus-msg.el (gnus-setup-message): Change-major-mode-hook.
+
+	* gnus-art.el (gnus-article-edit-mode): Use define-derived-mode.
+
+2001-07-16  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-citation-line-function): Refer to
+	gnus-cite-attribution-suffix.
+
+2001-07-15  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
+
+	* gnus-art.el,...: Error convention changes.
+
+2001-07-13 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-rebuild-thread): Count hidden lines too.
+
+2001-07-13 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-read-group-data): Nuke emacs-lisp-mode-hook.
+	(nnrss-read-server-data): Ditto.
+
+2001-07-13 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-setup.el (gnus-use-installed-gnus): Typo.
+	* Cleanup files.
+	From Pavel@Janik.cz (Pavel Jan,Am(Bk).
+
+2001-07-13 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-summary-line-format): Add %o.
+
+	* gnus-sum.el (gnus-summary-pipe-output): Don't configure as pipe
+	unless shell outputs something.
+
+2001-07-13 07:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-boring-article-headers): Better doc.
+	(article-hide-headers): Better regexp.
+	Suggested by Matt Swift <swift@alum.mit.edu>.
+
+	* nnheader.el (nnheader-max-head-length): Better doc.
+	(nnheader-header-value): Skip spaces.
+	(nnheader-parse-head): Remove space.
+	Suggested by Matt Swift <swift@alum.mit.edu>.
+
+	* gnus-sum.el (gnus-summary-show-raw-article): New function.
+	(gnus-get-newsgroup-headers): Remove space.
+
+2001-07-12 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-msg-treat-broken-reply-to): Add force.
+	(gnus-summary-reply): Use it.
+	(gnus-summary-reply-broken-reply-to): New function.
+	(gnus-msg-force-broken-reply-to): New function.
+
+	* mm-view.el (mm-inline-text): Showing as text/plain when error.
+
+2001-07-12 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-draft.el (gnus-draft-setup): Restore gnus-newsgroup-name.
+
+2001-07-12 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-external-terminal-program): New variable.
+	(mm-display-external): Use it. Use term to display when no
+	window-system.
+
+2001-07-12  Bj,Av(Brn Torkelsson  <torkel@hpc2n.umu.se>
+
+	* gnus-srvr.el (gnus-browse-make-menu-bar): Changed one of the
+	Browse->Next entries to Browse->Prev
+
+2001-07-11 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-inews-do-gcc): Don't test gnus-alive-p.
+
+2001-07-11 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-encode.el (mm-content-transfer-encoding-defaults): Use base64
+	for the default encoding.
+
+	* nnrss.el (nnrss-url-field): New field.
+	(nnrss-request-article): Add newsgroups.
+
+	* nnfolder.el (nnfolder-read-folder): Force to use a multibyte buffer.
+
+2001-07-11 04:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndraft.el (nndraft-request-restore-buffer): Don't remove Date.
+
+	* gnus-draft.el (gnus-draft-edit-message): Remove Date here.
+	(gnus-draft-setup): Remove backlog.
+
+2001-07-10  Pavel Jan,Am(Bk  <Pavel@Janik.cz>
+
+	* gnus-logic.el, gnus-srvr.el, gnus-vm.el, nnheaderxm.el, nnoo.el:
+	Cleanup.
+
+2001-07-09 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-bug): Erase buffer.
+
+	* nnfolder.el (nnfolder-possibly-change-group): Don't create group.
+
+2001-07-09 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-attachment-override-p): Fix typo.
+
+2001-03-19 05:28:00  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-kill.el (gnus-execute): Work with the extra headers.
+	* gnus-sum.el (gnus-summary-execute-command): Ditto.
+
+2001-07-09 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-view.el (mm-inline-text): w3-coding-system-for-mime-charset
+	may not defined. From: Raja R Harinath <harinath@cs.umn.edu>.
+
+	* message.el (message-send-mail-real-function): New variable.
+	(message-send-mail-partially, message-send-mail):
+
+	* nngateway.el (nngateway-request-post): Use it.
+
+	* gnus-agent.el (gnus-agentize): Use it.
+
+	* nnsoup.el (nnsoup-old-functions, nnsoup-set-variables)
+	(nnsoup-revert-variables): Use it.
+
+2001-07-09  Colin Walters  <walters@cis.ohio-state.edu>
+
+	* mm-decode.el (mm-inline-media-tests): Default to displaying as
+	text/plain if the type doesn't match any other media types.
+	(mm-inlined-types): Doc fix.
+	(mm-display-inline): Revert previous change (now handled by a
+	default type in `mm-inline-media-tests'.
+	(mm-inlinable-p): Revive.
+	(mm-display-part): Call `mm-inlinable-p'.
+	(mm-attachment-override-p): Ditto.
+	(mm-inlined-p): Doc fix.
+
+	* gnus-art.el (gnus-mime-display-single): Call `mm-inlinable-p' as
+	well as `mm-inlined-p'.
+
+2001-07-09 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nntp.el (nntp-send-command, nntp-send-command-nodelete):
+	(nntp-send-command-and-decode): Use gnus-point-at-bol.
+
+2001-07-09 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From  Paul Jarc <prj@po.cwru.edu>
+
+	* message.el (message-use-mail-followup-to): New variable.
+	(message-get-reply-headers): Use it.
+
+2001-07-04  Gerd Moellmann  <gerd@gnu.org>
+
+	* nnheader.el (nnheader-init-server-buffer): Make sure the
+	*nntpd* buffer is made multibyte instead of a random buffer.
+
+2001-07-09 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-get-newsgroup-headers-xover): Get headers only
+	when it returns headers.
+
+2001-07-07  Simon Josefsson  <jas@extundo.com>
+
+	* rfc2047.el (rfc2047-encode-message-header): Skip header when
+	trying to fold. Thanks to Colin Walters
+	<walters@cis.ohio-state.edu>
+
+2001-07-06  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-parse-address-list, imap-parse-flag-list)
+	(imap-parse-body-extension, imap-parse-body-ext, imap-parse-body):
+	Add information in `assert's.
+
+	* nnimap.el (nnimap-possibly-change-group): Ignore uidvalidity
+	changes. (From nnimaps' point of view, `nnimap-verify-uidvalidity'
+	and `nnimap-group-overview-filename', should handle all
+	change-of-uidvalidity related issues.  But there may be other
+	problems.)
+
+2001-07-05  Colin Walters  <walters@cis.ohio-state.edu>
+
+	* rfc2047.el (rfc2047-encode-message-header): Don't include the
+	header name when folding.
+
+2001-07-05  Colin Walters  <walters@cis.ohio-state.edu>
+
+	* mm-decode.el (mm-inlined-types): Document relationship with
+	`mm-inline-media-tests'.
+	(mm-display-inline): Default to displaying as plain text if no
+	inlining handler is available.
+	(mm-inlinable-p): Remove.
+	(mm-inlined-p): Don't call `mm-inlinable-p'.
+	(mm-automatic-display-p): Ditto.
+	(mm-attachment-override-p): Ditto.
+
+2001-07-04  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-importantize-dormant): New variable.
+	(nnimap-request-update-info-internal): Use it.
+	(nnimap-request-set-mark): Ditto.
+
+2001-07-04  Didier Verna  <didier@lrde.epita.fr>
+
+	* nntp.el (nntp-send-command): don't pass a buffer argument to
+	`point'. Only XEmacs accepts this.
+	* nntp.el (nntp-send-command-nodelete): ditto.
+	* nntp.el (nntp-send-command-and-decode): ditto.
+
+2001-07-04  Didier Verna  <didier@lrde.epita.fr>
+
+	* nntp.el (nntp-open-connection-function): doc update.
+	* nntp.el (nntp-pre-command): New.
+	* nntp.el (nntp-via-rlogin-command): New.
+	* nntp.el (nntp-via-telnet-command): New.
+	* nntp.el (nntp-via-telnet-switches): New.
+	* nntp.el (nntp-via-user-name): New.
+	* nntp.el (nntp-via-user-password): New.
+	* nntp.el (nntp-via-address): New.
+	* nntp.el (nntp-via-envuser): New.
+	* nntp.el (nntp-via-shell-prompt): New.
+	* nntp.el (nntp-open-telnet-stream): New.
+	* nntp.el (nntp-open-via-rlogin-and-telnet): New.
+	* nntp.el (nntp-open-via-telnet-and-telnet): New.
+	* nntp.el (nntp-wait-for): check for possibly echo'ed commands.
+	* nntp.el (nntp-send-command): ditto.
+	* nntp.el (nntp-send-command-nodelete): ditto.
+	* nntp.el (nntp-send-command-and-decode): ditto.
+
+2001-06-30  YAGI Tatsuya  <yagi@is.titech.ac.jp>
+	Trivial patch.
+
+	* gnus-start.el (gnus-check-first-time-used): Use `if' instead of
+	`when'.
+
+2001-07-03  Simon Josefsson  <jas@extundo.com>
+	From Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com>
+
+	* flow-fill.el (fill-flowed): Use (1+ (point-at-eol)) instead.
+
+2001-07-03  Simon Josefsson  <jas@extundo.com>
+
+	* flow-fill.el (fill-flowed): If `fill-region' inserts empty line,
+	remove it (workaround XEmacs `fill-region' bug).
+
+2001-07-01  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-date-days-ago): Defeat locale.
+
+2001-06-28 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-format-error): New function.
+	(mml2015-mailcrypt-decrypt, mml2015-mailcrypt-clear-decrypt)
+	(mml2015-mailcrypt-verify, mml2015-gpg-clear-verify)
+	(mml2015-mailcrypt-clear-verify, mml2015-gpg-verify): Use it.
+
+2001-06-26 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-retrieve-headers): The description may not exist.
+	Suggested by Christoph Conrad <C.Conrad@cli.de>.
+
+	* gnus-sum.el (gnus-summary-set-local-parameters): Don't override
+	group variables.
+
+2001-06-25 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-write-groups): Use gnus-prin1.
+
+	* nnrss.el (nnrss-save-server-data): Bind print-level and print-length.
+	(nnrss-save-group-data): Ditto.
+
+	* gnus-agent.el (gnus-agent-save-alist): Ditto.
+
+2001-06-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-do-send-housekeeping): Narrow to headers.
+
+2001-06-24  Simon Josefsson  <jas@extundo.com>
+
+	* rfc2047.el (rfc2047-fold-region): The check to skip WSP
+	insertion when breaking lines looked for " \t" instead of "[ \t]".
+	(rfc2047-encode-message-header): Fold lines even if
+	no QP encoding is done.
+
+2001-06-23  Simon Josefsson  <jas@extundo.com>
+	From Samuel Tardieu <sam@inf.enst.fr>
+
+	* smime.el (smime-keys): Support additional certificates.
+	(smime-make-certfiles): New function.
+	(smime-sign-region): Use previous variables.
+	(smime-get-certfiles): New function.
+	(smime-sign-buffer): Use it.
+	(smime-verify-region): Support both CAfile and CApath.
+
+2001-06-23  Simon Josefsson  <jas@extundo.com>
+
+	* smime.el (smime-decrypt-region): Perhaps work.
+
+2001-06-22 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-copy-article-buffer): Typo.
+
+2001-04-06  Ralph Schleicher  <rs@nunatak.allgaeu.org>
+
+	* mm-decode.el (mm-save-part): Rewrite file name.
+	(mm-file-name-rewrite-functions): New variable.
+	(mm-file-name-delete-whitespace): New function.
+	(mm-file-name-trim-whitespace): New function.
+	(mm-file-name-collapse-whitespace): New function.
+	(mm-file-name-replace-whitespace): New variable and function.
+
+2001-06-22  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-make-date): Workaround locale for weekdays.
+
+2001-06-21 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-goto-body): Return nil if not found. (revert!)
+
+2001-06-21 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Fremlin <chief@bandits.org>
+
+	* message.el (message-goto-body): Some messages have no header.
+
+	* gnus-msg.el (gnus-copy-article-buffer): Use it.
+
+2001-06-21  Ralph Schleicher  <rs@nunatak.allgaeu.org>
+
+	* nnultimate.el (nnultimate-retrieve-headers): Date fix.
+
+2001-06-21 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-make-date): Add week day.
+	Suggested by Jason R. Mastaler <jason@mastaler.com>.
+
+2001-06-19  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-yank-prefix): Doc fix.
+	(message-yank-cited-prefix): Ditto.
+	(message-delete-not-region): Keep citation prefix on first line,
+	if possible and appropriate.
+
+2001-06-19  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-process-connection-type): New variable.
+	(imap-kerberos4-open, imap-gssapi-open): Use it.  This makes
+	recent `imtest's work completely (no line length issues), while
+	making making old `imtest's unusable.  Thanks to NAGY Andras
+	<nagya@inf.elte.hu> for his work.
+
+2000-12-30  NAGY Andras  <nagya@inf.elte.hu>
+
+	* imap.el (imap-ssl-program): Add -quiet to shut up
+	OpenSSL/SSLeay's internal debug talk.
+
+2001-06-19  Matt Armstrong  <matt@lickey.com>
+
+	* imap.el (imap-parse-flag-list): Workaround bug in Courier IMAP
+	server.
+
+2001-06-19 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmail.el (nnmail-article-buffer): New variable.
+	(nnmail-split-incoming): Use it.
+
+2001-06-15  Eli Zaretskii  <eliz@is.elta.co.il>
+
+	* qp.el (quoted-printable-decode-region): If called interactively,
+	use coding-system-for-read.
+
+2001-06-16 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-check-news-header-syntax): Check Reply-To.
+
+2001-06-16 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-parse-1): Use message options.
+
+	* message.el (message-do-fcc): Don't do anything if there is no
+	FCC.
+
+2001-06-16  Simon Josefsson  <jas@extundo.com>
+
+	* nnimap.el (nnimap-split-articles): Support 'junk to-groups.
+	(nnimap-expunge-search-string): New variable.
+	(nnimap-request-expire-articles): Use it.
+
+2001-06-15 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-send-mail-with-qmail): wrong exit status is
+	100 not 1. Reported by Paul Jarc <prj@po.cwru.edu>.
+
+2001-06-15 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-strip-multiple-blank-lines): Use
+	delete-region instead of replace-match.
+
+2001-06-14 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnweb.el (nnweb-google-parse-1): Fix Google content regexp.
+	(nnweb-google-wash-article): Ditto.
+
+2001-06-14 Ferenc Wagner  <wferi@bolyai1.elte.hu>
+
+	* nnweb.el (nnweb-google-parse-1): Fix Google url regexp.
+
+2001-06-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.el (gnus-define-group-parameter): Don't quote the defcustom
+	specs.
+
+2001-06-13 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-email-address): Move it here.
+
+	* gnus-art.el (article-de-quoted-unreadable): Read charset if
+	requested.
+	(article-de-base64-unreadable): Ditto.
+	(article-wash-html): Ditto.
+
+2001-06-12 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-options-set-recipient): Don't add ", "
+	unless necessary. Suggested by Josh Huber <huber@alum.wpi.edu>.
+
+2001-06-12 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-group-alist): Use |fr| instead of [fr].
+
+2001-06-12 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-plain-save-name): Use file-relative-name.
+	From Marc Lefranc <Marc.Lefranc@univ-lille1.fr>.
+
+	* nnrss.el (nnrss-node-text): Node might be nil.
+
+2001-06-11 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-uu.el (gnus-uu-save-article): Use mml tag instead of
+	part. From Katsumi Yamaoka <yamaoka@jpl.org>.
+
+	* nnrss.el (nnrss-group-alist): More items.
+
+2001-06-09 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-node-text): Use cddr instead xml-node-children.
+
+2001-06-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	Trivial patch from Dale Hagglund  <rdh@best.com>
+
+	* gnus-mlspl.el (gnus-group-split-fancy): Fix generation of split
+	restrict clauses.
+
+2001-06-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	From Benjamin Rutt <brutt+news@bloomington.in.us>
+
+	* message.el (message-wide-reply-confirm-recipients): New variable.
+
+2001-06-06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	Trivial patch from Mark Thomas  <mthomas@edrc.cmu.edu>
+
+	* nnmail.el (nnmail-fix-eudora-headers): Change the In-Reply-To
+	fix so it works with XEmacs.
+
+2001-06-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-retrieve-headers): Support description as extra
+	headers.
+
+2001-06-07 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el: Fix a few bugs.
+
+2001-06-05  Simon Josefsson  <jas@extundo.com>
+
+	* mm-decode.el (mm-handle-set-external-undisplayer): Don't
+	generate compiler warnings.  From Alex Schroeder <alex@gnu.org>.
+
+2001-06-04  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* mm-decode.el (mm-pipe-part): Bind coding-system-for-write to
+	binary so that we don't transmit ISO 2022 garbage to the process.
+	This is needed under XEmacs.
+
+2001-06-03  Simon Josefsson  <simon@josefsson.org>
+
+	* imap.el (imap-ssl-open): Require ssl. (Otherwise ssl.el is
+	autoloaded incorrectly below because ssl-program-* is bound.)
+	Thanks to Amos Gouaux for report.
+
+2001-06-02  Simon Josefsson  <simon@josefsson.org>
+
+	* imap.el (imap-kerberos4-open):
+	(imap-gssapi-open):
+	(imap-ssl-open):
+	(imap-network-open):
+	(imap-shell-open):
+	(imap-starttls-open): Set buffer to workaround spurious
+	`accept-process-output' buffer changes.  Thanks to Mats Lidell
+	<Mats.Lidell@contactor.se> for report and partial patch and Jake
+	Colman <colman@ppllc.com> for report.
+
+2001-05-31 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-catchup): New argument.
+	(gnus-summary-catchup-from-here): New function.
+
+2001-05-30  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* mm-view.el (mm-inline-image-xemacs): Insert newline, then move
+	back, then insert glyph.  (Before, the glyph was inserted first,
+	then the newline.)  This works around a behavior in XEmacs where
+	it is not possible to insert a character after a glyph which is at
+	the end of a buffer.  Patch by Lloyd Zusman <ljz@asfast.com>.
+
+2001-05-28  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	From Jaap-Henk Hoepman (jhh@xs4all.nl).
+
+	* mm-decode.el (mm-keep-viewer-alive-types): New variable.
+	(mm-keep-viewer-alive-p, mm-handle-set-external-undisplayer,
+	mm-destroy-postponed-undisplay-list): New functions.
+	(mm-display-external): Use them.
+
+2001-05-27  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-salt.el (gnus-tree-highlight-node): Bind `default-high' and
+	`default-low' when evaluating `gnus-summary-highlight'.
+	From Raja R Harinath <harinath@cs.umn.edu>.
+
+2001-05-27  Simon Josefsson  <simon@josefsson.org>
+
+	* message.el (message-yank-cited-prefix): New variable.
+	(message-indent-citation): Use it.
+
+	* mml2015.el (mml2015-mailcrypt-verify): Store gpg stderr output
+	as details.
+	(mml2015-mailcrypt-clear-verify): Ditto.
+
+2001-05-24  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+	From Nevin Kapur <nevin@jhu.edu>.
+
+	* gnus-sum.el (gnus-summary-default-high-score,
+	gnus-summary-default-low-score): New variables.
+	(gnus-summary-highlight): Use them.
+
+2001-05-16  Didier Verna  <didier@lrde.epita.fr>
+
+	* message.el (message-mail): pass the 'send-actions argument to
+	`message-setup'.
+
+2001-05-16  Simon Josefsson  <simon@josefsson.org>
+	From Raymond Scholz <ray-2001@zonix.de>
+
+	* gnus-art.el (gnus-mime-view-part-as-charset):
+	(gnus-mime-internalize-part): Doc fixes.
+
+2001-05-11  Simon Josefsson  <simon@josefsson.org>
+
+	* gnus-start.el (gnus-ignored-newsgroups): Also ignore NNTP type
+	status lines without any text ("^215$").
+
+2001-05-06 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-check-group): Reverse.
+
+2001-05-07  Simon Josefsson  <simon@josefsson.org>
+
+	* message.el (message-get-reply-headers):
+	(message-followup): Fix typo, suggested by David Green
+	<dgreen@uab.edu>
+
+2001-05-05 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-request-expire-articles): Fix.
+
+	* nnrss.el (nnrss-open-server): Read server data when it is called.
+	(nnrss-request-expire-articles): Fix.
+
+2001-05-05 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-do-send-housekeeping): mail-abbrevs may
+	rename buffer behind Gnus.
+
+2001-05-04 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-check-group): Use nnheader-translate-file-chars.
+	(nnrss-group-alist): Add more resources.
+	(nnrss-check-group): Ignore errors.
+
+2001-05-04 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-request-expire-articles): Correct the return value.
+
+	* nnslashdot.el (nnslashdot-request-list): Add time.
+	(nnslashdot-request-expire-articles): New function.
+
+	* gnus-start.el (gnus-check-bogus-newsgroups): Remove bogus
+	secondary methods too.
+
+2001-05-03 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-use-followup-to): Set default value to t.
+
+2001-05-03  Florian Weimer  <fw@deneb.enyo.de>
+
+	* message.el (message-dont-reply-to-names): Fix documentation.
+	(message-get-reply-headers): Use Mail-Followup-To only for wide
+	replies.
+
+2001-05-03 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-request-expire-articles): Calculate # of days
+	correctly.
+	(nnrss-check-group): Use time.
+
+2001-05-01 19:21:19 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.03 is released.
+
+2001-05-01 19:06:21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnultimate.el (nnultimate-topic-article-to-article): Use the
+	group.
+
+2001-04-24 19:50:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-srvr.el (gnus-server-insert-server-line): Add a space.
+
+2001-04-15 14:55:03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnultimate.el (nnultimate-retrieve-headers): Return all
+	available headers.
+
+	* gnus-sum.el (gnus-read-all-available-headers): New variable.
+	(gnus-get-newsgroup-headers-xover): Use it.
+
+2001-04-14 15:47:26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnultimate.el (nnultimate-retrieve-headers): Clean up.
+
+2001-04-30 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nntp.el (nntp-retrieve-groups): Use throw instead of error.
+
+2001-04-29 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el (nnrss-insert-w3): Use cache before I figure out how to
+	disable it.
+
+	* gnus.el (gnus-info-nodes): Remove a few The's.
+
+2001-04-29 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mail-source.el (mail-source-movemail): Call-process may return a
+	signal description string.
+
+	* gnus-start.el (gnus-read-newsrc-el-file):
+	gnus-newsrc-file-version may be nil.
+
+	* nnmail.el (nnmail-get-new-mail): Use the exact file only.
+	Suggested by Michael Sperber [Mr. Preprocessor]
+	<sperber@informatik.uni-tuebingen.de>.
+
+2001-04-25  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* mm-uu.el (mm-uu-configure-list): Fixed customize type.
+
+2001-04-24  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* mm-view.el (mm-display-inline-fontify): Allow XEmacs to fully
+	fontify HANDLE.
+
+2001-04-18  Simon Josefsson  <simon@josefsson.org>
+
+	* smime.el (smime-ask-passphrase): Rework to return value.
+	(smime-sign-region): Rework to bind value and use it.
+	(smime-decrypt-region): Ditto.
+
+2001-04-18  Simon Josefsson  <simon@josefsson.org>
+	Trivial patch from Mathias Herberts  <Mathias.Herberts@iroise.net>
+
+	* smime.el (smime-ask-passphrase): New function.
+	(smime-sign-region): Use it.
+	(smime-encrypt-cipher): New variable.
+	(smime-decrypt-region): Ditto.
+
+2001-04-12  Jason Merrill  <jason_merrill@redhat.com>
+	Committed by Simon Josefsson  <simon@josefsson.org>
+
+	* imap.el (imap-shell-open): Erase the buffer *after* copying it into
+	the log.
+
+2001-04-14 01:14:42 Lars Magne Ingebrigtsen  <lars@ingebrigtsen.no>
+
+	* gnus.el: Oort Gnus v0.02 is released.
+
+2001-04-14 00:48:42  Lars Magne Ingebrigtsen  <larsi@quimby.gnus.org>
+
+	* gnus.el: Oort Gnus v0.01 is released.
+
+2001-04-13 22:01:46  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-highlight): Highlight read
+	undownloaded articles as read articles.
+
+	* gnus-agent.el (gnus-agent-get-undownloaded-list): Clean up.
+	(gnus-agent-get-undownloaded-list): Mark all undownloaded
+	articles, even read ones, as such.
+
+	* gnus-sum.el (gnus-summary-find-matching): Clean up.
+	(gnus-find-matching-articles): New function.
+	(gnus-summary-limit-include-matching-articles): New command.
+	(gnus-summary-limit-include-thread): Include articles that have
+	matching subjects.
+	(gnus-offer-save-summaries): Clean up.
+
+2001-04-13  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* nnmail.el (nnmail-split-fancy-with-parent): Add docstring.
+
+2001-04-12 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Jason Merrill <jason_merrill@redhat.com>
+
+	* gnus-sum.el (gnus-summary-insert-new-articles): Reverse the articles.
+
+2001-04-10 08:01:15  Katsumi Yamaoka  <yamaoka@jpl.org>
+	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-post-news): Fill the Newsgroups header by the
+	newsgroup names when the original article is a news message.
+
+2001-04-12 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-cite-prefix-regexp): Use POSIX regexp if
+	supported. Suggest by Jim Meyering <jim@meyering.net>.
+
+2001-04-02  Nevin Kapur  <nevin@jhu.edu>
+	Committed by Kai Gro,b_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>.
+
+	* nnmail.el (nnmail-split-it): Added check for .* at the end of
+	regexp in nnmail-split-fancy.
+
+2001-04-10  Simon Josefsson  <simon@josefsson.org>
+
+	* message.el (message-options-set-recipient): Look at Cc and Bcc too.
+
+2001-04-10  Colin Marquardt  <colin@marquardt-home.de>
+
+	* message.el (message-send-mail): Improve the interaction with the
+	user.
+
+2001-04-10  Simon Josefsson  <simon@josefsson.org>
+
+	* imap.el (imap-message-copy): Work around buggy servers that
+	doesn't send TRYCREATE tags.
+
+2001-04-09 01:15:54  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-start.el (gnus-read-newsrc-el-file): Work with Semi-gnusae.
+
+2001-04-05 21:43:25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-update-summary-mark-positions): Use a valid
+	date.
+
+2001-04-04 16:13:17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-group.el (gnus-group-quit): Check that the dribble buffer
+	lives.
+
+2001-04-02 00:40:12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-parse-news-url): New function.
+	(gnus-button-handle-news): New function.
+	(gnus-button-alist): Point to new functions.
+
+	* gnus-group.el (gnus-group-quit): Only mark buffer in non-empty.
+
+	* gnus-start.el (gnus-read-newsrc-el-file): Nix out
+	gnus-format-specs.
+
+	* message.el (message-check-news-header-syntax): Question even
+	when Gnus doesn't know the group names.
+	(message-send-news): Clean up.
+
+	* gnus-start.el (gnus-dribble-read-file): Say whether Gnus was
+	exited on purpose without saving.
+
+	* gnus-group.el (gnus-group-quit): Mark the dribble file as `Q'.
+
+2001-04-01 00:37:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-score.el (gnus-score-orphans): Clean up.
+
+	* gnus-win.el (gnus-remove-some-windows): Leave one Gnus window.
+
+	* gnus-sum.el (gnus-summary-exit): Kill the summary buffer a bit
+	later.
+
+	* gnus-start.el (gnus-close-all-servers): Find the right items to
+	close.
+
+	* qp.el (quoted-printable-decode-region): Just message
+	malformation; don't quit.
+
+2001-03-31 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Gerd Moellmann <gerd@gnu.org>.
+
+	* gnus.el (gnus-interactive): A typo.
+
+2001-03-26  Juanma Barranquero  <lektu@uol.com.br>
+	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-delete-alist): Declare it as an alias of
+	`assq-delete-all', if that function exists; otherwise use the old
+	definition. Documentation changed to match the one in
+	`assq-delete-all'.
+
+2001-04-01 00:37:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-start.el (gnus-close-all-servers): New function.
+
+	* gnus-srvr.el (gnus-server-close-all-servers): Clean up.
+	(gnus-server-remove-denials): Clean up.
+
+	* gnus-sum.el (gnus-summary-sort-by-original): New command and
+	keystroke.
+
+2001-03-31 02:56:55  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-send-news): Message where we are sending.
+	(message-send-mail): Ditto.
+
+	* gnus.el (gnus-server-string): New function.
+
+	* gnus-sum.el (gnus-summary-up-thread): Doc fix.
+
+	* mm-decode.el (mm-default-directory): Customized.
+	(mm-tmp-directory): Ditto.
+
+	* gnus-sum.el (gnus-summary-catchup-and-exit): Doc fix.
+	(gnus-get-newsgroup-headers): Return -1 for articles without Lines
+	or Chars.
+	(gnus-summary-line-format-alist): ?l is now a string.
+	(gnus-summary-prepare-threads): Output ? for unknown lines.
+	(gnus-summary-insert-line): Ditto.
+	(gnus-summary-print-article): Unbalanced parentheses.
+
+	* gnus-msg.el (gnus-inews-do-gcc): Check group to allow it to find
+	out whether new stuff has arrived.
+
+2001-03-31 02:14:38  Alan Shutko  <ats@acm.org>
+
+	* gnus-sum.el: Let printing work on ttys on Emacs.
+
+2001-03-31 01:11:14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-post-news): Add an empty Newsgroups header
+	when forcing news.
+
+	* gnus-sum.el (gnus-summary-mark-article-as-replied): Make into a
+	command.
+
+2001-03-31 01:04:54  Francis Litterio  <franl@world.std.com>
+
+	* message.el (message-set-auto-save-file-name): Don't use
+	asterisks under nt.
+
+2001-03-31 00:03:42  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-inews-insert-draft-meta-information): Allow
+	lists of articles.
+
+	* gnus-uu.el (gnus-uu-digest-mail-forward): Mark as forwarded.
+
+	* gnus-msg.el (gnus-put-message): Clean up.
+	(gnus-summary-reply): Mark all replied-to articles as replied to.
+	(gnus-inews-add-send-actions): Also mark as forwarded.
+	(gnus-summary-mail-forward): Mark as forwarded.
+
+	* gnus-sum.el (gnus-summary-mark-article-as-replied): Take a list
+	of articles.
+	(gnus-summary-mark-article-as-forwarded): Ditto.
+
+	* gnus-msg.el (gnus-summary-resend-message): Mark article as
+	forwarded.
+	(gnus-summary-mail-forward): Clean up.
+
+	* gnus.el (gnus-article-mark-lists): Added forward.
+
+	* gnus-sum.el (gnus-forwarded-mark): New variable.
+	(gnus-summary-prepare-threads): Use it.
+	(gnus-summary-update-secondary-mark): Ditto.
+	(gnus-newsgroup-forwarded): New variable.
+
+2001-03-30 23:13:37  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-msg.el (gnus-summary-reply): Allow very wide replies.
+	(gnus-summary-very-wide-reply): New command and keystroke.
+	(gnus-summary-very-wide-reply-with-original): Ditto.
+
+	* gnus-score.el (gnus-adaptive-word-length-limit): New variable.
+	(gnus-score-adaptive): Use it.
+
+	* gnus-start.el (gnus-get-unread-articles): Clean up.
+
+2001-03-21 20:00:43  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnultimate.el (nnultimate-retrieve-headers): Work for other
+	boards.
+
+2001-03-21  Didier Verna  <didier@lrde.epita.fr>
+
+	* gnus-start.el (gnus-subscribe-newsgroup-hooks): New.
+	* gnus-start.el (gnus-subscribe-newsgroup): use it.
+
+2001-03-15 09:47:23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnultimate.el (nnultimate-retrieve-headers): Understand
+	long-form month names.
+
+2001-03-18 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-show-all-headers):
+	gnus-article-show-all-headers is broken. Use
+	gnus-summary-toggle-header instead.
+
+	* mml2015.el (mml2015-gpg-extract-from): No error.
+
+2001-03-18 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Bj,Ax(Brn Mork <bmork@dod.no>.
+
+	* mml2015.el (mml2015-gpg-extract-from): New function.
+	(mml2015-gpg-verify): Use it.
+	(mml2015-gpg-clear-verify): Use it.
+
+2001-03-17 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-setup-fill-variables): Use
+	fill-paragraph-function.
+	(message-fill-paragraph): Take an argument.
+	(message-newline-and-reformat): Take another argument.
+
+2001-03-16 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (rmail-output): It is in rmailout.el not rmail.el.
+
+2001-03-16 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-forward): local-variable-p takes an extra
+	argument in XEmacs.
+
+2001-03-16  Simon Josefsson  <simon@josefsson.org>
+
+	* nnimap.el (nnimap-dont-use-nov-p): Renamed from
+	`nnimap-use-nov-p' (it really tested the negative).
+	(nnimap-retrieve-headers): Use it.
+
+2001-03-11  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-generate-headers-first): Update doc.
+
+2001-03-10  Matthias Wiehl  <mwiehl@gmx.de>
+	Trivial patch.
+
+	* gnus.el (gnus-summary-line-format): Typo.
+
+2001-03-11  Simon Josefsson  <simon@josefsson.org>
+
+	* mailcap.el (mailcap-mime-data): Add application/sieve.
+	(mailcap-mime-extensions): Add .siv, .xls.
+
+2001-03-14 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Christoph Conrad <christoph.conrad@gmx.de>
+
+	* gnus-score.el (gnus-summary-lower-thread): Typo.
+
+2001-03-14 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-forward-decoded-p): New variable.
+	(message-forward-subject-author-subject): Use it.
+	(message-make-forward-subject): Use it.
+	(message-forward): Use it.
+
+	* gnus-uu.el (gnus-uu-digest-mail-forward): Use it.
+
+	* mm-util.el, message.el, rfc2047.el, gnus-sum.el, gnus-score.el:
+	Sync with Emacs 21 (tag EMACS_PRETEST_21_0_100).
+
+;;Has been fixed -- zsh.
+;;2001-03-05  Dave Love  <fx@gnu.org>
+;;
+;;	* mm-util.el (mm-mime-mule-charset-alist): Fix utf-8 case.
+;;	Move it after definition of mm-coding-system-p.
+;;
+2001-03-01  Dave Love  <fx@gnu.org>
+
+	* mm-util.el (mm-inhibit-file-name-handlers): Add
+	image-file-handler.
+
+2001-02-11  Dave Love  <fx@gnu.org>
+
+	* message.el (message-signature-file): Fix doc, :type.
+
+2001-02-08  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (rfc2047-fold-region): Don't forward-char at EOB.
+	(message-posting-charset): Defvar when compiling again.
+	(rfc2047-encodable-p): Require message.
+
+	* gnus-sum.el (gnus-alter-articles-to-read-function):
+	* gnus-score.el (gnus-score-after-write-file-function): Fix :type.
+
+2001-03-08 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnrss.el: New file.
+
+2001-03-08 02:41:36  Katsumi Yamaoka  <yamaoka@jpl.org>
+	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2047.el (rfc2047-unfold-region): Fix arg of
+	`skip-chars-forward'.
+
+2001-03-07 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndraft.el (nndraft-request-group): Restore auto save files if
+	the original files do not exist.
+
+2001-03-07 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-score.el (gnus-score-find-bnews): Print messages on illegal
+	SCORE paths.
+
+	* mm-decode.el (mm-dissect-buffer): Call
+	mail-extract-address-components only if necessary.
+
+2001-03-06 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-score.el (gnus-score-find-bnews): Maybe there is no
+	directory part.
+	(gnus-score-search-global-directories): Use file-directory-p.
+
+	* gnus-score.el (gnus-score-score-files-1): Use
+	gnus-kill-files-directory.
+	From Adrian Aichner <adrian@xemacs.org>.
+
+2001-03-05 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (charset): Move here from gnus-sum.el.
+
+2001-03-04 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-preview): Disable local map.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Make
+	gnus-article-post-menu here.
+
+	* gnus-art.el (gnus-article-make-menu-bar): Make summary-menu bar
+	if it has not been made.
+
+2001-03-02 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-describe-key): Map key to event.
+	(gnus-article-describe-key-briefly): Ditto
+
+2001-03-01 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-limit-include-expunged): Fix.
+
+2001-03-01 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Katsumi Yamaoka <yamaoka@jpl.org>.
+
+	* dgnushack.el (coerce, merge, subseq): defmacro.
+
+2001-03-01 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* lpath.el (nndraft-request-group): Move it here from nndraft.el.
+	A fake defalias in nndraft.el results a not-activated bug in
+	uncompiled versions.
+
+2001-02-26 11:27:27  Paul Jarc  <prj@po.cwru.edu>
+	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-split-references): Handle malformed References:.
+
+2001-02-26 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-mime-part-status): 1 part.
+
+2001-02-25 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From NAGY Andras <nagya@inf.elte.hu>.
+
+	* gnus.el (gnus-parameters): Typo.
+
+2001-02-24 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-read-method): Remove redundancy.
+
+2001-02-23 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnslashdot.el (nnslashdot-backslash-url): New variable.
+	(nnslashdot-request-list): Use it.
+
+2001-02-23 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnml.el (nnml-generate-active-info): Fix the case when there is
+	no file.
+
+	* gnus-sum.el (gnus-summary-import-article): Display it. Enable edit.
+	(gnus-summary-create-article): New function.
+
+	* gnus-group.el (gnus-group-mark-article-read): New function.
+
+	* gnus-msg.el (gnus-inews-do-gcc): Use it.
+
+	* gnus-art.el (gnus-article-edit-article): Set modified-p nil.
+
+2001-02-23 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-edit-done): Don't use
+	gnus-article-edit-exit.
+	(gnus-article-edit-exit): Confirm and insert original-article-buffer.
+
+	* gnus.el (gnus-parameters): New variable.
+	Suggested by NAGY Andras <nagya@inf.elte.hu>.
+	(gnus-parameters-get-parameter): New function.
+	(gnus-group-find-parameter): Use it.
+
+2001-02-23  Simon Josefsson  <simon@josefsson.org>
+
+	* gnus-msg.el (gnus-post-method): Fix documentation to reflect
+	change of default value to `current'.
+
+2001-02-23 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nneething.el (nneething-get-head): Insert unreadable file too.
+
+2001-02-22 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-insert-articles): Remove fetched headers.
+
+	* webmail.el (webmail-type-definition): Deja is bought by google.
+
+2001-02-22 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-fetch-headers): New function.
+	(gnus-select-newsgroup): Use it.
+	(gnus-summary-insert-articles): New function.
+	(gnus-summary-insert-old-articles): New function.
+	(gnus-summary-insert-new-articles): New function.
+
+	* gnus-group.el (gnus-group-prepare-flat-list-dead): Use decoded-name.
+	(gnus-group-list-active): Ditto.
+	* gnus-sum.el (gnus-set-mode-line): Ditto.
+	(gnus-summary-read-group-1): Ditto.
+
+2001-02-21 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-topic.el (gnus-topic-get-new-news-this-topic): Redraw the
+	current topic.
+
+2001-02-21 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* smiley.el (gnus-smiley-display): Don't do widening.
+
+	* smiley-ems.el (gnus-smiley-display): Don't do widening. Smiley
+	within body.
+
+	* gnus-msg.el (gnus-inews-do-gcc): Activate group anyway.
+
+	* gnus-art.el (gnus-mime-display-multipart-alternative-as-mixed):
+	New variable.
+	(gnus-mime-display-multipart-related-as-mixed): New variable.
+	(gnus-mime-display-part): Use them.
+
+2001-02-20 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-setup-news): Allow gnus-group-line-format to be
+	something special.
+
+2001-02-20 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnweb.el (nnweb-request-group): Set nnweb-group anyway.
+	(nnweb-request-article): Call reference if exists.
+	(nnweb-type-definition): Dejanews is bought by google.com.
+	Beta!
+
+2001-02-19 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-draft.el (gnus-draft-reminder): "Confirm to exit?"
+
+2001-02-19  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-sum.el (gnus-thread-sort-functions): Doc fix.  Refer to
+	gnus-article-sort-functions.
+	(gnus-article-sort-functions): Doc fix.  Refer to
+	gnus-thread-sort-functions.
+
+2001-02-18 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	From Paul Jarc <prj@po.cwru.edu>.
+
+	* message.el (message-get-reply-headers): More fixes.
+
+2001-02-17  Paul Jarc  <prj@po.cwru.edu>
+	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-get-reply-headers): Fix bug with
+	Mail-Followup-To/to-address interaction.
+
+2001-02-17 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-configure-posting-styles): Match header in
+	gnus-article-copy.
+
+2001-02-16 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-do-send-housekeeping): Rename to a better
+	name.
+
+2001-02-16 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-cancel-news): Check article first, then ask
+	yes or no.
+
+2001-02-16 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-uu.el (mm-uu-type-alist): Add emacs-sources.
+
+2001-02-16 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-range.el (gnus-range-normalize): New function.
+
+2001-02-15  NAGY Andras  <nagya@inf.elte.hu>
+
+	* imap.el (imap-gssapi-open): Set imap-c-l-s-first.
+
+2001-02-14 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-srvr.el (gnus-server-regenerate-server): Use gnus-get-function.
+
+	* nnagent.el (nnagent-request-regenerate): New function.
+
+	* nnfolder.el (nnfolder-request-regenerate): New deffoo.
+
+	* nnml.el (nnml-generate-nov-databases): Accept argument
+	server. Don't open server if it is opened.
+	(nnml-request-regenerate): Use it. Change to deffoo.
+
+2001-02-14  Katsumi Yamaoka  <yamaoka@jpl.org>
+	Committed by ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-define-group-parameter): Fix.
+
+2001-02-14 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-define-group-parameter): Improved.
+
+	* gnus-sum.el (charset): Define parameter.
+	(ignored-charsets): Ditto.
+	(gnus-summary-setup-default-charset): Use them.
+
+	* gnus-start.el (gnus-read-descriptions-file): Use them.
+
+	* gnus-cus.el (gnus-group-parameters): Remove them.
+
+2001-02-14 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-print-article): Redo highlight.
+
+2001-02-13 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-read-group-1): Remove
+	gnus-summary-set-local-parameters.
+	(gnus-summary-setup-buffer): Put it here.
+
+2001-02-13 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (to-address): Define parameter.
+	(to-list): Ditto.
+	* gnus-art.el (article-hide-boring-headers): Use them.
+	* gnus-msg.el (gnus-post-news): Ditto.
+	* gnus-cus.el (gnus-group-parameters): Remove them.
+
+2001-02-13 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-draft.el (gnus-draft-reminder): New function.
+
+	* gnus-art.el (gnus-sender-save-name): New function.
+
+2001-02-13 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-mime-charset): Error message.
+
+2001-02-13 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-check-news-body-syntax): Don't check mml lines.
+
+2001-02-12 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-topic.el (gnus-subscribe-topics): Return nil if not
+	subscribe.
+
+	* gnus-start.el (gnus-call-subscribe-functions): New function.
+	(gnus-find-new-newsgroups): Use it.
+	(gnus-ask-server-for-new-groups): Use it.
+	(gnus-check-first-time-used): Use it.
+	(gnus-subscribe-newsgroup-method): Grok a list of functions.
+	(gnus-subscribe-options-newsgroup-method): Ditto.
+	(gnus-subscribe-hierarchically): Return gnus-subscribe-newsgroup's
+	return .
+
+2001-02-12  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-cus.el (gnus-score-customize): Doc fix.
+
+2001-02-11  Jesper Harder  <harder@ifa.au.dk>
+
+	* dgnushack.el (my-getenv): Typo.
+
+2001-02-11 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* dgnushack.el (dgnushack-make-load): Don't autoload smiley functions.
+
+2001-02-11 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-suspend): Offer save summaries.
+
+	* gnus-art.el (gnus-treat-leading-whitespace): New variable.
+	(gnus-treatment-function-alist): Use it.
+	(article-remove-leading-whitespace): New function.
+	(gnus-article-make-menu-bar): Use it.
+
+	* gnus-sum.el (gnus-summary-wash-empty-map): Add
+	remove-leading-whitespace.
+	(gnus-summary-wash-map): Bind strip-headers-in-body to `W a',
+	because of conflict.
+
+2001-02-09 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* Makefile.in: Hack generating gnus-load.el.
+	* dgnushack.el: Ditto.
+	* gnus-load.el: Remove it.
+
+2001-02-09 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* dgnushack.el : Add URLDIR.
+
+	* Makefile.in (EMACS_COMP): Ditto.
+
+2001-02-09 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-cus.el (gnus-score-customize): Error on no score file.
+
+2001-02-09 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-merge-handles): New function.
+
+	* mm-view.el (mm-inline-message): Use it.
+	(mm-view-message): Ditto.
+
+	* mm-partial.el (mm-inline-partial): Ditto.
+
+	* mm-extern.el (mm-inline-external-body): Ditto.
+
+	* gnus-art.el (gnus-mime-view-part): Ditto.
+	(gnus-mime-view-part-as-type): Ditto.
+	(gnus-mime-save-part-and-strip): Prevent users to strip in some
+	cases.
+
+2001-02-08 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-cancel-news): Allow to shoot foot.
+	(message-supersede): Ditto.
+
+2001-02-08  Tommi Vainikainen  <thv@iki.fi>
+	Trivial patch.
+
+	* gnus-sum.el (gnus-simplify-subject-re): Use
+	message-subject-re-regexp.
+
+2001-02-08 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmail.el (nnmail-expiry-target-group): Bind
+	nnmail-cache-accepted-message-ids to nil.
+
+	* gnus-xmas.el (gnus-xmas-article-display-xface): Use binary
+	coding system.
+
+2001-02-07 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* qp.el (quoted-printable-encode-region): Make sure characters are
+	between 00 and FF.  Don't check charset.
+
+	* mm-encode.el (mm-encode-content-transfer-encoding): Use unibyte
+	in Emacs 20.
+	* rfc2047.el (rfc2047-q-encode-region): Ditto.
+
+2001-02-07 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-make-forward-subject): Argument decoded.
+	(message-forward): Use it when digest.
+
+	* gnus-uu.el (gnus-uu-grab-articles): Shoot down original article
+	buffer.
+
+2001-02-07  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* message.el (message-generate-headers-first): Doc fix.
+
+2001-02-07 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-make-date-line): Error proof.
+
+2001-02-06 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-listing-limit): New variable.
+	(gnus-group-prepare-flat-list-dead): Use old trick to speed up.
+
+	* gnus-topic.el (gnus-group-prepare-topics): Use gnus-killed-hashtb.
+
+2001-02-06 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-newline-and-reformat): Special case for
+	breaking at BOL.
+
+2001-02-06  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-uu.el (gnus-uu-save-article): Make the topics summary a
+	message/rfc822.
+
+2001-02-06 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-encode-message-body): Don't insert
+	Content-Type if it is inside a mail.
+
+2001-02-06 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-xmas.el (gnus-xmas-article-menu-add): Add
+	gnus-article-commands-menu.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Don't share menu bar
+	in Emacs.
+
+	* gnus-start.el (gnus-read-descriptions-file): Use
+	gnus-group-name-charset and gnus-group-charset-alist.
+
+2001-02-04 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-mark-as-processable): Understand
+	active region.
+
+	* gnus-start.el (gnus-group-change-level): Remove from both
+	gnus-zombie-list and gnus-killed-list.
+
+2001-02-04 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-subscribe-options-newsgroup-method): Add
+	gnus-subscribe-topics.
+
+	* gnus-cus.el (gnus-extra-topic-parameters): Fix doc.
+
+2001-02-04 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-make-menu-bar): Make
+	gnus-article-post-menu.
+
+	* gnus-xmas.el (gnus-xmas-article-menu-add): Add post menu.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Use t if XEmacs.
+
+	* gnus-group.el (gnus-group-make-menu-bar): Ditto.
+
+	* message.el (message-mode-menu): Ditto.
+
+	* gnus-art.el (defvar): eval-when-compile.
+
+2001-02-02 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agentize): Fix doc.
+
+2001-02-02  Karl Kleinpaste  <karl@charcoal.com>
+
+	* mml.el (mml-preview): Bind `q'.
+
+2001-02-02 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-mime-mule-charset-alist): non-Mule case.
+
+2001-01-31  Dave Love  <fx@gnu.org>
+
+	* mm-util.el (mm-mime-mule-charset-alist)
+	(mm-find-mime-charset-region): Consider mule-utf-8.
+
+2001-01-31  Dave Love  <fx@gnu.org>
+
+	* gnus-art.el (gnus-article-x-face-command)
+	(gnus-treat-display-xface, gnus-treat-display-smileys): Add
+	:version.
+
+2001-01-26  Dave Love  <fx@gnu.org>
+
+	* mm-util.el (mm-multibyte-string-p): New.
+
+;;	* qp.el: Remove un-logged bogus changes from 2000-12-20.
+;;	(quoted-printable-encode-region): Doc fix.  Don't call
+;;	string-as-multibyte on class.  Clarify line-folding.
+	(quoted-printable-encode-string): Make temp buffer inherit
+	string's multibyteness.
+
+2001-01-23  Gerd Moellmann  <gerd@gnu.org>
+
+	* nnheader.el (toplevel): Don't require `gnus-util' at
+	compile-time; this creates a circular dependency, and prevents
+	a bootstrap.
+
+2001-01-22  Andreas Schwab  <schwab@suse.de>
+
+	* nnheader.el (gnus-delete-line): Autoload it as a macro.
+
+2001-01-31 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmail.el (nnmail-remove-list-identifiers): Use consp.
+
+	* gnus-art.el (article-hide-list-identifiers): Ditto.
+
+	* gnus-sum.el (gnus-summary-remove-list-identifiers): Ditto.
+
+2001-01-31 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-remove-list-identifiers): Similar.
+
+	* gnus-art.el (article-hide-list-identifiers): Similar.
+
+2001-01-31  Karl Kleinpaste  <karl@charcoal.com>
+
+	* nnmail.el (nnmail-remove-list-identifiers): Improved.
+
+2001-01-31 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-score.el (gnus-summary-score-entry): match may be an integer.
+
+2001-01-30 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-string-equal): New function.
+
+	* gnus-art.el (article-hide-boring-headers): Use it.
+
+2001-01-27  Karl Kleinpaste  <karl@charcoal.com>
+
+	* gnus-art.el (gnus-article-banner-alist): eGroups new banner.
+
+2001-01-27 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-msg-mail): Support switch-action.
+
+2001-01-26 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-summary-save-in-pipe): Prompt for saving
+	command if there is not last-saver.
+
+2001-01-24 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nntp.el (nntp-open-connection): 201 is possible.
+
+2001-01-24 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2047.el (rfc2047-encode): MIME charset is not coding system.
+	(rfc2047-charset-encoding-alist): Add big5.
+
+2001-01-24 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-add-server): Redraw the line.
+	(gnus-agent-remove-server): Ditto.
+	(autoload): gnus-server-update-server.
+
+	* gnus-srvr.el (gnus-server-line-format): Add %a.
+	(gnus-server-line-format-alist): Add gnus-tmp-agent.
+	(gnus-server-insert-server-line): Use it.
+
+2001-01-24 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-mime-mule-charset-alist): Preferred MIME names
+	GB2312 and Big5.
+
+2001-01-24  Simon Josefsson  <sj@extundo.com>
+
+	* mail-source.el (mail-sources): Add :program specifier to IMAP
+	mail source.
+	(mail-source-fetch-imap): Map :program to `imap-shell-program'.
+
+2001-01-24 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-score.el (gnus-score-lower-thread): Fix a doc typo.
+
+2001-01-24 12:22:47  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nntp.el (nntp-wait-for): Return the success code.
+	(nntp-open-connection): Use it.
+
+2001-01-11 11:49:02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-int.el (gnus-check-server): Allow breaking the opening.
+
+2001-01-23 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-print-article): Remove process mark.
+
+2001-01-22 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-print-article): Take one prefix
+	argument. Allow to print several articles in one file.
+
+2001-01-21 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* webmail.el (webmail-type-definition): netaddress changes.
+
+2001-01-21 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el: Fix copyright. Remove trailing spaces.
+
+	* message.el (message-forward): Use mule4.
+
+2001-01-20 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-string-as-unibyte): New function.
+
+	* message.el (message-forward): Use it.
+
+2001-01-19 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-cite-original-without-signature): Don't peel
+	off the blank line.
+	(message-get-reply-headers): Add Cc if it is not in follow-to.
+
+2001-01-20  Simon Josefsson  <sj@extundo.com>
+
+	* mm-decode.el (mm-handle-multipart-from): Add.
+	(mm-dissect-buffer): Save From: header value.
+	(mm-security-from): Remove.
+	(mm-possibly-verify-or-decrypt): Don't set mm-security-from.
+
+	* mml-smime.el (mml-smime-verify): Use `mm-handle-multipart-from'
+	instead of `mml-security-from'.  Protect null from value.
+
+2001-01-20  Simon Josefsson  <sj@extundo.com>
+
+	* mailcap.el (mailcap-mime-data): Run `gnumeric' on
+	application/vnd.ms-excel attachments.
+
+2001-01-19  Simon Josefsson  <sj@extundo.com>
+
+	* gnus-art.el (gnus-button-alist): Add `?=' to mailto URL regexp.
+
+2001-01-19 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-ignored-mail-headers): Ditto.
+
+2001-01-19  Simon Josefsson  <sj@extundo.com>
+
+	* message.el (message-ignored-news-headers): Only search beginning
+	of line.
+
+2001-01-19  ShengHuo Zhu  <zsh@cs.rochester.edu>
+	Trivial patch from Alberto Lusiani  <a.lusiani@noemail.org>
+
+	* message.el (message-send-mail): Content-Type may not be there.
+
+2001-01-18 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-ems.el (gnus-article-display-xface): Add BUFFER.
+	* gnus-xmas.el (gnus-xmas-article-display-xface): Ditto.
+
+	* gnus-art.el (article-display-x-face): Insert X-Face if there is
+	not.
+
+2001-01-18 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-read-group-1): Don't test dead
+	non-native groups.
+
+2001-01-18 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-yank-original): Understand
+	universal-argument.
+
+2001-01-18 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-boring-article-headers): Add to-address.
+	(article-hide-boring-headers): Ditto.
+
+	* mm-view.el (mm-inline-message): Insert a newline unless bolp.
+
+2001-01-18 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2047.el (rfc2047-fold-region): Don't insert LWSP if there is
+	one.
+
+2001-01-16  Simon Josefsson  <simon@josefsson.org>
+
+	* message.el (message-make-in-reply-to): Add comment to message-id
+	(old syntax, see 2000-08-02 change).
+
+2001-01-16 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-url-mailto): Use gnus-msg-mail.
+	(gnus-button-mailto): Setup message. Moved to gnus-msg.el.
+	(gnus-button-reply): Ditto.
+
+2001-01-16  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-display-x-face): Fix.
+
+2001-01-15 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-display-x-face): Use
+	gnus-original-article-buffer.
+
+2001-01-15  Jack Twilley  <jmt@tbe.net>
+
+	* message.el (message-add-header): Move to point-max.
+
+2001-01-15  Simon Josefsson  <simon@josefsson.org>
+
+	* smime.el (smime-CA-directory, smime-CA-file): Change default to
+	nil, improve documentation.
+	(smime-certificate-directory): Comment out false hints (until it
+	is implemented).
+
+	* mml-smime.el (mml-smime-sign): Place user in customize buffer if
+	there aren't any keys.
+	(mml-smime-verify): If smime-CA-{file,directory} set, also try to
+	verify certificate.  Default is changed to only check integrity.
+	Improved security status texts.  If a certificate doesn't contain
+	a email address, don't fail.
+
+	* smime.el (smime-noverify-region):
+	(smime-noverify-buffer): New functions.  Verifies integrity only.
+
+2001-01-12 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-sort-by-score): Reverse order.
+
+2001-01-12 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-win.el (gnus-configure-windows): switch-to-buffer in XEmacs.
+	(gnus-remove-some-windows): Ditto.
+
+2001-01-12 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-make-date-line): 11th.
+
+2001-01-11 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-gpg-encrypt): Remove CR.
+	(mml2015-gpg-sign): Ditto.
+
+2001-01-10 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el: Sync with EMACS_PRETEST_21_0_95.
+	* gnus.el (gnus-default-posting-charset): Bogus. Removed.
+
+2001-01-08  Dave Love  <fx@gnu.org>
+
+	* mm-encode.el (mm-qp-or-base64): Don't base64 for the sake of a
+	single character.
+
+	* mm-util.el (mm-mime-mule-charset-alist): Add Latin-{8,9}.
+
+	* message.el: Doc and message fixes.
+	(message-send-rename-function)
+	(message-make-forward-subject-function)
+	(message-send-mail-function, message-reply-to-function)
+	(message-wide-reply-to-function, message-followup-to-function)
+	(message-distribution-function, message-auto-save-directory): Fix
+	:type.
+
+	* gnus/mml.el (mml-parse-1): Frob mml-confirmation-set when
+	proceeding after warnings.  Amend multipart warning message.
+
+2001-01-04  Dave Love  <fx@gnu.org>
+
+	* gnus-util.el (nnmail-pathname-coding-system): Defvar when
+	compiling.
+	(gnus-make-directory): Require nnmail.
+
+	* mm-decode.el (mm-inline-media-tests): Add
+	image/x-portable-bitmap.
+	(mm-get-image): Grok pbm.
+
+2001-01-10  Paul Stevenson  <p.stevenson@surrey.ac.uk>
+
+	* nnvirtual.el (nnvirtual-request-expire-articles): delq nil.
+
+2001-01-09  Didier Verna  <didier@xemacs.org>
+
+	* dgnushack.el (dgnushack-compile): give a dummy value to
+	`gnus-xmas-glyph-directory' for the time of compilation.
+	* gnus-agent.el: moved some XEmacs specific hook add-ons from
+	`gnus-xmas-[re]define' to avoid loosing user custom settings.
+	* gnus-art.el: ditto.
+	* gnus-group.el: ditto.
+	* gnus-salt.el: ditto.
+	* gnus-sum.el: ditto.
+	* gnus-topic.el: ditto.
+	* gnus-xmas.el (gnus-xmas-define): see above.
+	* gnus-xmas.el (gnus-xmas-redefine): see above.
+	* gnus-xmas.el (gnus-xmas-glyph-directory): generate a
+	non-continuable error when the directory can't be found.
+
+2001-01-09 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-interactively-view-part): Don't copy-sequence
+	handle.
+	* gnus-art.el (gnus-mime-view-part): Copy it.
+	(gnus-mime-view-part-as-type): Add into gnus-article-mime-handles.
+
+2001-01-09  Michael Downes  <mjd@ams.org>
+
+	* gnus-sum.el (gnus-summary-read-group-1): More useful message.
+
+2001-01-08 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmail.el (nnmail-get-new-mail): Find group only if file is not
+	orig-file. Use ',source.
+
+2001-01-08 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-xmas.el (gnus-xmas-modeline-glyph):
+	(gnus-xmas-group-startup-message):
+	Detect gnus-xmas-glyph-directory when it is nil.
+
+2001-01-08 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* pop3.el (pop3-get-message-count): Andrew Innes
+	<andrewi@gnu.org>'s patch of 1999-12-01 was not fully committed.
+
+2001-01-05 06:49:37  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-agent.el (gnus-agent-fetch-session): Say what we quit.
+
+	* time-date.el (time-to-number-of-days): New function.
+
+2001-01-04 11:06:14  Gregory Chernov  <greg@visiontech-dml.com>
+	Trivial patch.
+
+	* nnslashdot.el (nnslashdot-request-list): Always get the right
+	sid.
+
+2001-01-05 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-minibuffer-local-map): New keymap.
+	(message-read-from-minibuffer): Use it.
+	* gnus-msg.el (gnus-summary-resend-message): Use it
+
+2001-01-04 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-display-time-event-handler): New function.
+	(gnus-after-getting-new-news-hook): Use it.
+
+2001-01-03 07:26:58  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.el (message-ignored-mail-headers): Add draft header.
+
+2001-01-02 06:28:28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-expire-articles): Don't save
+	excursion.
+
+	* nnslashdot.el (nnslashdot-request-list): Get the right year.
+
+2001-01-01 00:52:44  Ed L. Cashin  <ecashin@coe.uga.edu>
+	A revoked patch.
+
+	* gnus-sum.el (gnus-summary-expire-articles): Save excursion.
+
+2000-12-31 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* qp.el (quoted-printable-decode-region): Don't backward-char.
+
+2000-12-31 03:57:31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-draft.el: Mark articles as replied.
+
+	* gnus-sum.el (gnus-summary-add-mark): New function.
+
+	* gnus-group.el (gnus-add-mark): New function.
+
+	* gnus-sum.el (gnus-summary-buffer-name): New function.
+	(gnus-summary-setup-buffer): Use it.
+
+	* gnus-draft.el: Set things up with the right post method and
+	stuff.
+
+	* message.el (message-ignored-news-headers): Remove X-Draft-From.
+
+	* gnus-msg.el (gnus-inews-insert-draft-meta-information): New function.
+
+	* gnus.el (gnus-draft-meta-information-header): New variable.
+
+2000-12-30 00:17:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-treatment-function-alist): Move the date
+	functions before the header sorting functions.
+
+	* mm-uu.el (mm-uu-pgp-signed-extract-1): Unquote "- " quotes.
+
+	* dgnushack.el (dgnushack-compile): Message whether there is w3.
+	Don't (push "/usr/share/emacs/site-lisp" load-path).
+
+	* gnus-cite.el (gnus-article-fill-cited-article): Don't add space
+	to empty fill prefixes.
+
+2000-12-30 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nntp.el (nntp-open-connection): Kill pbuffer if process is nil.
+	Suggested by Christoph Conrad <christoph.conrad@gmx.de>.
+
+2000-12-30 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnheader.el (autoload): Autoload gnus-sorted-intersection.
+
+	* nnml.el (autoload): Move to nnheader.el.
+
+	* nnfolder.el (nnfolder-existing-articles): Reversed, i.e. sorted.
+	(nnfolder-request-expire-articles): Use gnus-sorted-intersection.
+	(nnfolder-retrieve-headers): Use intersection. Suggested by Jonas
+	Kvarnstr,Av(Bm <jonkv@ida.liu.se>.
+
+2000-12-30 00:17:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (article-make-date-line): Get the hours right.
+	(gnus-ignored-headers): More hiding.
+
+	* nnmail.el (nnmail-expiry-wait): Not an integer.
+
+	* message.el (message-goto-body): Only expand abbrev when called
+	interactively.
+	(message-make-lines): Use it.
+
+2000-12-29 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-inews-yank-articles): Reparse headers.
+
+2000-12-30 00:17:38  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-sum.el (gnus-summary-limit-include-expunged): Really
+	include the expunged articles.
+
+	* gnus-group.el (gnus-group-sort-by-server): New function.
+
+	* gnus.el (gnus-method-to-server-name): New function.
+	(gnus-group-prefixed-name): Use it.
+
+	* gnus-group.el (gnus-group-sort-function): Doc fix.
+	(gnus-group-sort-groups-by-server): New command.
+
+2000-12-29 13:25:10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-art.el (gnus-treat-date-english): New variable.
+	(article-date-english): New command.
+	(gnus-english-month-names): New variable.
+	(article-make-date-line): Do 'english.
+
+	* gnus-cite.el (gnus-article-fill-cited-article): Add a space
+	after the fill prefix.
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Removed "Enter
+	score...".
+
+	* gnus-art.el (gnus-ignored-headers): Hide more headers.
+
+	* message.el (message-mode-map): Bind comment-region.
+
+	* gnus-art.el (gnus-mime-display-part): Let w3 display
+	multipart/related.
+
+	* mm-bodies.el (mm-long-lines-p): New function.
+	(mm-body-encoding): Use it.
+	(mm-body-encoding): Encode articles with lines longer than 1000
+	characters.
+
+2000-12-29 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-enable-multibyte): Use
+	default-enable-multibyte-characters.
+	(mm-enable-multibyte-mule4): Ditto.
+	(mm-disable-multibyte): Test XEmacs.
+	(mm-disable-multibyte-mule4): Ditto.
+	(mm-with-unibyte-current-buffer): Simplified.
+	(mm-with-unibyte-current-buffer-mule4): Ditto.
+
+2000-12-28 19:44:56  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnheaderxm.el (nnheader-string-as-multibyte): New alias.
+
+	* nnheader.el (nnheader-string-as-multibyte): New alias.
+
+	* mm-view.el (mm-inline-text): Warn when bugging out in w3.
+
+	* gnus-uu.el (gnus-message-process-mark): New function.
+	(gnus-uu-mark-by-regexp): Use it.
+	(gnus-new-processable): New function.
+
+2000-12-28 19:21:57  Inge Frick  <inge@nada.kth.se>
+	 Trivial patch.
+
+	* gnus-sum.el (gnus-no-mark): New variable.
+
+2000-11-01 01:12:29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnwfm.el (nnwfm-create-mapping): Remove quote marks and
+	backslashes.
+
+2000-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (gnus-article-banner-alist): Remove duplicate
+	definition.
+
+2000-12-25 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* dgnushack.el (dgnushack-compile): elc is in the current directory.
+
+	* qp.el (quoted-printable-encode-region): Don't check multibyte in
+	XEmacs.
+
+2000-12-25  Lloyd Zusman  <ljz@asfast.com>
+	Trivial patch.
+
+	* mml.el (mml-read-tag): Save tag location.
+
+2000-12-25  Simon Josefsson  <simon@josefsson.org>
+
+	* starttls.el: Sync with Emacs 21.
+
+2000-12-24 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-mail): Support yank-action.
+
+	* message.el (message-setup): Revoke the last change.
+
+2000-12-24 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-setup): Use cons. Suggested by Johan Vromans
+	<jvromans@squirrel.nl>.
+
+2000-12-24  Simon Josefsson  <sj@extundo.com>
+
+	* mm-bodies.el (mm-decode-content-transfer-encoding): Preserve
+	mailing list junk at end of part.
+
+2000-12-23  Simon Josefsson  <sj@extundo.com>
+
+	* nnimap.el (nnimap-expiry-target): New function.
+	(nnimap-request-expire-articles): Use it.
+
+2000-12-22 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-group-parameters-more): New variable.
+	* gnus-cus.el (gnus-group-customize): Use it.
+
+	* gnus.el (gnus-define-group-parameter): New macro.
+	(auto-expire): Use it
+	(total-expire): Use it.
+	* gnus-art.el (banner): Use it.
+
+	* mml.el (mml-parse): save-excursion. Suggested by Lloyd Zusman
+	<ljz@asfast.com>.
+
+2000-12-22 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-topic.el (gnus-topic-create-topic): Use list.
+
+	* gnus-vm.el (gnus-summary-save-article-vm): Require gnus-art
+	before binding gnus-default-article-saver.
+
+	* gnus-sum.el (gnus-summary-save-article):
+	(gnus-summary-pipe-output):
+	(gnus-summary-save-article-mail):
+	(gnus-summary-save-article-rmail):
+	(gnus-summary-save-article-file):
+	(gnus-summary-write-article-file):
+	(gnus-summary-save-article-body-file): Ditto.
+
+	* gnus-mh.el (gnus-summary-save-article-folder): Ditto.
+
+2000-12-22 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-security-button-map):
+	(gnus-mime-button-map): Add parent.
+
+2000-12-22 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* messagexmas.el (message-xmas-redefine): New function.
+
+	* message.el: Use it.
+
+	* gnus-art.el (gnus-article-check-hidden-text): Return t.
+
+	* gnus-util.el (gnus-remove-text-properties-when): Return t.
+
+2000-12-22 03:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-dissect-multipart): Avoid errors owing to
+	malformatted messages.
+
+2000-12-22 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-image-load-path): New function.
+
+	* gnus-group.el (gnus-group-make-tool-bar): Use it.
+
+	* gnus-sum.el (gnus-summary-make-tool-bar): Use it.
+
+	* message.el (message-tool-bar-map): Use it.
+
+	* Makefile.in (install-el): New rule.
+
+2000-12-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-art.el (article-treat-dumbquotes): Quote \.
+
+2000-12-21 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-treat-emphasize): Don't treat emphasis if
+	Emacs 20 runs on a terminal.
+
+2000-12-21 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-bug): Revert to save-excursion.
+
+	* mml.el (gnus-add-minor-mode): Autoload.
+
+	* message.el (message-forward): Save-restriction.
+
+2000-12-21  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-art.el (article-treat-dumbquotes): More doc, provided by
+	Paul Stevenson <p.stevenson@surrey.ac.uk>
+
+2000-12-21 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-ml.el (gnus-mailing-list-mode-map): Use C-c C-n prefix.
+
+	* mml.el (gnus-ems): Don't require.
+
+	* gnus.el (gnus-decode-rfc1522): Removed.
+	(gnus-set-text-properties): Define.
+
+2000-12-21 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-*): handle may be nil.
+
+	* gnus-sum.el (gnus-summary-mode): Turn on gnus-mailing-list-mode.
+
+	* gnus.el (gnus-group-remove-excess-properties): Not defined
+	in gnus-xmas.
+
+2000-12-20 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-mail-user-agent): Add :version.
+
+2000-12-21  Miles Bader  <miles@gnu.org>
+
+	* message.el (message-mode): Set `comment-start' to the  yank prefix.
+
+2000-12-20 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-mail-user-agent): New variable.
+	(message-setup): Renamed to message-setup-1. Support
+	mail-user-agent.
+	(message-mail-user-agent): New function.
+	(message-mail): Use it.
+	(message-reply): Use it.
+	(message-resend): Use it.
+	(message-mail-other-window): Use it.
+	(message-mail-other-frame): Use it.
+
+	* gnus-msg.el (gnus-bug): Support mail-user-agent.
+
+2000-12-20 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-tool-bar-map): Simplify.
+	(message-narrow-to-head-1): New function.
+	(message-narrow-to-head): Use it.
+	(message-reply): Ditto.
+	(message-cancel-news): Ditto.
+	(message-supersede): Ditto.
+	(message-make-forward-subject): Ditto.
+	(message-bounce): Ditto.
+
+2000-12-20 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* uudecode.el (uudecode-decode-region-external): make-temp-file
+	may not be defined.
+
+	* binhex.el (defalias): eval-and-compile.
+
+	* message.el (message-tool-bar-map): New function.
+	(message-mode): Use it.
+
+2000-12-20 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nntp.el (nntp-find-connection): Remove the entry.
+	(nntp-retrieve-groups): (gnus-buffer-live-p buf).
+
+2000-12-20 05:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-summary-mail-forward): Use original buffer.
+
+	* message.el (message-forward): Copy buffer in unibyte mode.
+
+2000-12-20 04:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-make-forward-subject): Don't widen. Decode.
+	(message-forward): Don't decode subject.
+
+2000-12-20  Christoph Conrad  <C.Conrad@cli.de>
+
+	* qp.el (quoted-printable-encode-region): Upcase QP.
+
+2000-12-20 03:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-possibly-verify-or-decrypt): Use
+	mail-extract-a-c instead. Don't depend on Gnus.
+
+	* mml.el (gnus-ems): Require it.
+
+	* gnus-msg.el (gnus-summary-mail-forward):
+
+	* message.el (message-forward):  Move mime-to-mml here.
+
+2000-12-20 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el, gnus-sum.el, message.el: Add :help unless Emacs.
+	* gnus-art.el (gnus-insert-mime-button): Simplify.
+	(gnus-mime-display-alternative): Ditto.
+	(gnus-insert-mime-security-button): Ditto.
+
+2000-12-20 01:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-add-text-properties-when): In XEmacs,
+	text-property-not-all doesn't return nil when start=mark(end).
+	(gnus-remove-text-properties-when): Ditto.
+
+2000-12-20 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-group-change-level): Remove group from
+	gnus-active-hashtb if real killed.
+
+2000-12-19 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-insert-mime-button): Emacs20 needs local-map.
+	(gnus-mime-display-alternative): Ditto.
+	(gnus-insert-mime-security-button): Ditto.
+
+2000-12-19 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-start.el (gnus-group-change-level): Don't add it into
+	killed-list if it was killed.
+
+2000-12-19 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmbox.el (nnmbox-file-coding-system): Use binary.
+	(nnmbox-active-file-coding-system): Ditto.
+
+	* gnus-cus.el (gnus-group-parameters): Add posting-style.
+
+2000-12-19 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-version):
+	(gnus-version-number): Set to Oort Gnus 0.01.
+
+	* gnus-art.el (gnus-mime-security-button-map):
+	(gnus-insert-mime-security-button): Fix for Emacs21.
+
+2000-12-19 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el, gnus-sum.el, message.el: Comment out :help in
+	easymenu, because XEmacs doesn't understand :help.
+
+	* mm-uu.el: Require binhex.
+
+2000-12-19 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el: Merged. Emacs21 CVS tag is zsh-merge-ognus-1.
+
+2000-12-19  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-charset-synonym-alist): Fix a typo.
+
+2000-12-18  Gerd Moellmann  <gerd@gnu.org>
+
+	* *.xpm, *.pbm: Convert icons icons to size 24x24.
+
+2000-12-18  Dave Love  <fx@gnu.org>
+
+	* gnus-msg.el (news-setup, news-reply-mode): Don't autoload
+	(unused).
+
+2000-12-13  Miles Bader  <miles@gnu.org>
+
+	* smiley-ems.el (smiley-region): Bind `inhibit-point-motion-hooks'
+	to t, so that we don't get stuck while trying to smilefy
+	intangible text.
+
+2000-12-12  Gerd Moellmann  <gerd@gnu.org>
+
+	* smiley-ems.el (smiley-regexp-alist): Make regexps match
+	at the end of the buffer.
+	(smiley-region): In the loop, move to the end of the submatch
+	matching the smiley instead of using the end of the match
+	of the whole regexp.
+
+2000-12-12  Eli Zaretskii  <eliz@is.elta.co.il>
+
+	* message.el (message-mode): Doc fix.
+
+2000-12-12  Gerd Moellmann  <gerd@gnu.org>
+
+	* smiley-ems.el (smiley-region): Doc fix.
+
+2000-12-11  Miles Bader  <miles@gnu.org>
+
+	* gnus-sum.el (gnus-summary-recenter): When trying to keep the
+	bottom line visible, check to see if it's partially obscured, and
+	if so, either scroll one more line to make it fully visible, or
+	revert to showing the second line from the top.
+
+2000-12-07  Dave Love  <fx@gnu.org>
+
+	* mailcap.el (mailcap-download-directory)
+	* gnus-audio.el (gnus-audio-directory)
+	* smiley-ems.el (smiley-data-directory): Fix :type.
+
+2000-11-30  Dave Love  <fx@gnu.org>
+
+	* message.el (message-auto-save-directory): Use
+	file-name-as-directory.
+	(message-set-auto-save-file-name): Create
+	message-auto-save-directory if necessary.
+	(message-replace-chars-in-string): Removed -- unused.
+	(message-mail-alias-type): Customize.
+	(message-headers): Remove duplicate defgroup.
+
+2000-11-29  Dave Love  <fx@gnu.org>
+
+	* qp.el (quoted-printable-decode-region): Use error, not message
+	to report malformed text (like base64).  Amend message.
+
+2000-11-29  Miles Bader  <miles@gnu.org>
+
+	* message.el (message-header-lines): Fontify tag.
+
+2000-11-27  Dave Love  <fx@gnu.org>
+
+	* nnlistserv.el: Ignore errors when requiring nnweb and avoid a
+	compiler warning.
+
+;2000-11-26  Dave Love  <fx@gnu.org>
+;
+;	* mm-uu.el (mm-uu-configure-list): Fix typo in :type.
+;
+2000-11-23  Dave Love  <fx@gnu.org>
+
+	* uu-post.pbm, uu-decode.pbm: new files from XPMs.
+
+	* mm-uu.el (uudecode): Require.
+	(uudecode-decode-region, uudecode-decode-region-external): Don't
+	autoload.
+	(mm-uu-copy-to-buffer): Doc fix.
+	(mm-uu-decode-function, mm-uu-binhex-decode-function): Doc, custom
+	type fix.
+
+	* mailcap.el: Doc fixes.
+	(mailcap-mime-data): Various adjustments.
+	(mailcap): New group.
+	(mailcap-download-directory): Customize.
+	(mailcap-generate-unique-filename, mailcap-binary-suffixes)
+	(mailcap-temporary-directory): Deleted (unused).
+	(mailcap-unescape-mime-test): Simplify slightly.
+	(mailcap-viewer-passes-test): Use functionp.
+	(mailcap-command-p): Aliased to executable-find.
+
+	* rfc2047.el (rfc2047-encode-message-header): Don't encode if
+	default-enable-multibyte-characters is nil.
+
+2000-11-22  Gerd Moellmann  <gerd@gnu.org>
+
+	* gnus-group.el (gnus-group-make-tool-bar): Fix a paren typo.
+
+2000-11-21  Dave Love  <fx@gnu.org>
+
+	* gnus-art.el (gnus-mime-button-map): Don't inherit from
+	gnus-article-mode-map.
+;	(gnus-mime-button-menu): Use mouse-set-point.
+	(gnus-insert-mime-button, gnus-mime-display-alternative)
+	(gnus-mime-display-alternative): Don't use local-map property.
+
+2000-11-17  Dave Love  <fx@gnu.org>
+
+	* uudecode.el (uudecode-insert-char): Fix bogus feature test.
+	(uudecode-decode-region-external): Doc fix.  Use with-temp-buffer
+	and make-temp-file.
+	(uudecode-decode-region): Doc fix.
+
+2000-11-14  Dave Love  <fx@gnu.org>
+
+	* cu-exit.pbm, exit-summ.pbm, followup.pbm, fuwo.pbm:
+	* mail-reply.pbm, next-ur.pbm, post.pbm, prev-ur.pbm:
+	* reply-wo.pbm, reply.pbm, rot13.pbm, save-aif.pbm, save-art.pbm:
+	New files, derived from the XPMs.
+
+2000-11-10  Dave Love  <fx@gnu.org>
+
+	* gnus-agent.el (gnus-agent-confirmation-function): Add :version.
+	(gnus-agent-lib-file, gnus-agent-load-alist)
+	(gnus-agent-save-alist, gnus-agent-article-name): Use
+	expand-file-name.
+
+	* gnus-group.el (gnus-group-name-charset-method-alist): Add
+	:version.
+	(nnkiboze-score-file): Defvar when compiling.
+
+	* gnus-start.el (gnus-read-newsrc-file): Add :version.
+
+	* gnus-art.el (gnus-article-banner-alist)
+	(gnus-emphasize-whitespace-regexp, gnus-ignored-mime-types)
+	(gnus-article-date-lapsed-new-header)
+	(gnus-article-mime-match-handle-function, gnus-mime-action-alist)
+	(gnus-treat-strip-list-identifiers, gnus-treat-date-iso8601)
+	(gnus-treat-strip-headers-in-body)
+	(gnus-treat-capitalize-sentences, gnus-treat-play-sounds)
+	(gnus-treat-translate): Add :version.
+	(gnus-article-mime-part-function): Fix defcustom.
+
+	* nnmail.el (nnmail-expiry-target)
+	(nnmail-scan-directory-mail-source-once, nnmail-extra-headers)
+	(nnmail-split-header-length-limit): Add :version.
+
+	* gnus-sum.el (gnus-auto-expirable-marks)
+	(gnus-inhibit-user-auto-expire, gnus-list-identifiers)
+	(gnus-extra-headers, gnus-ignored-from-addresses)
+	(gnus-newsgroup-ignored-charsets)
+	(gnus-group-highlight-words-alist)
+	(gnus-summary-show-article-charset-alist): Add :version.
+
+	* catchup.pbm, describe-group.pbm, exit-gnus.pbm, get-news.pbm:
+	gnntg.pbm, kill-group.pbm, subscribe.pbm, unsubscribe.pbm: New
+	files, converted from the XPMs.
+
+	* gnus-cache.el (gnus-cache-active-file): Don't use
+	file-name-as-directory on directory.
+	(gnus-cache-file-name): Use expand-file-name, not concat.  Don't
+	use file-name-as-directory on directory.
+
+	* time-date.el (timezone-make-date-arpa-standard): Autoload.
+	(date-to-time): Use it.
+
+;	* message.el (message-mode) <adaptive-fill-regexp>:
+;	<adaptive-fill-first-line-regexp>: Use [:alnum:] in regexp range.
+;	(message-newline-and-reformat): Likewise.
+	(message-forward-as-mime, message-forward-ignored-headers)
+	(message-buffer-naming-style, message-default-charset)
+	(message-dont-reply-to-names, message-send-mail-partially-limit):
+	Add :version.
+
+	* mm-util.el: Doc fixes.
+	(mm-mime-charset): Don't use the raw result of
+	mm-preferred-coding-system.
+	(mm-with-unibyte-buffer, mm-with-unibyte-current-buffer)
+	(mm-with-unibyte): Simplify.
+
+	* gnus-int.el (gnus-start-news-server): Use expand-file-name, not
+	concat.
+
+	* pop3.el (pop3-version): Deleted.
+	(pop3-make-date): New function, avoiding message-make-date.
+	(pop3-munge-message-separator): Use it.
+
+2000-11-09  Dave Love  <fx@gnu.org>
+
+	* gnus-group.el (gnus-group-make-directory-group)
+	(gnus-group-fetch-faq): Use expand-file-name.
+	(gnus-group-fetch-faq): Simplify completing-read form.
+
+	* mm-bodies.el (mm-encode-body): Use mm-multibyte-p, don't just
+	test for Mule.
+
+	* message.el (tool-bar-map): Defvar when compiling.
+
+	* gnus-setup.el (running-xemacs, gnus-use-installed-tm)
+	(gnus-tm-lisp-directory): Deleted.
+	(gnus-use-installed-mailcrypt, gnus-emacs-lisp-directory): Use
+	(featurep 'xemacs).
+	(gnus-gnus-lisp-directory, gnus-mailcrypt-lisp-directory)
+	(gnus-mailcrypt-lisp-directory, gnus-bbdb-lisp-directory): Remove
+	version numbers from file names.
+
+2000-11-08  Dave Love  <fx@gnu.org>
+
+	* mm-view.el: Use featurep for XEmacs test.
+	(mm-inline-message): Test for `remove-specifier'; don't use
+	condition-case.
+
+	* mm-bodies.el (mm-encode-body): Use mm-multibyte-p.
+
+	* gnus-score.el (gnus-score-load-file): Use expand-file-name.
+	(gnus-score-find-bnews): Don't concat "".
+
+	* cu-exit.xpm, prev-ur.xpm, next-ur.xpm, post.xpm, fuwo.xpm:
+	* followup.xpm, uu-post.xpm, uu-decode.xpm, mail-reply.xpm:
+	* reply.xpm, reply-wo.xpm, rot13.xpm, save-aif.xpm, save-art.xpm:
+	* exit-summ.xpm: New files, renamed from icons by Luis Fernandes.
+
+	* gnus-sum.el: Put some defvars in eval-when-compile.
+	(gnus-summary-mode-hook): Add :options.
+	(gnus-summary-make-menu-bar): Add some :help, used by tool bar.
+	(gnus-summary-tool-bar-map): New variable.
+	(gnus-summary-make-tool-bar): New function.
+	(gnus-summary-mode): Put kill-all-local-variables first.
+
+	* gnus-group.el (gnus-group-toolbar-map): New variable.
+	(gnus-group-make-tool-bar): Rewritten.
+	(gnus-group-mode): Put kill-all-local-variables first.
+
+	* rfc2047.el: Require gnus-util.
+
+	* nnml.el (gnus-sorted-intersection): Autoload.
+
+	* nnheader.el: Wrap subst-char-in-string def in eval-and-compile.
+	Put some defvars in eval-when-compile.
+	(gnus-intersection, gnus-sorted-complement):  Autoload.
+
+	* imap.el (imap-point-at-eol): New, replacing gnus-point-at-eol.
+
+	* mm-encode.el (mm-body-7-or-8): Autoload.
+
+	* mm-decode.el (mm-insert-inline): Autoload.
+
+	* mml.el:
+	* message.el: Put some defvars in eval-when-compile.
+
+	* gnus-msg.el: Put some defvars in eval-when-compile.
+	(gnus-msg-mail): Move after gnus-setup-message.
+
+	* smiley-ems.el (smiley-data-directory, smiley-regexp-alist): Doc fix.
+
+2000-11-07  Dave Love  <fx@gnu.org>
+
+	* gnus-util.el (nnheader): Don't require message (recursive
+	autoload).
+
+	* uudecode.el: Avoid compiler warnings.
+
+	* rfc2047.el: (rfc2047-fold-region): Use gnus-point-at-bol.
+	(rfc2047-charset-encoding-alist): Add iso-8859-1[45].
+
+2000-11-06  Dave Love  <fx@gnu.org>
+
+	* gnus-salt.el (gnus-binary-mode): Fix call to gnus-add-minor-mode.
+
+	* uudecode.el: Use (featurep 'xemacs).  Require cl when compiling.
+	(uudecode-char-int): New alias, replacing char-int.
+	(uudecode-decode-region): Don't call buffer-disable-undo.
+
+;	* mm-uu.el (mm-uu-configure): Unquote lambda.
+;	(mm-uu-configure-list): Doc fix.
+;
+;	* earcon.el (running-xemacs): Don't define.
+;
+;2000-11-03  Stefan Monnier  <monnier@cs.yale.edu>
+;
+;	* message.el (message-font-lock-keywords): Match a final newline
+;	to help font-lock's multiline support.
+;
+2000-11-03  Dave Love  <fx@gnu.org>
+
+	* gnus-nocem.el (gnus-nocem-check-article-limit): Default to 500.
+
+	* mm-partial.el (mm-inline-partial): Space-prefix temp buffer
+	name.
+
+	* gnus-cus.el (gnus-group-parameters) <gcc-self>: Fix custom type.
+	<banner>: Fix custom type, doc.
+
+	* mm-decode.el (mm-display-external): Space-prefix temp buffer
+	name.  Don't disable undo explicitly.
+
+;2000-11-02  Dave Love  <fx@gnu.org>
+;
+;	* message.el (message-font-lock-keywords): Use [:alpha:] for
+;	cite-prefix.
+
+2000-11-01  Dave Love  <fx@gnu.org>
+
+	* rfc2047.el (base64): Require unconditionally.
+	(message-posting-charset): Defvar when compiling.
+	(rfc2047-encode-message-header, rfc2047-encodable-p): Require
+	message.
+
+	* gnus-sum.el (nnoo): Require.
+	(mm-uu-dissect): Autoload.
+
+	* mml.el (mml-parse-1): Clarify message.
+	(mml-minibuffer-read-type): Use mailcap-mime-types.
+
+2000-11-01  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* mml.el: Fix a typo in the requiring of CL.
+
+2000-11-01  Dave Love  <fx@gnu.org>
+
+	* utf7.el: Require cl when compiling.
+
+	* binhex.el: Use (featurep 'xemacs).
+	(binhex-char-int): New alias, replacing char-int.  Change callers.
+	(binhex-decode-region): Simplify work buffer code.
+	(binhex-decode-region-external): Use expand-file-name, not concat.
+
+2000-10-30  Dave Love  <fx@gnu.org>
+
+	* gnus-art.el: Fix 2000-10-27 change properly.
+
+2000-10-28  Miles Bader  <miles@gnu.org>
+
+	* gnus-art.el (gnus-read-save-file-name): Remove extraneous paren.
+
+2000-10-27  Dave Love  <fx@gnu.org>
+
+	* gnus-group.el (gnus-group-make-menu-bar): Add some :help
+	strings.
+	(gnus-group-make-tool-bar): New function.
+	(gnus-group-mode): Use it.
+
+	* message.el (message-mode-menu): Add some :help strings.
+	(message-mode) [message-tool-bar-map]: Define tool-bar-map.
+	(featurep): Use (featurep 'xemacs).  Install tool bar for Emacs.
+
+	* catchup.xpm, exit-gnus.xpm, gnntg.xpm, subscribe.xpm:
+	* describe-group.xpm, get-news.xpm, kill-group.xpm:
+	* unsubscribe.xpm: New files.  Renamed icons from Luis Fernandes.
+
+	* mm-decode.el (mm-valid-and-fit-image-p): Don't test
+	display-graphic-p here.
+
+2000-10-27  Miles Bader  <miles@lsi.nec.co.jp>
+
+	* gnus-ems.el (gnus-ems-redefine): Use (featurep 'xemacs) instead
+	of the `gnus-xemacs' variable, as the latter has been removed.
+	* gnus-start.el (gnus-1, gnus-read-descriptions-file): Likewise.
+	* gnus-art.el (gnus-treat-display-xface)
+	(gnus-treat-display-smileys, gnus-treat-display-picons)
+	(gnus-article-read-summary-keys): Likewise.
+
+2000-10-26  Dave Love  <fx@gnu.org>
+
+	(defvar): Use rmail-spool-directory unconditionally.
+
+2000-10-18  Dave Love  <fx@gnu.org>
+
+	* mm-bodies.el (mm-uu-decode-function)
+	(mm-uu-binhex-decode-function): Defvar when compiling.
+
+	* gnus-nocem.el (gnus-nocem-issuers): Update.
+	(gnus-nocem-check-from): New option.
+	(gnus-nocem-scan-groups): Use it.
+	(gnus-nocem-check-article): Bind gnus-newsgroup-name.
+	(gnus-nocem-check-article-limit): Add :version.
+
+2000-10-16  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* ietf-drums.el (mm-util): Require CL when compiling.
+
+2000-10-15  Dave Love  <fx@gnu.org>
+
+	* qp.el: Require mm-util.
+
+2000-10-13  Dave Love  <fx@gnu.org>
+
+	* qp.el (quoted-printable-decode-region): Avoid invalid
+	coding-systems.
+
+2000-10-12  Gerd Moellmann  <gerd@gnu.org>
+
+	* mm-bodies.el: Don't require `mm-uu' at compile-time; it leads
+	to a recursive load.
+
+2000-10-12  Dave Love  <fx@gnu.org>
+
+	* mm-util.el (mm-charset-synonym-alist): Add windows-1252.
+
+	* gnus.el (gnus-group-startup-message): Check for PBM image.
+
+2000-10-09  Dave Love  <fx@gnu.org>
+
+	* mail-source.el (mail-source-fetch-imap): Bind
+	default-enable-multibyte-characters rather than using
+	mm-disable-multibyte.
+
+2000-10-05  Dave Love  <fx@gnu.org>
+
+	* qp.el (mm-decode-coding-region, mm-encode-coding-region):
+	Autoload.
+	(quoted-printable-decode-region):  Rename arg which confused
+	charset with coding-system.  Don't use nonascii-insert-offset.
+	Coding-system encode the region initially.  Don't recognize `=='
+	as valid QP.  Coding-system decode the region finally.
+	(quoted-printable-decode-string): Rename arg which confused
+	charset with coding-system.
+
+	* mm-bodies.el: Require mm-uu, Don't require qp, uudecode.
+	(mm-encode-body): Apply mm-charset-to-coding-system to arg of
+	mm-encode-coding-region.
+	(mm-decode-body, mm-decode-string): Rename variables which
+	confused charset with coding-system.
+	(binhex-decode-region): Don't autoload.
+	(mm-body-encoding): Require message.
+	(mm-decode-content-transfer-encoding): Require mm-uu in relevant
+	cond branches.
+
+	* gnus-art.el (article-de-quoted-unreadable)
+	(article-de-base64-unreadable): Fold search case
+	rather than downcasing string.  Apply mm-charset-to-coding-system
+	to arg of quoted-printable-decode-region.
+
+2000-10-04  Dave Love  <fx@gnu.org>
+
+	* gnus-ems.el: Don't turn off compiler warnings in local vars.
+	Require ring when compiling.
+	(gnus-article-compface-xbm): New variable.
+
+2000-10-04  Dave Love  <fx@gnu.org>
+
+	* smiley-ems.el (smiley-regexp-alist, smiley-update-cache): Use
+	pbm images.
+
+	* frown.pbm, smile.pbm, wry.pbm: New files.
+
+	* frown.xbm, smile.xbm, wry.xbm: Deleted.
+
+2000-10-03  Dave Love  <fx@gnu.org>
+
+	* mail-source.el (mail-sources): Revert to nil.
+
+	* nnmail.el (nnmail-spool-file): Revert to `((file))'.
+
+	* qp.el: Don't require mm-util.
+	(quoted-printable-decode-region): Rewritten.
+	(quoted-printable-decode-string, quoted-printable-encode-region):
+	Doc fix.
+	(quoted-printable-encode-region): Barf on multibyte characters.
+	Maybe make the class multibyte.  Upcase chars, not formatted
+	strings.  Allow mm-use-ultra-safe-encoding to be unbound.
+	(quoted-printable-encode-string): Don't use
+	mm-with-unibyte-buffer.
+
+2000-09-29  Gerd Moellmann  <gerd@gnu.org>
+
+	* smiley-ems.el (smiley-update-cache):  Use `:ascent center'.
+
+2000-09-21  Dave Love  <fx@gnu.org>
+
+	* smiley-ems.el (smiley-region): Test if display-graphic-p bound
+	(for Emacs 20).  Tidy somewhat.
+
+2000-09-21  Dave Love  <fx@gnu.org>
+
+	* gnus-ems.el (gnus-article-display-xface): Use unibyte for the
+	image processing.  Rationalize logic somewhat.
+
+2000-09-20  Dave Love  <fx@gnu.org>
+
+	* gnus-start.el (gnus-1) <gnus-simple-splash>: Don't test for X
+	specifically.
+
+	* gnus.el (gnus-version-number): Avoid some redundant
+	autoloads.
+
+2000-09-20  Gerd Moellmann  <gerd@gnu.org>
+
+	* gnus-ems.el (gnus-article-display-xface): Don't convert PBM
+	to XBM; we always have PBM support.
+
+2000-09-14  Dave Love  <fx@gnu.org>
+
+	* gnus.el (gnus-charset):
+	* mm-decode.el (mime-display):
+	* imap.el (imap) <defgroup>: Add :version.
+
+2000-09-13  Gerd Moellmann  <gerd@gnu.org>
+
+	* parse-time.el: Fix author's mail address.
+
+	* earcon.el, flow-fill.el, gnus-cite.el, gnus-gl.el, gnus-ml.el:
+	* gnus-mlspl.el, gnus-nocem.el, gnus-range.el, gnus-salt.el:
+	* gnus-setup.el, gnus-soup.el, gnus-undo.el, gnus-vm.el:
+	* messcompat.el, nnbabyl.el, nndir.el, nneething.el:
+	* nngateway.el, nnheaderxm.el, nnkiboze.el, nnlistserv.el:
+	* nnmbox.el, nnmh.el, nnoo.el, nnsoup.el, nnspool.el, rfc2045.el:
+	* rfc2231.el, uudecode.el: Fix copyright notice.
+
+	* nnweb.el (toplevel): To make the file bootstrap in Emacs,
+	require `w3' at load-time only if not running in batch mode.
+
+2000-12-19 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el: Before merge with Emacs21.
+
+2000-12-19  Raymond Scholz  <ray-2000@zonix.de>
+
+	* gnus-art.el (gnus-article-dumbquotes-map): Add EUR symbol.
+
+2000-12-19  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* mml.el (mml-mode-map): Change mml prefix from `M-m' to `C-c C-m'
+	to avoid conflict with the standard `back-to-indentation'
+	binding.
+
+2000-12-17 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-extern.el (mm-inline-external-body): g-a-m-h may be a handle.
+
+	* mm-util.el (mm-enable-multibyte-mule4): Test charsetp.
+	(mm-disable-multibyte-mule4): Ditto.
+	(mm-with-unibyte-current-buffer-mule4): Ditto.
+
+2000-12-15 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* pop3.el (pop3-movemail): Use binary.
+	(pop3-movemail-file-coding-system): Removed.
+
+2000-12-14 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-charset-synonym-alist): Add cn-gb.
+
+2000-12-13 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnspool.el (nnspool-lib-dir): Check whether /usr/lib/news/active
+	exists.
+
+2000-12-13 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-post-method): Use backend name when the
+	address is "".
+
+2000-12-08 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-verify-x-pgp-sig): Don't test
+	mm-verify-option.
+	(gnus-treat-x-pgp-sig): Default value.
+	(gnus-ignored-headers): Redundant.
+
+2000-12-04 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-win.el (gnus-configure-frame): Save selected window.
+
+2000-02-15  Andrew Innes  <andrewi@gnu.org>
+
+	* nnmbox.el: Require gnus-range.
+	(nnmbox-group-building-active-articles): New variable.
+	(nnmbox-group-active-articles): New variable; this is a cache of
+	all active articles by group and number.
+	(nnmbox-in-header-p): New function.
+	(nnmbox-find-article): New function.
+	(nnmbox-record-active-article): New function.
+	(nnmbox-record-deleted-article): New function.
+	(nnmbox-is-article-active-p): New function.
+	(nnmbox-retrieve-headers): Use nnmbox-find-article.
+	(nnmbox-request-article): Ditto.  Also supply extra arg to
+	nnmbox-article-group-number.
+	(nnmbox-request-expire-articles): Ditto.
+	(nnmbox-request-move-article): Ditto.
+	(nnmbox-request-replace-article): Ditto.
+	(nnmbox-request-rename-group): Rename group entry in active
+	article cache.
+	(nnmbox-delete-mail): Update active article cache, unless article
+	is being replaced.
+	(nnmbox-possibly-change-newsgroup): Call nnmbox-read-mbox, rather
+	than partially duplicating it.
+	(nnmbox-article-group-number): Add extra `this-line' arg, to
+	handle articles belonging to multiple groups.
+	(nnmbox-save-mail): Update active article cache.
+	(nnmbox-read-mbox): Build active article cache when loading mbox.
+	Also do some repair work, if we find articles that are missing the
+	appropriate X-Gnus-Newsgroup lines in the header.  We can usually
+	reconstruct these from Xref info.
+
+2000-12-04 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mail-source.el (mail-source-report-new-mail): Use
+	nnheader-run-at-time.
+
+2000-02-15  Andrew Innes  <andrewi@gnu.org>
+
+	* mail-source.el (mail-source-fetch-pop): Clear pop password when
+	an error is thrown, and then rethrow the error.
+	(mail-source-check-pop): Ditto.
+	(mail-source-start-idle-timer): Prevent multiple pop checks
+	running if the check takes a long time.
+
+2000-12-04 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-msg-mail): COMPOSEFUNC should return t if
+	succeed.
+
+2000-12-04 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-win.el (gnus-configure-windows): Make sure
+	nntp-server-buffer is live.
+	(gnus-remove-some-windows): switch-to-buffer -> set-buffer.
+
+2000-11-21  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* gnus-win.el (gnus-configure-windows): switch-to-buffer -> set-buffer.
+
+2000-12-04  Andreas Jaeger  <aj@suse.de>
+
+	* gnus-msg.el (gnus-summary-mail-forward): Fix typos in description.
+
+2000-12-03 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-fix-micalg): Alg might be nil.
+
+2000-12-01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+	Trivial patch from Christopher Splinter  <chris@splinter.inka.de>
+
+	* gnus-sum.el (gnus-summary-limit-to-age): Fix typo.
+
+2000-12-01  Simon Josefsson  <sj@extundo.com>
+
+	* mml-smime.el (mml-smime-verify): Fix address parsing.
+
+2000-12-01  Simon Josefsson  <sj@extundo.com>
+
+	* mml-smime.el (mml-smime-verify): Don't modify MM buffer.  Handle
+	more than one certificate inside PKCS#7 blob.  Better security
+	information (clamed / actual sender, openssl output, certificates
+	inside message).
+
+	* smime.el (smime-verify-region): Output to /dev/null.
+	(smime-buffer-as-string-region): Don't parse empty lines.
+
+2000-11-30 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-security-button-line-format-alist): Add
+	?d and ?D.
+	(gnus-mime-security-show-details-inline): New variable.
+	(gnus-mime-security-show-details): Use them.
+	(gnus-insert-mime-security-button): Ditto.
+
+	* mml2015.el (mml2015-gpg-verify): Set details when succeed.
+	Suggest by Michael Duggan (md5i@cs.cmu.edu).
+	(mml2015-gpg-clear-verify): Ditto.
+	(mml2015-gpg-decrypt-1): Ditto.
+	(mml2015-use): Prefer 'gpg.
+
+2000-11-30 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-add-text-properties-when): New function.
+	(gnus-remove-text-properties-when): Ditto.
+
+	* gnus-cite.el (gnus-article-hide-citation): Use them.
+	(gnus-article-toggle-cited-text): Use them.
+
+	* gnus-art.el (gnus-signature-toggle): Use them.
+	(gnus-article-show-hidden-text): Ditto.
+	(gnus-article-hide-text): Ditto.
+
+2000-11-30 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-find-charset-region): Remove eight-bit-*.
+
+2000-11-30  Simon Josefsson  <sj@extundo.com>
+
+	* smime.el (smime-point-at-eol): New alias.
+	(smime-buffer-as-string-region): Use it.
+
+2000-11-29 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nndraft.el (nndraft-request-restore-buffer): Remove Date field.
+
+2000-11-29 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-request-expire-articles): expiry-target.
+
+	* nnbabyl.el (nnbabyl-request-expire-articles): Ditto.
+
+	* nnmbox.el (nnmbox-request-expire-articles): Ditto.
+
+2000-11-22  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+	* nnmh.el (nnmh-request-expire-articles): Implemented
+	expiry-target for nnmh backend.
+
+2000-11-30  Simon Josefsson  <sj@extundo.com>
+
+	* mm-decode.el (mm-security-from): New variable.
+	(mm-possibly-verify-or-decrypt): Use it rather than `from'.
+
+	* mml-smime.el (mml-smime-verify): Use `mm-security-from' rather
+	than `from'.
+
+2000-11-30  Simon Josefsson  <sj@extundo.com>
+
+	* mml-smime.el (mml-smime-verify): Verify that certificate mail
+	address match sender address.
+
+	* mm-decode.el (mm-possibly-verify-or-decrypt): Bind sender address.
+
+	* smime.el (smime-verify-region): Don't copy buffer.
+	(smime-decrypt-buffer): Use expand-file-name on keyfile.
+	(smime-pkcs7-region): New function.
+	(smime-pkcs7-certificates-region): Ditto.
+	(smime-pkcs7-email-region): Ditto.
+	(smime-buffer-as-string-region): Ditto.
+
+	* gnus-art.el (gnus-mime-security-show-details): Goto beginning of
+	buffer.
+
+2000-11-23  Jens Krinke  <j.krinke@gmx.de>
+
+	* smime.el (smime-decrypt-region): Fix keyfile argument.
+
+2000-11-29 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnmail.el (nnmail-cache-accepted-message-ids): Add doc.
+
+2000-11-28 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-shoot-gnksa-feet): New variable.
+	(message-gnksa-enable-p): New function.
+	(message-send): Use it.
+	(message-check-news-body-syntax): Ditto.
+
+2000-11-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.el (message-make-message-id): Remove the redundancy.
+
+2000-11-22 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-setup): Discourage using mc-install-*-mode.
+
+	* gnus-setup.el (gnus-use-mailcrypt): Don't hook mail-crypt.
+
+2000-11-22 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-cite.el (gnus-cite-parse): Guess citation length.
+
+2000-11-22 14:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-ml.el (gnus-mailing-list-insinuate): New function.
+
+2000-11-22 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-ml.el (gnus-mailing-list-archive): Find the real url.
+
+2000-11-22 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-xmas.el (gnus-xmas-article-display-xface): Use
+	insert-buffer-substring.
+
+	* message.el (message-send-mail): Use buffer-substring-no-properties.
+	(message-send-news): Ditto.
+
+2000-11-22  David Edmondson  <dme@dme.org>
+
+	* imap.el (imap-wait-for-tag): Message read info.
+
+2000-11-21 20:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-mailcrypt-encrypt): Ensure the part is encrypted.
+	(mml2015-mailcrypt-encrypt): Use unibyte-buffer.
+	(mml2015-gpg-encrypt): Ditto.
+
+2000-11-21 09:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-verify-option): Default value.
+
+	* mml-sec.el (mml-secure-part): Error message.
+
+2000-11-20 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-ml.el (gnus-mailing-list-archive): Use browse-url.
+
+2000-11-20 17:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-make-menu-bar): Use easy-menu-add.
+
+2000-11-20 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-describe-key): Use prompt.
+	(gnus-article-describe-key-briefly): Ditto.
+
+2000-11-20 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-agent.el (gnus-agent-expire): Ignore corrupted history.
+
+2000-11-20 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-describe-key): New function.
+	(gnus-article-describe-key-briefly): New function.
+
+2000-11-19 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-decrypt-option): Doc typo.
+
+	* gnus-art.el (gnus-article-read-summary-keys): lookup-key may
+	return a number.
+
+2000-11-19 21:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-newline-and-reformat): Typo.
+
+2000-11-19 12:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (article-verify-x-pgp-sig): Check whether
+	original-article-buffer exists.
+
+	* rfc2047.el (rfc2047-q-encoding-alist): Match Resent-.
+	(rfc2047-header-encoding-alist): Addresses are different from text.
+	(rfc2047-encode-message-header): Ditto.
+	(rfc2047-dissect-region): Extra parameter.
+	(rfc2047-encode-region): Ditto.
+	(rfc2047-encode-string): Ditto.
+
+2000-11-19 00:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-uu.el (mm-uu-pgp-encrypted-extract-1): New function.
+	(mm-uu-pgp-encrypted-extract): Use it.
+	(mm-uu-pgp-signed-extract-1): New function.
+	(mm-uu-pgp-signed-extract): Use it.
+
+	* gnus-art.el (gnus-mime-display-security): New function.
+	(gnus-mime-display-part): Use it.
+	(gnus-mime-security-verify-or-decrypt): New function.
+	(gnus-mime-security-press-button): New function.
+	(gnus-insert-mime-security-button): Use it.
+
+	* mm-decode.el (mm-possibly-verify-or-decrypt): Use mm-h-m-c-p.
+	(mm-find-raw-part-by-type): Ditto.
+	(mm-verify-function-alist): Add x-gnus-pgp-signature handle.
+	(mm-decrypt-function-alist): Add x-gnus-pgp-encrypted handle.
+	(mm-destroy-parts): Kill nested multibyte buffer.
+
+	* mml2015.el (mml2015-mailcrypt-verify): Use mm-h-m-c-p.
+	(mml2015-gpg-verify): Ditto.
+
+2000-11-18  Simon Josefsson  <sj@extundo.com>
+
+	* mml2015.el (mml2015-mailcrypt-clear-verify): New function.
+	(mml2015-function-alist): Use it.
+
+	* mml-sec.el (mml-sign-alist): Update names.
+	(mml-encrypt-alist): Ditto.
+	(mml-secure-part-smime-sign): Moved to mml-smime.el
+	as `mml-smime-sign-query'.
+	(mml-secure-part-smime-encrypt-by-file): Moved to mml-smime.el as
+	`mml-smime-get-file-cert'.
+	(mml-secure-part-smime-encrypt-by-dns): Moved to mml-smime.el as
+	`mml-smime-get-dns-cert'.
+	(mml-secure-part-smime-encrypt): Moved to mml-smime.el as
+	`mml-smime-encrypt-query'.
+	(mml-smime-sign-buffer): Use mml-smime-sign.
+	(mml-smime-encrypt-buffer): Use mml-smime-encrypt.
+
+	* mml-smime.el (mml-smime-sign): New function.
+	(mml-smime-encrypt):
+	(mml-smime-sign-query):
+	(mml-smime-get-file-cert):
+	(mml-smime-get-dns-cert):
+	(mml-smime-encrypt-query): Moved from mml-sec.el.
+
+2000-11-16  Simon Josefsson  <sj@extundo.com>
+
+	* mml2015.el (mml2015-gpg-clear-verify): New function.
+	(mml2015-function-alist): Add it.
+
+2000-11-17 14:21  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-setup-fill-variables): Use
+	message-cite-prefix-regexp.
+	(message-newline-and-reformat): Check the end of citation, leading
+	WSP, break in the cite prefix.
+	(message-fill-paragraph): New function.
+
+2000-11-17 13:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* lpath.el: Shut up.
+
+2000-11-17  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* gnus-msg.el (gnus-group-posting-charset-alist): No longer allow
+	raw 8-bit in headers in dk.* newsgroups.
+
+2000-11-17 08:02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-newline-and-reformat): Match extra WSPs.
+
+2000-11-16 23:31  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-generate-mime-1): Ignore ascii.
+
+2000-11-16 Justin Sheehy  <justin@iago.org>
+
+	* gnus-sum.el (gnus-summary-make-menu-bar): Fix menu items.
+
+2000-11-16 17:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-cite-prefix-regexp): Prefix should not end
+	at space.
+
+2000-11-15 18:09  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-mode-syntax-table): Add - as a word
+	constituent as in articles.
+	(message-setup-fill-variables): Add -_. as supercite-style prefix.
+	* gnus-art.el (gnus-article-mode-syntax-table): Remove ?-.
+	* gnus-cite.el (gnus-cite-parse): Match from the beginning of line.
+
+2000-11-15 13:21  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-inews-do-gcc): Expire the article.
+
+2000-11-12  David Edmondson  <dme@dme.org>
+
+	* message.el (message-font-lock-keywords): use
+	message-cite-prefix-regexp.
+
+2000-11-15  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-group.el (gnus-group-jump-to-group-prompt): New variable by
+	Stein Arild Str,Ax(Bmme.
+	(gnus-group-jump-to-group): Use it.
+	(gnus-group-jump-to-group-prompt): Customize.
+
+2000-11-14 10:32:42  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mailcap.el (mailcap-possible-viewers): Match the entire string.
+
+2000-11-14 10:20:56  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-mailcrypt-verify): replace-match is
+	incompatible.
+	(mml2015-mailcrypt-sign): Ditto.
+
+2000-11-14 10:12:05  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-inews-do-gcc): Update summary data when the
+	group is open.
+
+2000-11-14 00:48:52  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-bcklg.el (gnus-backlog-enter-article): Don't enter
+	nnvirtual articles.
+	(gnus-backlog-request-article): Don't request nnvirtual articles.
+
+2000-11-13 22:08:09  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-mailcrypt-sign): Remove "-" escape.
+	* mml.el (mml-generate-mime-1): Save cont. skip multipart attributes.
+
+2000-11-13 20:43:37  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-get-part): Don't call mm-insert-part.
+	* mml.el (mml-generate-mime-1): Use charset attribute.
+	* mm-bodies.el (mm-encode-body): Add parameter charset.
+	* mm-util.el (mm-mime-charset): Show error when find 8-bit characters.
+
+2000-11-13 16:09:09  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-mailcrypt-decrypt): Handle quit.
+	(mml2015-mailcrypt-clear-decrypt): Ditto.
+	(mml2015-mailcrypt-verify): Ditto.
+	(mml2015-mailcrypt-clear-verify): Ditto.
+	(mml2015-gpg-verify): Ditto.
+
+2000-11-13 15:29:58  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* smime.el (smime-openssl-program): Test the existence of openssl.
+	* mml-smime.el: Require mm-decode.
+	(mml-smime-verify-test): New function.
+	* mm-decode.el (mm-verify-function-alist): Use it.
+
+2000-11-13 09:50:29  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-repair-multipart): Fix Mime-Version
+	anyway.
+
+2000-11-13  Simon Josefsson  <sj@extundo.com>
+
+	* mm-uu.el (mm-uu-pgp-signed-extract): Explain why clear
+	verification doesn't work.
+
+2000-11-12 23:36:45  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-inews-mark-gcc-as-read): New variable.
+	(gnus-inews-do-gcc): Use it.
+
+2000-11-12 21:35:04  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2231.el (rfc2231-encode-string): Insert semi-colon and
+	leading space.
+	* mm-extern.el (mm-inline-external-body): Report error when no
+	access-type.
+
+2000-11-12 19:48:30  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-select-newsgroup): Change the error message.
+
+2000-11-12 11:53:18  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-button-menu): Use select-window.
+
+2000-11-12 09:47:54  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-display-part): Display multipart/related
+	as multipart/mixed.
+
+2000-11-12  David Edmondson  <dme@dme.org>
+
+	* message.el (message-cite-prefix-regexp): moved from gnus-cite.el
+	and replace `.' with `\w' to allow for different syntax tables
+	(from Vladimir Volovich).
+	* message.el (message-newline-and-reformat): use
+	`message-cite-prefix-regexp'.
+	* gnus-cite.el (gnus-supercite-regexp): use
+	`message-cite-prefix-regexp'.
+	* gnus-cite.el (gnus-cite-parse): use
+	`message-cite-prefix-regexp'.
+
+2000-11-12 08:52:46  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-mailcrypt-verify): Replace armors with
+	PGP SIGNATURE.  Escape leading "-"'s.
+	(mml2015-mailcrypt-sign): Replace armors with PGP MESSAGE.
+
+2000-11-11 15:55:35  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-uu.el (mm-uu-type-alist): Stricter shar regexp.
+
+2000-11-11  Simon Josefsson  <sj@extundo.com>
+
+	* mml2015.el (mml2015-gpg-verify): Set "OK" security status.
+
+	* smime.el (smime-details-buffer): New variable.
+	(smime-sign-region):
+	(smime-encrypt-region):
+	(smime-verify-region):
+	(smime-decrypt-region): Copy OpenSSL output to the buffer.
+
+	* mml-smime.el (mml-smime-verify): Support security info.
+
+2000-11-10 17:11:22  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-verify-option): Set default to nil.
+	(mm-decrypt-option): Ditto.
+	* gnus-art.el (article-verify-x-pgp-sig): New function.
+
+2000-11-10 09:01:25  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-display-alternative): Show button if no
+	preferred part.
+
+2000-11-07  Kai Gro,b_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* gnus-sum.el (gnus-move-split-methods): Say that
+	`gnus-split-methods' uses file names, whereas this uses group
+	names.  (Report from Nevin Kapur)
+
+2000-11-10 01:23:20  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-partial.el (mm-inline-partial): Insert MIME-Version.
+
+2000-11-09 17:02:50  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnheader.el (nnheader-directory-files-is-safe): New variable.
+	(nnheader-directory-articles): Use it.
+	(nnheader-article-to-file-alist): Ditto.
+
+2000-11-09 16:20:37  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2047.el (rfc2047-pad-base64): New function.
+	(rfc2047-decode): Use it.
+
+2000-11-09 08:53:04  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-srvr.el (gnus-browse-foreign-server): Bind the original
+	select method.
+
+2000-11-08 19:58:58  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-gpg-decrypt-1):
+	(mml2015-gpg-verify): buffer-string has no argument in Emacs.
+
+2000-11-08 16:37:02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-cache.el (gnus-cache-generate-nov-databases): Reopen cache.
+
+2000-11-08 08:38:30  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* pop3.el (pop3-munge-message-separator): A message may have an
+	empty body.
+
+2000-11-07 18:02:26  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-uu.el (mm-uu-type-alist): Don't test pgp stuff.
+	(mm-uu-pgp-encrypted-extract): Clean mml2015 buffer.
+	(mm-uu-pgp-signed-extract): Use coding-system.
+
+2000-11-07 14:33:19  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-display-part): Show MIME security button.
+	(gnus-insert-mime-security-button): New function.
+	* mm-decode.el (mm-possibly-verify-or-decrypt): Add security info.
+	* mml2015.el:  Add security info when verify or decrypt.
+	* mm-uu.el (mm-uu-pgp-signed-extract): Use multipart.
+	(mm-uu-pgp-encrypted-extract): Ditto.
+
+2000-11-07 08:49:36  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-display-parts): New function.
+	* gnus-art.el (gnus-mime-view-all-parts): Use it. Remove parts first.
+
+2000-02-02  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+	* gnus-mlspl.el: Documentation tweaks.
+
+2000-11-06 22:06:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-possibly-verify-or-decrypt): Fix.
+	* gnus-art.el (gnus-article-encrypt-body): Rename and support prefix
+	argument.
+
+2000-11-06 19:10:14  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2231.el (rfc2231-encode-string): Use us-ascii if charset is nil.
+
+2000-11-06 18:17:53  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-article-encrypt): New function.
+	(gnus-article-encrypt-protocol-alist): New variable.
+	(gnus-article-encrypt-protocol): New variable.
+	* mml2015.el (mml2015-self-encrypt): New function.
+	(mml2015-mailcrypt-encrypt): Set mc-pgp-always-sign.
+
+2000-11-06 16:02:52  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-uu.el (mm-uu-gpg-key-skip-to-last): New function.
+	(mm-uu-pgp-key-extract): Use application/pgp-keys, don't snarf,
+	let mailcap do it.
+	* mml2015.el: Remove snarf code.
+	* mm-decode.el: Remove snarf code.
+
+2000-11-06 14:03:10  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-insert-mml-markup): Ignore internal stuff.
+	(mml-insert-mime): Understand gnus-decoded.
+	(mime-to-mml): New parameter handles.
+	* gnus-art.el (gnus-mime-save-part-and-strip): Use it.
+	* gnus-sum.el (gnus-summary-edit-article): Add argument `3'.
+
+2000-11-06 13:51:37  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mime-security): New group.
+	(mm-verify-function-alist): Add test function.
+	(mm-decrypt-function-alist): Ditto.
+	(mm-snarf-option): Set default value as nil.
+	(mm-find-part-by-type): Recursive parameter.
+	(mm-possibly-verify-or-decrypt): Support draft-ietf-openpgp-multsig.
+	* mml2015.el: Support draft-ietf-openpgp-multsig.
+
+2000-11-06 13:01:27  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-view-part-as-charset): New function.
+	(gnus-article-view-part-as-charset): New function.
+
+2000-11-05 22:34:07  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-verify-option): Default value.
+	(mm-possibly-verify-or-decrypt): Dealing with broken messages.
+
+2000-11-05 15:06:05  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnvirtual.el (nnvirtual-request-expire-articles): Uncompress range.
+
+2000-11-05  Simon Josefsson  <sj@extundo.com>
+
+	* mml-smime.el (mml-smime-verify): Work in original multipart
+	buffert.
+
+	* mm-decode.el (mm-handle-multipart-original-buffer): New macro.
+	(mm-handle-multipart-ctl-parameter): Ditto.
+	(mm-alist-to-plist): New function.
+	(mm-dissect-buffer): Store CTL parameters and copy original buffer
+	for multiparts.
+	(mm-destroy-parts): Destroy multipart buffert.
+	(mm-remove-part): Ditto.
+
+	* mml-smime.el (mml-smime-sign): Not used.
+	(mml-smime-encrypt): Ditto.
+
+	* mm-decode.el (mml-smime-verify): Autoload mml-smime.
+
+	Verify S/MIME signature support.
+
+	* mm-decode.el (mm-inline-media-tests): Add
+	application/{x-,}pkcs7-signature.
+	(mm-inlined-types): Ditto.
+	(mm-automatic-display): Ditto.
+	(mm-verify-function-alist): Ditto.  Add name of method.
+	(mm-decrypt-function-alist): Add name of method.
+	(mm-find-part-by-type): Add documentation.
+	(mm-possibly-verify-or-decrypt): Use new format of
+	mm-{verify,decrypt}-function-alist.  Use method names.
+
+	* mml-smime.el (mml-smime-verify): New function.
+
+2000-11-04 20:38:50  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-view.el (mm-inline-text): Move point to the end of inserted text.
+
+2000-11-04 19:07:08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-function-alist): Clear verify and decrypt.
+	* mm-uu.el: Reorganized.  Add gnatsweb, pgp-signed, pgp-encrypted.
+	* mm-decode.el (mm-snarf-option): New variable.
+
+2000-11-04 13:08:02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-util.el (mm-subst-char-in-string): New function.
+	(mm-replace-chars-in-string): Use it.
+	* message.el (message-replace-chars-in-string): Use it.
+	* nnheader.el (nnheader-replace-chars-in-string): Use it.
+	* gnus-mh.el (mh-lib-progs): Shut up.
+
+2000-11-04  ShengHuo Zhu  <zsh@cs.rochester.edu>
+
+	* base64.el, md5.el: Moved to contrib directory.
+
+2000-11-04 11:13:56  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-search-article-forward): Don't move
+	the last article when search.
+
+2000-11-04 10:34:29  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnheader.el (nnheader-pathname-coding-system): Default iso-8859-1.
+	* nnmail.el (nnmail-pathname-coding-system): Ditto.
+
+2000-09-29  David Edmondson  <dme@thus.net>
+
+	* message.el (message-newline-and-reformat): Typo.
+
+2000-11-04 10:11:05  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2231.el (rfc2231-decode-encoded-string): Test mm-multibyte-p.
+
+2000-11-04 09:53:42  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nntp.el (nntp-decode-text): Delete bogus status lines.
+
+2000-11-03  Stefan Monnier  <monnier@cs.yale.edu>
+
+	* message.el (message-font-lock-keywords): Match a final newline
+	to help font-lock's multiline support.
+
+2000-11-04 09:11:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnoo.el (nnoo-set): New function.
+
+2000-11-04  ShengHuo Zhu  <zsh@cs.rochester.edu>
+
+	* gpg.el, gpg-ring.el: Moved to contrib directory.
+
+2000-11-04  Simon Josefsson  <sj@extundo.com>
+
+	* nnimap.el (nnimap-split-inbox): Typo.
+
+2000-11-03 10:46:44  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-msg.el (gnus-msg-mail): Move it backwards.
+
+2000-11-03  Simon Josefsson  <sj@extundo.com>
+
+	* rfc2231.el (rfc2231-parse-qp-string): New function.
+	(require): rfc2047.
+
+	* mail-parse.el (mail-header-parse-content-type):
+	(mail-header-parse-content-disposition): Support invalid QP
+	encoded strings, by using `rfc2231-parse-qp-string'.
+
+2000-11-03 08:58:08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2231.el (rfc2231-parse-string): Decode when there is no number.
+	(rfc2231-decode-encoded-string): Typo "> X 1".
+	(rfc2231-encode-string): Insert the name of charset.
+	* mail-parse.el (mail-header-encode-parameter): Use RFC2231.
+
+2000-11-02 23:35:50  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-save-part): Return the filename.
+	* gnus-sum.el (gnus-summary-edit-article): Remove a hack.
+	* gnus-art.el (gnus-mime-save-part-and-strip): New function.
+	(gnus-mime-action-alist): Use it.
+	(gnus-mime-button-commands): Use it.
+	* mm-extern.el (mm-extern-local-file): Error when the file is gone.
+	(mm-inline-external-body): unwind-protect.
+
+2000-11-02 21:08:49  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-insert-mime-button): Show url.
+
+2000-11-02 19:51:19  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-generate-mime-1): Support external url.
+	* nnwarchive.el (nnwarchive-mail-archive-article): Use external url.
+
+2000-11-02 16:53:32  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-partial.el (mm-inline-partial): Buffer name with a leading space.
+	* mm-decode.el (mm-display-external): Ditto.
+	* mm-extern.el: New file.
+	* mm-decode.el (mm-inline-media-tests): Hook it up.
+	(mm-inlined-types): Inline message/external-body.
+
+2000-11-02  Simon Josefsson  <sj@extundo.com>
+
+	* gnus-art.el (gnus-visible-headers): Add Mail-Followup-To.
+
+	* message.el (message-get-reply-headers): Better handling when
+	Mail-Followup-To is very large.
+
+2000-11-02 13:27:56  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-uu.el (gnus-uu-post-news): Comment out the redundancy.
+	* gnus-art.el (gnus-article-edit-done):
+	* gnus-sum.el (gnus-summary-edit-article-done): Move line
+	counting code here.
+	* gnus-msg.el (gnus-setup-message): Remove a hack.
+
+2000-11-02 09:33:01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-newsgroup-variables): New variable.
+	(gnus-summary-mode): Make them local variables.
+	(gnus-set-global-variables): Globalize them.
+	(gnus-summary-exit): Kill them.
+
+2000-11-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* rfc2047.el (rfc2047-encoded-word-regexp): Allow empty encoded
+	word.
+
+2000-11-01 10:07:13  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-display-part): Add to signed or encrypted.
+	gnus-article-wash-types.
+	* gnus-art.el (gnus-article-wash-status): Use them.
+
+2000-11-01 08:54:11  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-read-tag): Remove spaces and LF.
+
+2000-11-01 08:01:03  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-mailcrypt-encrypt): Use from and sign parameters.
+	* mml.el (mml-generate-mime-1): Add sender and recipients attributes.
+
+2000-11-01 07:39:24  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-force-verify-and-decrypt): New function.
+
+2000-10-31 22:06:13  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-article-charset): New variable.
+	(gnus-summary-display-article): Set it.
+	* gnus-msg.el (gnus-copy-article-buffer): Use it.
+	* gnus-art.el (gnus-article-mode): Make it local variable.
+
+2000-11-01 01:12:29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnultimate.el (nnultimate-create-mapping): Use nreverse.
+
+2000-10-31 23:45:31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnwfm.el: New file.
+
+	* nnweb.el (nnweb-replace-in-string): New function.
+
+2000-10-31 17:32:02  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el: Wrap gpg.el.
+	* gpg.el (gpg-verify): The last argument of apply is a list.
+	(gpg-encrypt): Add passphrase as a parameter.
+
+2000-10-31 17:28:45  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gpg.el: New file.
+	* gpg-ring.el: New file.
+
+2000-10-31 11:44:29  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-sum.el (gnus-summary-show-article): Fix the summary line.
+
+2000-10-31  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-sum.el (gnus-summary-insert-line): Work with quoted
+	double-quote characters.
+	(gnus-summary-prepare-threads): Ditto.
+
+2000-10-31 08:36:03  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-art.el (gnus-mime-display-single): Forward line -1.
+	* mml.el (mml-read-tag): Don't skip the leading space.
+	* lpath.el (font-lock-set-defaults): Shut up.
+
+2000-10-31 00:04:35  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el: Fix doc. Remove bogus mml2015-setup.
+
+2000-10-30 23:37:07  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* qp.el (quoted-printable-encode-region): Replace leading - when
+	ultra safe.
+	* mml.el (mml-generate-mime-postprocess-function): Removed.
+	(mml-postprocess-alist): Removed.
+	(mml-generate-mime-1): Use ultra-safe when sign.
+	* mml2015.el (mml2015-fix-micalg): Uppercase.
+	(mml2015-verify): Insert LF.
+	(mml2015-mailcrypt-sign): Downcase; search backward.
+
+2000-10-16 11:36:52  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* nnultimate.el (nnultimate-forum-table-p): Be a bit more
+	restrictive.
+	(nnultimate-table-regexp): New variable.
+	(nnultimate-forum-table-p): Use it.
+
+2000-10-30  Ed L Cashin  <ecashin@coe.uga.edu>
+	Trivial patch.
+
+	* gnus-sum.el (gnus-summary-expire-articles): Save point.
+
+2000-10-30 08:52:50  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml-sec.el (mml-pgpmime-sign-buffer): Use mml2015-sign.
+	(mml-pgpmime-encrypt-buffer): Use mml2015-encrypt.
+
+2000-10-30 08:38:12  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el: Shut up.
+
+2000-10-30 08:17:46  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus.el (gnus-server-browse-hashtb): Removed.
+	* gnus-group.el (gnus-group-prepare-flat-list-dead): Use gnus-active.
+	(gnus-group-insert-group-line-info): Use simplified method.
+	* gnus-srvr.el (gnus-browse-foreign-server): Use gnus-set-active.
+
+2000-10-30 01:52:40  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-util.el (gnus-union): Renamed from gnus-agent-union, and
+	moved here.
+	* gnus-agent.el (gnus-agent-fetch-headers): Use it.
+	* gnus-group.el (gnus-group-prepare-flat): Use it.
+	* gnus-topic.el (gnus-group-prepare-topics): Use it.
+
+2000-10-30 01:23:49  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-mode): Show menu in XEmacs.
+
+2000-10-30 00:49:33  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-srvr.el (gnus-server-browse-in-group-buffer): New variable.
+	(gnus-server-read-server-in-server-buffer): New function.
+	(gnus-browse-foreign-server): Browse in group buffer.
+	* gnus-group.el (gnus-group-prepare-flat): List group not in list.
+	(gnus-group-prepare-flat-list-dead): Use gnus-group-insert-group-line.
+	* gnus-topic.el (gnus-group-prepare-topics): Ditto.
+	* gnus.el (gnus-server-browse-hashtb): New variable.
+
+2000-10-29 22:31:40  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-open-nov): Use group.
+
+2000-10-29 17:23:15  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el: Add NOV. Set version to 2.0.
+	(nnfolder-nov-is-evil): If non-nil, nnfolder acts like 1.0.
+
+2000-10-29 10:35:08  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el (mml2015-mailcrypt-sign): Use mc-sign-generic.
+
+2000-10-29 09:42:05  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-srvr.el (gnus-browse-foreign-server): Show level mark.
+	(gnus-browse-unsubscribe-group): Unsubscribed is not killed.
+
+2000-10-29 08:28:58  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* nnfolder.el (nnfolder-read-folder): Don't goto point-min.
+
+2000-10-28 19:11:01  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-verify-function-alist): New variable.
+	(mm-verify-option): New variable.
+	(mm-decrypt-function-alist): Ditto.
+	(mm-decrypt-option): Ditto.
+	(mm-find-raw-part-by-type): New function.
+	(mm-possibly-verify-or-decrypt): New function.
+	(mm-dissect-multipart): Use it.
+	* mml2015.el (mml2015-fix-micalg): New function.
+	(mml2015-decrypt): Use new interface.
+	(mml2015-verify):  Use new interface.
+	(mml2015-setup): Make it bogus.
+
+2000-10-28 16:54:45  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml.el (mml-generate-mime-postprocess-function): Set to
+	mml-postprocess.
+	(autoload): Autoload mml2015 and mml-smime.
+	(mml-postprocess-alist): Use mml2015-sign and mml2015-encrypt.
+	* mml2015.el (mml2015-encrypt): New function.
+	(mml2015-sign): New function.
+	(mml2015-encrypt-function): New variable.
+	(mml2015-sign-function): New variable.
+	(mml2015-mailcrypt-encrypt): Use message-recipients.
+	(mml2015-setup): Don't set mml-generate-mime-postprocess-function.
+	* mml-smime.el (mml-smime-setup): Ditto.
+
+2000-10-28  Simon Josefsson  <sj@extundo.com>
+
+	* imap.el (imap-parse-resp-text-code): Workaround bug in Stalker
+	Communigate Pro 3.3.1 server.
+
+	* mml-sec.el (mml-smime-encrypt-buffer): Support certfiles stored
+	in buffers.
+	(mml-secure-dns-server): Removed.
+	(mml-secure-part-smime-encrypt-by-dns): Use DIG interface.  Don't
+	write certificates to files.
+
+	* smime.el (smime-dns-server): New variable.
+	(smime-mail-to-domain):
+	(smime-cert-by-dns): New functions.
+
+	* dig.el: New file.
+
+2000-10-28 10:09:41  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* message.el (message-options): New variable.
+	(message-options-set-recipient): New function.
+	(message-send): Use them.
+	* gnus-int.el (gnus-request-replace-article): Use them.
+	(gnus-request-accept-article): Ditto.
+	* mml.el (mml-preview): Use them.
+	* gnus-sum.el (gnus-summary-edit-article): Use them.
+
+	* message.el (message-options-get): New function.
+	(message-options-get): New function.
+	* rfc2047.el (rfc2047-encode-message-header): Use them.
+	* mm-bodies.el (mm-encode-body): Use them.
+
+2000-10-28  Simon Josefsson  <sj@extundo.com>
+
+	* nnimap.el (nnimap-retrieve-which-headers):
+	(nnimap-request-article-part): Quote message-id.
+
+	* smime.el (smime-CA-directory): Rename from `smime-CAs'.
+	(smime-CA-file): New variable.
+	(smime-call-openssl-region): Don't error.
+	(smime-sign-region): Return result value.
+	(smime-encrypt-region): Ditto.
+	(smime-verify-region): New function.
+	(smime-decrypt-region): Ditto.
+	(smime-verify-buffer): Ditto.
+	(smime-decrypt-buffer): Ditto.
+
+	* mml.el: Require mml-sec.
+	(mml-generate-mime-1): Support "sign" and "encrypt" MML tags.
+	(mml-mode-map): Add "sign" and "encrypt" maps.
+	(mml-menu): Add security menu.
+	(mml-preview): Use generate-new-buffer.
+
+	* mml-sec.el: New file.
+
+2000-10-28 03:43:03  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mm-decode.el (mm-find-part-by-type): Move it here.
+	* mml.el (mml-postprocess): Move it here.
+	(mml-postprocess-alist): Move it here. Merge them.
+
+2000-10-28 03:38:39  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* rfc2047.el (rfc2047-encode-message-header): Make sure no
+	unencoded stuff in the header.
+
+2000-10-28 02:40:46  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* gnus-group.el (gnus-group-listed-groups): New variable.
+	(gnus-group-list-option): New variable.
+	(gnus-group-list-limit-map): New keymap.
+	(gnus-group-list-flush-map): New keymap.
+	(gnus-group-list-plus-map): New keymap.
+	(gnus-group-prepare-logic): New function.
+	(gnus-group-prepare-flat): Merge with
+	gnus-group-prepare-flat-predicate. Use gnus-group-listed-groups.
+	(gnus-group-prepare-flat-list-dead): Ditto.
+	(gnus-group-list-matching): Use gnus-group-prepare-function.
+	(gnus-group-list-dormant): Ditto.
+	(gnus-group-list-cached): Ditto.
+	(gnus-group-listed-groups): New function.
+	(gnus-group-list-limit): New function.
+	(gnus-group-list-flush): New function.
+	(gnus-group-list-plus): New function.
+	* gnus-topic.el (gnus-group-prepare-topics): Accept predicate.
+	(gnus-topic-prepare-topic): Ditto.
+
+2000-10-27  Paul Jarc  <prj@po.cwru.edu>
+
+	* message.el (message-insert-to, message-get-reply-headers):
+	(message-reply, message-followup): Mail-{Followup,Reply}-To.
+
+2000-10-27 19:45:58  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* mml2015.el: New file.
+	* smime.el: New file.
+	* mml-smime.el: New file.
+
+2000-10-27 19:42:12  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+	* ChangeLog: Moved to ChangeLog.1.
+
+See ChangeLog.1 for earlier changes.
+
+    Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted provided the copyright notice and this notice are preserved.
+
+;; Local Variables:
+;; coding: iso-2022-7bit
+;; End:
+
+;; arch-tag: 956fd310-042f-4fca-8dca-a01dbe06acff
Index: gnus/lisp/assistant.el
diff -u /dev/null gnus/lisp/assistant.el:1.18
--- /dev/null	Sun May  1 19:04:59 2005
+++ gnus/lisp/assistant.el	Thu Jun  3 21:35:24 2004
@@ -0,0 +1,480 @@
+;;; assistant.el --- guiding users through Emacs setup
+;; Copyright (C) 2004 Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Keywords: util
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;;; Code:
+
+(eval-when-compile
+  (require 'cl))
+
+(require 'widget)
+(require 'wid-edit)
+
+(defvar assistant-readers
+  '(("variable" assistant-variable-reader)
+    ("validate" assistant-sexp-reader)
+    ("result" assistant-list-reader)
+    ("next" assistant-list-reader)
+    ("text" assistant-text-reader)))
+
+(defface assistant-field-face '((t (:bold t)))
+  "Face used for editable fields."
+  :group 'gnus-article-emphasis)
+
+;;; Internal variables
+
+(defvar assistant-data nil)
+(defvar assistant-current-node nil)
+(defvar assistant-previous-nodes nil)
+(defvar assistant-widgets nil)
+
+(defun assistant-parse-buffer ()
+  (let (results command value)
+    (goto-char (point-min))
+    (while (search-forward "@" nil t)
+      (if (not (looking-at "[^ \t\n]+"))
+	  (error "Dangling @")
+	(setq command (downcase (match-string 0)))
+	(goto-char (match-end 0)))
+      (setq value
+	    (if (looking-at "[ \t]*\n")
+		(let (start)
+		  (forward-line 1)
+		  (setq start (point))
+		  (unless (re-search-forward (concat "^@end " command) nil t)
+		    (error "No @end %s found" command))
+		  (beginning-of-line)
+		  (prog1
+		      (buffer-substring start (point))
+		    (forward-line 1)))
+	      (skip-chars-forward " \t")
+	      (prog1
+		  (buffer-substring (point) (line-end-position))
+		(forward-line 1))))
+      (push (list command (assistant-reader command value))
+	    results))
+    (assistant-segment (nreverse results))))
+
+(defun assistant-text-reader (text)
+  (with-temp-buffer
+    (insert text)
+    (goto-char (point-min))
+    (let ((start (point))
+	  (sections nil))
+      (while (re-search-forward "@\\([^{]+\\){\\([^}]+\\)}" nil t)
+	(push (buffer-substring start (match-beginning 0))
+	      sections)
+	(push (list (match-string 1) (match-string 2))
+	      sections)
+	(setq start (point)))
+      (push (buffer-substring start (point-max))
+	    sections)
+      (nreverse sections))))
+
+;; Segment the raw assistant data into a list of nodes.
+(defun assistant-segment (list)
+  (let ((ast nil)
+	(node nil)
+	(title (pop list)))
+    (dolist (elem list)
+      (when (and (equal (car elem) "node")
+		 node)
+	(push (list "save" nil) node)
+	(push (nreverse node) ast)
+	(setq node nil))
+      (push elem node))
+    (when node
+      (push (list "save" nil) node)
+      (push (nreverse node) ast))
+    (cons title (nreverse ast))))
+
+(defun assistant-reader (command value)
+  (let ((formatter (cadr (assoc command assistant-readers))))
+    (if (not formatter)
+	value
+      (funcall formatter value))))
+
+(defun assistant-list-reader (value)
+  (car (read-from-string (concat "(" value ")"))))
+
+(defun assistant-variable-reader (value)
+  (let ((section (car (read-from-string (concat "(" value ")")))))
+    (append section (list 'default))))
+
+(defun assistant-sexp-reader (value)
+  (if (zerop (length value))
+      nil
+    (car (read-from-string value))))
+
+(defun assistant-buffer-name (title)
+  (format "*Assistant %s*" title))
+
+(defun assistant-get (ast command)
+  (cadr (assoc command ast)))
+
+(defun assistant-set (ast command value)
+  (let ((elem (assoc command ast)))
+    (when elem
+      (setcar (cdr elem) value))))
+
+(defun assistant-get-list (ast command)
+  (let ((result nil))
+    (dolist (elem ast)
+      (when (equal (car elem) command)
+	(push elem result)))
+    (nreverse result)))
+
+;;;###autoload
+(defun assistant (file)
+  "Assist setting up Emacs based on FILE."
+  (interactive "fAssistant file name: ")
+  (let ((ast
+	 (with-temp-buffer
+	   (insert-file-contents file)
+	   (assistant-parse-buffer))))
+    (pop-to-buffer (assistant-buffer-name (assistant-get ast "title")))
+    (assistant-render ast)))
+
+(defun assistant-render (ast)
+  (let ((first-node (assistant-get (nth 1 ast) "node")))
+    (set (make-local-variable 'assistant-data) ast)
+    (set (make-local-variable 'assistant-current-node) nil)
+    (set (make-local-variable 'assistant-previous-nodes) nil)
+    (assistant-render-node first-node)))
+
+(defun assistant-find-node (node-name)
+  (let ((ast (cdr assistant-data)))
+    (while (and ast
+		(not (string= node-name (assistant-get (car ast) "node"))))
+      (pop ast))
+    (car ast)))
+
+(defun assistant-node-name (node)
+  (assistant-get node "node"))
+
+(defun assistant-previous-node-text (node)
+  (format "<< Go back to %s" node))
+
+(defun assistant-next-node-text (node)
+  (if (and node
+	   (not (eq node 'finish)))
+      (format "Proceed to %s >>" node)
+    "Finish"))
+
+(defun assistant-set-defaults (node &optional forcep)
+  (dolist (variable (assistant-get-list node "variable"))
+    (setq variable (cadr variable))
+    (when (or (eq (nth 3 variable) 'default)
+	      forcep)
+      (setcar (nthcdr 3 variable)
+	      (assistant-eval (nth 2 variable))))))
+
+(defun assistant-get-variable (node variable &optional type raw)
+  (let ((variables (assistant-get-list node "variable"))
+	(result nil)
+	elem)
+    (while (and (setq elem (pop variables))
+		(not result))
+      (setq elem (cadr elem))
+      (when (eq (intern variable) (car elem))
+	(if type
+	    (setq result (nth 1 elem))
+	  (setq result (if raw (nth 3 elem)
+			 (format "%s" (nth 3 elem)))))))
+    result))
+    
+(defun assistant-set-variable (node variable value)
+  (let ((variables (assistant-get-list node "variable"))
+	elem)
+    (while (setq elem (pop variables))
+      (setq elem (cadr elem))
+      (when (eq (intern variable) (car elem))
+	(setcar (nthcdr 3 elem) value)))))
+    
+(defun assistant-render-text (text node)
+  (unless (and text node)
+    (gnus-error 
+     5 
+     "The assistant was asked to render invalid text or node data"))
+  (dolist (elem text)
+    (if (stringp elem)
+	;; Ordinary text
+	(insert elem)
+      ;; A variable to be inserted as a widget.
+      (let* ((start (point))
+	     (variable (cadr elem))
+	     (type (assistant-get-variable node variable 'type)))
+	(cond
+	 ((eq (car-safe type) :radio)
+	  (push
+	   (apply
+	    #'widget-create
+	    'radio-button-choice
+	    :assistant-variable variable
+	    :assistant-node node
+	    :value (assistant-get-variable node variable)
+	    :notify (lambda (widget &rest ignore)
+		      (assistant-set-variable
+		       (widget-get widget :assistant-node)
+		       (widget-get widget :assistant-variable)
+		       (widget-value widget))
+		      (assistant-render-node
+		       (assistant-get
+			(widget-get widget :assistant-node)
+			"node")))
+	    (cadr type))
+	   assistant-widgets))
+	 ((eq (car-safe type) :set)
+	  (push
+	   (apply
+	    #'widget-create
+	    'set
+	    :assistant-variable variable
+	    :assistant-node node
+	    :value (assistant-get-variable node variable nil t)
+	    :notify (lambda (widget &rest ignore)
+		      (assistant-set-variable
+		       (widget-get widget :assistant-node)
+		       (widget-get widget :assistant-variable)
+		       (widget-value widget))
+		      (assistant-render-node
+		       (assistant-get
+			(widget-get widget :assistant-node)
+			"node")))
+	    (cadr type))
+	   assistant-widgets))
+	 (t
+	  (push 
+	   (widget-create
+	    'editable-field
+	    :value-face 'assistant-field-face
+	    :assistant-variable variable
+	    (assistant-get-variable node variable))
+	   assistant-widgets)
+	  ;; The editable-field widget apparently inserts a newline;
+	  ;; remove it.
+	  (delete-char -1)
+	  (add-text-properties start (point)
+			       (list
+				'bold t
+				'face 'assistant-field-face
+				'not-read-only t))))))))
+
+(defun assistant-render-node (node-name)
+  (let ((node (assistant-find-node node-name))
+	(inhibit-read-only t)
+	(previous assistant-current-node)
+	(buffer-read-only nil))
+    (unless node
+      (gnus-error 5 "The node for %s could not be found" node-name))
+    (set (make-local-variable 'assistant-widgets) nil)
+    (assistant-set-defaults node)
+    (if (equal (assistant-get node "type") "interstitial")
+	(assistant-render-node (nth 0 (assistant-find-next-nodes node-name)))
+      (setq assistant-current-node node-name)
+      (when previous
+	(push previous assistant-previous-nodes))
+      (erase-buffer)
+      (insert (cadar assistant-data) "\n\n")
+      (insert node-name "\n\n")
+      (assistant-render-text (assistant-get node "text") node)
+      (insert "\n\n")
+      (when assistant-previous-nodes
+	(assistant-node-button 'previous (car assistant-previous-nodes)))
+      (widget-create
+       'push-button
+       :assistant-node node-name
+       :notify (lambda (widget &rest ignore)
+		 (let* ((node (widget-get widget :assistant-node)))
+		   (assistant-set-defaults (assistant-find-node node) 'force)
+		   (assistant-render-node node)))
+       "Reset")
+      (insert "\n")
+      (dolist (nnode (assistant-find-next-nodes))
+	(assistant-node-button 'next nnode)
+	(insert "\n"))
+
+      (goto-char (point-min))
+      (assistant-make-read-only))))
+
+(defun assistant-make-read-only ()
+  (let ((start (point-min))
+	end)
+    (while (setq end (text-property-any start (point-max) 'not-read-only t))
+      (put-text-property start end 'read-only t)
+      (put-text-property start end 'rear-nonsticky t)
+      (while (get-text-property end 'not-read-only)
+	(incf end))
+      (setq start end))
+    (put-text-property start (point-max) 'read-only t)))
+
+(defun assistant-node-button (type node)
+  (let ((text (if (eq type 'next)
+		  (assistant-next-node-text node)
+		(assistant-previous-node-text node))))
+    (widget-create
+     'push-button
+     :assistant-node node
+     :assistant-type type
+     :notify (lambda (widget &rest ignore)
+	       (let* ((node (widget-get widget :assistant-node))
+		      (type (widget-get widget :assistant-type)))
+		 (if (eq type 'previous)
+		     (progn
+		       (setq assistant-current-node nil)
+		       (pop assistant-previous-nodes))
+		   (assistant-get-widget-values)
+		   (assistant-validate))
+		 (if (null node)
+		     (assistant-finish)
+		   (assistant-render-node node))))
+     text)
+    (use-local-map widget-keymap)))
+
+(defun assistant-validate-types (node)
+  (dolist (variable (assistant-get-list node "variable"))
+    (setq variable (cadr variable))
+    (let ((type (nth 1 variable))
+	  (value (nth 3 variable)))
+      (when 
+	  (cond
+	   ((eq type :number)
+	    (string-match "[^0-9]" value))
+	   (t
+	    nil))
+	(error "%s is not of type %s: %s"
+	       (car variable) type value)))))
+
+(defun assistant-get-widget-values ()
+  (let ((node (assistant-find-node assistant-current-node)))
+    (dolist (widget assistant-widgets)
+      (assistant-set-variable
+       node (widget-get widget :assistant-variable)
+       (widget-value widget)))))
+
+(defun assistant-validate ()
+  (let* ((node (assistant-find-node assistant-current-node))
+	 (validation (assistant-get node "validate"))
+	 result)
+    (assistant-validate-types node)
+    (when validation
+      (when (setq result (assistant-eval validation))
+	(unless (y-or-n-p (format "Error: %s.  Continue? " result))
+	  (error "%s" result))))
+    (assistant-set node "save" t)))
+
+;; (defun assistant-find-next-node (&optional node)
+;;   (let* ((node (assistant-find-node (or node assistant-current-node)))
+;; 	 (node-name (assistant-node-name node))
+;; 	 (nexts (assistant-get-list node "next"))
+;; 	 next elem applicable)
+
+;;     (while (setq elem (pop nexts))
+;;       (when (assistant-eval (car (cadr elem)))
+;; 	(setq applicable (cons elem applicable))))
+
+;;     ;; return the first thing we can
+;;     (cadr (cadr (pop applicable)))))
+
+(defun assistant-find-next-nodes (&optional node)
+  (let* ((node (assistant-find-node (or node assistant-current-node)))
+	 (nexts (assistant-get-list node "next"))
+	 next elem applicable return)
+
+    (while (setq elem (pop nexts))
+      (when (assistant-eval (car (cadr elem)))
+	(setq applicable (cons elem applicable))))
+
+    ;; return the first thing we can
+    
+    (while (setq elem (pop applicable))
+      (push (cadr (cadr elem)) return))
+
+    return))
+
+(defun assistant-get-all-variables ()
+  (let ((variables nil))
+    (dolist (node (cdr assistant-data))
+      (setq variables
+	    (append (assistant-get-list node "variable")
+		    variables)))
+    variables))
+  
+(defun assistant-eval (form)
+  (let ((bindings nil))
+    (dolist (variable (assistant-get-all-variables))
+      (setq variable (cadr variable))
+      (push (list (car variable) 
+		  (if (eq (nth 3 variable) 'default)
+		      nil
+		    (if (listp (nth 3 variable))
+			`(list ,@(nth 3 variable))
+		      (nth 3 variable))))
+	    bindings))
+    (eval
+     `(let ,bindings
+	,form))))
+
+(defun assistant-finish ()
+  (let ((results nil)
+	result)
+    (dolist (node (cdr assistant-data))
+      (when (assistant-get node "save")
+	(setq result (assistant-get node "result"))
+	(push (list (car result)
+		    (assistant-eval (cadr result)))
+	      results)))
+    (message "Results: %s"
+	     (nreverse results))))
+
+;;; Validation functions.
+
+(defun assistant-validate-connect-to-server (server port)
+  (let* ((error nil)
+	 (stream
+	  (condition-case err
+	      (open-network-stream "nntpd" nil server port)
+	    (error (setq error err)))))
+    (if (and (processp stream)
+	     (memq (process-status stream) '(open run)))
+	(progn
+	  (delete-process stream)
+	  nil)
+      error)))
+
+(defun assistant-authinfo-data (server port type)
+  (when (file-exists-p "~/.authinfo")
+    (netrc-get (netrc-machine (netrc-parse "~/.authinfo")
+			      server port)
+	       (if (eq type 'user)
+		   "login"
+		 "password"))))
+
+(defun assistant-password-required-p ()
+  nil)
+
+(provide 'assistant)
+
+;;; arch-tag: 0404bfa2-9226-4611-8d3f-335c2416175b
+;;; assistant.el ends here
Index: gnus/lisp/binhex.el
diff -u gnus/lisp/binhex.el:7.3 gnus/lisp/binhex.el:7.6
--- gnus/lisp/binhex.el:7.3	Thu Mar  4 07:30:19 2004
+++ gnus/lisp/binhex.el	Sun Feb 13 05:44:42 2005
@@ -49,6 +49,7 @@
 (defcustom binhex-use-external
   (executable-find binhex-decoder-program)
   "*Use external binhex program."
+  :version "22.1"
   :group 'gnus-extract
   :type 'boolean)
 
@@ -322,4 +323,5 @@
 
 (provide 'binhex)
 
+;;; arch-tag: 8476badd-1e76-4f1d-a640-f9a38c72eed8
 ;;; binhex.el ends here
Index: gnus/lisp/canlock.el
diff -u gnus/lisp/canlock.el:7.6 gnus/lisp/canlock.el:7.9
--- gnus/lisp/canlock.el:7.6	Thu Mar  4 07:30:19 2004
+++ gnus/lisp/canlock.el	Fri Nov 26 04:07:28 2004
@@ -44,7 +44,7 @@
 (eval-when-compile
   (require 'cl))
 
-(require 'sha1-el)
+(require 'sha1)
 
 (defvar mail-header-separator)
 
@@ -55,13 +55,13 @@
 (defcustom canlock-password nil
   "Password to use when signing a Cancel-Lock or a Cancel-Key header."
   :type '(radio (const :format "Not specified " nil)
-		(string :tag "Password" :size 0))
+		(string :tag "Password"))
   :group 'canlock)
 
 (defcustom canlock-password-for-verify canlock-password
   "Password to use when verifying a Cancel-Lock or a Cancel-Key header."
   :type '(radio (const :format "Not specified " nil)
-		(string :tag "Password" :size 0))
+		(string :tag "Password"))
   :group 'canlock)
 
 (defcustom canlock-force-insert-header nil
@@ -247,4 +247,5 @@
 
 (provide 'canlock)
 
+;;; arch-tag: 033c4f09-b9f1-459d-bd0d-254430283f78
 ;;; canlock.el ends here
Index: gnus/lisp/compface.el
diff -u gnus/lisp/compface.el:7.5 gnus/lisp/compface.el:7.8
--- gnus/lisp/compface.el:7.5	Tue Feb 17 07:12:28 2004
+++ gnus/lisp/compface.el	Wed Oct 13 00:21:56 2004
@@ -1,8 +1,7 @@
 ;;; compface.el --- functions for converting X-Face headers
-;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2002 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;;	TAKAI Kousuke <tak@kmc.gr.jp>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -26,721 +25,34 @@
 
 ;;; Code:
 
-(defgroup compface nil
-  "X-Face image conversion."
-  :group 'extensions)
-
-(defcustom uncompface-use-external (and (not noninteractive)
-					(executable-find "uncompface")
-					(executable-find "icontopbm")
-					'undecided)
-  "*Specify which of the internal or the external decoder should be used.
-nil means to use the internal ELisp-based uncompface program.  t means
-to use the external decoder.  In the later case, you need to have the
-external `uncompface' and `icontopbm' programs installed.  The default
-value is nil if those external programs aren't available, otherwise
-`undecided' which means to determine it by checking whether the host
-machine is slow.  See also `uncompface-use-external-threshold'.  You
-can skip that check by setting this value as nil or t explicitly."
-  :type '(choice (const :tag "Use the internal decoder" nil)
-		 (const :tag "Use the external decoder" t)
-		 (const :tag "Autodetection" undecided))
-  :group 'compface)
-
-(defcustom uncompface-use-external-threshold 0.1
-  "*Number of seconds to check whether the host machine is slow.
-If the host takes time larger than this value for decoding an X-Face
-using the internal ELisp-based uncompface program, it will be changed
-to using the external `uncompface' and `icontopbm' programs if they
-are available.  Note that the measurement may never be exact."
-  :type 'number
-  :group 'compface)
-
-(eval-when-compile
-  (defmacro uncompface-float-time (&optional specified-time)
-    (if (fboundp 'float-time)
-	`(float-time ,specified-time)
-      `(let ((time (or ,specified-time (current-time))))
-	 (+ (* (car time) 65536.0)
-	    (cadr time)
-	    (cond ((consp (setq time (cddr time)))
-		   (/ (car time) 1000000.0))
-		  (time
-		   (/ time 1000000.0))
-		  (t
-		   0)))))))
-
+;;;###
 (defun uncompface (face)
   "Convert FACE to pbm.
-If `uncompface-use-external' is t, it requires the external programs
-`uncompface', and `icontopbm'.  On a GNU/Linux system these might be
-in packages with names like `compface' or `faces-xface' and `netpbm'
-or `libgr-progs', for instance."
-  (cond ((eq uncompface-use-external nil)
-	 (uncompface-internal face))
-	((eq uncompface-use-external t)
-	 (with-temp-buffer
-	   (insert face)
-	   (and (eq 0 (apply 'call-process-region (point-min) (point-max)
-			     "uncompface"
-			     'delete '(t nil) nil))
-		(progn
-		  (goto-char (point-min))
-		  (insert "/* Width=48, Height=48 */\n")
-		  ;; I just can't get "icontopbm" to work correctly on its
-		  ;; own in XEmacs.  And Emacs doesn't understand un-raw pbm
-		  ;; files.
-		  (if (not (featurep 'xemacs))
-		      (eq 0 (call-process-region (point-min) (point-max)
-						 "icontopbm"
-						 'delete '(t nil)))
-		    (shell-command-on-region (point-min) (point-max)
-					     "icontopbm | pnmnoraw"
-					     (current-buffer) t)
-		    t))
-		(buffer-string))))
-	(t
-	 (let* ((gc-cons-threshold (eval '(lsh -1 -1)))
-		(start (current-time)))
-	   (prog1
-	       (uncompface-internal face)
-	     (setq uncompface-use-external
-		   (and (> (- (uncompface-float-time (current-time))
-			      (uncompface-float-time start))
-			   uncompface-use-external-threshold)
-			(executable-find "uncompface")
-			(executable-find "icontopbm")
-			t)))))))
-
-;; The following section is a bug-for-bug compatible version of
-;; `uncompface' program entirely implemented in Emacs-Lisp.
-
-(eval-when-compile
-  ;; The size of 48x48 is actually hard-coded into the code itself,
-  ;; so you cannot simply change those values.  So we hard-code
-  ;; them into the compiled code.
-  (defconst uncompface-width 48
-    "Width of X-Face bitmap image.")
-  (defconst uncompface-height 48
-    "Height of X-Face bitmap image.")
-
-  ;; Again, this is also hard-coded into the compiled code.
-  (defconst uncompface-guesses
-    (mapcar (lambda (x)
-	      (mapcar (lambda (x)
-			(let ((vector (make-vector (length x) nil))
-			      (i 0))
-			  (while x
-			    (or (zerop (car x))
-				(aset vector i t))
-			    (setq x (cdr x)
-				  i (1+ i)))
-			  vector))
-		      x))
-	    '((;; g_00
-	       (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1
-		0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1
-		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1
-		0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
-		0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1
-		0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
-		0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1
-		1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
-		1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1
-		0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0
-		0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1
-		0 1 0 1 0 1 1 1 0 1 0 0 0 1 1 1
-		1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
-		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1
-		1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 1 1 1 1 1 0 0 0 1 1 1 0 1
-		0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1
-		0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1
-		0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1
-		0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1
-		1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
-		1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1
-		1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1
-		0 1 0 1 0 1 1 0 0 0 1 0 0 1 0 1
-		0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1
-		1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
-		0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1
-		0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0
-		0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1
-		0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1
-		1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
-		0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1
-		0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1
-		0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
-		0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1
-		1 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1
-		0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1
-		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
-		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1
-		0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1
-		0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
-		0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0
-		0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
-		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		1 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1
-		0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0
-		0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
-		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
-		1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1
-		1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1
-		0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1
-		1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
-		0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1
-		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1
-		0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0
-		0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1
-		0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
-		0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
-		0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
-		0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
-		0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
-		1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
-		0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1
-		0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1
-		1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
-		0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
-		0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0
-		0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
-		1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1
-		1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
-		0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
-		0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1
-		1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0
-		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
-		1 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1
-		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1
-		0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1
-		1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1
-		0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0
-		0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1
-		0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1
-		1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
-		0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0
-		0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1
-		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
-		0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1
-		0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1
-		1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1
-		0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1
-		1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
-		0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1
-		1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1
-		0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
-		0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1
-		0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1
-		0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0
-		0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1
-		0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 0
-		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
-		0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0
-		1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1
-		0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1
-		0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0
-		0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 1
-		0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1
-		1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0
-		1 1 0 0 1 1 1 1 0 0 0 0 0 1 0 1
-		1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1
-		1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1
-		0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
-		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0
-		1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0
-		1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0
-		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0
-		1 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1
-		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0
-		1 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
-	       ;; g_10
-	       (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
-		1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1
-		1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0
-		0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 1
-		0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1
-		0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
-		0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
-		0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1
-		0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1
-		0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1
-		0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
-		0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0
-		0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0
-		0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1
-		0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1
-		0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1
-		0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1
-		1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1
-		0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0
-		0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0
-		1 1 1 1 1 0 1 0 1 1 1 0 1 0 0 0
-		0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1
-		0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1
-		0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
-	       ;; g_20
-	       (0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
-		0 1 0 0 0 0 1 1 0 0 1 0 1 1 1 0
-		1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1)
-	       ;; g_40
-	       (0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0
-		1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1
-		0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
-		0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0
-		0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
-		1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 1
-		0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1
-		1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
-		0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
-		0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1
-		0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
-		0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
-		0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
-		0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1
-		0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1
-		1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
-		0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
-		0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1
-		0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
-		0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
-		0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1
-		0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1
-		0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1
-		0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1
-		0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-		0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1
-		0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
-		0 0 0 0 0 1 0 1 0 1 1 1 1 1 0 1
-		0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1
-		0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0
-		0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1
-		0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1
-		0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1
-		0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1
-		0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1
-		0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-		0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1
-		0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1))
-	      (;; g_01
-	       (0 0 1 1 0 1 1 1 0 1 1 1 0 0 1 1
-		0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1
-		0 1 0 1 0 1 1 1 0 1 1 1 1 1 1 1
-		1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1
-		0 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1
-		1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1
-		0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-		1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
-	       ;; g_11
-	       (0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1
-		0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1)
-	       ;; g_21
-	       (0 0 0 1 0 1 1 1)
-	       ;; g_41
-	       (0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
-		0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1
-		0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1
-		0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
-	      (;; g_02
-	       (0 1 0 1)
-	       ;; g_12
-	       (0 1)
-	       ;; g_22
-	       (0)
-	       ;; g_42
-	       (0 0 0 1))))
-    "Static prediction table for X-Face image compression algorithm.")
-
-  ;; Macros for inlining critical values. 
-  (defmacro uncompface-width () (list 'quote uncompface-width))
-  (defmacro uncompface-height () (list 'quote uncompface-height))
-  (defmacro uncompface-guesses () (list 'quote uncompface-guesses))
-
-  (defmacro uncompface-loop (&rest body)
-    "Eval BODY and repeat if last expression of BODY yields non-nil."
-    (list 'while (cons 'progn body))))
-
-;; (defun uncompface-print-bignum (bignum &optional prefix)
-;;   (princ (format (concat prefix "<%s>\n")
-;; 		 (mapconcat (lambda (x) (format "%02x" x))
-;; 			    (reverse bignum) " "))))
-
-;; Shut up the byte-compiler.
-;; These variables are once bound in `uncompface' and all subfunctions
-;; accesses them directly rather than creating their own bindings.
-(eval-when-compile
-  (defvar bignum)
-  (defvar face))
-
-;; Big-number facilities.
-;; These functions were used to be implemented with `lsh' and `logand',
-;; but rewritten to use `/' and `%'.  The last two are mapped into
-;; byte-code directly, but the formers are normal functions even in
-;; compiled code which involve expensive `funcall' operations.
-(eval-when-compile
-  (defsubst uncompface-big-mul-add (multiplier adder)
-    "Multiply BIGNUM by MULTIPLIER and add ADDER and put result in `bignum'."
-    (setq bignum (if (= multiplier 0)
-		     (cons 0 bignum)
-		   (prog1 bignum
-		     (while (progn
-			      (setcar bignum (% (setq adder (+ (* (car bignum)
-								  multiplier)
-							       adder))
-						256))
-			      (setq adder (/ adder 256))
-			      (cdr bignum))
-		       (setq bignum (cdr bignum)))
-		     (or (= adder 0)
-			 (setcdr bignum (list adder))))))))
-
-;; This trick is for XEmacs 21.4 which doesn't allow inlining a function
-;; using `defsubst' into another function also defined with `defsubst'.
-(eval-when-compile
-  (when (featurep 'xemacs)
-    (defvar uncompface-big-mul-add (symbol-function 'uncompface-big-mul-add))
-    (defmacro uncompface-big-mul-add (multiplier adder)
-      `(,uncompface-big-mul-add ,multiplier ,adder))))
-
-;; Separate `eval-when-compile' for the byte compiler
-;; to properly define `uncompface-big-mul-add' before `uncompface-big-pop'.
-(eval-when-compile
-  (defsubst uncompface-big-pop (prob)
-    (let ((n (car bignum)) (i 0))
-      (if (cdr bignum)
-	  (setq bignum (cdr bignum))
-	(setcar bignum 0))
-      (while (or (< n (cdr (car prob)))
-		 (>= n (+ (cdr (car prob)) (car (car prob)))))
-	(setq prob (cdr prob)
-	      i (1+ i)))
-      (uncompface-big-mul-add (car (car prob)) (- n (cdr (car prob))))
-      i)))
-
-;; This function cannot be inlined due to recursive calls.
-(defun uncompface-pop-grays (offset size)
-  (if (<= size 3)
-      (let ((bits (uncompface-big-pop
-		   ;; This is freqs[16] in compface_private.h.
-		   '(( 0 .   0) (38 .   0) (38 .  38) (13 . 152)
-		     (38 .  76) (13 . 165) (13 . 178) ( 6 . 230)
-		     (38 . 114) (13 . 191) (13 . 204) ( 6 . 236)
-		     (13 . 217) ( 6 . 242) ( 5 . 248) ( 3 . 253)))))
-;; 	(if (/= (logand bits 1) 0)
-;; 	    (aset face offset t))
-;; 	(if (/= (logand bits 2) 0)
-;; 	    (aset face (1+ offset) t))
-;; 	(if (/= (logand bits 4) 0)
-;; 	    (aset face (+ offset (uncompface-width)) t))
-;; 	(if (/= (logand bits 8) 0)
-;; 	    (aset face (+ offset (uncompface-width) 1) t))
-	(when (>= bits 8)
-	  (aset face (+ offset (uncompface-width) 1) t)
-	  (setq bits (- bits 8)))
-	(when (>= bits 4)
-	  (aset face (+ offset (uncompface-width)) t)
-	  (setq bits (- bits 4)))
-	(or (eq (if (< bits 2)
-		    bits
-		  (aset face (1+ offset) t)
-		  (- bits 2))
-		0)
-	    (aset face offset t))
-	)
-    (setq size (/ size 2))
-    (uncompface-pop-grays offset size)
-    (uncompface-pop-grays (+ offset size) size)
-    (uncompface-pop-grays (+ offset (* (uncompface-width) size)) size)
-    (uncompface-pop-grays (+ offset (* (uncompface-width) size) size) size)))
-
-;; Again, this function call itself recursively.
-(defun uncompface-uncompress (offset size level)
-  ;; This used to be (funcall (aref [(lambda ...) ...] (u-big-pop ...)))
-  ;; but this was slow due to function call.
-  (let ((i (uncompface-big-pop (car level))))
-    (cond ((eq i 0)			; black
-	   (uncompface-pop-grays offset size))
-	  ((eq i 1)			; gray
-	   (setq size (/ size 2)
-		 level (cdr level))
-	   (uncompface-uncompress offset size level)
-	   (uncompface-uncompress (+ offset size) size level)
-	   (uncompface-uncompress (+ offset (* size (uncompface-width)))
-				  size level)
-	   (uncompface-uncompress (+ offset (* size (uncompface-width)) size)
-				  size level))
-	  ;; ((eq i 2) nil)
-	  ;; (t (error "Cannot happen"))
-	  )))
-
-(eval-when-compile
-  (defmacro uncompface-shift-in (k dy dx)
-    `(+ k k (if (aref face (+ i (* ,dy (uncompface-width)) ,dx)) 1 0))))
-
-(defun uncompface-internal (string &optional raw)
-  "Decode X-Face data STRING and return an image in the pbm format.
-If the optional RAW is non-nil, return a raw bitmap as a vector."
-  (let (;; `bignum' and `face' are semi-global variables.
-	;; Do not use '(0) below, because BIGNUM is modified in-place.
-	(bignum (list 0))
-	(face (make-vector (* (uncompface-width) (uncompface-height)) nil))
-	;;(uncompface-big-shift -16)
-	;;(uncompface-big-mask 65535)
-	(y 0) x)
-    (mapc (lambda (c)
-	    (and (>= c ?!) (<= c ?~)
-		 (uncompface-big-mul-add (1+ (- ?~ ?!)) (- c ?!))))
-	  string)
-    ;;(uncompface-print-bignum bignum)
-    ;;(setq y 0)
-    (uncompface-loop
-      (setq x 0)
-      (uncompface-loop
-	(uncompface-uncompress (+ (* (uncompface-width) y) x) 16
-			       ;; This is levels[4][3] in compface_private.h.
-			       '(;; Top of tree almost always grey
-				 ((  1 . 255) (251 .   0) (  4 . 251))
-				 ((  1 . 255) (200 .   0) ( 55 . 200))
-				 (( 33 . 223) (159 .   0) ( 64 . 159))
-				 ;; Grey disallowed at bottom
-				 ((131 .   0) (  0 .   0) (125 . 131))))
-	(< (setq x (+ x 16)) (uncompface-width)))
-      (< (setq y (+ y 16)) (uncompface-height)))
-    (setq y 0)
-    (let ((i 0) guesses k)
-      (uncompface-loop
-	(setq guesses (cond ((= y 1) (nth 2 (uncompface-guesses)))
-			    ((= y 2) (nth 1 (uncompface-guesses)))
-			    (t	     (nth 0 (uncompface-guesses))))
-	      x 0)
-	(uncompface-loop
-	  (setq k 0)
-	  (when (>= x 1)
-	    (when (>= x 2)
-	      (when (>= x 3)
-		(when (>= y 1)
-		  (when (>= y 2)
-		    (when (>= y 3)
-		      (setq k (uncompface-shift-in k -2 -2)))
-		    (setq k (uncompface-shift-in k -1 -2)))
-		  (setq k (uncompface-shift-in k 0 -2))))
-	      (when (>= y 1)
-		(when (>= y 2)
-		  (when (>= y 3)
-		    (setq k (uncompface-shift-in k -2 -1)))
-		  (setq k (uncompface-shift-in k -1 -1)))
-		(setq k (uncompface-shift-in k 0 -1))))
-	    (when (>= y 2)
-	      (when (>= y 3)
-		(setq k (uncompface-shift-in k -2 0)))
-	      (setq k (uncompface-shift-in k -1 0)))
-	    (when (>= y 2)
-	      (when (>= y 3)
-		(setq k (uncompface-shift-in k -2 1)))
-	      (setq k (uncompface-shift-in k -1 1)))
-	    (when (<= x (- (uncompface-width) 2))
-	      (when (>= y 2)
-		(when (>= y 3)
-		  (setq k (uncompface-shift-in k -2 2)))
-		(setq k (uncompface-shift-in k -1 2)))))
-	  (if (aref (car (cond ((= x 1)
-				(cdr (cdr guesses)))
-			       ((= x 2)
-				(cdr guesses))
-			       ((= x (1- (uncompface-width)))
-				(cdr (cdr (cdr guesses))))
-			       (t
-				guesses))) k)
-	      (aset face i (not (aref face i))))
-	  (setq i (1+ i))
-	  (< (setq x (1+ x)) (uncompface-width)))
-	(< (setq y (1+ y)) (uncompface-height))))
-    (if raw
-	face
-      (concat (eval-when-compile
-		(format "P1\n%d %d\n" uncompface-width uncompface-height))
-	      (mapconcat (lambda (bit) (if bit "1" "0")) face " ")
-	      "\n"))))
+Requires the external programs `uncompface', and `icontopbm'.  On a
+GNU/Linux system these might be in packages with names like `compface'
+or `faces-xface' and `netpbm' or `libgr-progs', for instance."
+  (with-temp-buffer
+    (insert face)
+    (and (eq 0 (apply 'call-process-region (point-min) (point-max)
+		      "uncompface"
+		      'delete '(t nil) nil))
+	 (progn
+	   (goto-char (point-min))
+	   (insert "/* Width=48, Height=48 */\n")
+	   ;; I just can't get "icontopbm" to work correctly on its
+	   ;; own in XEmacs.  And Emacs doesn't understand un-raw pbm
+	   ;; files.
+	   (if (not (featurep 'xemacs))
+	       (eq 0 (call-process-region (point-min) (point-max)
+					  "icontopbm"
+					  'delete '(t nil)))
+	     (shell-command-on-region (point-min) (point-max)
+				      "icontopbm | pnmnoraw"
+				      (current-buffer) t)
+	     t))
+	 (buffer-string))))
 
 (provide 'compface)
 
-;; Local variables:
-;; eval: (put 'uncompface-loop 'lisp-indent-hook 0)
-;; End:
-
+;;; arch-tag: f9c78e84-98c0-4142-9682-8ba4cf4c3441
 ;;; compface.el ends here
Index: gnus/lisp/deuglify.el
diff -u gnus/lisp/deuglify.el:7.3 gnus/lisp/deuglify.el:7.8
--- gnus/lisp/deuglify.el:7.3	Sat Feb 14 01:29:46 2004
+++ gnus/lisp/deuglify.el	Sun Feb 13 05:44:42 2005
@@ -1,6 +1,6 @@
 ;;; deuglify.el --- deuglify broken Outlook (Express) articles
 
-;; Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
 ;; Copyright (C) 2001, 2002 Raymond Scholz
 
 ;; Author: Raymond Scholz <rscholz@zonix.de>
@@ -146,7 +146,7 @@
 ;; Hey, John.  There's no in all your sentences!
 ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Usage
 ;; -----
 ;;
@@ -230,51 +230,60 @@
 ;;; User Customizable Variables:
 
 (defgroup gnus-outlook-deuglify nil
-  "Deuglify articles generated by broken user agents like MS Outlook (Express).")
+  "Deuglify articles generated by broken user agents like MS Outlook (Express)."
+  :version "22.1")
 
 ;;;###autoload
 (defcustom gnus-outlook-deuglify-unwrap-min 45
   "Minimum length of the cited line above the (possibly) wrapped line."
+  :version "22.1"
   :type 'integer
   :group 'gnus-outlook-deuglify)
 
 ;;;###autoload
 (defcustom gnus-outlook-deuglify-unwrap-max 95
   "Maximum length of the cited line after unwrapping."
+  :version "22.1"
   :type 'integer
   :group 'gnus-outlook-deuglify)
 
 (defcustom gnus-outlook-deuglify-cite-marks ">|#%"
   "Characters that indicate cited lines."
+  :version "22.1"
   :type 'string
   :group 'gnus-outlook-deuglify)
 
 (defcustom gnus-outlook-deuglify-unwrap-stop-chars nil ;; ".?!" or nil
   "Characters that inhibit unwrapping if they are the last one on the cited line above the possible wrapped line."
+  :version "22.1"
   :type '(radio (const :format "None  " nil)
-		(string :size 0 :value ".?!"))
+		(string :value ".?!"))
   :group 'gnus-outlook-deuglify)
 
 (defcustom gnus-outlook-deuglify-no-wrap-chars "`"
   "Characters that inhibit unwrapping if they are the first one in the possibly wrapped line."
+  :version "22.1"
   :type 'string
   :group 'gnus-outlook-deuglify)
 
 (defcustom  gnus-outlook-deuglify-attrib-cut-regexp
   "\\(On \\|Am \\)?\\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\),[^,]+, "
   "Regular expression matching the beginning of an attribution line that should be cut off."
+  :version "22.1"
   :type 'string
   :group 'gnus-outlook-deuglify)
 
 (defcustom gnus-outlook-deuglify-attrib-verb-regexp
   "wrote\\|writes\\|says\\|schrieb\\|schreibt\\|meinte\\|skrev\\|a écrit\\|schreef\\|escribió"
   "Regular expression matching the verb used in an attribution line."
+  :version "22.1"
   :type 'string
   :group 'gnus-outlook-deuglify)
 
 (defcustom  gnus-outlook-deuglify-attrib-end-regexp
   ": *\\|\\.\\.\\."
   "Regular expression matching the end of an attribution line."
+  :version "22.1"
   :type 'string
   :group 'gnus-outlook-deuglify)
 
@@ -282,6 +291,7 @@
 (defcustom gnus-outlook-display-hook nil
   "A hook called after an deuglified article has been prepared.
 It is run after `gnus-article-prepare-hook'."
+  :version "22.1"
   :type 'hook
   :group 'gnus-outlook-deuglify)
 
@@ -459,4 +469,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;;; arch-tag: 5f895cc9-51a9-487c-b42e-28844d79eb73
 ;;; deuglify.el ends here
Index: gnus/lisp/dgnushack.el
diff -u gnus/lisp/dgnushack.el:7.12 gnus/lisp/dgnushack.el:7.16
--- gnus/lisp/dgnushack.el:7.12	Thu Mar  4 07:30:19 2004
+++ gnus/lisp/dgnushack.el	Wed Jan 26 09:54:34 2005
@@ -190,6 +190,7 @@
     (autoload 'c-mode "cc-mode" nil t)
     (autoload 'customize-apropos "cus-edit" nil t)
     (autoload 'customize-save-variable "cus-edit" nil t)
+    (autoload 'customize-set-variable "cus-edit" nil t)
     (autoload 'customize-variable "cus-edit" nil t)
     (autoload 'delete-annotation "annotations")
     (autoload 'dolist "cl-macs" nil nil 'macro)
@@ -197,6 +198,7 @@
     (autoload 'executable-find "executable")
     (autoload 'font-lock-fontify-buffer "font-lock" nil t)
     (autoload 'info "info" nil t)
+    (autoload 'mail-fetch-field "mail-utils")
     (autoload 'make-annotation "annotations")
     (autoload 'make-display-table "disp-table")
     (autoload 'pp "pp")
@@ -206,7 +208,8 @@
     (autoload 'read-passwd "passwd")
     (autoload 'regexp-opt "regexp-opt")
     (autoload 'reporter-submit-bug-report "reporter")
-    (if (emacs-version>= 21 5)
+    (if (and (emacs-version>= 21 5)
+	     (not (featurep 'sxemacs)))
 	(autoload 'setenv "process" nil t)
       (autoload 'setenv "env" nil t))
     (autoload 'sgml-mode "psgml" nil t)
@@ -228,7 +231,6 @@
     (defalias 'overlays-in 'ignore)
     (defalias 'replace-dehighlight 'ignore)
     (defalias 'replace-highlight 'ignore)
-    (defalias 'run-with-idle-timer 'ignore)
     (defalias 'w3-coding-system-for-mime-charset 'ignore)))
 
 (defun dgnushack-compile-verbosely ()
@@ -273,8 +275,7 @@
     (dolist (file
 	     (if (featurep 'xemacs)
 		 '("md5.el")
-	       '("gnus-xmas.el" "messagexmas.el" "nnheaderxm.el"
-		 "run-at-time.el")))
+	       '("gnus-xmas.el" "messagexmas.el" "nnheaderxm.el")))
       (setq files (delete file files)))
 
     (dolist (file files)
@@ -408,5 +409,6 @@
 ;;; End:
 ;;; gnus-load.el ends here"))))
 
-
 ;;; dgnushack.el ends here
+
+;;; arch-tag: 579f585a-24eb-4e1c-8d34-4808e11b68f2
Index: gnus/lisp/dig.el
diff -u gnus/lisp/dig.el:7.1 gnus/lisp/dig.el:7.2
--- gnus/lisp/dig.el:7.1	Sun Jan  4 22:50:59 2004
+++ gnus/lisp/dig.el	Thu May 20 10:02:38 2004
@@ -185,4 +185,5 @@
 
 (provide 'dig)
 
+;;; arch-tag: 1d61726e-9400-4013-9ae7-4035e0c7f7d6
 ;;; dig.el ends here
Index: gnus/lisp/dns-mode.el
diff -u /dev/null gnus/lisp/dns-mode.el:7.7
--- /dev/null	Sun May  1 19:05:00 2005
+++ gnus/lisp/dns-mode.el	Tue Sep 14 13:14:28 2004
@@ -0,0 +1,198 @@
+;;; dns-mode.el --- a mode for viewing/editing Domain Name System master files
+;; Copyright (c) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+
+;; Author: Simon Josefsson <simon@josefsson.org>
+;; Keywords: DNS master zone file SOA
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; Use M-x dns-mode RET to invoke in master files.
+;;
+;; C-c C-s  Increment SOA serial.
+;;          Understands YYYYMMDDNN, Unix time, and serial number formats,
+;;          and complains if it fail to find SOA serial.
+;;
+;; Put something similar to the following in your ~/.emacs to use this file:
+;;
+;; (load "~/path/to/dns-mode.el")
+;; (setq auto-mode-alist (cons '("\\.soa\\'" . dns-mode) auto-mode-alist))
+
+;;; References:
+
+;; RFC 1034, "DOMAIN NAMES - CONCEPTS AND FACILITIES", P. Mockapetris.
+;; RFC 1035, "DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION", P. Mockapetris.
+
+;;; Release history:
+
+;; 2004-09-11  Posted on gnu.emacs.sources.
+;; 2004-09-13  Ported to XEmacs.
+;; 2004-09-14  Installed in Emacs CVS.
+
+;;; Code:
+
+(defgroup dns-mode nil
+  "DNS master file mode configuration.")
+
+(defconst dns-mode-classes '("IN" "CS" "CH" "HS")
+  "List of strings with known DNS classes.")
+
+(defconst dns-mode-types '("A" "NS" "MD" "MF" "CNAME" "SOA" "MB" "MG" "MR"
+			   "NULL" "WKS" "PTR" "HINFO" "MINFO" "MX" "TXT"
+			   "RP" "AFSDB" "X25" "ISDN" "RT" "NSAP" "NSAP"
+			   "SIG" "KEY" "PX" "GPOS" "AAAA" "LOC" "NXT"
+			   "EID" "NIMLOC" "SRV" "ATMA" "NAPTR" "KX" "CERT"
+			   "A6" "DNAME" "SINK" "OPT" "APL" "DS" "SSHFP"
+			   "RRSIG" "NSEC" "DNSKEY" "UINFO" "UID" "GID"
+			   "UNSPEC" "TKEY" "TSIG" "IXFR" "AXFR" "MAILB"
+			   "MAILA")
+  "List of strings with known DNS types.")
+
+;; Font lock.
+
+(defvar dns-mode-control-entity-face 'font-lock-keyword-face
+  "Name of face used for control entities, e.g. $ORIGIN.")
+
+(defvar dns-mode-bad-control-entity-face 'font-lock-warning-face
+  "Name of face used for non-standard control entities, e.g. $FOO.")
+
+(defvar dns-mode-type-face 'font-lock-type-face
+  "Name of face used for DNS types, e.g., SOA.")
+
+(defvar dns-mode-class-face 'font-lock-constant-face
+  "Name of face used for DNS classes, e.g., IN.")
+
+(defcustom dns-mode-font-lock-keywords
+  `(("^$ORIGIN" 0 ,dns-mode-control-entity-face)
+    ("^$INCLUDE" 0 ,dns-mode-control-entity-face)
+    ("^$[a-z0-9A-Z]+" 0 ,dns-mode-bad-control-entity-face)
+    (,(regexp-opt dns-mode-classes) 0 ,dns-mode-class-face)
+    (,(regexp-opt dns-mode-types) 0 ,dns-mode-type-face))
+  "Font lock keywords used to highlight text in DNS master file mode."
+  :type 'sexp
+  :group 'dns-mode)
+
+;; Syntax table.
+
+(defvar dns-mode-syntax-table
+  (let ((table (make-syntax-table)))
+    (modify-syntax-entry ?\; "<   " table)
+    (modify-syntax-entry ?\n ">   " table)
+    table)
+  "Syntax table in use in DNS master file buffers.")
+
+;; Keymap.
+
+(defvar dns-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map "\C-c\C-s" 'dns-mode-soa-increment-serial)
+    map)
+  "Keymap for DNS master file mode.")
+
+;; Menu.
+
+(defvar dns-mode-menu nil
+  "Menubar used in DNS master file mode.")
+
+(easy-menu-define dns-mode-menu dns-mode-map
+  "DNS Menu."
+  '("DNS"
+    ["Increment SOA serial" dns-mode-soa-increment-serial t]))
+
+;; Mode.
+
+;;;###autoload
+(define-derived-mode dns-mode text-mode "DNS"
+  "Major mode for viewing and editing DNS master files.
+This mode is inherited from text mode.  It add syntax
+highlighting, and some commands for handling DNS master files.
+Its keymap inherits from `text-mode' and it has the same
+variables for customizing indentation.  It has its own abbrev
+table and its own syntax table.
+
+Turning on DNS mode runs `dns-mode-hook'."
+  (set (make-local-variable 'comment-start) ";")
+  (set (make-local-variable 'comment-end) "")
+  (set (make-local-variable 'comment-start-skip) ";+ *")
+  (unless (featurep 'xemacs)
+    (set (make-local-variable 'font-lock-defaults)
+	 '(dns-mode-font-lock-keywords nil nil ((?_ . "w")))))
+  (easy-menu-add dns-mode-menu dns-mode-map))
+
+;; Tools.
+
+;;;###autoload
+(defun dns-mode-soa-increment-serial ()
+  "Locate SOA record and increment the serial field."
+  (interactive)
+  (save-excursion
+    (goto-char (point-min))
+    (unless (re-search-forward
+	     (concat "^\\(\\(\\([^ \t]+[ \t]+\\)?[^ \t]+"
+		     "[ \t]+\\)?[^ \t]+[ \t]+\\)?SOA") nil t)
+      (error "Cannot locate SOA record"))
+    (if (re-search-forward (concat "\\<\\("
+				   ;; year
+				   "\\(198\\|199\\|20[0-9]\\)[0-9]"
+				   ;; month
+				   "\\(0[0-9]\\|10\\|11\\|12\\)"
+				   ;; day
+				   "\\([012][0-9]\\|30\\|31\\)"
+				   ;; counter
+				   "\\([0-9]\\{1,3\\}\\)"
+				   "\\)\\>")
+			   nil t)
+	;; YYYYMMDDIII format, one to three I's.
+	(let* ((serial (match-string 1))
+	       (counterstr (match-string 5))
+	       (counter (string-to-number counterstr))
+	       (now (format-time-string "%Y%m%d"))
+	       (nowandoldserial (concat now counterstr)))
+	  (if (string< serial nowandoldserial)
+	      (let ((new (format "%s00" now)))
+		(replace-match new nil nil nil 1)
+		(message "Replaced old serial %s with %s" serial new))
+	    (if (string= serial nowandoldserial)
+		(let ((new (format (format "%%s%%0%dd" (length counterstr))
+				   now (1+ counter))))
+		  (replace-match new nil nil nil 1)
+		  (message "Replaced old serial %s with %s" serial new))
+	      (error "Current SOA serial is in the future"))))
+      (if (re-search-forward "\\<\\([0-9]\\{9,10\\}\\)\\>" nil t)
+	  ;; Unix time
+	  (let* ((serial (match-string 1))
+		 (new (format-time-string "%s")))
+	    (if (not (string< serial new))
+		(error "Current SOA serial is in the future")
+	      (replace-match new nil nil nil 1)
+	      (message "Replaced old serial %s with %s" serial new)))
+	(if (re-search-forward "\\<\\([0-9]+\\)\\>" nil t)
+	    ;; Just any serial number.
+	    (let* ((serial (match-string 1))
+		   (new (format "%d" (1+ (string-to-number serial)))))
+	      (replace-match new nil nil nil 1)
+	      (message "Replaced old serial %s with %s" serial new))
+	  (error "Cannot locate serial number in SOA record"))))))
+
+;;;###autoload(add-to-list 'auto-mode-alist '("\\.soa\\'" . dns-mode))
+
+(provide 'dns-mode)
+
+;; arch-tag: 6a179f0a-072f-49db-8b01-37b8f23998c0
+;;; dns-mode.el ends here
Index: gnus/lisp/dns.el
diff -u gnus/lisp/dns.el:7.4 gnus/lisp/dns.el:7.10
--- gnus/lisp/dns.el:7.4	Thu Mar 18 23:56:09 2004
+++ gnus/lisp/dns.el	Fri Nov 19 01:50:11 2004
@@ -1,5 +1,5 @@
 ;;; dns.el --- Domain Name Service lookups
-;; Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: network
@@ -56,6 +56,7 @@
     (MX 15)
     (TXT 16)
     (AAAA 28) ; RFC3596
+    (SRV 33) ; RFC2782
     (AXFR 252)
     (MAILB 253)
     (MAILA 254)
@@ -284,6 +285,11 @@
 		  (list 'retry (dns-read-int32))
 		  (list 'expire (dns-read-int32))
 		  (list 'minimum (dns-read-int32))))
+	   ((eq type 'SRV)
+	    (list (list 'priority (dns-read-bytes 2))
+		  (list 'weight (dns-read-bytes 2))
+		  (list 'port (dns-read-bytes 2))
+		  (list 'target (dns-read-name buffer))))
 	   ((eq type 'MX)
 	    (cons (dns-read-bytes 2) (dns-read-name buffer)))
 	   ((or (eq type 'CNAME) (eq type 'NS) (eq type 'PTR))
@@ -300,6 +306,25 @@
 	(push (match-string 1) dns-servers))
       (setq dns-servers (nreverse dns-servers)))))
 
+(defun dns-read-txt (string)
+  (if (> (length string) 1)
+      (substring string 1)
+    string))
+
+(defun dns-get-txt-answer (answers)
+  (let ((result "")
+	(do-next nil))
+    (dolist (answer answers)
+      (dolist (elem answer)
+	(when (consp elem)
+	  (cond
+	   ((eq (car elem) 'type)
+	    (setq do-next (eq (cadr elem) 'TXT)))
+	   ((eq (car elem) 'data)
+	    (when do-next
+	      (setq result (concat result (dns-read-txt (cadr elem))))))))))
+    result))
+
 ;;; Interface functions.
 (defmacro dns-make-network-process (server)
   (if (featurep 'xemacs)
@@ -323,13 +348,20 @@
 	 ;; connection to the DNS server.
 	 (open-network-stream "dns" (current-buffer) server "domain")))))
 
-(defun query-dns (name &optional type fullp)
+(defun query-dns (name &optional type fullp reversep)
   "Query a DNS server for NAME of TYPE.
-If FULLP, return the entire record returned."
+If FULLP, return the entire record returned.
+If REVERSEP, look up an IP address."
   (setq type (or type 'A))
   (unless dns-servers
     (dns-parse-resolv-conf))
 
+  (when reversep
+    (setq name (concat
+		(mapconcat 'identity (nreverse (split-string name "\\.")) ".")
+		".in-addr.arpa")
+	  type 'PTR))
+
   (if (not dns-servers)
       (message "No DNS server configuration found")
     (mm-with-unibyte-buffer
@@ -354,6 +386,7 @@
 		      tcp-p))
 	  (while (and (zerop (buffer-size))
 		      (> times 0))
+	    (sit-for (/ step 1000.0))
 	    (accept-process-output process 0 step)
 	    (decf times step))
 	  (ignore-errors
@@ -367,8 +400,11 @@
 		  result
 		(let ((answer (car (dns-get 'answers result))))
 		  (when (eq type (dns-get 'type answer))
-		    (dns-get 'data answer)))))))))))
+		    (if (eq type 'TXT)
+			(dns-get-txt-answer (dns-get 'answers result))
+		      (dns-get 'data answer))))))))))))
 
 (provide 'dns)
 
+;;; arch-tag: d0edd0c4-4cce-4538-ae92-06c3356ee80a
 ;;; dns.el ends here
Index: gnus/lisp/earcon.el
diff -u gnus/lisp/earcon.el:7.1 gnus/lisp/earcon.el:7.2
--- gnus/lisp/earcon.el:7.1	Sun Jan  4 22:50:59 2004
+++ gnus/lisp/earcon.el	Thu May 20 10:02:38 2004
@@ -230,4 +230,5 @@
 
 (run-hooks 'earcon-load-hook)
 
+;;; arch-tag: 844dfeea-980c-4ed0-907f-a30bf139691c
 ;;; earcon.el ends here
Index: gnus/lisp/encrypt.el
diff -u /dev/null gnus/lisp/encrypt.el:7.4
--- /dev/null	Sun May  1 19:05:00 2005
+++ gnus/lisp/encrypt.el	Tue Feb 22 18:22:56 2005
@@ -0,0 +1,272 @@
+;;; encrypt.el --- file encryption routines
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+;; Author: Teodor Zlatanov <tzz@lifelogs.com>
+;; Created: 2003/01/24
+;; Keywords: files
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;;; This module addresses data encryption.  Page breaks are used for
+;;; grouping declarations and documentation relating to each
+;;; particular aspect.
+
+;;; Code:
+
+;; autoload password
+(eval-and-compile
+  (autoload 'password-read "password"))
+
+(defgroup encrypt '((password-cache custom-variable)
+		    (password-cache-expiry custom-variable))
+  "File encryption configuration.")
+
+(defcustom encrypt-file-alist nil
+  "List of file names or regexes matched with encryptions.
+Format example:
+ '((\"beta\"
+    (gpg \"AES\"))
+   (\"/home/tzz/alpha\"
+    (encrypt-xor \"Semi-Secret\")))"
+
+  :type '(repeat
+	  (list :tag "Encryption entry"
+	   (radio :tag "What to encrypt"
+		  (file :tag "Filename")
+		  (regexp :tag "Regular expression match"))
+	   (radio :tag "How to encrypt it"
+		  (list
+		   :tag "GPG Encryption"
+		   (const :tag "GPG Program" gpg)
+		   (radio :tag "Choose a cipher"
+			  (const :tag "3DES Encryption" "3DES")
+			  (const :tag "CAST5 Encryption" "CAST5")
+			  (const :tag "Blowfish Encryption" "BLOWFISH")
+			  (const :tag "AES Encryption" "AES")
+			  (const :tag "AES192 Encryption" "AES192")
+			  (const :tag "AES256 Encryption" "AES256")
+			  (const :tag "Twofish Encryption" "TWOFISH")
+			  (string :tag "Cipher Name")))
+		  (list
+		   :tag "Built-in simple XOR"
+		   (const :tag "XOR Encryption" encrypt-xor)
+		   (string :tag "XOR Cipher Value (seed value)")))))
+  :group 'encrypt)
+
+;; TODO: now, load gencrypt.el and if successful, modify the
+;; custom-type of encrypt-file-alist to add the gencrypt.el options
+
+;; (plist-get (symbol-plist 'encrypt-file-alist) 'custom-type)
+;; then use plist-put
+
+(defcustom encrypt-gpg-path (executable-find "gpg")
+  "Path to the GPG program."
+  :type '(radio
+	  (file :tag "Location of the GPG executable")
+	  (const :tag "GPG is not installed" nil))
+  :group 'encrypt)
+
+(defvar encrypt-temp-prefix "encrypt"
+  "Prefix for temporary filenames")
+
+;;;###autoload
+(defun encrypt-find-model (filename)
+  "Given a filename, find a encrypt-file-alist entry"
+  (dolist (entry encrypt-file-alist)
+    (let ((match (nth 0 entry))
+	  (model (nth 1 entry)))
+      (when (or (eq match filename)
+		(string-match match filename))
+	(return model)))))
+
+;;;###autoload
+(defun encrypt-insert-file-contents (file &optional model)
+  "Decrypt FILE into the current buffer."
+  (interactive "fFile to insert: ")
+  (let* ((model (or model (encrypt-find-model file)))
+	 (method (nth 0 model))
+	 (cipher (nth 1 model))
+	 (password-key (format "encrypt-password-%s-%s %s"
+			       (symbol-name method) cipher file))
+	 (passphrase
+	  (password-read-and-add
+	   (format "%s password for cipher %s? "
+		   (symbol-name method) cipher)
+	   password-key))
+	  (buffer-file-coding-system 'binary)
+	 (coding-system-for-read 'binary)
+	 outdata)
+
+    ;; note we only insert-file-contents if the method is known to be valid
+    (cond
+     ((eq method 'gpg)
+      (insert-file-contents file)
+      (setq outdata (encrypt-gpg-decode-buffer passphrase cipher)))
+     ((eq method 'encrypt-xor)
+      (insert-file-contents file)
+      (setq outdata (encrypt-xor-decode-buffer passphrase cipher))))
+
+    (if outdata
+	(progn
+	  (gnus-message 9 "%s was decrypted with %s (cipher %s)"
+			file (symbol-name method) cipher)
+	  (delete-region (point-min) (point-max))
+	  (goto-char (point-min))
+	  (insert outdata))
+      ;; the decryption failed, alas
+      (password-cache-remove password-key)
+      (gnus-error 5 "%s was NOT decrypted with %s (cipher %s)"
+		  file (symbol-name method) cipher))))
+
+(defun encrypt-get-file-contents (file &optional model)
+  "Decrypt FILE and return the contents."
+  (interactive "fFile to decrypt: ")
+  (with-temp-buffer
+    (encrypt-insert-file-contents file model)
+    (buffer-string)))
+
+(defun encrypt-put-file-contents (file data &optional model)
+  "Encrypt the DATA to FILE, then continue normally."
+  (with-temp-buffer
+    (insert data)
+    (encrypt-write-file-contents file model)))
+
+(defun encrypt-write-file-contents (file &optional model)
+  "Encrypt the current buffer to FILE, then continue normally."
+  (interactive "fFile to write: ")
+  (let* ((model (or model (encrypt-find-model file)))
+	 (method (nth 0 model))
+	 (cipher (nth 1 model))
+	 (password-key (format "encrypt-password-%s-%s %s"
+			       (symbol-name method) cipher file))
+	 (passphrase
+	  (password-read
+	   (format "%s password for cipher %s? "
+		   (symbol-name method) cipher)
+	   password-key))
+	 outdata)
+
+    (cond
+     ((eq method 'gpg)
+      (setq outdata (encrypt-gpg-encode-buffer passphrase cipher)))
+     ((eq method 'encrypt-xor)
+      (setq outdata (encrypt-xor-encode-buffer passphrase cipher))))
+
+    (if outdata
+	(progn
+	  (gnus-message 9 "%s was encrypted with %s (cipher %s)"
+			file (symbol-name method) cipher)
+	  (delete-region (point-min) (point-max))
+	  (goto-char (point-min))
+	  (insert outdata)
+	  ;; do not confirm overwrites
+	  (write-file file nil))
+      ;; the decryption failed, alas
+      (password-cache-remove password-key)
+      (gnus-error 5 "%s was NOT encrypted with %s (cipher %s)"
+		  file (symbol-name method) cipher))))
+
+(defun encrypt-xor-encode-buffer (passphrase cipher)
+  (encrypt-xor-process-buffer passphrase cipher t))
+
+(defun encrypt-xor-decode-buffer (passphrase cipher)
+  (encrypt-xor-process-buffer passphrase cipher nil))
+
+(defun encrypt-xor-process-buffer (passphrase
+					cipher
+					&optional encode)
+  "Given PASSPHRASE, xor-encode or decode the contents of the current buffer."
+  (let* ((bs (buffer-substring-no-properties (point-min) (point-max)))
+	 ;; passphrase-sum is a simple additive checksum of the
+	 ;; passphrase and the cipher
+	(passphrase-sum
+	 (when (stringp passphrase)
+	   (apply '+ (append cipher passphrase nil))))
+	new-list)
+
+    (with-temp-buffer
+      (if encode
+	  (progn
+	    (dolist (x (append bs nil))
+	      (setq new-list (cons (logxor x passphrase-sum) new-list)))
+
+	    (dolist (x new-list)
+	      (insert (format "%d " x))))
+	(progn
+	  (setq new-list (reverse (split-string bs)))
+	  (dolist (x new-list)
+	    (setq x (string-to-int x))
+	    (insert (format "%c" (logxor x passphrase-sum))))))
+      (buffer-substring-no-properties (point-min) (point-max)))))
+
+(defun encrypt-gpg-encode-buffer (passphrase cipher)
+  (encrypt-gpg-process-buffer passphrase cipher t))
+
+(defun encrypt-gpg-decode-buffer (passphrase cipher)
+  (encrypt-gpg-process-buffer passphrase cipher nil))
+
+(defun encrypt-gpg-process-buffer (passphrase 
+					cipher 
+					&optional encode)
+  "With PASSPHRASE, use GPG to encode or decode the current buffer."
+  (let* ((program encrypt-gpg-path)
+	 (input (buffer-substring-no-properties (point-min) (point-max)))
+	 (temp-maker (if (fboundp 'make-temp-file) 
+			 'make-temp-file 
+		       'make-temp-name))
+	 (temp-file (funcall temp-maker encrypt-temp-prefix))
+	 (default-enable-multibyte-characters nil)
+	 (args `("--cipher-algo" ,cipher
+		 "--status-fd" "2"
+		 "--logger-fd" "2"
+		 "--passphrase-fd" "0"
+		 "--no-tty"))
+	 exit-status exit-data)
+    
+    (when encode
+      (setq args
+	    (append args
+		    '("--symmetric"
+		      "--armor"))))
+
+    (if program
+	(with-temp-buffer
+	  (when passphrase
+	    (insert passphrase "\n"))
+	  (insert input)
+	  (setq exit-status
+		(apply #'call-process-region (point-min) (point-max) program
+		       t `(t ,temp-file) nil args))
+	  (if (equal exit-status 0)
+	      (setq exit-data
+		    (buffer-substring-no-properties (point-min) (point-max)))
+	    (with-temp-buffer
+	      (when (file-exists-p temp-file)
+		(insert-file-contents temp-file))
+	      (gnus-error 5 (format "%s exited abnormally: '%s' [%s]"
+				    program exit-status (buffer-string)))))
+	  (delete-file temp-file))
+      (gnus-error 5 "GPG is not installed."))
+    exit-data))
+
+(provide 'encrypt)
+;;; encrypt.el ends here
+
+;; arch-tag: d907e4f1-71b5-42b1-a180-fc7b84ff0648
Index: gnus/lisp/flow-fill.el
diff -u gnus/lisp/flow-fill.el:7.3 gnus/lisp/flow-fill.el:7.8
--- gnus/lisp/flow-fill.el:7.3	Thu Feb 26 23:52:36 2004
+++ gnus/lisp/flow-fill.el	Sun Feb 13 05:44:41 2005
@@ -56,6 +56,8 @@
 (defcustom fill-flowed-display-column 'fill-column
   "Column beyond which format=flowed lines are wrapped, when displayed.
 This can be a Lisp expression or an integer."
+  :version "22.1"
+  :group 'mime-display
   :type '(choice (const :tag "Standard `fill-column'" fill-column)
 		 (const :tag "Fit Window" (- (window-width) 5))
 		 (sexp)
@@ -65,6 +67,8 @@
   "Column beyond which format=flowed lines are wrapped, in outgoing messages.
 This can be a Lisp expression or an integer.
 RFC 2646 suggests 66 characters for readability."
+  :version "22.1"
+  :group 'mime-display
   :type '(choice (const :tag "Standard fill-column" fill-column)
 		 (const :tag "RFC 2646 default (66)" 66)
 		 (sexp)
@@ -97,10 +101,15 @@
   (save-excursion
     (set-buffer (or (current-buffer) buffer))
     (goto-char (point-min))
+    ;; Remove space stuffing.
+    (while (re-search-forward "^ " nil t)
+      (delete-char -1)
+      (forward-line 1))
+    (goto-char (point-min))
     (while (re-search-forward " $" nil t)
       (when (save-excursion
 	      (beginning-of-line)
-	      (looking-at "^\\(>*\\)\\( ?\\)"))
+	      (looking-at "^\\(>+\\)\\( ?\\)"))
 	(let ((quote (match-string 1))
 	      sig)
 	  (if (string= quote "")
@@ -148,19 +157,19 @@
   '(
     ;; The syntax of each list element is:
     ;; (INPUT . EXPECTED-OUTPUT)
-    ("> Thou villainous ill-breeding spongy dizzy-eyed 
-> reeky elf-skinned pigeon-egg! 
->> Thou artless swag-bellied milk-livered 
+    ("> Thou villainous ill-breeding spongy dizzy-eyed
+> reeky elf-skinned pigeon-egg!
+>> Thou artless swag-bellied milk-livered
 >> dismal-dreaming idle-headed scut!
->>> Thou errant folly-fallen spleeny reeling-ripe 
+>>> Thou errant folly-fallen spleeny reeling-ripe
 >>> unmuzzled ratsbane!
->>>> Henceforth, the coding style is to be strictly 
+>>>> Henceforth, the coding style is to be strictly
 >>>> enforced, including the use of only upper case.
->>>>> I've noticed a lack of adherence to the coding 
+>>>>> I've noticed a lack of adherence to the coding
 >>>>> styles, of late.
 >>>>>> Any complaints?
 " . "> Thou villainous ill-breeding spongy dizzy-eyed reeky elf-skinned
-> pigeon-egg! 
+> pigeon-egg!
 >> Thou artless swag-bellied milk-livered dismal-dreaming idle-headed
 >> scut!
 >>> Thou errant folly-fallen spleeny reeling-ripe unmuzzled ratsbane!
@@ -171,8 +180,8 @@
 ")
 ;    ("
 ;> foo
-;> 
-;> 
+;>
+;>
 ;> bar
 ;" . "
 ;> foo bar
@@ -206,4 +215,5 @@
 
 (provide 'flow-fill)
 
+;;; arch-tag: addc0040-bc53-4f17-b4bc-1eb44eed6f0b
 ;;; flow-fill.el ends here
Index: gnus/lisp/format-spec.el
diff -u gnus/lisp/format-spec.el:7.1 gnus/lisp/format-spec.el:7.3
--- gnus/lisp/format-spec.el:7.1	Sun Jan  4 22:50:59 2004
+++ gnus/lisp/format-spec.el	Sun Nov 28 22:51:38 2004
@@ -47,7 +47,7 @@
 	       (val (cdr (assq spec specification))))
 	  (delete-region (1- (match-beginning 0)) (match-end 0))
 	  (unless val
-	    (error "Invalid format character: %s" spec))
+           (error "Invalid format character: `%%%c'" spec))
 	  (insert (format (concat "%" num "s") val))))
        ;; Signal an error on bogus format strings.
        (t
@@ -68,4 +68,5 @@
 
 (provide 'format-spec)
 
+;;; arch-tag: c22d49cf-d167-445d-b7f1-2504d4173f53
 ;;; format-spec.el ends here
Index: gnus/lisp/gnus-agent.el
diff -u gnus/lisp/gnus-agent.el:7.15 gnus/lisp/gnus-agent.el:7.41
--- gnus/lisp/gnus-agent.el:7.15	Sat May  1 12:12:01 2004
+++ gnus/lisp/gnus-agent.el	Sun Apr 10 06:00:39 2005
@@ -1,5 +1,5 @@
 ;;; gnus-agent.el --- unplugged support for Gnus
-;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -60,6 +60,7 @@
 
 (defcustom gnus-agent-fetched-hook nil
   "Hook run when finished fetching articles."
+  :version "22.1"
   :group 'gnus-agent
   :type 'hook)
 
@@ -113,7 +114,7 @@
   :group 'gnus-agent
   :type 'function)
 
-(defcustom gnus-agent-synchronize-flags 'ask
+(defcustom gnus-agent-synchronize-flags nil
   "Indicate if flags are synchronized when you plug in.
 If this is `ask' the hook will query the user."
   :version "21.1"
@@ -125,7 +126,7 @@
 (defcustom gnus-agent-go-online 'ask
   "Indicate if offline servers go online when you plug in.
 If this is `ask' the hook will query the user."
-  :version "21.1"
+  :version "21.3"
   :type '(choice (const :tag "Always" t)
 		 (const :tag "Never" nil)
 		 (const :tag "Ask" ask))
@@ -151,7 +152,7 @@
 groups with large active ranges may open slower and you may also want
 to look into the agent expiry settings to block the expiration of
 read articles as they would just be downloaded again."
-  :version "21.4"
+  :version "22.1"
   :type 'boolean
   :group 'gnus-agent)
 
@@ -159,6 +160,7 @@
   "Chunk size for `gnus-agent-fetch-session'.
 The function will split its article fetches into chunks smaller than
 this limit."
+  :version "22.1"
   :group 'gnus-agent
   :type 'integer)
 
@@ -169,6 +171,7 @@
 to disable expiration in specific categories, topics, and groups.  Of
 course, you could change gnus-agent-enable-expiration to DISABLE then
 enable expiration per categories, topics, and groups."
+  :version "22.1"
   :group 'gnus-agent
   :type '(radio (const :format "Enable " ENABLE)
                 (const :format "Disable " DISABLE)))
@@ -178,6 +181,7 @@
 Have gnus-agent-expire scan the directories under
 \(gnus-agent-directory) for groups that are no longer agentized.
 When found, offer to remove them."
+  :version "22.1"
   :type 'boolean
   :group 'gnus-agent)
 
@@ -185,6 +189,7 @@
   "Initially, all servers from these methods are agentized.
 The user may remove or add servers using the Server buffer.
 See Info node `(gnus)Server Buffer'."
+  :version "22.1"
   :type '(repeat symbol)
   :group 'gnus-agent)
 
@@ -192,6 +197,7 @@
   "Whether and when outgoing mail should be queued by the agent.
 When `always', always queue outgoing mail.  When nil, never
 queue.  Otherwise, queue if and only if unplugged."
+  :version "22.1"
   :group 'gnus-agent
   :type '(radio (const :format "Always" always)
 		(const :format "Never" nil)
@@ -200,6 +206,7 @@
 (defcustom gnus-agent-prompt-send-queue nil
   "If non-nil, `gnus-group-send-queue' will prompt if called when
 unplugged."
+  :version "22.1"
   :group 'gnus-agent
   :type 'boolean)
 
@@ -208,13 +215,13 @@
 (defvar gnus-agent-history-buffers nil)
 (defvar gnus-agent-buffer-alist nil)
 (defvar gnus-agent-article-alist nil
-  "An assoc list identifying the articles whose headers have been fetched.  
+  "An assoc list identifying the articles whose headers have been fetched.
 If successfully fetched, these headers will be stored in the group's overview
 file.  The key of each assoc pair is the article ID, the value of each assoc
 pair is a flag indicating whether the identified article has been downloaded
 \(gnus-agent-fetch-articles sets the value to the day of the download).
 NOTES:
-1) The last element of this list can not be expired as some 
+1) The last element of this list can not be expired as some
    routines (for example, get-agent-fetch-headers) use the last
    value to track which articles have had their headers retrieved.
 2) The function `gnus-agent-regenerate' may destructively modify the value.")
@@ -337,8 +344,8 @@
               (let* ((--category--temp-- (make-symbol "--category--"))
                      (--value--temp-- (make-symbol "--value--")))
                 (list (list --category--temp--) ; temporary-variables
-                      (list category)   ; value-forms
-                      (list --value--temp--) ; store-variables
+                      (list category)		; value-forms
+                      (list --value--temp--)	; store-variables
                       (let* ((category --category--temp--) ; store-form
                              (value --value--temp--))
                         (list (quote gnus-agent-cat-set-property)
@@ -361,21 +368,35 @@
 (gnus-agent-cat-defaccessor
  gnus-agent-cat-high-score                 agent-high-score)
 (gnus-agent-cat-defaccessor
- gnus-agent-cat-length-when-long           agent-length-when-long)
+ gnus-agent-cat-length-when-long           agent-long-article)
 (gnus-agent-cat-defaccessor
- gnus-agent-cat-length-when-short          agent-length-when-short)
+ gnus-agent-cat-length-when-short          agent-short-article)
 (gnus-agent-cat-defaccessor
  gnus-agent-cat-low-score                  agent-low-score)
 (gnus-agent-cat-defaccessor
  gnus-agent-cat-predicate                  agent-predicate)
 (gnus-agent-cat-defaccessor
- gnus-agent-cat-score-file                 agent-score-file)
+ gnus-agent-cat-score-file                 agent-score)
 (gnus-agent-cat-defaccessor
- gnus-agent-cat-enable-undownloaded-faces agent-enable-undownloaded-faces)
+ gnus-agent-cat-enable-undownloaded-faces  agent-enable-undownloaded-faces)
+
+
+;; This form is equivalent to defsetf except that it calls make-symbol
+;; whereas defsetf calls gensym (Using gensym creates a run-time
+;; dependency on the CL library).
 
 (eval-and-compile
-  (defsetf gnus-agent-cat-groups (category) (groups)
-    (list 'gnus-agent-set-cat-groups category groups)))
+  (define-setf-method gnus-agent-cat-groups (category)
+    (let* ((--category--temp-- (make-symbol "--category--"))
+	   (--groups--temp-- (make-symbol "--groups--")))
+      (list (list --category--temp--)
+	    (list category)
+	    (list --groups--temp--)
+	    (let* ((category --category--temp--)
+		   (groups --groups--temp--))
+	      (list (quote gnus-agent-set-cat-groups) category groups))
+	    (list (quote gnus-agent-cat-groups) --category--temp--))))
+  )
 
 (defun gnus-agent-set-cat-groups (category groups)
   (unless (eq groups 'ignore)
@@ -696,7 +717,8 @@
   "Restore GCC field from saved header."
   (save-excursion
     (goto-char (point-min))
-    (while (re-search-forward (concat gnus-agent-gcc-header ":") nil t)
+    (while (re-search-forward
+	    (concat "^" (regexp-quote gnus-agent-gcc-header) ":") nil t)
       (replace-match "Gcc:" 'fixedcase))))
 
 (defun gnus-agent-any-covered-gcc ()
@@ -800,25 +822,39 @@
   (interactive)
   (save-excursion
     (dolist (gnus-command-method (gnus-agent-covered-methods))
-      (when (file-exists-p (gnus-agent-lib-file "flags"))
+      (when (and (file-exists-p (gnus-agent-lib-file "flags"))
+		 (not (eq (gnus-server-status gnus-command-method) 'offline)))
 	(gnus-agent-possibly-synchronize-flags-server gnus-command-method)))))
 
 (defun gnus-agent-synchronize-flags-server (method)
   "Synchronize flags set when unplugged for server."
-  (let ((gnus-command-method method))
+  (let ((gnus-command-method method)
+	(gnus-agent nil))
     (when (file-exists-p (gnus-agent-lib-file "flags"))
       (set-buffer (get-buffer-create " *Gnus Agent flag synchronize*"))
       (erase-buffer)
       (nnheader-insert-file-contents (gnus-agent-lib-file "flags"))
-      (if (null (gnus-check-server gnus-command-method))
-	  (gnus-message 1 "Couldn't open server %s" (nth 1 gnus-command-method))
-	(while (not (eobp))
-	  (if (null (eval (read (current-buffer))))
-	      (gnus-delete-line)
-	    (write-file (gnus-agent-lib-file "flags"))
-	    (error "Couldn't set flags from file %s"
-		   (gnus-agent-lib-file "flags"))))
-	(delete-file (gnus-agent-lib-file "flags")))
+      (cond ((null gnus-plugged)
+	     (gnus-message
+	      1 "You must be plugged to synchronize flags with server %s"
+	      (nth 1 gnus-command-method)))
+	    ((null (gnus-check-server gnus-command-method))
+	     (gnus-message
+	      1 "Couldn't open server %s" (nth 1 gnus-command-method)))
+	    (t
+	     (condition-case err
+		 (while t
+		   (let ((bgn (point)))
+		     (eval (read (current-buffer)))
+		     (delete-region bgn (point))))
+	       (end-of-file
+		(delete-file (gnus-agent-lib-file "flags")))
+	       (error
+		(let ((file (gnus-agent-lib-file "flags")))
+		  (write-region (point-min) (point-max)
+				(gnus-agent-lib-file "flags") nil 'silent)
+		  (error "Couldn't set flags from file %s due to %s"
+			 file (error-message-string err)))))))
       (kill-buffer nil))))
 
 (defun gnus-agent-possibly-synchronize-flags-server (method)
@@ -851,7 +887,7 @@
       (gnus-agent-save-group-info old-command-method old-real-group nil)
       (gnus-agent-save-group-info new-command-method new-real-group old-active)
 
-      (let ((old-local (gnus-agent-get-local old-group 
+      (let ((old-local (gnus-agent-get-local old-group
 					     old-real-group old-command-method)))
 	(gnus-agent-set-local old-group
 			      nil nil
@@ -869,12 +905,12 @@
 	 (path           (directory-file-name
 			  (let (gnus-command-method command-method)
 			    (gnus-agent-group-pathname group)))))
-    (gnus-delete-file path)
+    (gnus-delete-directory path)
 
     (let* ((real-group (gnus-group-real-name group)))
       (gnus-agent-save-group-info command-method real-group nil)
 
-      (let ((local (gnus-agent-get-local group 
+      (let ((local (gnus-agent-get-local group
 					 real-group command-method)))
 	(gnus-agent-set-local group
 			      nil nil
@@ -915,7 +951,7 @@
     (unless (member named-server gnus-agent-covered-methods)
       (error "Server not in the agent program"))
 
-    (setq gnus-agent-covered-methods 
+    (setq gnus-agent-covered-methods
           (delete named-server gnus-agent-covered-methods)
           gnus-agent-method-p-cache nil)
 
@@ -925,7 +961,7 @@
 
 (defun gnus-agent-read-servers ()
   "Read the alist of covered servers."
-  (setq gnus-agent-covered-methods 
+  (setq gnus-agent-covered-methods
         (gnus-agent-read-file
          (nnheader-concat gnus-agent-directory "lib/servers"))
         gnus-agent-method-p-cache nil)
@@ -1029,6 +1065,7 @@
 	 gnus-downloadable-mark)
        'unread))))
 
+;;;###autoload
 (defun gnus-agent-get-undownloaded-list ()
   "Construct list of articles that have not been downloaded."
   (let ((gnus-command-method (gnus-find-method-for-group gnus-newsgroup-name)))
@@ -1056,7 +1093,7 @@
                    ;; imply that this article isn't in the agent.
 		   (gnus-agent-append-to-list tail-undownloaded h)
 		   (gnus-agent-append-to-list tail-unfetched    h)
-                   (setq headers (cdr headers))) 
+                   (setq headers (cdr headers)))
 		  ((cdar alist)
 		   (setq alist (cdr alist))
 		   (setq headers (cdr headers))
@@ -1065,7 +1102,7 @@
 		  (t
 		   (setq alist (cdr alist))
 		   (setq headers (cdr headers))
-                   
+
                    ;; This article isn't in the agent.  Check to see
                    ;; if it is in the cache.  If it is, it's been
                    ;; downloaded.
@@ -1107,20 +1144,22 @@
   (when gnus-newsgroup-processable
     (setq gnus-newsgroup-downloadable
           (let* ((dl gnus-newsgroup-downloadable)
-                 (gnus-newsgroup-downloadable
-		  (sort (gnus-copy-sequence gnus-newsgroup-processable) '<))
-                 (fetched-articles (gnus-agent-summary-fetch-group)))
-            ;; The preceeding call to (gnus-agent-summary-fetch-group)
-            ;; updated gnus-newsgroup-downloadable to remove each
-            ;; article successfully fetched.
+		 (processable (sort (gnus-copy-sequence gnus-newsgroup-processable) '<))
+                 (gnus-newsgroup-downloadable processable))
+	    (gnus-agent-summary-fetch-group)
+
+            ;; For each article that I processed that is no longer
+            ;; undownloaded, remove its processable mark.
 
-            ;; For each article that I processed, remove its
-            ;; processable mark IF the article is no longer
-            ;; downloadable (i.e. it's already downloaded)
-            (dolist (article gnus-newsgroup-processable)
-              (unless (memq article gnus-newsgroup-downloadable)
-                (gnus-summary-remove-process-mark article)))
-            (gnus-sorted-ndifference dl fetched-articles)))))
+	    (mapc #'gnus-summary-remove-process-mark 
+		  (gnus-sorted-ndifference gnus-newsgroup-processable gnus-newsgroup-undownloaded))
+
+            ;; The preceeding call to (gnus-agent-summary-fetch-group)
+            ;; updated the temporary gnus-newsgroup-downloadable to
+            ;; remove each article successfully fetched.  Now, I
+            ;; update the real gnus-newsgroup-downloadable to only
+            ;; include undownloaded articles.
+	    (gnus-sorted-ndifference dl (gnus-sorted-ndifference processable gnus-newsgroup-undownloaded))))))
 
 (defun gnus-agent-summary-fetch-group (&optional all)
   "Fetch the downloadable articles in the group.
@@ -1143,7 +1182,7 @@
                       gnus-newsgroup-name articles)))))
       (save-excursion
         (dolist (article articles)
-          (let ((was-marked-downloadable 
+          (let ((was-marked-downloadable
                  (memq article gnus-newsgroup-downloadable)))
             (cond (gnus-agent-mark-unread-after-downloaded
                    (setq gnus-newsgroup-downloadable
@@ -1173,6 +1212,55 @@
 ;;; Internal functions
 ;;;
 
+(defun gnus-agent-synchronize-group-flags (group actions server)
+"Update a plugged group by performing the indicated actions."
+  (let* ((gnus-command-method (gnus-server-to-method server))
+	 (info
+	  ;; This initializer is required as gnus-request-set-mark
+	  ;; calls gnus-group-real-name to strip off the host name
+	  ;; before calling the backend.  Now that the backend is
+	  ;; trying to call gnus-request-set-mark, I have to
+	  ;; reconstruct the original group name.
+	  (or (gnus-get-info group)
+	      (gnus-get-info
+	       (setq group (gnus-group-full-name
+			    group gnus-command-method))))))
+    (gnus-request-set-mark group actions)
+
+    (when info
+      (dolist (action actions)
+	(let ((range (nth 0 action))
+	      (what  (nth 1 action))
+	      (marks (nth 2 action)))
+	  (dolist (mark marks)
+	    (cond ((eq mark 'read)
+		   (gnus-info-set-read
+		    info
+		    (funcall (if (eq what 'add)
+				 'gnus-range-add
+			       'gnus-remove-from-range)
+			     (gnus-info-read info)
+			     range))
+		   (gnus-get-unread-articles-in-group
+		    info
+		    (gnus-active (gnus-info-group info))))
+		  ((memq mark '(tick))
+		   (let ((info-marks (assoc mark (gnus-info-marks info))))
+		     (unless info-marks
+		       (gnus-info-set-marks info (cons (setq info-marks (list mark)) (gnus-info-marks info))))
+		     (setcdr info-marks (funcall (if (eq what 'add)
+				  'gnus-range-add
+				'gnus-remove-from-range)
+			      (cdr info-marks)
+			      range))))))))
+
+      ;;Marks can be synchronized at any time by simply toggling from
+      ;;unplugged to plugged.  If that is what is happening right now, make
+      ;;sure that the group buffer is up to date.
+          (when (gnus-buffer-live-p gnus-group-buffer)
+            (gnus-group-update-group group t)))
+    nil))
+
 (defun gnus-agent-save-active (method)
   (when (gnus-agent-method-p method)
     (let* ((gnus-command-method method)
@@ -1191,6 +1279,7 @@
       ;; will add it while reading the file.
       (gnus-write-active-file file new nil)))
 
+;;;###autoload
 (defun gnus-agent-possibly-alter-active (group active &optional info)
   "Possibly expand a group's active range to include articles
 downloaded into the agent."
@@ -1226,11 +1315,11 @@
           ;; file.
 
           (let ((read (gnus-info-read info)))
-            (gnus-info-set-read 
-             info 
-             (gnus-range-add 
-              read 
-              (list (cons (1+ agent-max) 
+            (gnus-info-set-read
+             info
+             (gnus-range-add
+              read
+              (list (cons (1+ agent-max)
                           (1- active-min))))))
 
           ;; Lie about the agent's local range for this group to
@@ -1303,8 +1392,8 @@
   (setq group
         (nnheader-translate-file-chars
          (nnheader-replace-duplicate-chars-in-string
-          (nnheader-replace-chars-in-string 
-           (gnus-group-real-name group)
+          (nnheader-replace-chars-in-string
+           (gnus-group-real-name (gnus-group-decoded-name group))
            ?/ ?_)
           ?. ?_)))
   (if (or nnmail-use-long-file-names
@@ -1321,7 +1410,9 @@
   ;; while plugged.
   (let ((gnus-command-method (or gnus-command-method
                                  (gnus-find-method-for-group group))))
-    (nnmail-group-pathname (gnus-group-real-name group) (gnus-agent-directory))))
+    (nnmail-group-pathname (gnus-group-real-name
+			    (gnus-group-decoded-name group))
+			   (gnus-agent-directory))))
 
 (defun gnus-agent-get-function (method)
   (if (gnus-online method)
@@ -1384,7 +1475,7 @@
         (unless (and (eq article (caar alist))
                      (cdar alist))
           ;; Skip headers preceeding this article
-          (while (> article 
+          (while (> article
                     (setq header-number
                           (let* ((header (car headers)))
                             (if header
@@ -1499,6 +1590,37 @@
             (gnus-message 7 ""))
           (cdr fetched-articles))))))
 
+(defun gnus-agent-unfetch-articles (group articles)
+  "Delete ARTICLES that were fetched from GROUP into the agent."
+  (when articles
+    (gnus-agent-with-refreshed-group
+     group
+     (gnus-agent-load-alist group)
+     (let* ((alist (cons nil gnus-agent-article-alist))
+	    (articles (sort articles #'<))
+	    (next-possibility alist)
+	    (delete-this (pop articles)))
+       (while (and (cdr next-possibility) delete-this)
+	 (let ((have-this (caar (cdr next-possibility))))
+	   (cond ((< delete-this have-this)
+		  (setq delete-this (pop articles)))
+		 ((= delete-this have-this)
+		  (let ((timestamp (cdar (cdr next-possibility))))
+		    (when timestamp
+		      (let* ((file-name (concat (gnus-agent-group-pathname group)
+						(number-to-string have-this)))
+			     (size-file (float (or (and gnus-agent-total-fetched-hashtb
+							(nth 7 (file-attributes file-name)))
+						   0))))
+			(delete-file file-name)
+			(gnus-agent-update-files-total-fetched-for group (- size-file)))))
+
+		  (setcdr next-possibility (cddr next-possibility)))
+		 (t
+		  (setq next-possibility (cdr next-possibility))))))
+       (setq gnus-agent-article-alist (cdr alist))
+       (gnus-agent-save-alist group)))))
+
 (defun gnus-agent-crosspost (crosses article &optional date)
   (setq date (or date t))
 
@@ -1573,7 +1695,7 @@
                   (setq backed-up (gnus-agent-backup-overview-buffer)))
               (gnus-message 1
 			    "Duplicate overview line for %d" cur)
-	      (delete-region (point) (progn (forward-line 1) (point))))
+	      (delete-region p (progn (forward-line 1) (point))))
 	     ((< cur prev-num)
 	      (or backed-up
                   (setq backed-up (gnus-agent-backup-overview-buffer)))
@@ -1605,6 +1727,7 @@
 	(insert "\n"))
       (setq gnus-agent-group-alist (cdr gnus-agent-group-alist)))))
 
+;;;###autoload
 (defun gnus-agent-find-parameter (group symbol)
   "Search for GROUPs SYMBOL in the group's parameters, the group's
 topic parameters, the group's category, or the customizable
@@ -1709,8 +1832,10 @@
               ;; of FILE.
               (copy-to-buffer
 	       gnus-agent-overview-buffer (point-min) (point-max))
-	      (when (file-exists-p file)
-		(gnus-agent-braid-nov group articles file))
+	      ;; NOTE: Call g-a-brand-nov even when the file does not
+	      ;; exist.  As a minimum, it will validate the article
+	      ;; numbers already in the buffer.
+	      (gnus-agent-braid-nov group articles file)
               (let ((coding-system-for-write
                      gnus-agent-file-coding-system))
                 (gnus-agent-check-overview-buffer)
@@ -1723,11 +1848,32 @@
             (nnheader-insert-file-contents file)))))
     articles))
 
+(defsubst gnus-agent-read-article-number ()
+  "Reads the article number at point.  Returns nil when a valid article number can not be read."
+
+  ;; It is unfortunite but the read function quietly overflows
+  ;; integer.  As a result, I have to use string operations to test
+  ;; for overflow BEFORE calling read.
+  (when (looking-at "[0-9]+\t")
+    (let ((len (- (match-end 0) (match-beginning 0))))
+      (cond ((< len 9)
+	     (read (current-buffer)))
+	    ((= len 9)
+	     ;; Many 9 digit base-10 numbers can be represented in a 27-bit int
+	     ;; Back convert from int to string to ensure that this is one of them.
+	     (let* ((str1 (buffer-substring (match-beginning 0) (1- (match-end 0))))
+		    (num (read (current-buffer)))
+		    (str2 (int-to-string num)))
+	       (when (equal str1 str2)
+		 num)))))))
+
 (defsubst gnus-agent-copy-nov-line (article)
+  "Copy the indicated ARTICLE from the overview buffer to the nntp server buffer."
   (let (art b e)
     (set-buffer gnus-agent-overview-buffer)
     (while (and (not (eobp))
-		(< (setq art (read (current-buffer))) article))
+		(or (not (setq art (gnus-agent-read-article-number)))
+		    (< art article)))
       (forward-line 1))
     (beginning-of-line)
     (if (or (eobp)
@@ -1740,64 +1886,77 @@
 
 (defun gnus-agent-braid-nov (group articles file)
   "Merge agent overview data with given file.
-Takes headers for ARTICLES from `gnus-agent-overview-buffer' and the given
-FILE and places the combined headers into `nntp-server-buffer'."
+Takes unvalidated headers for ARTICLES from
+`gnus-agent-overview-buffer' and validated headers from the given
+FILE and places the combined valid headers into
+`nntp-server-buffer'.  This function can be used, when file
+doesn't exist, to valid the overview buffer."
   (let (start last)
     (set-buffer gnus-agent-overview-buffer)
     (goto-char (point-min))
     (set-buffer nntp-server-buffer)
     (erase-buffer)
-    (nnheader-insert-file-contents file)
+    (when (file-exists-p file)
+      (nnheader-insert-file-contents file))
     (goto-char (point-max))
     (forward-line -1)
-    (unless (looking-at "[0-9]+\t")
-      ;; Remove corrupted lines
-      (gnus-message
-       1 "Overview %s is corrupted. Removing corrupted lines..." file)
-      (goto-char (point-min))
-      (while (not (eobp))
-	(if (looking-at "[0-9]+\t")
-	    (forward-line 1)
-	  (delete-region (point) (progn (forward-line 1) (point)))))
-      (forward-line -1))
+
     (unless (or (= (point-min) (point-max))
 		(< (setq last (read (current-buffer))) (car articles)))
-      ;; We do it the hard way.
+      ;; Old and new overlap -- We do it the hard way.
       (when (nnheader-find-nov-line (car articles))
         ;; Replacing existing NOV entry
         (delete-region (point) (progn (forward-line 1) (point))))
       (gnus-agent-copy-nov-line (pop articles))
 
       (ignore-errors
-        (while articles
-          (while (let ((art (read (current-buffer))))
-                   (cond ((< art (car articles))
-                          (forward-line 1)
-                          t)
-                         ((= art (car articles))
-                          (beginning-of-line)
-                          (delete-region
-			   (point) (progn (forward-line 1) (point)))
-                          nil)
-                         (t
-                          (beginning-of-line)
-                          nil))))
+       (while articles
+	 (while (let ((art (read (current-buffer))))
+		  (cond ((< art (car articles))
+			 (forward-line 1)
+			 t)
+			((= art (car articles))
+			 (beginning-of-line)
+			 (delete-region
+			  (point) (progn (forward-line 1) (point)))
+			 nil)
+			(t
+			 (beginning-of-line)
+			 nil))))
 
-	  (gnus-agent-copy-nov-line (pop articles)))))
+	 (gnus-agent-copy-nov-line (pop articles)))))
 
-    ;; Copy the rest lines
-    (set-buffer nntp-server-buffer)
     (goto-char (point-max))
+
+    ;; Append the remaining lines
     (when articles
       (when last
 	(set-buffer gnus-agent-overview-buffer)
-	(ignore-errors
-          (while (<= (read (current-buffer)) last)
-            (forward-line 1)))
-	(beginning-of-line)
 	(setq start (point))
 	(set-buffer nntp-server-buffer))
-      (insert-buffer-substring gnus-agent-overview-buffer start))))
+
+      (let ((p (point)))
+	(insert-buffer-substring gnus-agent-overview-buffer start)
+	(goto-char p))
+
+      (setq last (or last -134217728))
+      (let (sort art)
+	(while (not (eobp))
+	  (setq art (gnus-agent-read-article-number))
+	  (cond ((not art)
+		 ;; Bad art num - delete this line
+		 (beginning-of-line)
+		 (delete-region (point) (progn (forward-line 1) (point))))
+		((< art last)
+		 ;; Art num out of order - enable sort
+		 (setq sort t)
+		 (forward-line 1))
+		(t
+		 ;; Good art num
+		 (setq last art)
+		 (forward-line 1))))
+	(when sort
+	  (sort-numeric-fields 1 (point-min) (point-max)))))))
 
 ;; Keeps the compiler from warning about the free variable in
 ;; gnus-agent-read-agentview.
@@ -1891,8 +2050,8 @@
       (setq prev (cdr prev)))
     (setq gnus-agent-article-alist (cdr all))
 
-    (gnus-agent-set-local group 
-                          (caar gnus-agent-article-alist) 
+    (gnus-agent-set-local group
+                          (caar gnus-agent-article-alist)
                           (caar (last gnus-agent-article-alist)))
 
     (gnus-make-directory (gnus-agent-article-name "" group))
@@ -1949,7 +2108,7 @@
 
 (defun gnus-agent-read-local (file)
   "Load FILE and do a `read' there."
-  (let ((my-obarray (gnus-make-hashtable (count-lines (point-min) 
+  (let ((my-obarray (gnus-make-hashtable (count-lines (point-min)
                                                       (point-max))))
         (line 1))
     (with-temp-buffer
@@ -1966,7 +2125,7 @@
 
       (while (not (eobp))
         (condition-case err
-            (let (group 
+            (let (group
                   min
                   max
                   (cur (current-buffer)))
@@ -1984,7 +2143,7 @@
                          file line (error-message-string err))))
         (forward-line 1)
         (setq line (1+ line))))
-      
+
     (set (intern "+dirty" my-obarray) nil)
     (set (intern "+method" my-obarray) gnus-command-method)
     my-obarray))
@@ -2017,7 +2176,7 @@
 				   (princ (car range))
 				   (princ " ")
 				   (princ (cdr range))
-				   (princ "\n"))))) 
+				   (princ "\n")))))
 			my-obarray))))))))
 
 (defun gnus-agent-get-local (group &optional gmane method)
@@ -2036,7 +2195,7 @@
           (setq minmax
                 (cons (caar alist)
                       (caar (last alist))))
-          (gnus-agent-set-local group (car minmax) (cdr minmax) 
+          (gnus-agent-set-local group (car minmax) (cdr minmax)
                                 gmane gnus-command-method local))))
     minmax))
 
@@ -2046,7 +2205,7 @@
          (local (or local (gnus-agent-load-local)))
          (symb (intern gmane local))
          (minmax (and (boundp symb) (symbol-value symb))))
-    
+
     (if (cond ((and minmax
                     (or (not (eq min (car minmax)))
                         (not (eq max (cdr minmax)))))
@@ -2272,9 +2431,11 @@
                         (dolist (article marked-articles)
                           (gnus-summary-set-agent-mark article t))
                         (dolist (article fetched-articles)
-                          (if gnus-agent-mark-unread-after-downloaded
-                              (gnus-summary-mark-article
-			       article gnus-unread-mark))
+                          (when gnus-agent-mark-unread-after-downloaded
+			    (setq gnus-newsgroup-downloadable
+				  (delq article gnus-newsgroup-downloadable))
+			    (gnus-summary-mark-article
+			     article gnus-unread-mark))
                           (when (gnus-summary-goto-subject article nil t)
                             (gnus-summary-update-download-mark article)))
                         (dolist (article unfetched-articles)
@@ -2712,7 +2873,7 @@
 It is okay to miss some cases, but there must be no false positives.
 That is, if this predicate returns true, then indeed the predicate must
 return only unread articles."
-  (eq t (gnus-function-implies-unread-1 
+  (eq t (gnus-function-implies-unread-1
          (gnus-category-make-function-1 predicate))))
 
 (defun gnus-function-implies-unread-1 (function)
@@ -2832,15 +2993,15 @@
   ;; provided a non-nil active
 
   (let ((dir (gnus-agent-group-pathname group)))
-    (gnus-agent-with-refreshed-group 
+    (gnus-agent-with-refreshed-group
      group
      (when (boundp 'gnus-agent-expire-current-dirs)
-       (set 'gnus-agent-expire-current-dirs 
-	    (cons dir 
+       (set 'gnus-agent-expire-current-dirs
+	    (cons dir
 		  (symbol-value 'gnus-agent-expire-current-dirs))))
 
      (if (and (not force)
-	      (eq 'DISABLE (gnus-agent-find-parameter group 
+	      (eq 'DISABLE (gnus-agent-find-parameter group
 						      'agent-enable-expiration)))
 	 (gnus-message 5 "Expiry skipping over %s" group)
        (gnus-message 5 "Expiring articles in %s" group)
@@ -2923,7 +3084,7 @@
 	 ;; information with this list.  For example, a flag indicating
 	 ;; that a particular article MUST BE KEPT.  To do this, I'm
 	 ;; going to transform the elements to look like (article#
-	 ;; fetch_date keep_flag NOV_entry_marker) Later, I'll reverse
+	 ;; fetch_date keep_flag NOV_entry_position) Later, I'll reverse
 	 ;; the process to generate the expired article alist.
 
 	 ;; Convert the alist elements to (article# fetch_date nil
@@ -2955,15 +3116,15 @@
 	   (gnus-message 7 "gnus-agent-expire: Loading overview...")
 	   (nnheader-insert-file-contents nov-file)
 	   (goto-char (point-min))
-
+	
 	   (let (p)
 	     (while (< (setq p (point)) (point-max))
 	       (condition-case nil
 		   ;; If I successfully read an integer (the plus zero
-		   ;; ensures a numeric type), prepend a marker entry
+		   ;; ensures a numeric type), append the position
 		   ;; to the list
 		   (push (list (+ 0 (read (current-buffer))) nil nil
-			       (set-marker (make-marker) p))
+			       p)
 			 dlist)
 		 (error
 		  (gnus-message 1 "gnus-agent-expire: read error \
@@ -3015,15 +3176,39 @@
 		   (setq first (cdr first)
 			 secnd (cdr secnd))
 		   (setcar first (or (car first)
-				     (car secnd))) ; NOV_entry_marker
+				     (car secnd))) ; NOV_entry_position
 
 		   (setcdr dlist (cddr dlist)))
 	       (setq dlist (cdr dlist)))))
+
+	 ;; Check the order of the entry positions.  They should be in
+	 ;; ascending order.  If they aren't, the positions must be
+	 ;; converted to markers.
+	 (when (let ((dlist dlist)
+		     (prev-pos -1)
+		     pos)
+		 (while dlist
+		   (if (setq pos (nth 3 (pop dlist)))
+		       (if (< pos prev-pos)
+			   (throw 'sort-results 'unsorted)
+			 (setq prev-pos pos)))))
+	   (gnus-message 7 "gnus-agent-expire: Unsorted overview; inserting markers to compensate.")
+	   (mapcar (lambda (entry)
+		     (let ((pos (nth 3 entry)))
+		       (if pos
+			   (setf (nth 3 entry)
+				 (set-marker (make-marker)
+					     pos)))))
+		   dlist))
+
 	 (gnus-message 7 "gnus-agent-expire: Merging entries... Done")
 
 	 (let* ((len (float (length dlist)))
 		(alist (list nil))
-		(tail-alist alist))
+		(tail-alist alist)
+		(position-offset 0)
+		)
+
 	   (while dlist
 	     (let ((new-completed (truncate (* 100.0
 					       (/ (setq cnt (1+ cnt))
@@ -3100,13 +3285,18 @@
 
 		   (when marker
 		     (push "NOV entry removed" actions)
-		     (goto-char marker)
+
+		     (goto-char (if (markerp marker)
+				    marker
+				  (- marker position-offset)))
 
 		     (incf nov-entries-deleted)
 
-		     (let ((from (point-at-bol))
-			   (to (progn (forward-line 1) (point))))
-		       (incf bytes-freed (- to from))
+		     (let* ((from (point-at-bol))
+			    (to (progn (forward-line 1) (point)))
+			    (freed (- to from)))
+		       (incf bytes-freed freed)
+		       (incf position-offset freed)
 		       (delete-region from to)))
 
 		   ;; If considering all articles is set, I can only
@@ -3133,9 +3323,9 @@
 		  tail-alist (cons article-number fetch-date)))
 		)
 
-	       ;; Clean up markers as I want to recycle this buffer
-	       ;; over several groups.
-	       (when marker
+	       ;; Remove markers as I intend to reuse this buffer again.
+	       (when (and marker
+			  (markerp marker))
 		 (set-marker marker nil))
 
 	       (setq dlist (cdr dlist))))
@@ -3181,7 +3371,7 @@
 Setting GROUP will limit expiration to that group.
 FORCE is equivalent to setting the expiration predicates to true."
   (interactive)
-  
+
   (if group
       (gnus-agent-expire-group group articles force)
     (if (or (not (eq articles t))
@@ -3210,7 +3400,7 @@
                                              gnus-command-method))
                       (let* ((active
                               (gnus-gethash-safe expiring-group orig)))
-                                        
+
                         (when active
                           (save-excursion
                             (gnus-agent-expire-group-1
@@ -3231,9 +3421,9 @@
                 units (cdr units)))
 
         (format "Expiry recovered %d NOV entries, deleted %d files,\
- and freed %f %s." 
-                (nth 0 stats) 
-                (nth 1 stats) 
+ and freed %f %s."
+                (nth 0 stats)
+                (nth 1 stats)
                 size (car units)))
     "Expiry...done"))
 
@@ -3261,9 +3451,9 @@
              (checker
               (function
                (lambda (d)
-                 "Given a directory, check it and its subdirectories for 
-              membership in the keep hash.  If it isn't found, add 
-              it to to-remove." 
+                 "Given a directory, check it and its subdirectories for
+              membership in the keep hash.  If it isn't found, add
+              it to to-remove."
                  (let ((files (directory-files d))
                        file)
                    (while (setq file (pop files))
@@ -3271,7 +3461,7 @@
                             nil)
                            ((equal file "..") ; Ignore parent
                             nil)
-                           ((equal file ".overview") 
+                           ((equal file ".overview")
                             ;; Directory must contain .overview to be
                             ;; agent's cache of a group.
                             (let ((d (file-name-as-directory d))
@@ -3284,7 +3474,7 @@
                                       d (directory-file-name d)))
                               ;; if ANY ancestor was NOT in keep hash and
                               ;; it it's already in to-remove, add it to
-                              ;; to-remove.                          
+                              ;; to-remove.
                               (if (and r
                                        (not (member r to-remove)))
                                   (push r to-remove))))
@@ -3358,7 +3548,7 @@
 
 (defun gnus-agent-uncached-articles (articles group &optional cached-header)
   "Restrict ARTICLES to numbers already fetched.
-Returns a sublist of ARTICLES that excludes thos article ids in GROUP
+Returns a sublist of ARTICLES that excludes those article ids in GROUP
 that have already been fetched.
 If CACHED-HEADER is nil, articles are only excluded if the article itself
 has been fetched."
@@ -3448,12 +3638,11 @@
 
                      ;; Get the list of articles that were fetched
                      (goto-char (point-min))
-                     (let ((pm (point-max)))
+                     (let ((pm (point-max))
+			   art)
                        (while (< (point) pm)
-                         (when (looking-at "[0-9]+\t")
-                           (gnus-agent-append-to-list
-                            tail-fetched-articles
-                            (read (current-buffer))))
+			 (when (setq art (gnus-agent-read-article-number))
+                           (gnus-agent-append-to-list tail-fetched-articles art))
                          (forward-line 1)))
 
                      ;; Clip this list to the headers that will
@@ -3492,7 +3681,7 @@
 
 	    ;; Merge the temp buffer with the known headers (found on
 	    ;; disk in FILE) into the nntp-server-buffer
-	    (when (and uncached-articles (file-exists-p file))
+	    (when uncached-articles
 	      (gnus-agent-braid-nov group uncached-articles file))
 
 	    ;; Save the new set of known headers to FILE
@@ -3617,7 +3806,7 @@
 			      (gnus-delete-line)
 			      (setq nov-arts (cdr nov-arts))
 			      (gnus-message 4 "gnus-agent-regenerate-group: NOV\
-entry of article %s deleted." l1))
+ entry of article %s deleted." l1))
 			     ((not l2)
 			      nil)
 			     ((< l1 l2)
@@ -3739,7 +3928,7 @@
 
 	  (when regenerated
 	    (gnus-agent-save-alist group)
-       
+
 	    ;; I have to alter the group's active range NOW as
 	    ;; gnus-make-ascending-articles-unread will use it to
 	    ;; recalculate the number of unread articles in the group
@@ -3750,21 +3939,24 @@
 	      (gnus-agent-possibly-alter-active group group-active)))))
 
       (when (and reread gnus-agent-article-alist)
-	(gnus-make-ascending-articles-unread
-	 group
-	 (if (listp reread)
-	     reread
-	   (delq nil (mapcar (function (lambda (c)
-					 (cond ((eq reread t)
-						(car c))
-					       ((cdr c)
-						(car c)))))
-			     gnus-agent-article-alist))))
+	(gnus-agent-synchronize-group-flags 
+	 group 
+	 (list (list
+		(if (listp reread)
+		    reread
+		  (delq nil (mapcar (function (lambda (c)
+						(cond ((eq reread t)
+						       (car c))
+						      ((cdr c)
+						       (car c)))))
+				    gnus-agent-article-alist)))
+		'del '(read)))
+	 gnus-command-method)
 
 	(when regenerated
-	    (gnus-agent-update-files-total-fetched-for group nil)))
+	  (gnus-agent-update-files-total-fetched-for group nil)))
 
-      (gnus-message 5 nil)
+      (gnus-message 5 "")
       regenerated)))
 
 ;;;###autoload
@@ -3810,7 +4002,17 @@
 (defun gnus-agent-group-covered-p (group)
   (gnus-agent-method-p (gnus-group-method group)))
 
-(defun gnus-agent-update-files-total-fetched-for 
+;; Added to support XEmacs
+(eval-and-compile
+  (unless (fboundp 'directory-files-and-attributes)
+    (defun directory-files-and-attributes (directory
+					   &optional full match nosort)
+      (let (result)
+	(dolist (file (directory-files directory full match nosort))
+	  (push (cons file (file-attributes file)) result))
+	(nreverse result)))))
+
+(defun gnus-agent-update-files-total-fetched-for
   (group delta &optional method path)
   "Update, or set, the total disk space used by the articles that the
 agent has fetched."
@@ -3818,30 +4020,34 @@
     (gnus-agent-with-refreshed-group
      group
      ;; if null, gnus-agent-group-pathname will calc method.
-     (let* ((gnus-command-method method) 
+     (let* ((gnus-command-method method)
 	    (path (or path (gnus-agent-group-pathname group)))
 	    (entry (or (gnus-gethash path gnus-agent-total-fetched-hashtb)
-		       (gnus-sethash path (make-list 3 0) 
+		       (gnus-sethash path (make-list 3 0)
 				     gnus-agent-total-fetched-hashtb))))
        (when (listp delta)
-	 (unless delta
-	   (setq delta (directory-files path nil "^-?[0-9]+$" t)))
-
-	 (let ((sum 0.0)
-	       file)
-	   (while (setq file (pop delta))
-	     (incf sum (float (or (nth 7 (file-attributes 
-					  (nnheader-concat 
-					   path 
-					   (if (numberp file)
-					       (number-to-string file)
-					     file)))) 0))))
-	   (setq delta sum)))
+	 (if delta
+	     (let ((sum 0.0)
+		   file)
+	       (while (setq file (pop delta))
+		 (incf sum (float (or (nth 7 (file-attributes
+					      (nnheader-concat
+					       path
+					       (if (numberp file)
+						   (number-to-string file)
+						 file)))) 0))))
+	       (setq delta sum))
+	   (let ((sum (- (nth 2 entry)))
+		 (info (directory-files-and-attributes path nil "^-?[0-9]+$" t))
+		 file)
+	     (while (setq file (pop info))
+	       (incf sum (float (or (nth 8 file) 0))))
+	     (setq delta sum))))
 
        (setq gnus-agent-need-update-total-fetched-for t)
        (incf (nth 2 entry) delta)))))
 
-(defun gnus-agent-update-view-total-fetched-for 
+(defun gnus-agent-update-view-total-fetched-for
   (group agent-over &optional method path)
   "Update, or set, the total disk space used by the .agentview and
 .overview files.  These files are calculated separately as they can be
@@ -3850,14 +4056,14 @@
     (gnus-agent-with-refreshed-group
      group
      ;; if null, gnus-agent-group-pathname will calc method.
-     (let* ((gnus-command-method method) 
+     (let* ((gnus-command-method method)
 	    (path (or path (gnus-agent-group-pathname group)))
 	    (entry (or (gnus-gethash path gnus-agent-total-fetched-hashtb)
-		       (gnus-sethash path (make-list 3 0) 
+		       (gnus-sethash path (make-list 3 0)
 				     gnus-agent-total-fetched-hashtb)))
-	    (size (or (nth 7 (file-attributes 
+	    (size (or (nth 7 (file-attributes
 			      (nnheader-concat
-			       path (if agent-over 
+			       path (if agent-over
 					".overview"
 				      ".agentview"))))
 		      0)))
@@ -3870,17 +4076,18 @@
     (setq gnus-agent-total-fetched-hashtb (gnus-make-hashtable 1024)))
 
   ;; if null, gnus-agent-group-pathname will calc method.
-  (let* ((gnus-command-method method) 
+  (let* ((gnus-command-method method)
 	 (path (gnus-agent-group-pathname group))
 	 (entry (gnus-gethash path gnus-agent-total-fetched-hashtb)))
     (if entry
 	(apply '+ entry)
       (let ((gnus-agent-inhibit-update-total-fetched-for (not no-inhibit)))
-	(+ 
+	(+
 	 (gnus-agent-update-view-total-fetched-for  group nil method path)
 	 (gnus-agent-update-view-total-fetched-for  group t   method path)
 	 (gnus-agent-update-files-total-fetched-for group nil method path))))))
 
 (provide 'gnus-agent)
 
+;;; arch-tag: b0ba4afc-5229-4cee-ad25-9956daa4e91e
 ;;; gnus-agent.el ends here
Index: gnus/lisp/gnus-art.el
diff -u gnus/lisp/gnus-art.el:7.28 gnus/lisp/gnus-art.el:7.89
--- gnus/lisp/gnus-art.el:7.28	Thu Mar 25 09:13:33 2004
+++ gnus/lisp/gnus-art.el	Thu Apr 28 11:59:41 2005
@@ -1,5 +1,5 @@
 ;;; gnus-art.el --- article mode commands for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -31,7 +31,10 @@
   (defvar tool-bar-map))
 
 (require 'gnus)
-(require 'gnus-sum)
+;; Avoid the "Recursive load suspected" error in Emacs 21.1.
+(eval-and-compile
+  (let ((recursive-load-depth-limit 100))
+    (require 'gnus-sum)))
 (require 'gnus-spec)
 (require 'gnus-int)
 (require 'gnus-win)
@@ -46,6 +49,7 @@
 (autoload 'gnus-msg-mail "gnus-msg" nil t)
 (autoload 'gnus-button-mailto "gnus-msg")
 (autoload 'gnus-button-reply "gnus-msg" nil t)
+(autoload 'parse-time-string "parse-time" nil nil)
 (autoload 'ansi-color-apply-on-region "ansi-color")
 
 (defgroup gnus-article nil
@@ -214,6 +218,7 @@
 signatures, but will never scroll down to show you a page consisting
 only of boring text.  Boring text is controlled by
 `gnus-article-boring-faces'."
+  :version "22.1"
   :type 'boolean
   :group 'gnus-article-hiding)
 
@@ -232,7 +237,9 @@
 longer (in lines) than that number.  If it is a function, the function
 will be called without any parameters, and if it returns nil, there is
 no signature in the buffer.  If it is a string, it will be used as a
-regexp.  If it matches, the text in question is not a signature."
+regexp.  If it matches, the text in question is not a signature.
+
+This can also be a list of the above values."
   :type '(choice (integer :value 200)
 		 (number :value 4.0)
 		 (function :value fun)
@@ -318,29 +325,56 @@
 		   (symbol :tag "Item in `gnus-article-banner-alist'" none)
 		   regexp
 		   (const :tag "None" nil))))
+  :version "22.1"
   :group 'gnus-article-washing)
 
+(defmacro gnus-emphasis-custom-with-format (&rest body)
+  `(let ((format "\
+\\(\\s-\\|^\\|\\=\\|[-\"]\\|\\s(\\)\\(%s\\(\\w+\\(\\s-+\\w+\\)*[.,]?\\)%s\\)\
+\\(\\([-,.;:!?\"]\\|\\s)\\)+\\s-\\|[?!.]\\s-\\|\\s)\\|\\s-\\)"))
+     ,@body))
+
+(defun gnus-emphasis-custom-value-to-external (value)
+  (gnus-emphasis-custom-with-format
+   (if (consp (car value))
+       (list (format format (car (car value)) (cdr (car value)))
+	     2
+	     (if (nth 1 value) 2 3)
+	     (nth 2 value))
+     value)))
+
+(defun gnus-emphasis-custom-value-to-internal (value)
+  (gnus-emphasis-custom-with-format
+   (let ((regexp (concat "\\`"
+			 (format (regexp-quote format)
+				 "\\([^()]+\\)" "\\([^()]+\\)")
+			 "\\'"))
+	 pattern)
+     (if (string-match regexp (setq pattern (car value)))
+	 (list (cons (match-string 1 pattern) (match-string 2 pattern))
+	       (= (nth 2 value) 2)
+	       (nth 3 value))
+       value))))
+
 (defcustom gnus-emphasis-alist
-  (let ((format
-	 "\\(\\s-\\|^\\|\\=\\|[-\"]\\|\\s(\\)\\(%s\\(\\w+\\(\\s-+\\w+\\)*[.,]?\\)%s\\)\\(\\([-,.;:!?\"]\\|\\s)\\)+\\s-\\|[?!.]\\s-\\|\\s)\\|\\s-\\)")
-	(types
-	 '(("\\*" "\\*" bold)
+  (let ((types
+	 '(("\\*" "\\*" bold nil 2)
 	   ("_" "_" underline)
 	   ("/" "/" italic)
 	   ("_/" "/_" underline-italic)
 	   ("_\\*" "\\*_" underline-bold)
 	   ("\\*/" "/\\*" bold-italic)
 	   ("_\\*/" "/\\*_" underline-bold-italic))))
-    `(,@(mapcar
-	 (lambda (spec)
-	   (list
-	    (format format (car spec) (cadr spec))
-	    2 3 (intern (format "gnus-emphasis-%s" (nth 2 spec)))))
-	 types)
-	("\\(\\s-\\|^\\)\\(-\\(\\(\\w\\|-[^-]\\)+\\)-\\)\\(\\s-\\|[?!.,;]\\)"
-	 2 3 gnus-emphasis-strikethru)
-	("\\(\\s-\\|^\\)\\(_\\(\\(\\w\\|_[^_]\\)+\\)_\\)\\(\\s-\\|[?!.,;]\\)"
-	 2 3 gnus-emphasis-underline)))
+    (nconc
+     (gnus-emphasis-custom-with-format
+      (mapcar (lambda (spec)
+		(list (format format (car spec) (cadr spec))
+		      (or (nth 3 spec) 2)
+		      (or (nth 4 spec) 3)
+		      (intern (format "gnus-emphasis-%s" (nth 2 spec)))))
+	      types))
+     '(("\\(\\s-\\|^\\)\\(_\\(\\(\\w\\|_[^_]\\)+\\)_\\)\\(\\s-\\|[?!.,;]\\)"
+	2 3 gnus-emphasis-underline))))
   "*Alist that says how to fontify certain phrases.
 Each item looks like this:
 
@@ -351,11 +385,43 @@
 the entire emphasized word.  The third is a number that says what
 regexp grouping should be displayed and highlighted.  The fourth
 is the face used for highlighting."
-  :type '(repeat (list :value ("" 0 0 default)
-		       regexp
-		       (integer :tag "Match group")
-		       (integer :tag "Emphasize group")
-		       face))
+  :type
+  '(repeat
+    (menu-choice
+     :format "%[Customizing Style%]\n%v"
+     :indent 2
+     (group :tag "Default"
+	    :value ("" 0 0 default)
+	    :value-create
+	    (lambda (widget)
+	      (let ((value (widget-get
+			    (cadr (widget-get (widget-get widget :parent)
+					      :args))
+			    :value)))
+		(if (not (eq (nth 2 value) 'default))
+		    (widget-put
+		     widget
+		     :value
+		     (gnus-emphasis-custom-value-to-external value))))
+	      (widget-group-value-create widget))
+	    regexp
+	    (integer :format "Match group: %v")
+	    (integer :format "Emphasize group: %v")
+	    face)
+     (group :tag "Simple"
+	    :value (("_" . "_") nil default)
+	    (cons :format "%v"
+		  (regexp :format "Start regexp: %v")
+		  (regexp :format "End regexp: %v"))
+	    (boolean :format "Show start and end patterns: %[%v%]\n"
+		     :on " On " :off " Off ")
+	    face)))
+  :get (lambda (symbol)
+	 (mapcar 'gnus-emphasis-custom-value-to-internal
+		 (default-value symbol)))
+  :set (lambda (symbol value)
+	 (set-default symbol (mapcar 'gnus-emphasis-custom-value-to-external
+				     value)))
   :group 'gnus-article-emphasis)
 
 (defcustom gnus-emphasize-whitespace-regexp "^[ \t]+\\|[ \t]*\n"
@@ -408,14 +474,14 @@
   "Face used for displaying highlighted words."
   :group 'gnus-article-emphasis)
 
-(defcustom gnus-article-time-format "%a, %b %d %Y %T %Z"
+(defcustom gnus-article-time-format "%a, %d %b %Y %T %Z"
   "Format for display of Date headers in article bodies.
 See `format-time-string' for the possible values.
 
 The variable can also be function, which should return a complete Date
 header.  The function is called with one argument, the time, which can
 be fed to `format-time-string'."
-  :type '(choice string symbol)
+  :type '(choice string function)
   :link '(custom-manual "(gnus)Article Date")
   :group 'gnus-article-washing)
 
@@ -507,17 +573,19 @@
  '((\"^Subject:.*gnus\\|^Newsgroups:.*gnus\" \"gnus-stuff\")
    (\"^Subject:.*vm\\|^Xref:.*vm\" \"vm-stuff\"))
 
-This variable is an alist where the where the key is the match and the
-value is a list of possible files to save in if the match is non-nil.
+This variable is an alist where the key is the match and the
+value is a list of possible files to save in if the match is
+non-nil.
 
 If the match is a string, it is used as a regexp match on the
 article.  If the match is a symbol, that symbol will be funcalled
-from the buffer of the article to be saved with the newsgroup as the
-parameter.  If it is a list, it will be evaled in the same buffer.
-
-If this form or function returns a string, this string will be used as
-a possible file name; and if it returns a non-nil list, that list will
-be used as possible file names."
+from the buffer of the article to be saved with the newsgroup as
+the parameter.  If it is a list, it will be evaled in the same
+buffer.
+
+If this form or function returns a string, this string will be
+used as a possible file name; and if it returns a non-nil list,
+that list will be used as possible file names."
   :group 'gnus-article-saving
   :type '(repeat (choice (list :value (fun) function)
 			 (cons :value ("" "") regexp (repeat string))
@@ -563,6 +631,13 @@
   :type 'hook
   :group 'gnus-article-various)
 
+(defcustom gnus-copy-article-ignored-headers nil
+  "List of headers to be removed when copying an article.
+Each element is a regular expression."
+  :version "23.0" ;; No Gnus
+  :type '(repeat regexp)
+  :group 'gnus-article-various)
+
 (make-obsolete-variable 'gnus-article-hide-pgp-hook
 			"This variable is obsolete in Gnus 5.10.")
 
@@ -745,7 +820,7 @@
 To see e.g. security buttons you could set this to
 `(\"multipart/signed\")'.
 This variable is only used when `gnus-inhibit-mime-unbuttonizing' is nil."
-  :version "21.1"
+  :version "22.1"
   :group 'gnus-article-mime
   :type '(repeat regexp))
 
@@ -754,7 +829,7 @@
 When nil (the default value), then some MIME parts do not get buttons,
 as described by the variables `gnus-buttonized-mime-types' and
 `gnus-unbuttonized-mime-types'."
-  :version "21.3"
+  :version "22.1"
   :group 'gnus-article-mime
   :type 'boolean)
 
@@ -762,14 +837,17 @@
   "String used to delimit header and body.
 This variable is used by `gnus-article-treat-body-boundary' which can
 be controlled by `gnus-treat-body-boundary'."
+  :version "22.1"
   :group 'gnus-article-various
   :type '(choice (item :tag "None" :value nil)
 		 string))
 
-(defcustom gnus-picon-databases '("/usr/lib/picon" "/usr/local/faces")
+(defcustom gnus-picon-databases '("/usr/lib/picon" "/usr/local/faces"
+				  "/usr/share/picons")
   "Defines the location of the faces database.
 For information on obtaining this database of pretty pictures, please
 see http://www.cs.indiana.edu/picons/ftp/index.html"
+  :version "22.1"
   :type '(repeat directory)
   :link '(url-link :tag "download"
 		   "http://www.cs.indiana.edu/picons/ftp/index.html")
@@ -909,6 +987,7 @@
   "Remove carriage returns.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
@@ -917,6 +996,7 @@
   "Remove newlines from within URLs.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
@@ -925,6 +1005,7 @@
   "Remove leading whitespace in headers.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
@@ -1044,6 +1125,7 @@
   "Display the Date in a format that can be read aloud in English.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-head-custom)
@@ -1119,6 +1201,7 @@
   "Unfold folded header lines.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
@@ -1127,6 +1210,7 @@
   "Fold headers.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
@@ -1135,6 +1219,7 @@
   "Fold the Newsgroups and Followup-To headers.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
@@ -1208,7 +1293,7 @@
 See Info node `(gnus)Customizing Articles' and Info node
 `(gnus)X-Face' for details."
   :group 'gnus-article-treat
-  :version "21.1"
+  :version "22.1"
   :link '(custom-manual "(gnus)Customizing Articles")
   :link '(custom-manual "(gnus)X-Face")
   :type gnus-article-treat-head-custom)
@@ -1239,6 +1324,7 @@
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' and Info node
 `(gnus)Picons' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :group 'gnus-picon
   :link '(custom-manual "(gnus)Customizing Articles")
@@ -1254,6 +1340,7 @@
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' and Info node
 `(gnus)Picons' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :group 'gnus-picon
   :link '(custom-manual "(gnus)Customizing Articles")
@@ -1269,6 +1356,7 @@
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' and Info node
 `(gnus)Picons' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :group 'gnus-picon
   :link '(custom-manual "(gnus)Customizing Articles")
@@ -1277,14 +1365,15 @@
 (put 'gnus-treat-newsgroups-picon 'highlight t)
 
 (defcustom gnus-treat-body-boundary
-  (if (or gnus-treat-newsgroups-picon
-	  gnus-treat-mail-picon
-	  gnus-treat-from-picon)
+  (if (and (eq window-system 'x)
+	   (or gnus-treat-newsgroups-picon
+	       gnus-treat-mail-picon
+	       gnus-treat-from-picon))
       'head nil)
   "Draw a boundary at the end of the headers.
 Valid values are nil and `head'.
 See Info node `(gnus)Customizing Articles' for details."
-  :version "21.1"
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-head-custom)
@@ -1302,6 +1391,7 @@
   "Format as HTML.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :link '(custom-manual "(gnus)Customizing Articles")
   :type gnus-article-treat-custom)
@@ -1337,6 +1427,7 @@
 To automatically treat X-PGP-Sig, set it to head.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See Info node `(gnus)Customizing Articles' for details."
+  :version "22.1"
   :group 'gnus-article-treat
   :group 'mime-security
   :link '(custom-manual "(gnus)Customizing Articles")
@@ -1350,6 +1441,7 @@
 (defcustom gnus-article-encrypt-protocol "PGP"
   "The protocol used for encrypt articles.
 It is a string, such as \"PGP\". If nil, ask user."
+  :version "22.1"
   :type 'string
   :group 'mime-security)
 
@@ -1361,11 +1453,13 @@
 			      (executable-find idna-program))
   "Whether IDNA decoding of headers is used when viewing messages.
 This requires GNU Libidn, and by default only enabled if it is found."
+  :version "22.1"
   :group 'gnus-article-headers
   :type 'boolean)
 
 (defcustom gnus-article-over-scroll nil
   "If non-nil, allow scrolling the article buffer even when there no more text."
+  :version "22.1"
   :group 'gnus-article
   :type 'boolean)
 
@@ -1476,7 +1570,7 @@
   `(save-excursion
      (set-buffer gnus-article-buffer)
      (save-restriction
-       (let ((buffer-read-only nil)
+       (let ((inhibit-read-only t)
 	     (inhibit-point-motion-hooks t)
 	     (case-fold-search t))
 	 (article-narrow-to-head)
@@ -1488,7 +1582,7 @@
 (defmacro gnus-with-article-buffer (&rest forms)
   `(save-excursion
      (set-buffer gnus-article-buffer)
-     (let ((buffer-read-only nil))
+     (let ((inhibit-read-only t))
        ,@forms)))
 
 (put 'gnus-with-article-buffer 'lisp-indent-function 0)
@@ -1574,25 +1668,35 @@
   (interactive)
   ;; This function might be inhibited.
   (unless gnus-inhibit-hiding
-    (save-excursion
-      (save-restriction
-	(let ((buffer-read-only nil)
-	      (case-fold-search t)
-	      (max (1+ (length gnus-sorted-header-list)))
-	      (ignored (when (not gnus-visible-headers)
-			 (cond ((stringp gnus-ignored-headers)
-				gnus-ignored-headers)
-			       ((listp gnus-ignored-headers)
-				(mapconcat 'identity gnus-ignored-headers
-					   "\\|")))))
-	      (visible
-	       (cond ((stringp gnus-visible-headers)
-		      gnus-visible-headers)
-		     ((and gnus-visible-headers
-			   (listp gnus-visible-headers))
-		      (mapconcat 'identity gnus-visible-headers "\\|"))))
-	      (inhibit-point-motion-hooks t)
-	      beg)
+    (let ((inhibit-read-only nil)
+	  (case-fold-search t)
+	  (max (1+ (length gnus-sorted-header-list)))
+	  (inhibit-point-motion-hooks t)
+	  (cur (current-buffer))
+	  ignored visible beg)
+      (save-excursion
+	;; `gnus-ignored-headers' and `gnus-visible-headers' may be
+	;; group parameters, so we should go to the summary buffer.
+	(when (prog1
+		  (condition-case nil
+		      (progn (set-buffer gnus-summary-buffer) t)
+		    (error nil))
+		(setq ignored (when (not gnus-visible-headers)
+				(cond ((stringp gnus-ignored-headers)
+				       gnus-ignored-headers)
+				      ((listp gnus-ignored-headers)
+				       (mapconcat 'identity
+						  gnus-ignored-headers
+						  "\\|"))))
+		      visible (cond ((stringp gnus-visible-headers)
+				     gnus-visible-headers)
+				    ((and gnus-visible-headers
+					  (listp gnus-visible-headers))
+				     (mapconcat 'identity
+						gnus-visible-headers
+						"\\|")))))
+	  (set-buffer cur))
+	(save-restriction
 	  ;; First we narrow to just the headers.
 	  (article-narrow-to-head)
 	  ;; Hide any "From " lines at the beginning of (mail) articles.
@@ -1634,13 +1738,10 @@
 	     (not gnus-show-all-headers))
     (save-excursion
       (save-restriction
-	(let ((buffer-read-only nil)
-	      (list gnus-boring-article-headers)
-	      (inhibit-point-motion-hooks t)
-	      elem)
+	(let ((inhibit-read-only t)
+	      (inhibit-point-motion-hooks t))
 	  (article-narrow-to-head)
-	  (while list
-	    (setq elem (pop list))
+	  (dolist (elem gnus-boring-article-headers)
 	    (goto-char (point-min))
 	    (cond
 	     ;; Hide empty headers.
@@ -1788,7 +1889,7 @@
 (defun article-normalize-headers ()
   "Make all header lines 40 characters long."
   (interactive)
-  (let ((buffer-read-only nil)
+  (let ((inhibit-read-only t)
 	column)
     (save-excursion
       (save-restriction
@@ -1832,7 +1933,7 @@
 characters to translate to."
   (save-excursion
     (when (article-goto-body)
-      (let ((buffer-read-only nil)
+      (let ((inhibit-read-only t)
 	    (x (make-string 225 ?x))
 	    (i -1))
 	(while (< (incf i) (length x))
@@ -1848,9 +1949,8 @@
 MAP is an alist where the elements are on the form (\"from\" \"to\")."
   (save-excursion
     (when (article-goto-body)
-      (let ((buffer-read-only nil)
-	    elem)
-	(while (setq elem (pop map))
+      (let ((inhibit-read-only t))
+	(dolist (elem map)
 	  (save-excursion
 	    (while (search-forward (car elem) nil t)
 	      (replace-match (cadr elem)))))))))
@@ -1860,7 +1960,7 @@
   (interactive)
   (save-excursion
     (when (article-goto-body)
-      (let ((buffer-read-only nil))
+      (let ((inhibit-read-only t))
 	(while (search-forward "\b" nil t)
 	  (let ((next (char-after))
 		(previous (char-after (- (point) 2))))
@@ -1886,7 +1986,7 @@
   (interactive)
   (save-excursion
     (when (article-goto-body)
-      (let ((buffer-read-only nil))
+      (let ((inhibit-read-only t))
 	(ansi-color-apply-on-region (point) (point-max))))))
 
 (defun gnus-article-treat-unfold-headers ()
@@ -1976,7 +2076,7 @@
   "Fill lines that are wider than the window width."
   (interactive)
   (save-excursion
-    (let ((buffer-read-only nil)
+    (let ((inhibit-read-only t)
 	  (width (window-width (get-buffer-window (current-buffer)))))
       (save-restriction
 	(article-goto-body)
@@ -1996,7 +2096,7 @@
   "Capitalize the first word in each sentence."
   (interactive)
   (save-excursion
-    (let ((buffer-read-only nil)
+    (let ((inhibit-read-only t)
 	  (paragraph-start "^[\n\^L]"))
       (article-goto-body)
       (while (not (eobp))
@@ -2007,7 +2107,7 @@
   "Remove trailing CRs and then translate remaining CRs into LFs."
   (interactive)
   (save-excursion
-    (let ((buffer-read-only nil))
+    (let ((inhibit-read-only t))
       (goto-char (point-min))
       (while (re-search-forward "\r+$" nil t)
 	(replace-match "" t t))
@@ -2019,7 +2119,7 @@
   "Remove all trailing blank lines from the article."
   (interactive)
   (save-excursion
-    (let ((buffer-read-only nil))
+    (let ((inhibit-read-only t))
       (goto-char (point-max))
       (delete-region
        (point)
@@ -2059,7 +2159,7 @@
 	      (mail-narrow-to-head)
 	      (while (gnus-article-goto-header "Face")
 		(setq faces (nconc faces (list (mail-header-field-value)))))))
-	  (while (setq face (pop faces))
+	  (dolist (face faces)
 	    (let ((png (gnus-convert-face-to-png face))
 		  image)
 	      (when png
@@ -2155,7 +2255,7 @@
 If PROMPT (the prefix), prompt for a coding system to use."
   (interactive "P")
   (let ((inhibit-point-motion-hooks t) (case-fold-search t)
-	buffer-read-only
+	(inhibit-read-only t)
 	(mail-parse-charset gnus-newsgroup-charset)
 	(mail-parse-ignored-charsets
 	 (save-excursion (condition-case nil
@@ -2205,7 +2305,7 @@
 			     (set-buffer gnus-summary-buffer)
 			   (error))
 			 gnus-newsgroup-ignored-charsets))
-	buffer-read-only)
+	(inhibit-read-only t))
     (save-restriction
       (article-narrow-to-head)
       (funcall gnus-decode-header-function (point-min) (point-max)))))
@@ -2213,7 +2313,7 @@
 (defun article-decode-group-name ()
   "Decode group names in `Newsgroups:'."
   (let ((inhibit-point-motion-hooks t)
-	buffer-read-only
+	(inhibit-read-only t)
 	(method (gnus-find-method-for-group gnus-newsgroup-name)))
     (when (and (or gnus-group-name-charset-method-alist
 		   gnus-group-name-charset-group-alist)
@@ -2257,18 +2357,16 @@
   (when gnus-use-idna
     (save-restriction
       (let ((inhibit-point-motion-hooks t)
-	    buffer-read-only)
+	    (inhibit-read-only t))
 	(article-narrow-to-head)
 	(goto-char (point-min))
-	(while (re-search-forward "\\(xn--[-A-Za-z0-9.]*\\)[ \t\n\r,>]" nil t)
+	(while (re-search-forward "@.*\\(xn--[-A-Za-z0-9.]*\\)[ \t\n\r,>]" nil t)
 	  (let (ace unicode)
 	    (when (save-match-data
 		    (and (setq ace (match-string 1))
 			 (save-excursion
 			   (and (re-search-backward "^[^ \t]" nil t)
 				(looking-at "From\\|To\\|Cc")))
-			 (save-excursion (backward-char)
-					 (message-idna-inside-rhs-p))
 			 (setq unicode (idna-to-unicode ace))))
 	      (unless (string= ace unicode)
 		(replace-match unicode nil nil nil 1)))))))))
@@ -2280,7 +2378,7 @@
 If READ-CHARSET, ask for a coding system."
   (interactive (list 'force current-prefix-arg))
   (save-excursion
-    (let ((buffer-read-only nil) type charset)
+    (let ((inhibit-read-only t) type charset)
       (if (gnus-buffer-live-p gnus-original-article-buffer)
 	  (with-current-buffer gnus-original-article-buffer
 	    (setq type
@@ -2310,7 +2408,7 @@
 If READ-CHARSET, ask for a coding system."
   (interactive (list 'force current-prefix-arg))
   (save-excursion
-    (let ((buffer-read-only nil) type charset)
+    (let ((inhibit-read-only t) type charset)
       (if (gnus-buffer-live-p gnus-original-article-buffer)
 	  (with-current-buffer gnus-original-article-buffer
 	    (setq type
@@ -2345,17 +2443,17 @@
   (interactive)
   (require 'rfc1843)
   (save-excursion
-    (let ((buffer-read-only nil))
+    (let ((inhibit-read-only t))
       (rfc1843-decode-region (point-min) (point-max)))))
 
 (defun article-unsplit-urls ()
   "Remove the newlines that some other mailers insert into URLs."
   (interactive)
   (save-excursion
-    (let ((buffer-read-only nil))
+    (let ((inhibit-read-only t))
       (goto-char (point-min))
       (while (re-search-forward
-	      "^\\(\\(https?\\|ftp\\)://\\S-+\\) *\n\\(\\S-+\\)" nil t)
+	      "\\(\\(https?\\|ftp\\)://\\S-+\\) *\n\\(\\S-+\\)" nil t)
 	(replace-match "\\1\\3" t)))
     (when (interactive-p)
       (gnus-treat-article nil))))
@@ -2366,7 +2464,7 @@
 If READ-CHARSET, ask for a coding system."
   (interactive "P")
   (save-excursion
-    (let ((buffer-read-only nil)
+    (let ((inhibit-read-only t)
 	  charset)
       (when (gnus-buffer-live-p gnus-original-article-buffer)
 	(with-current-buffer gnus-original-article-buffer
@@ -2432,7 +2530,7 @@
 	(regexp (if (consp gnus-list-identifiers)
 		    (mapconcat 'identity gnus-list-identifiers " *\\|")
 		  gnus-list-identifiers))
-	buffer-read-only)
+	(inhibit-read-only t))
     (when regexp
       (save-excursion
 	(save-restriction
@@ -2454,7 +2552,7 @@
   (interactive (gnus-article-hidden-arg))
   (unless (gnus-article-check-hidden-text 'pem arg)
     (save-excursion
-      (let (buffer-read-only end)
+      (let ((inhibit-read-only t) end)
 	(goto-char (point-min))
 	;; Hide the horrendously ugly "header".
 	(when (and (search-forward
@@ -2485,18 +2583,25 @@
 	  (article-really-strip-banner
 	   (gnus-parameter-banner gnus-newsgroup-name)))
 	(when gnus-article-address-banner-alist
-	  (article-really-strip-banner
-	   (let ((from (save-restriction
-			 (widen)
-			 (article-narrow-to-head)
-			 (mail-fetch-field "from"))))
-	     (when (and from
-			(setq from
-			      (caar (mail-header-parse-addresses from))))
-	       (catch 'found
-		 (dolist (pair gnus-article-address-banner-alist)
-		   (when (string-match (car pair) from)
-		     (throw 'found (cdr pair)))))))))))))
+	  ;; It is necessary to encode from fields before checking,
+	  ;; because `mail-header-parse-addresses' does not work
+	  ;; (reliably) on decoded headers.  And more, it is
+	  ;; impossible to use `gnus-fetch-original-field' here,
+	  ;; because `article-strip-banner' may be called in draft
+	  ;; buffers to preview them.
+	  (let ((from (save-restriction
+			(widen)
+			(article-narrow-to-head)
+			(mail-fetch-field "from"))))
+	    (when (and from
+		       (setq from
+			     (caar (mail-header-parse-addresses
+				    (mail-encode-encoded-word-string from)))))
+	      (catch 'found
+		(dolist (pair gnus-article-address-banner-alist)
+		  (when (string-match (car pair) from)
+		    (throw 'found
+			   (article-really-strip-banner (cdr pair)))))))))))))
 
 (defun article-really-strip-banner (banner)
   "Strip the banner specified by the argument."
@@ -2504,7 +2609,7 @@
     (save-restriction
       (let ((inhibit-point-motion-hooks t)
 	    (gnus-signature-limit nil)
-	    buffer-read-only)
+	    (inhibit-read-only t))
 	(article-goto-body)
 	(cond
 	 ((eq banner 'signature)
@@ -2543,7 +2648,7 @@
   (unless (gnus-article-check-hidden-text 'signature arg)
     (save-excursion
       (save-restriction
-	(let ((buffer-read-only nil))
+	(let ((inhibit-read-only t))
 	  (when (gnus-article-narrow-to-signature)
 	    (gnus-article-hide-text-type
 	     (point-min) (point-max) 'signature))))))
@@ -2563,7 +2668,7 @@
   (interactive)
   (save-excursion
     (let ((inhibit-point-motion-hooks t)
-	  buffer-read-only)
+	  (inhibit-read-only t))
       (when (article-goto-body)
 	(while (and (not (eobp))
 		    (looking-at "[ \t]*$"))
@@ -2598,7 +2703,7 @@
   (interactive)
   (save-excursion
     (let ((inhibit-point-motion-hooks t)
-	  buffer-read-only)
+	  (inhibit-read-only t))
       ;; First make all blank lines empty.
       (article-goto-body)
       (while (re-search-forward "^[ \t]+$" nil t)
@@ -2617,7 +2722,7 @@
   (interactive)
   (save-excursion
     (let ((inhibit-point-motion-hooks t)
-	  buffer-read-only)
+	  (inhibit-read-only t))
       (article-goto-body)
       (while (re-search-forward "^[ \t]+" nil t)
 	(replace-match "" t t)))))
@@ -2627,7 +2732,7 @@
   (interactive)
   (save-excursion
     (let ((inhibit-point-motion-hooks t)
-	  buffer-read-only)
+	  (inhibit-read-only t))
       (article-goto-body)
       (while (re-search-forward "[ \t]+$" nil t)
 	(replace-match "" t t)))))
@@ -2644,7 +2749,7 @@
   (interactive)
   (save-excursion
     (let ((inhibit-point-motion-hooks t)
-	  buffer-read-only)
+	  (inhibit-read-only t))
       (article-goto-body)
       (while (re-search-forward "^[ \t]*\n" nil t)
 	(replace-match "" t t)))))
@@ -2733,7 +2838,7 @@
 (defun gnus-article-show-hidden-text (type &optional dummy)
   "Show all hidden text of type TYPE.
 Originally it is hide instead of DUMMY."
-  (let ((buffer-read-only nil)
+  (let ((inhibit-read-only t)
 	(inhibit-point-motion-hooks t))
     (gnus-remove-text-properties-when
      'article-type type
@@ -2762,71 +2867,74 @@
 	  (forward-line 1)
 	(setq ended t)))))
 
-(defun article-date-ut (&optional type highlight header)
+(defun article-date-ut (&optional type highlight)
   "Convert DATE date to universal time in the current article.
 If TYPE is `local', convert to local time; if it is `lapsed', output
 how much time has lapsed since DATE.  For `lapsed', the value of
 `gnus-article-date-lapsed-new-header' says whether the \"X-Sent:\" header
 should replace the \"Date:\" one, or should be added below it."
   (interactive (list 'ut t))
-  (let* ((header (or header
-		     (message-fetch-field "date")
-		     ""))
-	 (tdate-regexp "^Date:[ \t]\\|^X-Sent:[ \t]")
-	 (date-regexp
-	  (cond
-	   ((not gnus-article-date-lapsed-new-header)
-	    tdate-regexp)
-	   ((eq type 'lapsed)
-	    "^X-Sent:[ \t]")
-	   (t
-	    "^Date:[ \t]")))
-	 (date (if (vectorp header) (mail-header-date header)
-		 header))
+  (let* ((tdate-regexp "^Date:[ \t]\\|^X-Sent:[ \t]")
+	 (date-regexp (cond ((not gnus-article-date-lapsed-new-header)
+			     tdate-regexp)
+			    ((eq type 'lapsed)
+			     "^X-Sent:[ \t]")
+			    (article-lapsed-timer
+			     "^Date:[ \t]")
+			    (t
+			     tdate-regexp)))
+	 (case-fold-search t)
+	 (inhibit-read-only t)
 	 (inhibit-point-motion-hooks t)
-	 pos
-	 bface eface)
+	 pos date bface eface)
     (save-excursion
       (save-restriction
-	(article-narrow-to-head)
-	(when (re-search-forward tdate-regexp nil t)
-	  (setq bface (get-text-property (point-at-bol) 'face)
-		date (or (get-text-property (point-at-bol)
-					    'original-date)
-			 date)
-		eface (get-text-property (1- (point-at-eol)) 'face))
-	  (forward-line 1))
-	(when (and date (not (string= date "")))
+	(widen)
+	(goto-char (point-min))
+	(while (or (setq date (get-text-property (setq pos (point))
+						 'original-date))
+		   (when (setq pos (next-single-property-change
+				    (point) 'original-date))
+		     (setq date (get-text-property pos 'original-date))
+		     t))
+	  (narrow-to-region pos (or (text-property-any pos (point-max)
+						       'original-date nil)
+				    (point-max)))
 	  (goto-char (point-min))
-	  (let ((buffer-read-only nil))
-	    ;; Delete any old Date headers.
-	    (while (re-search-forward date-regexp nil t)
-	      (if pos
-		  (delete-region (point-at-bol)
-				 (progn (gnus-article-forward-header)
-					(point)))
-		(delete-region (point-at-bol)
-			       (progn (gnus-article-forward-header)
-				      (forward-char -1)
-				      (point)))
-		(setq pos (point))))
-	    (when (and (not pos)
-		       (re-search-forward tdate-regexp nil t))
-	      (forward-line 1))
-	    (gnus-goto-char pos)
-	    (insert (article-make-date-line date (or type 'ut)))
-	    (unless pos
-	      (insert "\n")
-	      (forward-line -1))
-	    ;; Do highlighting.
-	    (beginning-of-line)
-	    (when (looking-at "\\([^:]+\\): *\\(.*\\)$")
-	      (put-text-property (match-beginning 1) (1+ (match-end 1))
-				 'original-date date)
-	      (put-text-property (match-beginning 1) (1+ (match-end 1))
-				 'face bface)
-	      (put-text-property (match-beginning 2) (match-end 2)
-				 'face eface))))))))
+	  (when (re-search-forward tdate-regexp nil t)
+	    (setq bface (get-text-property (point-at-bol) 'face)
+		  eface (get-text-property (1- (point-at-eol)) 'face)))
+	  (goto-char (point-min))
+	  (setq pos nil)
+	  ;; Delete any old Date headers.
+	  (while (re-search-forward date-regexp nil t)
+	    (if pos
+		(delete-region (point-at-bol) (progn
+						(gnus-article-forward-header)
+						(point)))
+	      (delete-region (point-at-bol) (progn
+					      (gnus-article-forward-header)
+					      (forward-char -1)
+					      (point)))
+	      (setq pos (point))))
+	  (when (and (not pos)
+		     (re-search-forward tdate-regexp nil t))
+	    (forward-line 1))
+	  (gnus-goto-char pos)
+	  (insert (article-make-date-line date (or type 'ut)))
+	  (unless pos
+	    (insert "\n")
+	    (forward-line -1))
+	  ;; Do highlighting.
+	  (beginning-of-line)
+	  (when (looking-at "\\([^:]+\\): *\\(.*\\)$")
+	    (put-text-property (match-beginning 1) (1+ (match-end 1))
+			       'face bface)
+	    (put-text-property (match-beginning 2) (match-end 2)
+			       'face eface))
+	  (put-text-property (point-min) (1- (point-max)) 'original-date date)
+	  (goto-char (point-max))
+	  (widen))))))
 
 (defun article-make-date-line (date type)
   "Return a DATE line of TYPE."
@@ -2837,22 +2945,21 @@
 	(cond
 	 ;; Convert to the local timezone.
 	 ((eq type 'local)
-	  (let ((tz (car (current-time-zone time))))
-	    (format "Date: %s %s%02d%02d" (current-time-string time)
-		    (if (> tz 0) "+" "-") (/ (abs tz) 3600)
-		    (/ (% (abs tz) 3600) 60))))
+	  (concat "Date: " (message-make-date time)))
 	 ;; Convert to Universal Time.
 	 ((eq type 'ut)
 	  (concat "Date: "
-		  (current-time-string
-		   (let* ((e (parse-time-string date))
-			  (tm (apply 'encode-time e))
-			  (ms (car tm))
-			  (ls (- (cadr tm) (car (current-time-zone time)))))
-		     (cond ((< ls 0) (list (1- ms) (+ ls 65536)))
-			   ((> ls 65535) (list (1+ ms) (- ls 65536)))
-			   (t (list ms ls)))))
-		  " UT"))
+		  (substring
+		   (message-make-date
+		    (let* ((e (parse-time-string date))
+			   (tm (apply 'encode-time e))
+			   (ms (car tm))
+			   (ls (- (cadr tm) (car (current-time-zone time)))))
+		      (cond ((< ls 0) (list (1- ms) (+ ls 65536)))
+			    ((> ls 65535) (list (1+ ms) (- ls 65536)))
+			    (t (list ms ls)))))
+		   0 -5)
+		  "UT"))
 	 ;; Get the original date from the article.
 	 ((eq type 'original)
 	  (concat "Date: " (if (string-match "\n+$" date)
@@ -3012,11 +3119,32 @@
   (interactive (list t))
   (article-date-ut 'iso8601 highlight))
 
+(defmacro gnus-article-save-original-date (&rest forms)
+  "Save the original date as a text property and evaluate FORMS."
+  `(let* ((case-fold-search t)
+	  (start (progn
+		   (goto-char (point-min))
+		   (when (and (re-search-forward "^date:[\t\n ]+" nil t)
+			      (not (bolp)))
+		     (match-end 0))))
+	  (date (when (and start
+			   (re-search-forward "[\t ]*\n\\(?:[^\t ]\\|\\'\\)"
+					      nil t))
+		  (buffer-substring-no-properties start
+						  (match-beginning 0)))))
+     (goto-char (point-max))
+     (skip-chars-backward "\n")
+     (put-text-property (point-min) (point) 'original-date date)
+     ,@forms
+     (goto-char (point-max))
+     (skip-chars-backward "\n")
+     (put-text-property (point-min) (point) 'original-date date)))
+
 ;; (defun article-show-all ()
 ;;   "Show all hidden text in the article buffer."
 ;;   (interactive)
 ;;   (save-excursion
-;;     (let ((buffer-read-only nil))
+;;     (let ((inhibit-read-only t))
 ;;       (gnus-article-unhide-text (point-min) (point-max)))))
 
 (defun article-remove-leading-whitespace ()
@@ -3024,7 +3152,7 @@
   (interactive)
   (save-excursion
     (save-restriction
-      (let ((buffer-read-only nil))
+      (let ((inhibit-read-only t))
 	(article-narrow-to-head)
 	(goto-char (point-min))
 	(while (re-search-forward "^[^ :]+: \\([ \t]+\\)" nil t)
@@ -3041,7 +3169,7 @@
 			  gnus-article-emphasis-alist)
 		      (error))
 		    gnus-emphasis-alist))
-	    (buffer-read-only nil)
+	    (inhibit-read-only t)
 	    (props (append '(article-type emphasis)
 			   gnus-hidden-properties))
 	    regexp elem beg invisible visible face)
@@ -3433,7 +3561,7 @@
 			(mm-handle-multipart-ctl-parameter
 			 mm-security-handle 'gnus-info)))))
 	  (when info
-	    (let (buffer-read-only bface eface)
+	    (let ((inhibit-read-only t) bface eface)
 	      (save-restriction
 		(message-narrow-to-head)
 		(goto-char (point-max))
@@ -3643,9 +3771,12 @@
   (make-local-variable 'gnus-article-image-alist)
   (make-local-variable 'gnus-article-charset)
   (make-local-variable 'gnus-article-ignored-charsets)
+  ;; Prevent recent Emacsen from displaying non-break space as "\ ".
+  (set (make-local-variable 'show-nonbreak-escape) nil)
   (gnus-set-default-directory)
   (buffer-disable-undo)
-  (setq buffer-read-only t)
+  (setq buffer-read-only t
+	show-trailing-whitespace nil)
   (set-syntax-table gnus-article-mode-syntax-table)
   (mm-enable-multibyte)
   (gnus-run-hooks 'gnus-article-mode-hook))
@@ -3675,14 +3806,19 @@
       (mm-enable-multibyte)
       (setq major-mode 'gnus-original-article-mode)
       (make-local-variable 'gnus-original-article))
-    (if (get-buffer name)
+    (if (and (get-buffer name)
+	     (with-current-buffer name
+	       (if gnus-article-edit-mode
+		   (if (y-or-n-p "Article mode edit in progress; discard? ")
+		       (progn
+			 (set-buffer-modified-p nil)
+			 (gnus-kill-buffer name)
+			 (message "")
+			 nil)
+		     (error "Action aborted"))
+		 t)))
 	(save-excursion
 	  (set-buffer name)
-	  (when (and gnus-article-edit-mode
-		     (buffer-modified-p)
-		     (not
-		      (y-or-n-p "Article mode edit in progress; discard? ")))
-	    (error "Action aborted"))
 	  (set (make-local-variable 'gnus-article-edit-mode) nil)
 	  (when gnus-article-mime-handles
 	    (mm-destroy-parts gnus-article-mime-handles)
@@ -3740,7 +3876,7 @@
 	(when (and (boundp 'transient-mark-mode)
 		   transient-mark-mode)
 	  (setq mark-active nil))
-	(if (not (setq result (let ((buffer-read-only nil))
+	(if (not (setq result (let ((inhibit-read-only t))
 				(gnus-request-article-this-buffer
 				 article group))))
 	    ;; There is no such article.
@@ -3835,7 +3971,8 @@
   ;; Hooks for getting information from the article.
   ;; This hook must be called before being narrowed.
   (let ((gnus-article-buffer (current-buffer))
-	buffer-read-only)
+	buffer-read-only
+	(inhibit-read-only t))
     (unless (eq major-mode 'gnus-article-mode)
       (gnus-article-mode))
     (setq buffer-read-only nil
@@ -3935,7 +4072,7 @@
 	(mm-remove-parts handles)
 	(goto-char (point-min))
 	(or (search-forward "\n\n") (goto-char (point-max)))
-	(let (buffer-read-only)
+	(let ((inhibit-read-only t))
 	  (delete-region (point) (point-max))
 	  (mm-display-parts handles))))))
 
@@ -3946,6 +4083,7 @@
 and `gnus-mime-delete-part', and not provided at run-time normally."
     (gnus-article-edit-article
      `(lambda ()
+	(buffer-disable-undo)
 	(erase-buffer)
 	(let ((mail-parse-charset (or gnus-article-charset
 				      ',gnus-newsgroup-charset))
@@ -4039,6 +4177,8 @@
 	    (or (mail-content-type-get (mm-handle-disposition data) 'filename)
 		none))
 	   (type (mm-handle-media-type data)))
+      (unless data
+	(error "No MIME part under point"))
       (with-current-buffer (mm-handle-buffer data)
 	(let ((bsize (format "%s" (buffer-size))))
 	  (erase-buffer)
@@ -4120,60 +4260,63 @@
 	    (mm-merge-handles gnus-article-mime-handles handle))
       (gnus-mm-display-part handle))))
 
-(eval-when-compile
-  (require 'jka-compr))
-
-;; jka-compr.el uses a "sh -c" to direct stderr to err-file, but these days
-;; emacs can do that itself.
-;;
-(defun gnus-mime-jka-compr-maybe-uncompress ()
-  "Uncompress the current buffer if `auto-compression-mode' is enabled.
-The uncompress method used is derived from `buffer-file-name'."
-  (when (and (fboundp 'jka-compr-installed-p)
-             (jka-compr-installed-p))
-    (let ((info (jka-compr-get-compression-info buffer-file-name)))
-      (when info
-        (let ((basename (file-name-nondirectory buffer-file-name))
-              (args     (jka-compr-info-uncompress-args    info))
-              (prog     (jka-compr-info-uncompress-program info))
-              (message  (jka-compr-info-uncompress-message info))
-              (err-file (jka-compr-make-temp-name)))
-          (if message
-              (message "%s %s..." message basename))
-          (unwind-protect
-              (unless (memq (apply 'call-process-region
-                                   (point-min) (point-max)
-                                   prog
-                                   t (list t err-file) nil
-                                   args)
-                            jka-compr-acceptable-retval-list)
-                (jka-compr-error prog args basename message err-file))
-            (jka-compr-delete-temp-file err-file)))))))
-
-(defun gnus-mime-copy-part (&optional handle)
+(defun gnus-mime-copy-part (&optional handle arg)
   "Put the MIME part under point into a new buffer.
 If `auto-compression-mode' is enabled, compressed files like .gz and .bz2
 are decompressed."
-  (interactive)
+  (interactive (list nil current-prefix-arg))
   (gnus-article-check-buffer)
-  (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
-	 (contents (and handle (mm-get-part handle)))
-	 (base (and handle
-		    (file-name-nondirectory
-		     (or
-		      (mail-content-type-get (mm-handle-type handle) 'name)
-		      (mail-content-type-get (mm-handle-disposition handle)
-					     'filename)
-		      "*decoded*"))))
-	 (buffer (and base (generate-new-buffer base))))
-    (when contents
-      (switch-to-buffer buffer)
-      (insert contents)
+  (unless handle
+    (setq handle (get-text-property (point) 'gnus-data)))
+  (when handle
+    (let ((filename (or (mail-content-type-get (mm-handle-disposition handle)
+					       'name)
+			(mail-content-type-get (mm-handle-disposition handle)
+					       'filename)))
+	  contents dont-decode charset coding-system)
+      (mm-with-unibyte-buffer
+	(mm-insert-part handle)
+	(setq contents (or (condition-case nil
+			       (mm-decompress-buffer filename nil 'sig)
+			     (error
+			      (setq dont-decode t)
+			      nil))
+			   (buffer-string))))
+      (setq filename (cond (filename (file-name-nondirectory filename))
+			   (dont-decode "*raw data*")
+			   (t "*decoded*")))
+      (cond
+       (dont-decode)
+       ((not arg)
+	(unless (setq charset (mail-content-type-get
+			       (mm-handle-type handle) 'charset))
+	  (unless (setq coding-system (mm-with-unibyte-buffer
+					(insert contents)
+					(mm-find-buffer-file-coding-system)))
+	    (setq charset gnus-newsgroup-charset))))
+       ((numberp arg)
+	(setq charset (or (cdr (assq arg
+				     gnus-summary-show-article-charset-alist))
+			  (mm-read-coding-system "Charset: ")))))
+      (switch-to-buffer (generate-new-buffer filename))
+      (if (or coding-system
+	      (and charset
+		   (setq coding-system (mm-charset-to-coding-system charset))
+		   (not (eq charset 'ascii))))
+	  (progn
+	    (mm-enable-multibyte)
+	    (insert (mm-decode-coding-string contents coding-system))
+	    (setq buffer-file-coding-system
+		  (if (boundp 'last-coding-system-used)
+		      (symbol-value 'last-coding-system-used)
+		    coding-system)))
+	(mm-disable-multibyte)
+	(insert contents)
+	(setq buffer-file-coding-system mm-binary-coding-system))
       ;; We do it this way to make `normal-mode' set the appropriate mode.
       (unwind-protect
 	  (progn
-	    (setq buffer-file-name (expand-file-name base))
-	    (gnus-mime-jka-compr-maybe-uncompress)
+	    (setq buffer-file-name (expand-file-name filename))
 	    (normal-mode))
 	(setq buffer-file-name nil))
       (goto-char (point-min)))))
@@ -4204,37 +4347,57 @@
 	  (ps-despool filename)))))
 
 (defun gnus-mime-inline-part (&optional handle arg)
-  "Insert the MIME part under point into the current buffer."
+  "Insert the MIME part under point into the current buffer.
+Compressed files like .gz and .bz2 are decompressed."
   (interactive (list nil current-prefix-arg))
   (gnus-article-check-buffer)
-  (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
-	 contents charset
-	 (b (point))
-	 buffer-read-only)
-    (when handle
+  (unless handle
+    (setq handle (get-text-property (point) 'gnus-data)))
+  (when handle
+    (let ((b (point))
+	  (inhibit-read-only t)
+	  contents charset coding-system)
       (if (and (not arg) (mm-handle-undisplayer handle))
 	  (mm-remove-part handle)
-	(setq contents (mm-get-part handle))
+	(mm-with-unibyte-buffer
+	  (mm-insert-part handle)
+	  (setq contents
+		(or (mm-decompress-buffer
+		     (or (mail-content-type-get (mm-handle-disposition handle)
+						'name)
+			 (mail-content-type-get (mm-handle-disposition handle)
+						'filename))
+		     nil t)
+		    (buffer-string))))
 	(cond
 	 ((not arg)
-	  (setq charset (or (mail-content-type-get
-			     (mm-handle-type handle) 'charset)
-			    gnus-newsgroup-charset)))
+	  (unless (setq charset (mail-content-type-get
+				 (mm-handle-type handle) 'charset))
+	    (unless (setq coding-system
+			  (mm-with-unibyte-buffer
+			    (insert contents)
+			    (mm-find-buffer-file-coding-system)))
+	      (setq charset gnus-newsgroup-charset))))
 	 ((numberp arg)
 	  (if (mm-handle-undisplayer handle)
 	      (mm-remove-part handle))
 	  (setq charset
 		(or (cdr (assq arg
 			       gnus-summary-show-article-charset-alist))
-		    (mm-read-coding-system "Charset: ")))))
+		    (mm-read-coding-system "Charset: "))))
+	 (t
+	  (if (mm-handle-undisplayer handle)
+	      (mm-remove-part handle))))
 	(forward-line 2)
-	(mm-insert-inline handle
-			  (if (and charset
-				   (setq charset (mm-charset-to-coding-system
-						  charset))
-				   (not (eq charset 'ascii)))
-			      (mm-decode-coding-string contents charset)
-			    contents))
+	(mm-insert-inline
+	 handle
+	 (if (or coding-system
+		 (and charset
+		      (setq coding-system
+			    (mm-charset-to-coding-system charset))
+		      (not (eq charset 'ascii))))
+	     (mm-decode-coding-string contents coding-system)
+	   (mm-string-to-multibyte contents)))
 	(goto-char b)))))
 
 (defun gnus-mime-view-part-as-charset (&optional handle arg)
@@ -4245,7 +4408,7 @@
   (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
 	 contents charset
 	 (b (point))
-	 buffer-read-only)
+	 (inhibit-read-only t))
     (when handle
       (if (mm-handle-undisplayer handle)
 	  (mm-remove-part handle))
@@ -4284,7 +4447,7 @@
 	 (mail-parse-ignored-charsets
 	  (with-current-buffer gnus-summary-buffer
 	    gnus-newsgroup-ignored-charsets))
-	 buffer-read-only)
+	 (inhibit-read-only t))
     (when handle
       (if (mm-handle-undisplayer handle)
 	  (mm-remove-part handle)
@@ -4345,8 +4508,8 @@
 
 (defun gnus-article-mime-match-handle-first (condition)
   (if condition
-      (let ((alist gnus-article-mime-handle-alist) ihandle n)
-	(while (setq ihandle (pop alist))
+      (let (n)
+	(dolist (ihandle gnus-article-mime-handle-alist)
 	  (if (and (cond
 		    ((functionp condition)
 		     (funcall condition (cdr ihandle)))
@@ -4387,7 +4550,7 @@
   "Display HANDLE and fix MIME button."
   (let ((id (get-text-property (point) 'gnus-part))
 	(point (point))
-	buffer-read-only)
+	(inhibit-read-only t))
     (forward-line 1)
     (prog1
 	(let ((window (selected-window))
@@ -4513,11 +4676,15 @@
 	  ;; We have to do this since selecting the window
 	  ;; may change the point.  So we set the window point.
 	  (set-window-point window point)))
-      (let* ((handles (or ihandles
-			  (mm-dissect-buffer nil gnus-article-loose-mime)
-			  (and gnus-article-emulate-mime
-			       (mm-uu-dissect))))
-	     buffer-read-only handle name type b e display)
+      (let ((handles ihandles)
+	    (inhibit-read-only t)
+	    handle)
+	(cond (handles)
+	      ((setq handles (mm-dissect-buffer nil gnus-article-loose-mime))
+	       (when gnus-article-emulate-mime
+		 (mm-uu-dissect-text-parts handles)))
+	      (gnus-article-emulate-mime
+	       (setq handles (mm-uu-dissect))))
 	(when (and (not ihandles)
 		   (not gnus-displaying-mime))
 	  ;; Top-level call; we clean up.
@@ -4550,7 +4717,8 @@
 	    (save-restriction
 	      (article-goto-body)
 	      (narrow-to-region (point-min) (point))
-	      (gnus-treat-article 'head))))))))
+	      (gnus-article-save-original-date
+	       (gnus-treat-article 'head)))))))))
 
 (defcustom gnus-mime-display-multipart-as-mixed nil
   "Display \"multipart\" parts as  \"multipart/mixed\".
@@ -4563,6 +4731,7 @@
 
 (defcustom gnus-mime-display-multipart-alternative-as-mixed nil
   "Display \"multipart/alternative\" parts as  \"multipart/mixed\"."
+  :version "22.1"
   :group 'gnus-article-mime
   :type 'boolean)
 
@@ -4572,6 +4741,7 @@
 If displaying \"text/html\" is discouraged \(see
 `mm-discouraged-alternatives'\) images or other material inside a
 \"multipart/related\" part might be overlooked when this variable is nil."
+  :version "22.1"
   :group 'gnus-article-mime
   :type 'boolean)
 
@@ -4676,7 +4846,7 @@
 	      (forward-line -1)
 	      (setq beg (point)))
 	    (gnus-article-insert-newline)
-	    (mm-insert-inline handle (mm-get-part handle))
+	    (mm-display-inline handle)
 	    (goto-char (point-max))))
 	  ;; Do highlighting.
 	  (save-excursion
@@ -4710,7 +4880,7 @@
   (let* ((preferred (or preferred (mm-preferred-alternative handles)))
 	 (ihandles handles)
 	 (point (point))
-	 handle buffer-read-only from props begend not-pref)
+	 handle (inhibit-read-only t) from props begend not-pref)
     (save-window-excursion
       (save-restriction
 	(when ibegend
@@ -4912,7 +5082,7 @@
     (widen)
     ;; Remove any old next/prev buttons.
     (when (gnus-visual-p 'page-marker)
-      (let ((buffer-read-only nil))
+      (let ((inhibit-read-only t))
 	(gnus-remove-text-with-property 'gnus-prev)
 	(gnus-remove-text-with-property 'gnus-next)))
     (if
@@ -4932,12 +5102,12 @@
 	   (match-beginning 0)
 	 (point)))
       (when (and (gnus-visual-p 'page-marker)
-		 (not (= (point-min) 1)))
+		 (> (point-min) (save-restriction (widen) (point-min))))
 	(save-excursion
 	  (goto-char (point-min))
 	  (gnus-insert-prev-page-button)))
       (when (and (gnus-visual-p 'page-marker)
-		 (< (+ (point-max) 2) (buffer-size)))
+		 (< (point-max) (save-restriction (widen) (point-max))))
 	(save-excursion
 	  (goto-char (point-max))
 	  (gnus-insert-next-page-button))))))
@@ -4988,6 +5158,7 @@
 	      (save-excursion
 		(save-restriction
 		  (widen)
+		  (forward-line)
 		  (eobp)))) ;Real end-of-buffer?
 	  (progn
 	    (when gnus-article-over-scroll
@@ -5162,7 +5333,7 @@
 	      (when (eq win (selected-window))
 		(setq new-sum-point (point)
 		      new-sum-start (window-start win)
-		      new-sum-hscroll (window-hscroll win))
+		      new-sum-hscroll (window-hscroll win)))
 	      (when (eq in-buffer (current-buffer))
 		(setq selected (gnus-summary-select-article))
 		(set-buffer obuf)
@@ -5178,7 +5349,7 @@
 			   new-sum-point)
 		  (set-window-point win new-sum-point)
 		  (set-window-start win new-sum-start)
-		  (set-window-hscroll win new-sum-hscroll)))))
+		  (set-window-hscroll win new-sum-hscroll))))
 	  (set-window-configuration owin)
 	  (ding))))))
 
@@ -5231,7 +5402,7 @@
   (interactive "P")
   (let ((article (cdr gnus-article-current))
 	contents)
-    (if (not (gnus-mark-active-p))
+    (if (not (gnus-region-active-p))
 	(with-current-buffer gnus-summary-buffer
 	  (gnus-summary-reply (list (list article)) wide))
       (setq contents (buffer-substring (point) (mark t)))
@@ -5250,7 +5421,7 @@
   (interactive)
   (let ((article (cdr gnus-article-current))
 	contents)
-      (if (not (gnus-mark-active-p))
+      (if (not (gnus-region-active-p))
 	  (with-current-buffer gnus-summary-buffer
 	    (gnus-summary-followup (list (list article))))
 	(setq contents (buffer-substring (point) (mark t)))
@@ -5389,7 +5560,7 @@
 		  (backend (car (gnus-find-method-for-group
 				 gnus-newsgroup-name)))
 		  result
-		  (buffer-read-only nil))
+		  (inhibit-read-only t))
 	      (if (or (not (listp methods))
 		      (and (symbolp (car methods))
 			   (assq (car methods) nnoo-definition-alist)))
@@ -5441,7 +5612,7 @@
 	    (buffer-disable-undo)
 	    (setq major-mode 'gnus-original-article-mode)
 	    (setq buffer-read-only t))
-	  (let (buffer-read-only)
+	  (let ((inhibit-read-only t))
 	    (erase-buffer)
 	    (insert-buffer-substring gnus-article-buffer))
 	  (setq gnus-original-article (cons group article)))
@@ -5539,7 +5710,7 @@
     ["Body" message-goto-body t]
     ["Signature" message-goto-signature t]))
 
-(define-derived-mode gnus-article-edit-mode text-mode "Article Edit"
+(define-derived-mode gnus-article-edit-mode message-mode "Article Edit"
   "Major mode for editing articles.
 This is an extended text-mode.
 
@@ -5578,7 +5749,10 @@
   "Start editing the contents of the current article buffer."
   (let ((winconf (current-window-configuration)))
     (set-buffer gnus-article-buffer)
-    (gnus-article-edit-mode)
+    (let ((message-auto-save-directory
+	   ;; Don't associate the article buffer with a draft file.
+	   nil))
+      (gnus-article-edit-mode))
     (funcall start-func)
     (set-buffer-modified-p nil)
     (gnus-configure-windows 'edit-article)
@@ -5669,6 +5843,7 @@
 (defcustom gnus-button-valid-fqdn-regexp
   message-valid-fqdn-regexp
   "Regular expression that matches a valid FQDN."
+  :version "22.1"
   :group 'gnus-article-buttons
   :type 'regexp)
 
@@ -5676,6 +5851,7 @@
   "Function to use for displaying man pages.
 The function must take at least one argument with a string naming the
 man page."
+  :version "22.1"
   :type '(choice (function-item :tag "Man" manual-entry)
 		 (function-item :tag "Woman" woman)
 		 (function :tag "Other"))
@@ -5686,6 +5862,7 @@
 If the default site is too slow, try to find a CTAN mirror, see
 <URL:http://tug.ctan.org/tex-archive/CTAN.sites?action=/index.html>.  See also
 the variable `gnus-button-handle-ctan'."
+  :version "22.1"
   :group 'gnus-article-buttons
   :link '(custom-manual "(gnus)Group Parameters")
   :type '(choice (const "http://www.tex.ac.uk/tex-archive/")
@@ -5696,12 +5873,14 @@
 (defcustom gnus-button-ctan-handler 'browse-url
   "Function to use for displaying CTAN links.
 The function must take one argument, the string naming the URL."
+  :version "22.1"
   :type '(choice (function-item :tag "Browse Url" browse-url)
 		 (function :tag "Other"))
   :group 'gnus-article-buttons)
 
 (defcustom gnus-button-handle-ctan-bogus-regexp "^/?tex-archive/\\|^/"
   "Bogus strings removed from CTAN URLs."
+  :version "22.1"
   :group 'gnus-article-buttons
   :type '(choice (const "^/?tex-archive/\\|/")
 		 (regexp :tag "Other")))
@@ -5715,6 +5894,7 @@
    "\\)")
   "Regular expression for ctan directories.
 It should match all directories in the top level of `gnus-ctan-url'."
+  :version "22.1"
   :group 'gnus-article-buttons
   :type 'regexp)
 
@@ -5724,6 +5904,7 @@
 	  gnus-button-valid-fqdn-regexp
 	  ">?\\)\\b")
   "Regular expression that matches a message ID or a mail address."
+  :version "22.1"
   :group 'gnus-article-buttons
   :type 'regexp)
 
@@ -5735,6 +5916,7 @@
 symbol `ask', always query the user what do do.  If it is a function, this
 function will be called with the string as it's only argument.  The function
 must return `mid', `mail', `invalid' or `ask'."
+  :version "22.1"
   :group 'gnus-article-buttons
   :type '(choice (function-item :tag "Heuristic function"
 				gnus-button-mid-or-mail-heuristic)
@@ -5798,6 +5980,7 @@
 
 A negative RATE indicates a message IDs, whereas a positive indicates a mail
 address.  The REGEXP is processed with `case-fold-search' set to nil."
+  :version "22.1"
   :group 'gnus-article-buttons
   :type '(repeat (cons (number :tag "Rate")
 		       (regexp :tag "Regexp"))))
@@ -5982,6 +6165,7 @@
 specific groups.  Setting it higher in TeX groups is probably a good idea.
 See Info node `(gnus)Group Parameters' and the variable `gnus-parameters' on
 how to set variables in specific groups."
+  :version "22.1"
   :group 'gnus-article-buttons
   :link '(custom-manual "(gnus)Group Parameters")
   :type 'integer)
@@ -5993,6 +6177,7 @@
 specific groups.  Setting it higher in Unix groups is probably a good idea.
 See Info node `(gnus)Group Parameters' and the variable `gnus-parameters' on
 how to set variables in specific groups."
+  :version "22.1"
   :group 'gnus-article-buttons
   :link '(custom-manual "(gnus)Group Parameters")
   :type 'integer)
@@ -6004,6 +6189,7 @@
 specific groups.  Setting it higher in Emacs or Gnus related groups is
 probably a good idea.  See Info node `(gnus)Group Parameters' and the variable
 `gnus-parameters' on how to set variables in specific groups."
+  :version "22.1"
   :group 'gnus-article-buttons
   :link '(custom-manual "(gnus)Group Parameters")
   :type 'integer)
@@ -6013,6 +6199,7 @@
 The higher the number, the more buttons will appear and the more false
 positives are possible."
   ;; mail addresses, MIDs, URLs for news, ...
+  :version "22.1"
   :group 'gnus-article-buttons
   :type 'integer)
 
@@ -6021,6 +6208,7 @@
 The higher the number, the more buttons will appear and the more false
 positives are possible."
   ;; stuff handled by `browse-url' or `gnus-button-embedded-url'
+  :version "22.1"
   :group 'gnus-article-buttons
   :type 'integer)
 
@@ -6089,8 +6277,9 @@
     ("M-x[ \t\n]+apropos-documentation[ \t\n]+RET[ \t\n]+\\([^ \t\n]+\\)[ \t\n]+RET"
      0 (>= gnus-button-emacs-level 1) gnus-button-handle-apropos-documentation 1)
     ;; The following entries may lead to many false positives so don't enable
-    ;; them by default (use a high button level):
-    ("/\\([a-z][-a-z0-9]+\\.el\\)\\>"
+    ;; them by default (use a high button level).
+    ("/\\([a-z][-a-z0-9]+\\.el\\)\\>[^.?]"
+     ;; Exclude [.?] for URLs in gmane.emacs.cvs
      1 (>= gnus-button-emacs-level 8) gnus-button-handle-library 1)
     ("`\\([a-z][-a-z0-9]+\\.el\\)'"
      1 (>= gnus-button-emacs-level 8) gnus-button-handle-library 1)
@@ -6123,16 +6312,16 @@
     (gnus-button-url-regexp
      0 (>= gnus-button-browse-level 0) browse-url 0)
     ;; man pages
-    ("\\b\\([a-z][a-z]+\\)([1-9])\\W"
+    ("\\b\\([a-z][a-z]+([1-9])\\)\\W"
      0 (and (>= gnus-button-man-level 1) (< gnus-button-man-level 3))
      gnus-button-handle-man 1)
     ;; more man pages: resolv.conf(5), iso_8859-1(7), xterm(1x)
-    ("\\b\\([a-z][-_.a-z0-9]+\\)([1-9])\\W"
+    ("\\b\\([a-z][-_.a-z0-9]+([1-9])\\)\\W"
      0 (and (>= gnus-button-man-level 3) (< gnus-button-man-level 5))
      gnus-button-handle-man 1)
     ;; even more: Apache::PerlRun(3pm), PDL::IO::FastRaw(3pm),
     ;; SoWWWAnchor(3iv), XSelectInput(3X11), X(1), X(7)
-    ("\\b\\([a-z][-+_.:a-z0-9]+\\)([1-9][X1a-z]*)\\W\\|\\b\\(X\\)([1-9])\\W"
+    ("\\b\\(\\(?:[a-z][-+_.:a-z0-9]+([1-9][X1a-z]*)\\)\\|\\b\\(?:X([1-9])\\)\\)\\W"
      0 (>= gnus-button-man-level 5) gnus-button-handle-man 1)
     ;; MID or mail: To avoid too many false positives we don't try to catch
     ;; all kind of allowed MIDs or mail addresses.  Domain part must contain
@@ -6169,13 +6358,15 @@
     ("^\\(From\\|Reply-To\\):" ": *\\(.+\\)$"
      1 (>= gnus-button-message-level 0) gnus-button-reply 1)
     ("^\\(Cc\\|To\\):" "[^ \t\n<>,()\"]+@[^ \t\n<>,()\"]+"
-     0 (>= gnus-button-message-level 0) gnus-button-mailto 0)
+     0 (>= gnus-button-message-level 0) gnus-msg-mail 0)
     ("^X-[Uu][Rr][Ll]:" gnus-button-url-regexp
      0 (>= gnus-button-browse-level 0) browse-url 0)
     ("^Subject:" gnus-button-url-regexp
      0 (>= gnus-button-browse-level 0) browse-url 0)
     ("^[^:]+:" gnus-button-url-regexp
      0 (>= gnus-button-browse-level 0) browse-url 0)
+    ("^OpenPGP:.*url=" gnus-button-url-regexp
+     0 (>= gnus-button-browse-level 0) gnus-button-openpgp 0)
     ("^[^:]+:" "\\bmailto:\\([-a-z.@_+0-9%=?&/]+\\)"
      0 (>= gnus-button-message-level 0) gnus-url-mailto 1)
     ("^[^:]+:" "\\(<\\(url: \\)?\\(nntp\\|news\\):\\([^>\n ]*\\)>\\)"
@@ -6252,9 +6443,8 @@
   "Highlight article headers as specified by `gnus-header-face-alist'."
   (interactive)
   (gnus-with-article-headers
-    (let ((alist gnus-header-face-alist)
-	  entry regexp header-face field-face from hpoints fpoints)
-      (while (setq entry (pop alist))
+    (let (regexp header-face field-face from hpoints fpoints)
+      (dolist (entry gnus-header-face-alist)
 	(goto-char (point-min))
 	(setq regexp (concat "^\\("
 			     (if (string-equal "" (nth 0 entry))
@@ -6352,11 +6542,9 @@
   "Add buttons to the head of the article."
   (interactive)
   (gnus-with-article-headers
-    (let ((alist gnus-header-button-alist)
-	  entry beg end)
-      (while alist
+    (let (beg end)
+      (dolist (entry gnus-header-button-alist)
 	;; Each alist entry.
-	(setq entry (pop alist))
 	(goto-char (point-min))
 	(while (re-search-forward (car entry) nil t)
 	  ;; Each header matching the entry.
@@ -6454,15 +6642,18 @@
 		      (cons fun args)))))))
 
 (defun gnus-parse-news-url (url)
-  (let (scheme server group message-id articles)
+  (let (scheme server port group message-id articles)
     (with-temp-buffer
       (insert url)
       (goto-char (point-min))
       (when (looking-at "\\([A-Za-z]+\\):")
 	(setq scheme (match-string 1))
 	(goto-char (match-end 0)))
-      (when (looking-at "//\\([^/]+\\)/")
+      (when (looking-at "//\\([^:/]+\\)\\(:?\\)\\([0-9]+\\)?/")
 	(setq server (match-string 1))
+	(setq port (if (stringp (match-string 3))
+		       (string-to-number (match-string 3))
+		     (match-string 3)))
 	(goto-char (match-end 0)))
 
       (cond
@@ -6475,18 +6666,23 @@
 	(setq group (match-string 1)))
        (t
 	(error "Unknown news URL syntax"))))
-    (list scheme server group message-id articles)))
+    (list scheme server port group message-id articles)))
 
 (defun gnus-button-handle-news (url)
   "Fetch a news URL."
-  (destructuring-bind (scheme server group message-id articles)
+  (destructuring-bind (scheme server port group message-id articles)
       (gnus-parse-news-url url)
     (cond
      (message-id
       (save-excursion
 	(set-buffer gnus-summary-buffer)
 	(if server
-	    (let ((gnus-refer-article-method (list (list 'nntp server))))
+	    (let ((gnus-refer-article-method
+		   (nconc (list (list 'nntp server))
+			  gnus-refer-article-method))
+		  (nntp-port-number (or port "nntp")))
+	      (gnus-message 7 "Fetching %s with %s"
+			    message-id gnus-refer-article-method)
 	      (gnus-summary-refer-article message-id))
 	  (gnus-summary-refer-article message-id))))
      (group
@@ -6494,6 +6690,10 @@
 
 (defun gnus-button-handle-man (url)
   "Fetch a man page."
+  (gnus-message 9 "`%s' `%s'" gnus-button-man-handler url)
+  (when (eq gnus-button-man-handler 'woman)
+    (setq url (gnus-replace-in-string url "([1-9][X1a-z]*).*\\'" "")))
+  (gnus-message 9 "`%s' `%s'" gnus-button-man-handler url)
   (funcall gnus-button-man-handler url))
 
 (defun gnus-button-handle-info-url (url)
@@ -6518,10 +6718,10 @@
   (if (string-match "\\([^#]+\\)#?\\(.*\\)" url)
       (gnus-info-find-node
        (concat "("
-	       (gnus-url-unhex-string 
+	       (gnus-url-unhex-string
 		 (match-string 1 url))
 	       ")"
-	       (or (gnus-url-unhex-string 
+	       (or (gnus-url-unhex-string
 		    (match-string 2 url))
 		   "Top")))
     (error "Can't parse %s" url)))
@@ -6537,6 +6737,13 @@
   (Info-directory)
   (Info-menu url))
 
+(defun gnus-button-openpgp (url)
+  "Retrieve and add an OpenPGP key given URL from an OpenPGP header."
+  (with-temp-buffer
+    (mm-url-insert-file-contents-external url)
+    (pgg-snarf-keys-region (point-min) (point-max))
+    (pgg-display-output-buffer nil nil nil)))
+
 (defun gnus-button-message-id (message-id)
   "Fetch MESSAGE-ID."
   (with-current-buffer gnus-summary-buffer
@@ -6625,13 +6832,16 @@
 
 (defvar gnus-next-page-map
   (let ((map (make-sparse-keymap)))
+    (unless (>= emacs-major-version 21)
+      ;; XEmacs doesn't care.
+      (set-keymap-parent map gnus-article-mode-map))
     (define-key map gnus-mouse-2 'gnus-button-next-page)
     (define-key map "\r" 'gnus-button-next-page)
     map))
 
 (defun gnus-insert-prev-page-button ()
   (let ((b (point))
-	(buffer-read-only nil))
+	(inhibit-read-only t))
     (gnus-eval-format
      gnus-prev-page-line-format nil
      `(keymap ,gnus-prev-page-map
@@ -6664,7 +6874,7 @@
 
 (defun gnus-insert-next-page-button ()
   (let ((b (point))
-	(buffer-read-only nil))
+	(inhibit-read-only t))
     (gnus-eval-format gnus-next-page-line-format nil
 		      `(keymap ,gnus-next-page-map
 			  gnus-next t
@@ -6699,7 +6909,7 @@
   "List of methods used to decode headers.
 
 This variable is a list of FUNCTION or (REGEXP . FUNCTION).  If item
-is FUNCTION, FUNCTION will be apply to all newsgroups.  If item is a
+is FUNCTION, FUNCTION will be applied to all newsgroups.  If item is a
 \(REGEXP . FUNCTION), FUNCTION will be only apply to the newsgroups
 whose names match REGEXP.
 
@@ -6838,7 +7048,7 @@
 	  (setq references
 	      (or (mail-header-references gnus-current-headers) ""))
 	  (set-buffer gnus-article-buffer)
-	  (let* ((buffer-read-only nil)
+	  (let* ((inhibit-read-only t)
 		 (headers
 		  (mapcar (lambda (field)
 			    (and (save-restriction
@@ -6916,7 +7126,7 @@
 (defun gnus-mime-security-verify-or-decrypt (handle)
   (mm-remove-parts (cdr handle))
   (let ((region (mm-handle-multipart-ctl-parameter handle 'gnus-region))
-	point buffer-read-only)
+	point (inhibit-read-only t))
     (if region
 	(goto-char (car region)))
     (save-restriction
@@ -6946,7 +7156,7 @@
 		 (not (get-text-property (point) 'gnus-mime-details)))
 		(gnus-mime-security-button-line-format
 		 (get-text-property (point) 'gnus-line-format))
-		buffer-read-only)
+		(inhibit-read-only t))
 	    (forward-char -1)
 	    (while (eq (get-text-property (point) 'gnus-line-format)
 		       gnus-mime-security-button-line-format)
@@ -7056,4 +7266,5 @@
 
 (run-hooks 'gnus-art-load-hook)
 
+;;; arch-tag: 2654516f-6279-48f9-a83b-05c1fa450c33
 ;;; gnus-art.el ends here
Index: gnus/lisp/gnus-async.el
diff -u gnus/lisp/gnus-async.el:7.1 gnus/lisp/gnus-async.el:7.5
--- gnus/lisp/gnus-async.el:7.1	Sun Jan  4 22:51:00 2004
+++ gnus/lisp/gnus-async.el	Sun Mar 13 03:58:29 2005
@@ -32,6 +32,10 @@
 (require 'gnus-sum)
 (require 'nntp)
 
+(eval-when-compile
+  (when (featurep 'xemacs)
+    (require 'timer-funcs)))
+
 (defgroup gnus-asynchronous nil
   "Support for asynchronous operations."
   :group 'gnus)
@@ -269,28 +273,29 @@
 	  (nntp-server-buffer (current-buffer))
 	  (nntp-have-messaged nil)
 	  (tries 0))
-      (condition-case nil
-	  ;; FIXME: we could stop waiting after some
-	  ;; timeout, but this is the wrong place to do it.
-	  ;; rather than checking time-spent-waiting, we
-	  ;; should check time-since-last-output, which
-	  ;; needs to be done in nntp.el.
-	  (while (eq article gnus-async-current-prefetch-article)
-	    (incf tries)
-	    (when (nntp-accept-process-output proc)
-	      (setq tries 0))
-	    (when (and (not nntp-have-messaged)
-		       (= tries 3))
-	      (gnus-message 5 "Waiting for async article...")
-	      (setq nntp-have-messaged t)))
-	(quit
-	 ;; if the user interrupted on a slow/hung connection,
-	 ;; do something friendly.
-	 (when (> tries 3)
-	   (setq gnus-async-current-prefetch-article nil))
-	 (signal 'quit nil)))
-      (when nntp-have-messaged
-	(gnus-message 5 "")))))
+      (when proc
+	(condition-case nil
+	    ;; FIXME: we could stop waiting after some
+	    ;; timeout, but this is the wrong place to do it.
+	    ;; rather than checking time-spent-waiting, we
+	    ;; should check time-since-last-output, which
+	    ;; needs to be done in nntp.el.
+	    (while (eq article gnus-async-current-prefetch-article)
+	      (incf tries)
+	      (when (nntp-accept-process-output proc)
+		(setq tries 0))
+	      (when (and (not nntp-have-messaged)
+			 (= tries 3))
+		(gnus-message 5 "Waiting for async article...")
+		(setq nntp-have-messaged t)))
+	  (quit
+	   ;; if the user interrupted on a slow/hung connection,
+	   ;; do something friendly.
+	   (when (> tries 3)
+	     (setq gnus-async-current-prefetch-article nil))
+	   (signal 'quit nil)))
+	(when nntp-have-messaged
+	  (gnus-message 5 ""))))))
 
 (defun gnus-async-delete-prefetched-entry (entry)
   "Delete ENTRY from buffer and alist."
@@ -306,13 +311,11 @@
   "Remove all articles belonging to GROUP from the prefetch buffer."
   (when (and (gnus-group-asynchronous-p group)
 	     (memq 'exit gnus-prefetched-article-deletion-strategy))
-    (let ((alist gnus-async-article-alist))
-      (save-excursion
-	(gnus-async-set-buffer)
-	(while alist
-	  (when (equal group (nth 3 (car alist)))
-	    (gnus-async-delete-prefetched-entry (car alist)))
-	  (pop alist))))))
+    (save-excursion
+      (gnus-async-set-buffer)
+      (dolist (entry gnus-async-article-alist)
+	(when (equal group (nth 3 entry))
+	  (gnus-async-delete-prefetched-entry entry))))))
 
 (defun gnus-async-prefetched-article-entry (group article)
   "Return the entry for ARTICLE in GROUP iff it has been prefetched."
@@ -374,4 +377,5 @@
 
 (provide 'gnus-async)
 
+;;; arch-tag: fee61de5-3ea2-4de6-8578-2f90ce89391d
 ;;; gnus-async.el ends here
Index: gnus/lisp/gnus-audio.el
diff -u gnus/lisp/gnus-audio.el:7.1 gnus/lisp/gnus-audio.el:7.2
--- gnus/lisp/gnus-audio.el:7.1	Sun Jan  4 22:51:00 2004
+++ gnus/lisp/gnus-audio.el	Thu May 20 10:02:38 2004
@@ -146,4 +146,5 @@
 
 (run-hooks 'gnus-audio-load-hook)
 
+;;; arch-tag: 6f129e78-3416-4fc9-973f-6cf5ac8d654b
 ;;; gnus-audio.el ends here
Index: gnus/lisp/gnus-bcklg.el
diff -u gnus/lisp/gnus-bcklg.el:7.1 gnus/lisp/gnus-bcklg.el:7.2
--- gnus/lisp/gnus-bcklg.el:7.1	Sun Jan  4 22:51:00 2004
+++ gnus/lisp/gnus-bcklg.el	Thu May 20 10:02:38 2004
@@ -160,4 +160,5 @@
 
 (provide 'gnus-bcklg)
 
+;;; arch-tag: 66259e56-505a-4bba-8a0d-3552c5b94e39
 ;;; gnus-bcklg.el ends here
Index: gnus/lisp/gnus-cache.el
diff -u gnus/lisp/gnus-cache.el:7.4 gnus/lisp/gnus-cache.el:7.12
--- gnus/lisp/gnus-cache.el:7.4	Thu Apr  8 03:47:34 2004
+++ gnus/lisp/gnus-cache.el	Sun Apr 10 06:00:39 2005
@@ -1,6 +1,6 @@
 ;;; gnus-cache.el --- cache interface for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;;        Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -141,8 +141,8 @@
 		(delete-directory (file-name-directory overview-file))
 	      (error)))
 
-	  (gnus-cache-update-overview-total-fetched-for (car gnus-cache-buffer) 
-							overview-file)))
+	  (gnus-cache-update-overview-total-fetched-for
+	   (car gnus-cache-buffer) overview-file)))
       ;; Kill the buffer -- it's either unmodified or saved.
       (gnus-kill-buffer buffer)
       (setq gnus-cache-buffer nil))))
@@ -152,7 +152,8 @@
   (when (and (or force (not (eq gnus-use-cache 'passive)))
 	     (numberp article)
 	     (> article 0))		; This might be a dummy article.
-    (let ((number article) file headers)
+    (let ((number article)
+	  file headers lines-chars)
       ;; If this is a virtual group, we find the real group.
       (when (gnus-virtual-group-p group)
 	(let ((result (nnvirtual-find-group-art
@@ -182,9 +183,12 @@
 	      (let ((coding-system-for-write gnus-cache-coding-system))
 		(gnus-write-buffer file)
 		(gnus-cache-update-file-total-fetched-for group file))
+	      (setq lines-chars (nnheader-get-lines-and-char))
 	      (nnheader-remove-body)
 	      (setq headers (nnheader-parse-naked-head))
 	      (mail-header-set-number headers number)
+	      (mail-header-set-lines headers (car lines-chars))
+	      (mail-header-set-chars headers (cadr lines-chars))
 	      (gnus-cache-change-buffer group)
 	      (set-buffer (cdr gnus-cache-buffer))
 	      (goto-char (point-max))
@@ -237,12 +241,10 @@
 (defun gnus-cache-possibly-remove-articles-1 ()
   "Possibly remove some of the removable articles."
   (when (gnus-cache-fully-p gnus-newsgroup-name)
-    (let ((articles gnus-cache-removable-articles)
-	  (cache-articles gnus-newsgroup-cached)
-	  article)
+    (let ((cache-articles gnus-newsgroup-cached))
       (gnus-cache-change-buffer gnus-newsgroup-name)
-      (while articles
-	(when (memq (setq article (pop articles)) cache-articles)
+      (dolist (article gnus-cache-removable-articles)
+	(when (memq article cache-articles)
 	  ;; The article was in the cache, so we see whether we are
 	  ;; supposed to remove it from the cache.
 	  (gnus-cache-possibly-remove-article
@@ -326,9 +328,8 @@
 If not given a prefix, use the process marked articles instead.
 Returns the list of articles entered."
   (interactive "P")
-  (let ((articles (gnus-summary-work-articles n))
-	article out)
-    (while (setq article (pop articles))
+  (let (out)
+    (dolist (article (gnus-summary-work-articles n))
       (gnus-summary-remove-process-mark article)
       (if (natnump article)
 	  (when (gnus-cache-possibly-enter-article
@@ -349,10 +350,8 @@
 Returns the list of articles removed."
   (interactive "P")
   (gnus-cache-change-buffer gnus-newsgroup-name)
-  (let ((articles (gnus-summary-work-articles n))
-	article out)
-    (while articles
-      (setq article (pop articles))
+  (let (out)
+    (dolist (article (gnus-summary-work-articles n))
       (gnus-summary-remove-process-mark article)
       (when (gnus-cache-possibly-remove-article article nil nil nil t)
         (when gnus-newsgroup-agentized
@@ -423,6 +422,7 @@
       (and (not unread) (not ticked) (not dormant) (memq 'read class))))
 
 (defun gnus-cache-file-name (group article)
+  (setq group (gnus-group-decoded-name group))
   (expand-file-name
    (if (stringp article) article (int-to-string article))
    (file-name-as-directory
@@ -539,24 +539,23 @@
 
 (defun gnus-cache-braid-heads (group cached)
   (let ((cache-buf (gnus-get-buffer-create " *gnus-cache*")))
-    (save-excursion
-      (set-buffer cache-buf)
+    (with-current-buffer cache-buf
       (erase-buffer))
     (set-buffer nntp-server-buffer)
     (goto-char (point-min))
-    (while cached
+    (dolist (entry cached)
       (while (and (not (eobp))
 		  (looking-at "2.. +\\([0-9]+\\) ")
 		  (< (progn (goto-char (match-beginning 1))
 			    (read (current-buffer)))
-		     (car cached)))
+		     entry))
 	(search-forward "\n.\n" nil 'move))
       (beginning-of-line)
       (set-buffer cache-buf)
       (erase-buffer)
       (let ((coding-system-for-read
 	     gnus-cache-coding-system))
-	(insert-file-contents (gnus-cache-file-name group (car cached))))
+	(insert-file-contents (gnus-cache-file-name group entry)))
       (goto-char (point-min))
       (insert "220 ")
       (princ (car cached) (current-buffer))
@@ -566,8 +565,7 @@
       (forward-char -1)
       (insert ".")
       (set-buffer nntp-server-buffer)
-      (insert-buffer-substring cache-buf)
-      (setq cached (cdr cached)))
+      (insert-buffer-substring cache-buf))
     (kill-buffer cache-buf)))
 
 ;;;###autoload
@@ -691,13 +689,12 @@
       (gnus-sethash group (cons (car nums) (gnus-last-element nums))
 		    gnus-cache-active-hashtb))
     ;; Go through all the other files.
-    (while alphs
-      (when (and (file-directory-p (car alphs))
+    (dolist (file alphs)
+      (when (and (file-directory-p file)
 		 (not (string-match "^\\."
-				    (file-name-nondirectory (car alphs)))))
+				    (file-name-nondirectory file))))
 	;; We descend directories.
-	(gnus-cache-generate-active (car alphs)))
-      (setq alphs (cdr alphs)))
+	(gnus-cache-generate-active file)))
     ;; Write the new active file.
     (when top
       (gnus-cache-write-active t)
@@ -763,7 +760,7 @@
 disabled, as the old cache files would corrupt gnus when the cache was
 next enabled. Depends upon the caller to determine whether group deletion is supported."
   (let ((dir (gnus-cache-file-name group "")))
-    (gnus-delete-file dir))
+    (gnus-delete-directory dir))
 
   (gnus-cache-delete-group-total-fetched-for group)
 
@@ -855,4 +852,5 @@
 
 (provide 'gnus-cache)
 
+;;; arch-tag: 05a79442-8c58-4e65-bd0a-3cbb1b89a33a
 ;;; gnus-cache.el ends here
Index: gnus/lisp/gnus-cite.el
diff -u gnus/lisp/gnus-cite.el:7.4 gnus/lisp/gnus-cite.el:7.10
--- gnus/lisp/gnus-cite.el:7.4	Sat Feb 14 01:29:45 2004
+++ gnus/lisp/gnus-cite.el	Sun Feb 13 05:44:42 2005
@@ -1,6 +1,6 @@
 ;;; gnus-cite.el --- parse citations in articles for Gnus
 
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Per Abhiddenware
@@ -124,9 +124,18 @@
 (defcustom gnus-cite-unsightly-citation-regexp
   "^-----Original Message-----\nFrom: \\(.+\n\\)+\n"
   "Regexp matching Microsoft-type rest-of-message citations."
+  :version "22.1"
   :group 'gnus-cite
   :type 'regexp)
 
+(defcustom gnus-cite-ignore-quoted-from t
+  "Non-nil means don't regard lines beginning with \">From \" as cited text.
+Those lines may have been quoted by MTAs in order not to mix up with
+the envelope From line."
+  :version "22.1"
+  :group 'gnus-cite
+  :type 'boolean)
+
 (defface gnus-cite-attribution-face '((t
 				       (:italic t)))
   "Face used for attribution lines.")
@@ -134,6 +143,7 @@
 (defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face
   "Face used for attribution lines.
 It is merged with the face for the cited text belonging to the attribution."
+  :version "22.1"
   :group 'gnus-cite
   :type 'face)
 
@@ -739,6 +749,13 @@
       ;; Ignore very long prefixes.
       (when (> end (+ begin gnus-cite-max-prefix))
 	(setq end (+ begin gnus-cite-max-prefix)))
+      ;; Ignore quoted envelope From_.
+      (when (and gnus-cite-ignore-quoted-from
+		 (prog2
+		     (setq case-fold-search nil)
+		     (looking-at ">From ")
+		   (setq case-fold-search t)))
+	(setq end (1+ begin)))
       (while (re-search-forward prefix-regexp (1- end) t)
 	;; Each prefix.
 	(setq end (match-end 0)
@@ -1057,4 +1074,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;;; arch-tag: 1997b044-6067-471e-8c8f-dc903093098a
 ;;; gnus-cite.el ends here
Index: gnus/lisp/gnus-cus.el
diff -u gnus/lisp/gnus-cus.el:7.5 gnus/lisp/gnus-cus.el:7.7
--- gnus/lisp/gnus-cus.el:7.5	Wed Mar  3 06:41:22 2004
+++ gnus/lisp/gnus-cus.el	Tue Aug 24 08:54:33 2004
@@ -1,6 +1,6 @@
 ;;; gnus-cus.el --- customization commands for Gnus
 ;;
-;; Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
@@ -915,7 +915,8 @@
             (val (,field info))
             (deflt (if (,field defaults)
                        (concat " [" (gnus-trim-whitespace
-                                     (pp-to-string (,field defaults))) "]")))
+                                     (gnus-pp-to-string (,field defaults)))
+                               "]")))
             symb)
 
        (if (eq (car type) 'radio)
@@ -1057,4 +1058,5 @@
 
 (provide 'gnus-cus)
 
+;;; arch-tag: a37c285a-49bc-4235-8244-804536effeaf
 ;;; gnus-cus.el ends here
Index: gnus/lisp/gnus-delay.el
diff -u gnus/lisp/gnus-delay.el:7.2 gnus/lisp/gnus-delay.el:7.7
--- gnus/lisp/gnus-delay.el:7.2	Sat Jan 10 05:27:00 2004
+++ gnus/lisp/gnus-delay.el	Tue Apr  5 00:36:41 2005
@@ -37,10 +37,12 @@
 
 (require 'nndraft)
 (require 'gnus-draft)
+(autoload 'parse-time-string "parse-time" nil nil)
 
 ;;;###autoload
 (defgroup gnus-delay nil
   "Arrange for sending postings later."
+  :version "22.1"
   :group 'gnus)
 
 (defcustom gnus-delay-group "delayed"
@@ -60,6 +62,7 @@
 
 (defcustom gnus-delay-default-hour 8
   "*If deadline is given as date, then assume this time of day."
+  :version "22.1"
   :type 'integer
   :group 'gnus-delay)
 
@@ -192,4 +195,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;;; arch-tag: fb2ad634-a897-4142-a503-f5991ec2349d
 ;;; gnus-delay.el ends here
Index: gnus/lisp/gnus-demon.el
diff -u gnus/lisp/gnus-demon.el:7.2 gnus/lisp/gnus-demon.el:7.5
--- gnus/lisp/gnus-demon.el:7.2	Tue Jan  6 07:20:33 2004
+++ gnus/lisp/gnus-demon.el	Tue Apr  5 00:36:41 2005
@@ -37,9 +37,11 @@
 (require 'gnus-util)
 (eval-and-compile
   (if (featurep 'xemacs)
-      (require 'itimer)
+      (require 'timer-funcs)
     (require 'timer)))
 
+(autoload 'parse-time-string "parse-time" nil nil)
+
 (defgroup gnus-demon nil
   "Demonic behaviour."
   :group 'gnus)
@@ -322,4 +324,5 @@
 
 (provide 'gnus-demon)
 
+;;; arch-tag: 8dd5cd3d-6ae4-46b4-9b15-f5fca09fd392
 ;;; gnus-demon.el ends here
Index: gnus/lisp/gnus-diary.el
diff -u gnus/lisp/gnus-diary.el:7.3 gnus/lisp/gnus-diary.el:7.6
--- gnus/lisp/gnus-diary.el:7.3	Thu Feb  5 03:42:26 2004
+++ gnus/lisp/gnus-diary.el	Sun Feb 13 05:44:40 2005
@@ -102,7 +102,8 @@
 (require 'gnus-art)
 
 (defgroup gnus-diary nil
-  "Utilities on top of the nndiary backend for Gnus.")
+  "Utilities on top of the nndiary backend for Gnus."
+  :version "22.1")
 
 (defcustom gnus-diary-summary-line-format "%U%R%z %uD: %(%s%) (%ud)\n"
   "*Summary line format for nndiary groups."
@@ -457,4 +458,5 @@
 
 (provide 'gnus-diary)
 
+;;; arch-tag: 98467e70-337e-4ddc-b92d-45d403ff1b4b
 ;;; gnus-diary.el ends here
Index: gnus/lisp/gnus-dired.el
diff -u gnus/lisp/gnus-dired.el:7.2 gnus/lisp/gnus-dired.el:7.3
--- gnus/lisp/gnus-dired.el:7.2	Mon Jan  5 21:50:14 2004
+++ gnus/lisp/gnus-dired.el	Thu May 20 10:02:39 2004
@@ -203,4 +203,5 @@
 
 (provide 'gnus-dired)
 
+;;; arch-tag: 44737731-e445-4638-a31e-713c7590ec76
 ;;; gnus-dired.el ends here
Index: gnus/lisp/gnus-draft.el
diff -u gnus/lisp/gnus-draft.el:7.4 gnus/lisp/gnus-draft.el:7.7
--- gnus/lisp/gnus-draft.el:7.4	Thu Jan 22 04:44:43 2004
+++ gnus/lisp/gnus-draft.el	Thu May 20 10:02:39 2004
@@ -145,6 +145,7 @@
                                   message-setup-hook))
          (gnus-agent-queue-mail (and (not is-queue)
                                      gnus-agent-queue-mail))
+	 (rfc2047-encode-encoded-words nil)
          type method move-to)
     (gnus-draft-setup article (or group "nndraft:queue"))
     ;; We read the meta-information that says how and where
@@ -271,12 +272,13 @@
 	      `(lambda (arg)
 		 (gnus-post-method arg ,(car ga))))
 	(unless (equal (cadr ga) "")
-	  (message-add-action
-	   `(progn
-	      (gnus-add-mark ,(car ga) 'replied ,(cadr ga))
-	      (gnus-request-set-mark ,(car ga) (list (list (list ,(cadr ga))
-							   'add '(reply)))))
-	   'send))))))
+	  (dolist (article (cdr ga))
+	    (message-add-action
+	     `(progn
+		(gnus-add-mark ,(car ga) 'replied ,article)
+		(gnus-request-set-mark ,(car ga) (list (list (list ,article)
+							     'add '(reply)))))
+	     'send)))))))
 
 (defun gnus-draft-article-sendable-p (article)
   "Say whether ARTICLE is sendable."
@@ -284,4 +286,5 @@
 
 (provide 'gnus-draft)
 
+;;; arch-tag: 3d92af58-8c97-4a5c-9db4-a98e85198022
 ;;; gnus-draft.el ends here
Index: gnus/lisp/gnus-dup.el
diff -u gnus/lisp/gnus-dup.el:7.1 gnus/lisp/gnus-dup.el:7.4
--- gnus/lisp/gnus-dup.el:7.1	Sun Jan  4 22:51:00 2004
+++ gnus/lisp/gnus-dup.el	Sun Sep 26 21:05:03 2004
@@ -1,5 +1,5 @@
 ;;; gnus-dup.el --- suppression of duplicate articles in Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -84,10 +84,8 @@
     (setq gnus-dup-list nil))
   (setq gnus-dup-hashtb (gnus-make-hashtable gnus-duplicate-list-length))
   ;; Enter all Message-IDs into the hash table.
-  (let ((list gnus-dup-list)
-	(obarray gnus-dup-hashtb))
-    (while list
-      (intern (pop list)))))
+  (let ((obarray gnus-dup-hashtb))
+    (mapc 'intern gnus-dup-list)))
 
 (defun gnus-dup-read ()
   "Read the duplicate suppression list."
@@ -112,11 +110,10 @@
   (unless gnus-dup-list
     (gnus-dup-open))
   (setq gnus-dup-list-dirty t)		; mark list for saving
-  (let ((data gnus-newsgroup-data)
-	datum msgid)
+  (let (msgid)
     ;; Enter the Message-IDs of all read articles into the list
     ;; and hash table.
-    (while (setq datum (pop data))
+    (dolist (datum gnus-newsgroup-data)
       (when (and (not (gnus-data-pseudo-p datum))
 		 (> (gnus-data-number datum) 0)
 		 (not (memq (gnus-data-number datum) gnus-newsgroup-unreads))
@@ -129,6 +126,7 @@
   ;; Chop off excess Message-IDs from the list.
   (let ((end (nthcdr gnus-duplicate-list-length gnus-dup-list)))
     (when end
+      (mapc (lambda (id) (unintern id gnus-dup-hashtb)) (cdr end))
       (setcdr end nil))))
 
 (defun gnus-dup-suppress-articles ()
@@ -136,11 +134,10 @@
   (unless gnus-dup-list
     (gnus-dup-open))
   (gnus-message 6 "Suppressing duplicates...")
-  (let ((headers gnus-newsgroup-headers)
-	(auto (and gnus-newsgroup-auto-expire
+  (let ((auto (and gnus-newsgroup-auto-expire
 		   (memq gnus-duplicate-mark gnus-auto-expirable-marks)))
-	number header)
-    (while (setq header (pop headers))
+	number)
+    (dolist (header gnus-newsgroup-headers)
       (when (and (intern-soft (mail-header-id header) gnus-dup-hashtb)
 		 (gnus-summary-article-unread-p (mail-header-number header)))
 	(setq gnus-newsgroup-unreads
@@ -154,7 +151,8 @@
 
 (defun gnus-dup-unsuppress-article (article)
   "Stop suppression of ARTICLE."
-  (let ((id (mail-header-id (gnus-data-header (gnus-data-find article)))))
+  (let* ((header (gnus-data-header (gnus-data-find article)))
+	 (id     (when header (mail-header-id header))))
     (when id
       (setq gnus-dup-list-dirty t)
       (setq gnus-dup-list (delete id gnus-dup-list))
@@ -162,4 +160,5 @@
 
 (provide 'gnus-dup)
 
+;;; arch-tag: 903e94db-7b00-4d19-83ee-cf34a81fa5fb
 ;;; gnus-dup.el ends here
Index: gnus/lisp/gnus-eform.el
diff -u gnus/lisp/gnus-eform.el:7.1 gnus/lisp/gnus-eform.el:7.3
--- gnus/lisp/gnus-eform.el:7.1	Sun Jan  4 22:51:00 2004
+++ gnus/lisp/gnus-eform.el	Tue Aug 24 08:54:33 2004
@@ -1,5 +1,5 @@
 ;;; gnus-eform.el --- a mode for editing forms for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -106,7 +106,7 @@
     (insert ";; Type `C-c C-c' after you've finished editing.\n")
     (insert "\n")
     (let ((p (point)))
-      (pp form (current-buffer))
+      (gnus-pp form)
       (insert "\n")
       (goto-char p))))
 
@@ -130,4 +130,5 @@
 
 (provide 'gnus-eform)
 
+;;; arch-tag: ef50678c-2c28-49ef-affc-e53b3b2c0bf6
 ;;; gnus-eform.el ends here
Index: gnus/lisp/gnus-ems.el
diff -u gnus/lisp/gnus-ems.el:7.6 gnus/lisp/gnus-ems.el:7.11
--- gnus/lisp/gnus-ems.el:7.6	Mon Apr 26 16:32:09 2004
+++ gnus/lisp/gnus-ems.el	Thu Jun 10 04:52:27 2004
@@ -44,13 +44,10 @@
 (eval-and-compile
   (autoload 'gnus-xmas-define "gnus-xmas")
   (autoload 'gnus-xmas-redefine "gnus-xmas")
-  (autoload 'appt-select-lowest-window "appt")
   (autoload 'gnus-get-buffer-create "gnus")
   (autoload 'nnheader-find-etc-directory "nnheader"))
 
 (autoload 'smiley-region "smiley")
-;; Fixme: shouldn't require message
-(autoload 'message-text-with-property "message")
 
 (defun gnus-kill-all-overlays ()
   "Delete all overlays in the current buffer."
@@ -141,6 +138,18 @@
        gnus-mouse-face-prop gnus-mouse-face)
       (insert " " gnus-tmp-subject-or-nil "\n")))))
 
+;; Clone of `appt-select-lowest-window' in appt.el.
+(defun gnus-select-lowest-window ()
+"Select the lowest window on the frame."
+  (let ((lowest-window (selected-window))
+	(bottom-edge (nth 3 (window-edges))))
+    (walk-windows (lambda (w)
+		    (let ((next-bottom-edge (nth 3 (window-edges w))))
+		      (when (< bottom-edge next-bottom-edge)
+			(setq bottom-edge next-bottom-edge
+			      lowest-window w)))))
+    (select-window lowest-window)))
+
 (defun gnus-region-active-p ()
   "Say whether the region is active."
   (and (boundp 'transient-mark-mode)
@@ -212,14 +221,28 @@
     glyph))
 
 (defun gnus-remove-image (image &optional category)
-  (dolist (position (message-text-with-property 'display))
-    (when (and (equal (get-text-property position 'display) image)
-	       (equal (get-text-property position 'gnus-image-category)
+  "Remove the image matching IMAGE and CATEGORY found first."
+  (let ((start (point-min))
+	val end)
+    (while (and (not end)
+		(or (setq val (get-text-property start 'display))
+		    (and (setq start
+			       (next-single-property-change start 'display))
+			 (setq val (get-text-property start 'display)))))
+      (setq end (or (next-single-property-change start 'display)
+		    (point-max)))
+      (if (and (equal val image)
+	       (equal (get-text-property start 'gnus-image-category)
 		      category))
-      (put-text-property position (1+ position) 'display nil)
-      (when (get-text-property position 'gnus-image-text-deletable)
-	(delete-region position (1+ position))))))
+	  (progn
+	    (put-text-property start end 'display nil)
+	    (when (get-text-property start 'gnus-image-text-deletable)
+	      (delete-region start end)))
+	(unless (= end (point-max))
+	  (setq start end
+		end nil))))))
 
 (provide 'gnus-ems)
 
+;;; arch-tag: e7360b45-14b5-4171-aa39-69a44aed3cdb
 ;;; gnus-ems.el ends here
Index: gnus/lisp/gnus-fun.el
diff -u gnus/lisp/gnus-fun.el:7.3 gnus/lisp/gnus-fun.el:7.6
--- gnus/lisp/gnus-fun.el:7.3	Thu Feb 12 07:56:50 2004
+++ gnus/lisp/gnus-fun.el	Sun Feb 13 05:44:42 2005
@@ -34,11 +34,13 @@
 
 (defcustom gnus-x-face-directory (expand-file-name "x-faces" gnus-directory)
   "*Directory where X-Face PBM files are stored."
+  :version "22.1"
   :group 'gnus-fun
   :type 'directory)
 
 (defcustom gnus-convert-pbm-to-x-face-command "pbmtoxbm %s | compface"
   "Command for converting a PBM to an X-Face."
+  :version "22.1"
   :group 'gnus-fun
   :type 'string)
 
@@ -46,6 +48,7 @@
   "Command for converting an image to an X-Face.
 By default it takes a GIF filename and output the X-Face header data
 on stdout."
+  :version "22.1"
   :group 'gnus-fun
   :type 'string)
 
@@ -53,6 +56,7 @@
   "Command for converting an image to an Face.
 By default it takes a JPEG filename and output the Face header data
 on stdout."
+  :version "22.1"
   :group 'gnus-fun
   :type 'string)
 
@@ -275,4 +279,5 @@
 
 (provide 'gnus-fun)
 
+;;; arch-tag: 9d000a69-15cc-4491-9dc0-4627484f50c1
 ;;; gnus-fun.el ends here
Index: gnus/lisp/gnus-group.el
diff -u gnus/lisp/gnus-group.el:7.13 gnus/lisp/gnus-group.el:7.45
--- gnus/lisp/gnus-group.el:7.13	Sun Apr 25 20:01:34 2004
+++ gnus/lisp/gnus-group.el	Wed Mar 23 01:48:05 2005
@@ -440,12 +440,20 @@
 
 (defcustom gnus-group-jump-to-group-prompt nil
   "Default prompt for `gnus-group-jump-to-group'.
-If non-nil, the value should be a string, e.g. \"nnml:\",
-in which case `gnus-group-jump-to-group' offers \"Group: nnml:\"
-in the minibuffer prompt."
+
+If non-nil, the value should be a string or an alist.  If it is a string,
+e.g. \"nnml:\", in which case `gnus-group-jump-to-group' offers \"Group:
+nnml:\" in the minibuffer prompt.
+
+If it is an alist, it must consist of \(NUMBER .  PROMPT\) pairs, for example:
+\((1 .  \"\") (2 .  \"nnfolder+archive:\")).  The element with number 0 is
+used when no prefix argument is given to `gnus-group-jump-to-group'."
+  :version "22.1"
   :group 'gnus-group-various
   :type '(choice (string :tag "Prompt string")
-		 (const :tag "Empty" nil)))
+		 (const :tag "Empty" nil)
+		 (repeat (cons (integer :tag "Argument")
+			       (string :tag "Prompt string")))))
 
 (defvar gnus-group-listing-limit 1000
   "*A limit of the number of groups when listing.
@@ -489,16 +497,25 @@
     (?T (gnus-range-length (cdr (assq 'tick gnus-tmp-marked))) ?d)
     (?i (+ (gnus-range-length (cdr (assq 'dormant gnus-tmp-marked)))
 	   (gnus-range-length (cdr (assq 'tick gnus-tmp-marked)))) ?d)
-    (?g gnus-tmp-group ?s)
+    (?g (if (boundp 'gnus-tmp-decoded-group)
+	    gnus-tmp-decoded-group
+	  gnus-tmp-group)
+	?s)
     (?G gnus-tmp-qualified-group ?s)
-    (?c (gnus-short-group-name gnus-tmp-group) ?s)
+    (?c (gnus-short-group-name (if (boundp 'gnus-tmp-decoded-group)
+				   gnus-tmp-decoded-group
+				 gnus-tmp-group))
+	?s)
     (?C gnus-tmp-comment ?s)
     (?D gnus-tmp-newsgroup-description ?s)
     (?o gnus-tmp-moderated ?c)
     (?O gnus-tmp-moderated-string ?s)
     (?p gnus-tmp-process-marked ?c)
     (?s gnus-tmp-news-server ?s)
-    (?n gnus-tmp-news-method ?s)
+    (?n ,(if (featurep 'xemacs)
+	     '(symbol-name gnus-tmp-news-method)
+	   'gnus-tmp-news-method)
+	?s)
     (?P gnus-group-indentation ?s)
     (?E gnus-tmp-group-icon ?s)
     (?B gnus-tmp-summary-live ?c)
@@ -596,6 +613,7 @@
   "\M-e" gnus-group-edit-group-method
   "^" gnus-group-enter-server-mode
   gnus-mouse-2 gnus-mouse-pick-group
+  [follow-link] mouse-face
   "<" beginning-of-buffer
   ">" end-of-buffer
   "\C-c\C-b" gnus-bug
@@ -1033,7 +1051,8 @@
   (use-local-map gnus-group-mode-map)
   (buffer-disable-undo)
   (setq truncate-lines t)
-  (setq buffer-read-only t)
+  (setq buffer-read-only t
+	show-trailing-whitespace nil)
   (gnus-set-default-directory)
   (gnus-update-format-specifications nil 'group 'group-mode)
   (gnus-update-group-mark-positions)
@@ -1055,7 +1074,8 @@
       (gnus-group-insert-group-line "dummy.group" 0 nil 0 nil)
       (goto-char (point-min))
       (setq gnus-group-mark-positions
-	    (list (cons 'process (and (search-forward "\200" nil t)
+	    (list (cons 'process (and (search-forward
+				       (mm-string-as-multibyte "\200") nil t)
 				      (- (point) 2))))))))
 
 (defun gnus-mouse-pick-group (e)
@@ -1441,8 +1461,8 @@
      (point)
      (prog1 (1+ (point))
        ;; Insert the text.
-       (let ((gnus-tmp-group (gnus-group-name-decode
-			      gnus-tmp-group group-name-charset)))
+       (let ((gnus-tmp-decoded-group (gnus-group-name-decode
+				      gnus-tmp-group group-name-charset)))
 	 (eval gnus-group-line-format-spec)))
      `(gnus-group ,(gnus-intern-safe gnus-tmp-group gnus-active-hashtb)
 		  gnus-unread ,(if (numberp number)
@@ -1729,10 +1749,8 @@
 (defun gnus-group-unmark-all-groups ()
   "Unmark all groups."
   (interactive)
-  (let ((groups gnus-group-marked))
-    (save-excursion
-      (while groups
-	(gnus-group-remove-mark (pop groups)))))
+  (save-excursion
+    (mapc 'gnus-group-remove-mark gnus-group-marked))
   (gnus-group-position-point))
 
 (defun gnus-group-mark-region (unmark beg end)
@@ -1899,7 +1917,10 @@
 No article is selected automatically.
 If the group is opened, just switch the summary buffer.
 If ALL is non-nil, already read articles become readable.
-If ALL is a number, fetch this number of articles."
+If ALL is a positive number, fetch this number of the latest
+articles in the group.
+If ALL is a negative number, fetch this number of the earliest
+articles in the group."
   (interactive "P")
   (when (and (eobp) (not (gnus-group-group-name)))
     (forward-line -1))
@@ -1975,12 +1996,14 @@
 If the number of articles in a newsgroup is greater than this value,
 confirmation is required for selecting the newsgroup.  If it is nil, no
 confirmation is required."
+  :version "22.1"
   :group 'gnus-group-select
   :type '(choice (const :tag "No limit" nil)
 		 integer))
 
 (defcustom gnus-fetch-old-ephemeral-headers nil
   "Same as `gnus-fetch-old-headers', but only used for ephemeral newsgroups."
+  :version "22.1"
   :group 'gnus-thread
   :type '(choice (const :tag "off" nil)
 		 (const some)
@@ -1992,7 +2015,8 @@
 (defun gnus-group-read-ephemeral-group (group method &optional activate
 					      quit-config request-only
 					      select-articles
-					      parameters)
+					      parameters
+					      number)
   "Read GROUP from METHOD as an ephemeral group.
 If ACTIVATE, request the group first.
 If QUIT-CONFIG, use that window configuration when exiting from the
@@ -2000,6 +2024,7 @@
 If REQUEST-ONLY, don't actually read the group; just request it.
 If SELECT-ARTICLES, only select those articles.
 If PARAMETERS, use those as the group parameters.
+If NUMBER, fetch this number of articles.
 
 Return the name of the group if selection was successful."
   (interactive
@@ -2047,21 +2072,29 @@
 	  (when (let ((gnus-large-newsgroup gnus-large-ephemeral-newsgroup)
 		      (gnus-fetch-old-headers
 		       gnus-fetch-old-ephemeral-headers))
-		  (gnus-group-read-group t t group select-articles))
+		  (gnus-group-read-group (or number t) t group select-articles))
 	    group)
 	;;(error nil)
 	(quit
 	 (message "Quit reading the ephemeral group")
 	 nil)))))
 
-(defun gnus-group-jump-to-group (group)
-  "Jump to newsgroup GROUP."
+(defun gnus-group-jump-to-group (group &optional prompt)
+  "Jump to newsgroup GROUP.
+
+If PROMPT (the prefix) is a number, use the prompt specified in
+`gnus-group-jump-to-group-prompt'."
   (interactive
    (list (mm-string-make-unibyte
 	  (completing-read
 	   "Group: " gnus-active-hashtb nil
 	   (gnus-read-active-file-p)
-	   gnus-group-jump-to-group-prompt
+	   (if current-prefix-arg
+	       (cdr (assq current-prefix-arg gnus-group-jump-to-group-prompt))
+	     (or (and (stringp gnus-group-jump-to-group-prompt)
+		      gnus-group-jump-to-group-prompt)
+		 (let ((p (cdr (assq 0 gnus-group-jump-to-group-prompt))))
+		   (and (stringp p) p))))
 	   'gnus-group-history))))
 
   (when (equal group "")
@@ -2231,6 +2264,16 @@
   (interactive)
   (gnus-enter-server-buffer))
 
+(defun gnus-group-make-group-simple (&optional group)
+  "Add a new newsgroup.
+The user will be prompted for GROUP."
+  (interactive
+   (list (completing-read "Group: " gnus-active-hashtb
+			  nil nil nil 'gnus-group-history)))
+  (gnus-group-make-group
+   (gnus-group-real-name group)
+   (gnus-group-server group)))
+
 (defun gnus-group-make-group (name &optional method address args)
   "Add a new newsgroup.
 The user will be prompted for a NAME, for a select METHOD, and an
@@ -2250,7 +2293,7 @@
 	 (nname (if method (gnus-group-prefixed-name name meth) name))
 	 backend info)
     (when (gnus-group-entry nname)
-      (error "Group %s already exists" nname))
+      (error "Group %s already exists" (gnus-group-decoded-name nname)))
     ;; Subscribe to the new group.
     (gnus-group-change-level
      (setq info (list t nname gnus-level-default-subscribed nil nil meth))
@@ -2298,7 +2341,7 @@
   "Delete the current group.  Only meaningful with editable groups.
 If FORCE (the prefix) is non-nil, all the articles in the group will
 be deleted.  This is \"deleted\" as in \"removed forever from the face
-of the Earth\".	 There is no undo.  The user will be prompted before
+of the Earth\".  There is no undo.  The user will be prompted before
 doing the deletion.
 Note that you also have to specify FORCE if you want the group to
 be removed from the server, even when it's empty."
@@ -2310,20 +2353,21 @@
   (unless (gnus-check-backend-function 'request-delete-group group)
     (error "This back end does not support group deletion"))
   (prog1
-      (if (and (not no-prompt)
-	       (not (gnus-yes-or-no-p
-		     (format
-		      "Do you really want to delete %s%s? "
-		      group (if force " and all its contents" "")))))
-	  ()				; Whew!
-	(gnus-message 6 "Deleting group %s..." group)
-	(if (not (gnus-request-delete-group group force))
-	    (gnus-error 3 "Couldn't delete group %s" group)
-	  (gnus-message 6 "Deleting group %s...done" group)
-	  (gnus-group-goto-group group)
-	  (gnus-group-kill-group 1 t)
-	  (gnus-set-active group nil)
-	  t))
+      (let ((group-decoded (gnus-group-decoded-name group)))
+	(if (and (not no-prompt)
+		 (not (gnus-yes-or-no-p
+		       (format
+			"Do you really want to delete %s%s? "
+			group-decoded (if force " and all its contents" "")))))
+	    ()				; Whew!
+	  (gnus-message 6 "Deleting group %s..." group-decoded)
+	  (if (not (gnus-request-delete-group group force))
+	      (gnus-error 3 "Couldn't delete group %s" group-decoded)
+	    (gnus-message 6 "Deleting group %s...done" group-decoded)
+	    (gnus-group-goto-group group)
+	    (gnus-group-kill-group 1 t)
+	    (gnus-set-active group nil)
+	    t)))
     (gnus-group-position-point)))
 
 (defun gnus-group-rename-group (group new-name)
@@ -2509,7 +2553,9 @@
   (gnus-group-position-point))
 
 (defun gnus-group-make-doc-group (file type)
-  "Create a group that uses a single file as the source."
+  "Create a group that uses a single file as the source.
+
+If called with a prefix argument, ask for the file type."
   (interactive
    (list (read-file-name "File name: ")
 	 (and current-prefix-arg 'ask)))
@@ -2518,7 +2564,7 @@
 	  char found)
       (while (not found)
 	(message
-	 "%sFile type (mbox, babyl, digest, forward, mmdf, guess) [mbdfag]: "
+	 "%sFile type (mbox, babyl, digest, forward, mmdf, guess) [m, b, d, f, a, g]: "
 	 err)
 	(setq found (cond ((= (setq char (read-char)) ?m) 'mbox)
 			  ((= char ?b) 'babyl)
@@ -2591,17 +2637,26 @@
       (setq url (read-from-minibuffer "URL to Search for RSS: ")))
   (let ((feedinfo (nnrss-discover-feed url)))
     (if feedinfo
-	(let ((title (read-from-minibuffer "Title: "
-					   (cdr (assoc 'title
-						       feedinfo))))
+	(let ((title (gnus-newsgroup-savable-name
+		      (read-from-minibuffer "Title: "
+					    (gnus-newsgroup-savable-name
+					     (or (cdr (assoc 'title
+							     feedinfo))
+						 "")))))
 	      (desc  (read-from-minibuffer "Description: "
 					   (cdr (assoc 'description
 						       feedinfo))))
-	      (href (cdr (assoc 'href feedinfo))))
-	  (push (list title href desc)
-		nnrss-group-alist)
-	  (gnus-group-unsubscribe-group
-	   (concat "nnrss:" title))
+	      (href (cdr (assoc 'href feedinfo)))
+	      (encodable (mm-coding-system-p 'utf-8)))
+	  (when encodable
+	    ;; Unify non-ASCII text.
+	    (setq title (mm-decode-coding-string
+			 (mm-encode-coding-string title 'utf-8) 'utf-8)))
+	  (gnus-group-make-group (if encodable
+				     (mm-encode-coding-string title 'utf-8)
+				   title)
+				 '(nnrss ""))
+	  (push (list title href desc) nnrss-group-alist)
 	  (nnrss-save-server-data nil))
       (error "No feeds found for %s" url))))
 
@@ -2712,7 +2767,7 @@
       (make-directory score-dir))
     (with-temp-file score-file
       (let (emacs-lisp-mode-hook)
-	(pp scores (current-buffer))))))
+	(gnus-pp scores)))))
 
 (defun gnus-group-add-to-virtual (n vgroup)
   "Add the current group to a virtual group."
@@ -3034,7 +3089,8 @@
 ;;; Clearing data
 
 (defun gnus-group-clear-data (&optional arg)
-  "Clear all marks and read ranges from the current group."
+  "Clear all marks and read ranges from the current group.
+Obeys the process/prefix convention."
   (interactive "P")
   (gnus-group-iterate arg
     (lambda (group)
@@ -3104,7 +3160,7 @@
 		   "Do you really want to mark all articles in %s as read? "
 		 "Mark all unread articles in %s as read? ")
 	       (if (= (length groups) 1)
-		   (car groups)
+		   (gnus-group-decoded-name (car groups))
 		 (format "these %d groups" (length groups)))))))
 	n
       (while (setq group (pop groups))
@@ -3182,7 +3238,8 @@
 
 (defun gnus-group-expire-articles-1 (group)
   (when (gnus-check-backend-function 'request-expire-articles group)
-    (gnus-message 6 "Expiring articles in %s..." group)
+    (gnus-message 6 "Expiring articles in %s..."
+		  (gnus-group-decoded-name group))
     (let* ((info (gnus-get-info group))
 	   (expirable (if (gnus-group-total-expirable-p group)
 			  (cons nil (gnus-list-of-read-articles group))
@@ -3207,7 +3264,8 @@
 	    (gnus-request-expire-articles
 	     (gnus-uncompress-sequence (cdr expirable)) group))))
 	(gnus-close-group group))
-      (gnus-message 6 "Expiring articles in %s...done" group)
+      (gnus-message 6 "Expiring articles in %s...done"
+		    (gnus-group-decoded-name group))
       ;; Return the list of un-expired articles.
       (cdr expirable))))
 
@@ -3241,16 +3299,15 @@
 	   s))))))
   (unless (and (>= level 1) (<= level gnus-level-killed))
     (error "Invalid level: %d" level))
-  (let ((groups (gnus-group-process-prefix n))
-	group)
-    (while (setq group (pop groups))
-      (gnus-group-remove-mark group)
-      (gnus-message 6 "Changed level of %s from %d to %d"
-		    group (or (gnus-group-group-level) gnus-level-killed)
-		    level)
-      (gnus-group-change-level
-       group level (or (gnus-group-group-level) gnus-level-killed))
-      (gnus-group-update-group-line)))
+  (dolist (group (gnus-group-process-prefix n))
+    (gnus-group-remove-mark group)
+    (gnus-message 6 "Changed level of %s from %d to %d"
+		  (gnus-group-decoded-name group)
+		  (or (gnus-group-group-level) gnus-level-killed)
+		  level)
+    (gnus-group-change-level
+     group level (or (gnus-group-group-level) gnus-level-killed))
+    (gnus-group-update-group-line))
   (gnus-group-position-point))
 
 (defun gnus-group-unsubscribe (&optional n)
@@ -3393,7 +3450,7 @@
 		  gnus-list-of-killed-groups))
 	  (gnus-group-change-level
 	   (if entry entry group) gnus-level-killed (if entry nil level))
-	  (message "Killed group %s" group))
+	  (message "Killed group %s" (gnus-group-decoded-name group)))
       ;; If there are lots and lots of groups to be killed, we use
       ;; this thing instead.
       (dolist (group (nreverse groups))
@@ -3596,6 +3653,7 @@
 	  (gnus-get-unread-articles arg))
       (let ((gnus-read-active-file (if arg nil gnus-read-active-file)))
 	(gnus-get-unread-articles arg)))
+    (gnus-check-reasonable-setup)
     (gnus-run-hooks 'gnus-after-getting-new-news-hook)
     (gnus-group-list-groups (and (numberp arg)
 				 (max (car gnus-group-list-mode) arg)))))
@@ -3603,7 +3661,8 @@
 (defun gnus-group-get-new-news-this-group (&optional n dont-scan)
   "Check for newly arrived news in the current group (and the N-1 next groups).
 The difference between N and the number of newsgroup checked is returned.
-If N is negative, this group and the N-1 previous groups will be checked."
+If N is negative, this group and the N-1 previous groups will be checked.
+If DONT-SCAN is non-nil, scan non-activated groups as well."
   (interactive "P")
   (let* ((groups (gnus-group-process-prefix n))
 	 (ret (if (numberp n) (- n (length groups)) 0))
@@ -3619,15 +3678,17 @@
       (gnus-group-remove-mark group)
       ;; Bypass any previous denials from the server.
       (gnus-remove-denial (setq method (gnus-find-method-for-group group)))
-      (if (gnus-activate-group group (if dont-scan nil 'scan))
-	  (progn
-	    (gnus-get-unread-articles-in-group
-	     (gnus-get-info group) (gnus-active group) t)
+      (if (gnus-activate-group group (if dont-scan nil 'scan) nil method)
+	  (let ((info (gnus-get-info group))
+		(active (gnus-active group)))
+	    (when info
+	      (gnus-request-update-info info method))
+	    (gnus-get-unread-articles-in-group info active)
 	    (unless (gnus-virtual-group-p group)
 	      (gnus-close-group group))
 	    (when gnus-agent
 	      (gnus-agent-save-group-info
-	       method (gnus-group-real-name group) (gnus-active group)))
+	       method (gnus-group-real-name group) active))
 	    (gnus-group-update-group group))
 	(if (eq (gnus-server-status (gnus-find-method-for-group group))
 		'denied)
@@ -4279,4 +4340,5 @@
 
 (provide 'gnus-group)
 
+;;; arch-tag: 2eb5440f-0bca-4091-814c-e37817536af6
 ;;; gnus-group.el ends here
Index: gnus/lisp/gnus-int.el
diff -u gnus/lisp/gnus-int.el:7.7 gnus/lisp/gnus-int.el:7.16
--- gnus/lisp/gnus-int.el:7.7	Sat May  1 12:12:01 2004
+++ gnus/lisp/gnus-int.el	Thu Mar  3 19:00:15 2005
@@ -47,6 +47,7 @@
 `denied', set the server denied; `offline', set the server offline;
 nil, ask user.  If the server is not covered by Gnus agent, set the
 server denied."
+  :version "22.1"
   :group 'gnus-start
   :type '(choice (const :tag "Ask" nil)
 		 (const :tag "Deny server" denied)
@@ -561,17 +562,17 @@
     not-deleted))
 
 (defun gnus-request-move-article (article group server accept-function
-					  &optional last)
+					  &optional last move-is-internal)
   (let* ((gnus-command-method (gnus-find-method-for-group group))
 	 (result (funcall (gnus-get-function gnus-command-method
 					     'request-move-article)
 			  article (gnus-group-real-name group)
-			  (nth 1 gnus-command-method) accept-function last)))
+			  (nth 1 gnus-command-method) accept-function last move-is-internal)))
     (when (and result gnus-agent
 	       (gnus-agent-method-p gnus-command-method))
-      (gnus-agent-expire (list article) group 'force))
+      (gnus-agent-unfetch-articles group (list article)))
     result))
-    
+
 (defun gnus-request-accept-article (group &optional gnus-command-method last
 					  no-encode)
   ;; Make sure there's a newline at the end of the article.
@@ -594,8 +595,8 @@
       (message-encode-message-body)))
   (let ((gnus-command-method (or gnus-command-method
 				 (gnus-find-method-for-group group)))
-	(result 
-	 (funcall 
+	(result
+	 (funcall
 	  (gnus-get-function gnus-command-method 'request-accept-article)
 	  (if (stringp group) (gnus-group-real-name group) group)
 	  (cadr gnus-command-method)
@@ -689,4 +690,5 @@
 
 (provide 'gnus-int)
 
+;;; arch-tag: bbc90087-9b7f-4017-a92c-3abf180ac86d
 ;;; gnus-int.el ends here
Index: gnus/lisp/gnus-kill.el
diff -u gnus/lisp/gnus-kill.el:7.3 gnus/lisp/gnus-kill.el:7.4
--- gnus/lisp/gnus-kill.el:7.3	Fri Mar  5 11:37:26 2004
+++ gnus/lisp/gnus-kill.el	Thu May 20 10:02:39 2004
@@ -717,4 +717,5 @@
 
 (provide 'gnus-kill)
 
+;;; arch-tag: b30c0f53-df1a-490b-b81e-17b13474f395
 ;;; gnus-kill.el ends here
Index: gnus/lisp/gnus-logic.el
diff -u gnus/lisp/gnus-logic.el:7.1 gnus/lisp/gnus-logic.el:7.2
--- gnus/lisp/gnus-logic.el:7.1	Sun Jan  4 22:51:00 2004
+++ gnus/lisp/gnus-logic.el	Thu May 20 10:02:39 2004
@@ -227,4 +227,5 @@
 
 (provide 'gnus-logic)
 
+;;; arch-tag: 9651a100-4a59-4b69-a55b-e511e67c0f8d
 ;;; gnus-logic.el ends here
Index: gnus/lisp/gnus-mh.el
diff -u gnus/lisp/gnus-mh.el:7.1 gnus/lisp/gnus-mh.el:7.2
--- gnus/lisp/gnus-mh.el:7.1	Sun Jan  4 22:51:00 2004
+++ gnus/lisp/gnus-mh.el	Thu May 20 10:02:39 2004
@@ -111,4 +111,5 @@
 
 (provide 'gnus-mh)
 
+;;; arch-tag: 2d5696d3-b363-48e5-8749-c256be56acca
 ;;; gnus-mh.el ends here
Index: gnus/lisp/gnus-ml.el
diff -u gnus/lisp/gnus-ml.el:7.3 gnus/lisp/gnus-ml.el:7.4
--- gnus/lisp/gnus-ml.el:7.3	Fri Feb 27 04:24:06 2004
+++ gnus/lisp/gnus-ml.el	Thu May 20 10:02:39 2004
@@ -198,4 +198,5 @@
 
 (provide 'gnus-ml)
 
+;;; arch-tag: 936c0fe6-acce-4c16-87d0-eded88078896
 ;;; gnus-ml.el ends here
Index: gnus/lisp/gnus-mlspl.el
diff -u gnus/lisp/gnus-mlspl.el:7.2 gnus/lisp/gnus-mlspl.el:7.4
--- gnus/lisp/gnus-mlspl.el:7.2	Fri Feb 27 04:24:06 2004
+++ gnus/lisp/gnus-mlspl.el	Mon Aug 23 00:06:18 2004
@@ -1,6 +1,6 @@
 ;;; gnus-mlspl.el --- a group params-based mail splitting mechanism
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
@@ -74,8 +74,9 @@
 
 ;;;###autoload
 (defun gnus-group-split-update (&optional catch-all)
-  "Computes `nnmail-split-fancy' from group params and CATCH-ALL, by
-calling (gnus-group-split-fancy nil nil CATCH-ALL).
+  "Computes nnmail-split-fancy from group params and CATCH-ALL.
+It does this by calling by calling (gnus-group-split-fancy nil
+nil CATCH-ALL).
 
 If CATCH-ALL is nil, `gnus-group-split-default-catch-all-group' is used
 instead.  This variable is set by `gnus-group-split-setup'."
@@ -228,4 +229,5 @@
 
 (provide 'gnus-mlspl)
 
+;;; arch-tag: 62b3381f-1e45-4b61-be1a-29fb27703322
 ;;; gnus-mlspl.el ends here
Index: gnus/lisp/gnus-move.el
diff -u gnus/lisp/gnus-move.el:7.2 gnus/lisp/gnus-move.el:7.4
--- gnus/lisp/gnus-move.el:7.2	Sat Jan 10 05:27:00 2004
+++ gnus/lisp/gnus-move.el	Tue Oct  5 22:35:15 2004
@@ -52,10 +52,8 @@
 
   (save-excursion
     ;; Go through all groups and translate.
-    (let ((newsrc gnus-newsrc-alist)
-	  (nntp-nov-gap nil)
-	  info)
-      (while (setq info (pop newsrc))
+    (let ((nntp-nov-gap nil))
+      (dolist (info gnus-newsrc-alist)
 	(when (gnus-group-native-p (gnus-info-group info))
 	  (gnus-move-group-to-server info from-server to-server))))))
 
@@ -181,4 +179,5 @@
 
 (provide 'gnus-move)
 
+;;; arch-tag: 503742b8-7d66-4d79-bb31-4a698070707b
 ;;; gnus-move.el ends here
Index: gnus/lisp/gnus-msg.el
diff -u gnus/lisp/gnus-msg.el:7.7 gnus/lisp/gnus-msg.el:7.33
--- gnus/lisp/gnus-msg.el:7.7	Thu Mar  4 07:30:18 2004
+++ gnus/lisp/gnus-msg.el	Wed Mar  9 01:58:34 2005
@@ -1,6 +1,6 @@
 ;;; gnus-msg.el --- mail and post interface for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;;        Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;;        2005 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;	Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -142,7 +142,7 @@
 
 (defcustom gnus-gcc-mark-as-read nil
   "If non-nil, automatically mark Gcc articles as read."
-  :version "21.1"
+  :version "22.1"
   :group 'gnus-message
   :type 'boolean)
 
@@ -154,7 +154,7 @@
 If it is `all', attach files as external parts;
 if a regexp and matches the Gcc group name, attach files as external parts;
 if nil, attach files as normal parts."
-  :version "21.1"
+  :version "22.1"
   :group 'gnus-message
   :type '(choice (const nil :tag "None")
 		 (const all :tag "Any")
@@ -212,7 +212,7 @@
     "gnus-agent.el" "gnus-cache.el" "gnus-srvr.el"
     "mm-util.el" "mm-decode.el" "nnmail.el" "message.el")
   "Files whose variables will be reported in `gnus-bug'."
-  :version "21.1"
+  :version "22.1"
   :group 'gnus-message
   :type '(repeat (string :tag "File")))
 
@@ -220,7 +220,7 @@
   '(mm-mime-mule-charset-alist
     nnmail-split-fancy message-minibuffer-local-map)
   "Variables that should not be reported in `gnus-bug'."
-  :version "21.1"
+  :version "22.1"
   :group 'gnus-message
   :type '(repeat (symbol :tag "Variable")))
 
@@ -228,7 +228,7 @@
   '(nndraft nnml nnimap nnmaildir nnmh nnfolder nndir)
   "A list of back ends that are not used in \"real\" newsgroups.
 This variable is used only when `gnus-post-method' is `current'."
-  :version "21.3"
+  :version "22.1"
   :group 'gnus-group-foreign
   :type '(repeat (symbol :tag "Back end")))
 
@@ -252,7 +252,8 @@
   :group 'gnus-message
   :type 'boolean)
 
-(defcustom gnus-confirm-mail-reply-to-news nil
+(defcustom gnus-confirm-mail-reply-to-news (and gnus-novice-user
+						(not gnus-expert-user))
   "If non-nil, Gnus requests confirmation when replying to news.
 This is done because new users often reply by mistake when reading
 news.
@@ -260,6 +261,7 @@
 parameter which should return non-nil iff a confirmation is needed, or
 a regexp, in which case a confirmation is asked for iff the group name
 matches the regexp."
+  :version "22.1"
   :group 'gnus-message
   :type '(choice (const :tag "No" nil)
 		 (const :tag "Yes" t)
@@ -272,6 +274,7 @@
 when replying by mail.  See the `gnus-confirm-mail-reply-to-news' variable
 for fine-tuning this.
 If nil, Gnus will never ask for confirmation if replying to mail."
+  :version "22.1"
   :group 'gnus-message
   :type 'boolean)
 
@@ -279,6 +282,7 @@
   "If non-nil, Gnus tries to suggest a default address to resend to.
 If nil, the address field will always be empty after invoking
 `gnus-summary-resend-message'."
+  :version "22.1"
   :group 'gnus-message
   :type 'boolean)
 
@@ -359,10 +363,10 @@
 
 ;;; Internal functions.
 
-(defun gnus-inews-make-draft ()
+(defun gnus-inews-make-draft (articles)
   `(lambda ()
      (gnus-inews-make-draft-meta-information
-      ,gnus-newsgroup-name ',gnus-article-reply)))
+      ,gnus-newsgroup-name ',articles)))
 
 (defvar gnus-article-reply nil)
 (defmacro gnus-setup-message (config &rest forms)
@@ -404,7 +408,7 @@
 		  (not (string= ,group "")))
 	 (push (cons
 		(intern gnus-draft-meta-information-header)
-		(gnus-inews-make-draft))
+		(gnus-inews-make-draft (or ,yanked ,article)))
 	       message-required-headers))
        (unwind-protect
 	   (progn
@@ -432,12 +436,20 @@
        (run-hooks 'post-command-hook)
        (set-buffer-modified-p nil))))
 
-(defun gnus-inews-make-draft-meta-information (group article)
-  (concat "(\"" group "\" "
-	  (if article (number-to-string
-		       (if (listp article)
-			   (car article)
-			 article)) "\"\"")
+(defun gnus-inews-make-draft-meta-information (group articles)
+  (when (numberp articles)
+    (setq articles (list articles)))
+  (concat "(\"" group "\""
+	  (if articles
+	      (concat " "
+		      (mapconcat
+		       (lambda (elem)
+			 (number-to-string
+			  (if (consp elem)
+			      (car elem)
+			    elem)))
+		       articles " "))
+	    "")
 	  ")"))
 
 ;;;###autoload
@@ -725,7 +737,9 @@
     (gnus-summary-handle-replysign)))
 
 (defun gnus-summary-followup-with-original (n &optional force-news)
-  "Compose a followup to an article and include the original article."
+  "Compose a followup to an article and include the original article.
+The text in the region will be yanked.  If the region isn't
+active, the entire article will be yanked."
   (interactive "P")
   (gnus-summary-followup (gnus-summary-work-articles n) force-news))
 
@@ -773,12 +787,10 @@
 prefix `a', cancel using the standard posting method; if not
 post using the current select method."
   (interactive (gnus-interactive "P\ny"))
-  (let ((articles (gnus-summary-work-articles n))
-	(message-post-method
+  (let ((message-post-method
 	 `(lambda (arg)
-	    (gnus-post-method (eq ',symp 'a) ,gnus-newsgroup-name)))
-	article)
-    (while (setq article (pop articles))
+	    (gnus-post-method (eq ',symp 'a) ,gnus-newsgroup-name))))
+    (dolist (article (gnus-summary-work-articles n))
       (when (gnus-summary-select-article t nil nil article)
 	(when (gnus-eval-in-buffer-window gnus-original-article-buffer
 		(message-cancel-news))
@@ -867,7 +879,8 @@
 	    ;; Decode charsets.
 	    (let ((gnus-article-decode-hook
 		   (delq 'article-decode-charset
-			 (copy-sequence gnus-article-decode-hook))))
+			 (copy-sequence gnus-article-decode-hook)))
+		  (rfc2047-quote-decoded-words-containing-tspecials t))
 	      (run-hooks 'gnus-article-decode-hook)))))
       gnus-article-copy)))
 
@@ -1028,17 +1041,18 @@
   "Stringified Gnus version and Emacs version.
 See the variable `gnus-user-agent'."
   (interactive)
-  (let* ((float-output-format nil)
-	 (gnus-v
-	  (concat "Gnus/"
-		  (prin1-to-string (gnus-continuum-version gnus-version) t)
-		  " (" gnus-version ")"))
-	 (emacs-v (gnus-emacs-version)))
-    (if (stringp gnus-user-agent)
-	gnus-user-agent
-      (concat gnus-v
-	      (when emacs-v
-		(concat " " emacs-v))))))
+  (if (stringp gnus-user-agent)
+      gnus-user-agent
+    ;; `gnus-user-agent' is a list:
+    (let* ((float-output-format nil)
+	   (gnus-v
+	    (when (memq 'gnus gnus-user-agent)
+	      (concat "Gnus/"
+		      (prin1-to-string (gnus-continuum-version gnus-version) t)
+		      " (" gnus-version ")")))
+	   (emacs-v (gnus-emacs-version)))
+      (concat gnus-v (when (and gnus-v emacs-v) " ")
+	      emacs-v))))
 
 
 ;;;
@@ -1237,14 +1251,12 @@
 	    (with-current-buffer gnus-original-article-buffer
 	      (nnmail-fetch-field "to"))))
 	 current-prefix-arg))
-  (let ((articles (gnus-summary-work-articles n))
-	article)
-    (while (setq article (pop articles))
-      (gnus-summary-select-article nil nil nil article)
-      (save-excursion
-	(set-buffer gnus-original-article-buffer)
-	(message-resend address))
-      (gnus-summary-mark-article-as-forwarded article))))
+  (dolist (article (gnus-summary-work-articles n))
+    (gnus-summary-select-article nil nil nil article)
+    (save-excursion
+      (set-buffer gnus-original-article-buffer)
+      (message-resend address))
+    (gnus-summary-mark-article-as-forwarded article)))
 
 ;; From: Matthieu Moy <Matthieu.Moy@imag.fr>
 (defun gnus-summary-resend-message-edit ()
@@ -1302,37 +1314,35 @@
 (defun gnus-summary-mail-crosspost-complaint (n)
   "Send a complaint about crossposting to the current article(s)."
   (interactive "P")
-  (let ((articles (gnus-summary-work-articles n))
-	article)
-    (while (setq article (pop articles))
-      (set-buffer gnus-summary-buffer)
-      (gnus-summary-goto-subject article)
-      (let ((group (gnus-group-real-name gnus-newsgroup-name))
-	    newsgroups followup-to)
-	(gnus-summary-select-article)
-	(set-buffer gnus-original-article-buffer)
-	(if (and (<= (length (message-tokenize-header
-			      (setq newsgroups
-				    (mail-fetch-field "newsgroups"))
-			      ", "))
-		     1)
-		 (or (not (setq followup-to (mail-fetch-field "followup-to")))
-		     (not (member group (message-tokenize-header
-					 followup-to ", ")))))
-	    (if followup-to
-		(gnus-message 1 "Followup-to restricted")
-	      (gnus-message 1 "Not a crossposted article"))
-	  (set-buffer gnus-summary-buffer)
-	  (gnus-summary-reply-with-original 1)
-	  (set-buffer gnus-message-buffer)
-	  (message-goto-body)
-	  (insert (format gnus-crosspost-complaint newsgroups group))
-	  (message-goto-subject)
-	  (re-search-forward " *$")
-	  (replace-match " (crosspost notification)" t t)
-	  (gnus-deactivate-mark)
-	  (when (gnus-y-or-n-p "Send this complaint? ")
-	    (message-send-and-exit)))))))
+  (dolist (article (gnus-summary-work-articles n))
+    (set-buffer gnus-summary-buffer)
+    (gnus-summary-goto-subject article)
+    (let ((group (gnus-group-real-name gnus-newsgroup-name))
+	  newsgroups followup-to)
+      (gnus-summary-select-article)
+      (set-buffer gnus-original-article-buffer)
+      (if (and (<= (length (message-tokenize-header
+			    (setq newsgroups
+				  (mail-fetch-field "newsgroups"))
+			    ", "))
+		   1)
+	       (or (not (setq followup-to (mail-fetch-field "followup-to")))
+		   (not (member group (message-tokenize-header
+				       followup-to ", ")))))
+	  (if followup-to
+	      (gnus-message 1 "Followup-to restricted")
+	    (gnus-message 1 "Not a crossposted article"))
+	(set-buffer gnus-summary-buffer)
+	(gnus-summary-reply-with-original 1)
+	(set-buffer gnus-message-buffer)
+	(message-goto-body)
+	(insert (format gnus-crosspost-complaint newsgroups group))
+	(message-goto-subject)
+	(re-search-forward " *$")
+	(replace-match " (crosspost notification)" t t)
+	(gnus-deactivate-mark)
+	(when (gnus-y-or-n-p "Send this complaint? ")
+	  (message-send-and-exit))))))
 
 (defun gnus-mail-parse-comma-list ()
   (let (accumulated
@@ -1512,21 +1522,22 @@
     (while olist
       (if (boundp (car olist))
 	  (ignore-errors
-	    (pp `(setq ,(car olist)
-		       ,(if (or (consp (setq sym (symbol-value (car olist))))
-				(and (symbolp sym)
-				     (not (or (eq sym nil)
-					      (eq sym t)))))
-			    (list 'quote (symbol-value (car olist)))
-			  (symbol-value (car olist))))
-		(current-buffer)))
+	   (gnus-pp
+	    `(setq ,(car olist)
+		   ,(if (or (consp (setq sym (symbol-value (car olist))))
+			    (and (symbolp sym)
+				 (not (or (eq sym nil)
+					  (eq sym t)))))
+			(list 'quote (symbol-value (car olist)))
+		      (symbol-value (car olist))))))
 	(insert ";; (makeunbound '" (symbol-name (car olist)) ")\n"))
       (setq olist (cdr olist)))
     (insert "\n\n")
     ;; Remove any control chars - they seem to cause trouble for some
     ;; mailers.  (Byte-compiled output from the stuff above.)
     (goto-char point)
-    (while (re-search-forward "[\000-\010\013-\037\200-\237]" nil t)
+    (while (re-search-forward (mm-string-as-multibyte
+			       "[\000-\010\013-\037\200-\237]") nil t)
       (replace-match (format "\\%03o" (string-to-char (match-string 0)))
 		     t t))))
 
@@ -1632,11 +1643,13 @@
 		     (concat "^" (regexp-quote mail-header-separator) "$")
 		     nil t)
 		(replace-match "" t t ))
-	      (unless (setq group-art
-			    (gnus-request-accept-article group method t t))
+	      (when (or (not (gnus-check-backend-function
+			      'request-accept-article group))
+			(not (setq group-art
+				   (gnus-request-accept-article
+				    group method t t))))
 		(gnus-message 1 "Couldn't store article in group %s: %s"
-			      group (gnus-status-message method))
-		(sit-for 2))
+			      group (gnus-status-message method)))
 	      (when (and group-art
 			 ;; FIXME: Should gcc-mark-as-read work when
 			 ;; Gnus is not running?
@@ -1795,9 +1808,11 @@
 		;; Obsolete format of header match.
 		(and (gnus-buffer-live-p gnus-article-copy)
 		     (with-current-buffer gnus-article-copy
-		       (let ((header (message-fetch-field (pop style))))
-			 (and header
-			      (string-match (pop style) header))))))
+		       (save-restriction
+			 (nnheader-narrow-to-headers)
+			 (let ((header (message-fetch-field (pop style))))
+			   (and header
+				(string-match (pop style) header)))))))
 	       ((or (symbolp match)
 		    (functionp match))
 		(cond
@@ -1813,9 +1828,11 @@
 		  ;; New format of header match.
 		  (and (gnus-buffer-live-p gnus-article-copy)
 		       (with-current-buffer gnus-article-copy
-			 (let ((header (message-fetch-field (nth 1 match))))
-			   (and header
-				(string-match (nth 2 match) header))))))
+			 (save-restriction
+			   (nnheader-narrow-to-headers)
+			   (let ((header (message-fetch-field (nth 1 match))))
+			     (and header
+				  (string-match (nth 2 match) header)))))))
 		 (t
 		  ;; This is a form to be evaled.
 		  (eval match)))))
@@ -1857,10 +1874,13 @@
 	    (when (and filep v)
 	      (setq v (with-temp-buffer
 			(insert-file-contents v)
-			(goto-char (point-max))
-			(while (bolp)
-			  (delete-char -1))
-			(buffer-string))))
+			(buffer-substring
+			 (point-min)
+			 (progn
+			   (goto-char (point-max))
+			   (if (zerop (skip-chars-backward "\n"))
+			       (point)
+			     (1+ (point))))))))
 	    (setq results (delq (assoc element results) results))
 	    (push (cons element v) results))))
       ;; Now we have all the styles, so we insert them.
@@ -1925,4 +1945,5 @@
 
 (provide 'gnus-msg)
 
+;;; arch-tag: 9f22b2f5-1c0a-49de-916e-4c88e984852b
 ;;; gnus-msg.el ends here
Index: gnus/lisp/gnus-nocem.el
diff -u gnus/lisp/gnus-nocem.el:7.2 gnus/lisp/gnus-nocem.el:7.3
--- gnus/lisp/gnus-nocem.el:7.2	Sun Apr 25 20:01:34 2004
+++ gnus/lisp/gnus-nocem.el	Thu May 20 10:02:39 2004
@@ -390,4 +390,5 @@
 
 (provide 'gnus-nocem)
 
+;;; arch-tag: 0e0c74ea-2f8e-4f3e-8fff-09f767c1adef
 ;;; gnus-nocem.el ends here
Index: gnus/lisp/gnus-picon.el
diff -u gnus/lisp/gnus-picon.el:7.2 gnus/lisp/gnus-picon.el:7.6
--- gnus/lisp/gnus-picon.el:7.2	Thu Feb  5 03:42:26 2004
+++ gnus/lisp/gnus-picon.el	Thu Sep  2 16:40:03 2004
@@ -1,6 +1,6 @@
 ;;; gnus-picon.el --- displaying pretty icons in Gnus
 
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;      Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -74,6 +74,15 @@
   :type '(repeat string)
   :group 'gnus-picon)
 
+(defcustom gnus-picon-style 'inline
+  "How should picons be displayed.
+If `inline', the textual representation is replaced.  If `right', picons are
+added right to the textual representation."
+  ;; FIXME: `right' needs improvement for XEmacs.
+  :type '(choice (const inline)
+		 (const right))
+  :group 'gnus-picon)
+
 (defface gnus-picon-xbm-face '((t (:foreground "black" :background "white")))
   "Face to show xbm picon in."
   :group 'gnus-picon)
@@ -135,14 +144,17 @@
 	file
       nil)))
 
-(defun gnus-picon-insert-glyph (glyph category)
+(defun gnus-picon-insert-glyph (glyph category &optional nostring)
   "Insert GLYPH into the buffer.
-GLYPH can be either a glyph or a string."
+GLYPH can be either a glyph or a string.  When NOSTRING, no textual
+replacement is added."
+  ;; Using NOSTRING prevents wrong BBDB entries with `gnus-picon-style' set to
+  ;; 'right.
   (if (stringp glyph)
       (insert glyph)
     (gnus-add-wash-type category)
     (gnus-add-image category (car glyph))
-    (gnus-put-image (car glyph) (cdr glyph) category)))
+    (gnus-put-image (car glyph) (unless nostring (cdr glyph)) category)))
 
 (defun gnus-picon-create-glyph (file)
   (or (cdr (assoc file gnus-picon-glyph-alist))
@@ -153,87 +165,107 @@
 
 (defun gnus-picon-transform-address (header category)
   (gnus-with-article-headers
-    (let ((addresses
-	   (mail-header-parse-addresses
-	    ;; mail-header-parse-addresses does not work (reliably) on
-	    ;; decoded headers.
-	    (or
-	     (ignore-errors
-	       (mail-encode-encoded-word-string
-		(or (mail-fetch-field header) "")))
-	     (mail-fetch-field header))))
-	  spec file point cache)
-      (dolist (address addresses)
-	(setq address (car address))
-	(when (and (stringp address)
-		   (setq spec (gnus-picon-split-address address)))
-	  (if (setq cache (cdr (assoc address gnus-picon-cache)))
-	      (setq spec cache)
-	    (when (setq file (or (gnus-picon-find-face
-				  address gnus-picon-user-directories)
-				 (gnus-picon-find-face
-				  (concat "unknown@"
-					  (mapconcat
-					   'identity (cdr spec) "."))
-				  gnus-picon-user-directories)))
-	      (setcar spec (cons (gnus-picon-create-glyph file)
-				 (car spec))))
-
-	    (dotimes (i (1- (length spec)))
-	      (when (setq file (gnus-picon-find-face
-				(concat "unknown@"
-					(mapconcat
-					 'identity (nthcdr (1+ i) spec) "."))
-				gnus-picon-domain-directories t))
-		(setcar (nthcdr (1+ i) spec)
-			(cons (gnus-picon-create-glyph file)
-			      (nth (1+ i) spec)))))
-	    (setq spec (nreverse spec))
-	    (push (cons address spec) gnus-picon-cache))
-
-	  (gnus-article-goto-header header)
-	  (mail-header-narrow-to-field)
-	  (when (search-forward address nil t)
-	    (delete-region (match-beginning 0) (match-end 0))
-	    (setq point (point))
-	    (while spec
-	      (goto-char point)
-	      (if (> (length spec) 2)
-		  (insert ".")
-		(if (= (length spec) 2)
-		  (insert "@")))
-	      (gnus-picon-insert-glyph (pop spec) category))))))))
+   (let ((addresses
+	  (mail-header-parse-addresses
+	   ;; mail-header-parse-addresses does not work (reliably) on
+	   ;; decoded headers.
+	   (or
+	    (ignore-errors
+	     (mail-encode-encoded-word-string
+	      (or (mail-fetch-field header) "")))
+	    (mail-fetch-field header))))
+	 spec file point cache len)
+     (dolist (address addresses)
+       (setq address (car address))
+       (when (and (stringp address)
+		  (setq spec (gnus-picon-split-address address)))
+	 (if (setq cache (cdr (assoc address gnus-picon-cache)))
+	     (setq spec cache)
+	   (when (setq file (or (gnus-picon-find-face
+				 address gnus-picon-user-directories)
+				(gnus-picon-find-face
+				 (concat "unknown@"
+					 (mapconcat
+					  'identity (cdr spec) "."))
+				 gnus-picon-user-directories)))
+	     (setcar spec (cons (gnus-picon-create-glyph file)
+				(car spec))))
+
+	   (dotimes (i (1- (length spec)))
+	     (when (setq file (gnus-picon-find-face
+			       (concat "unknown@"
+				       (mapconcat
+					'identity (nthcdr (1+ i) spec) "."))
+			       gnus-picon-domain-directories t))
+	       (setcar (nthcdr (1+ i) spec)
+		       (cons (gnus-picon-create-glyph file)
+			     (nth (1+ i) spec)))))
+	   (setq spec (nreverse spec))
+	   (push (cons address spec) gnus-picon-cache))
+
+	 (gnus-article-goto-header header)
+	 (mail-header-narrow-to-field)
+	 (case gnus-picon-style
+	       (right
+		(when (= (length addresses) 1)
+		  (setq len (apply '+ (mapcar (lambda (x)
+						(condition-case nil
+						    (car (image-size (car x)))
+						  (error 0))) spec)))
+		  (when (> len 0)
+		    (goto-char (point-at-eol))
+		    (insert (propertize
+			     " " 'display
+			     (cons 'space
+				   (list :align-to (- (window-width) 1 len))))))
+		  (goto-char (point-at-eol))
+		  (setq point (point-at-eol))
+		  (dolist (image spec)
+		    (unless (stringp image)
+		      (goto-char point)
+		      (gnus-picon-insert-glyph image category 'nostring)))))
+	       (inline
+		 (when (search-forward address nil t)
+		   (delete-region (match-beginning 0) (match-end 0))
+		   (setq point (point))
+		   (while spec
+		     (goto-char point)
+		     (if (> (length spec) 2)
+			 (insert ".")
+		       (if (= (length spec) 2)
+			   (insert "@")))
+		     (gnus-picon-insert-glyph (pop spec) category))))))))))
 
 (defun gnus-picon-transform-newsgroups (header)
   (interactive)
   (gnus-with-article-headers
-    (gnus-article-goto-header header)
-    (mail-header-narrow-to-field)
-    (let ((groups (message-tokenize-header (mail-fetch-field header)))
-	  spec file point)
-      (dolist (group groups)
-	(unless (setq spec (cdr (assoc group gnus-picon-cache)))
-	  (setq spec (nreverse (split-string group "[.]")))
-	  (dotimes (i (length spec))
-	    (when (setq file (gnus-picon-find-face
-			      (concat "unknown@"
-				      (mapconcat
-				       'identity (nthcdr i spec) "."))
-			      gnus-picon-news-directories t))
-	      (setcar (nthcdr i spec)
-		      (cons (gnus-picon-create-glyph file)
-			    (nth i spec)))))
-	    (push (cons group spec) gnus-picon-cache))
-	(when (search-forward group nil t)
-	  (delete-region (match-beginning 0) (match-end 0))
-	  (save-restriction
-	    (narrow-to-region (point) (point))
-	    (while spec
-	      (goto-char (point-min))
-	      (if (> (length spec) 1)
-		  (insert "."))
-	      (gnus-picon-insert-glyph (pop spec) 'newsgroups-picon))
-	    (goto-char (point-max))))))))
+   (gnus-article-goto-header header)
+   (mail-header-narrow-to-field)
+   (let ((groups (message-tokenize-header (mail-fetch-field header)))
+	 spec file point)
+     (dolist (group groups)
+       (unless (setq spec (cdr (assoc group gnus-picon-cache)))
+	 (setq spec (nreverse (split-string group "[.]")))
+	 (dotimes (i (length spec))
+	   (when (setq file (gnus-picon-find-face
+			     (concat "unknown@"
+				     (mapconcat
+				      'identity (nthcdr i spec) "."))
+			     gnus-picon-news-directories t))
+	     (setcar (nthcdr i spec)
+		     (cons (gnus-picon-create-glyph file)
+			   (nth i spec)))))
+	 (push (cons group spec) gnus-picon-cache))
+       (when (search-forward group nil t)
+	 (delete-region (match-beginning 0) (match-end 0))
+	 (save-restriction
+	   (narrow-to-region (point) (point))
+	   (while spec
+	     (goto-char (point-min))
+	     (if (> (length spec) 1)
+		 (insert "."))
+	     (gnus-picon-insert-glyph (pop spec) 'newsgroups-picon))
+	   (goto-char (point-max))))))))
 
 ;;; Commands:
 
@@ -247,10 +279,9 @@
   (interactive)
   (let ((wash-picon-p buffer-read-only))
     (gnus-with-article-buffer
-      (if (and wash-picon-p (memq 'from-picon gnus-article-wash-types))
-	  (gnus-delete-images 'from-picon)
-	(gnus-picon-transform-address "from" 'from-picon)))
-    ))
+     (if (and wash-picon-p (memq 'from-picon gnus-article-wash-types))
+	 (gnus-delete-images 'from-picon)
+       (gnus-picon-transform-address "from" 'from-picon)))))
 
 ;;;###autoload
 (defun gnus-treat-mail-picon ()
@@ -259,11 +290,10 @@
   (interactive)
   (let ((wash-picon-p buffer-read-only))
     (gnus-with-article-buffer
-      (if (and wash-picon-p (memq 'mail-picon gnus-article-wash-types))
-	  (gnus-delete-images 'mail-picon)
-	(gnus-picon-transform-address "cc" 'mail-picon)
-	(gnus-picon-transform-address "to" 'mail-picon)))
-    ))
+     (if (and wash-picon-p (memq 'mail-picon gnus-article-wash-types))
+	 (gnus-delete-images 'mail-picon)
+       (gnus-picon-transform-address "cc" 'mail-picon)
+       (gnus-picon-transform-address "to" 'mail-picon)))))
 
 ;;;###autoload
 (defun gnus-treat-newsgroups-picon ()
@@ -272,12 +302,12 @@
   (interactive)
   (let ((wash-picon-p buffer-read-only))
     (gnus-with-article-buffer
-      (if (and wash-picon-p (memq 'newsgroups-picon gnus-article-wash-types))
-	  (gnus-delete-images 'newsgroups-picon)
-	(gnus-picon-transform-newsgroups "newsgroups")
-	(gnus-picon-transform-newsgroups "followup-to")))
-    ))
+     (if (and wash-picon-p (memq 'newsgroups-picon gnus-article-wash-types))
+	 (gnus-delete-images 'newsgroups-picon)
+       (gnus-picon-transform-newsgroups "newsgroups")
+       (gnus-picon-transform-newsgroups "followup-to")))))
 
 (provide 'gnus-picon)
 
+;;; arch-tag: fe9aede0-1b1b-463a-b4ab-807f98bcb31f
 ;;; gnus-picon.el ends here
Index: gnus/lisp/gnus-range.el
diff -u gnus/lisp/gnus-range.el:7.4 gnus/lisp/gnus-range.el:7.5
--- gnus/lisp/gnus-range.el:7.4	Wed Mar  3 05:03:36 2004
+++ gnus/lisp/gnus-range.el	Thu May 20 10:02:39 2004
@@ -656,4 +656,5 @@
 
 (provide 'gnus-range)
 
+;;; arch-tag: 4780bdd8-5a15-4aff-be28-18727895b6ad
 ;;; gnus-range.el ends here
Index: gnus/lisp/gnus-registry.el
diff -u gnus/lisp/gnus-registry.el:7.7 gnus/lisp/gnus-registry.el:7.24
--- gnus/lisp/gnus-registry.el:7.7	Wed Apr 28 01:10:12 2004
+++ gnus/lisp/gnus-registry.el	Wed Apr  6 21:04:20 2005
@@ -1,5 +1,5 @@
 ;;; gnus-registry.el --- article registry for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Ted Zlatanov <tzz@lifelogs.com>
@@ -66,9 +66,12 @@
 
 (defgroup gnus-registry nil
   "The Gnus registry."
+  :version "22.1"
   :group 'gnus)
 
-(defvar gnus-registry-hashtb nil
+(defvar gnus-registry-hashtb (make-hash-table 			    
+			      :size 256
+			      :test 'equal)
   "*The article registry by Message ID.")
 
 (defcustom gnus-registry-unfollowed-groups '("delayed" "drafts" "queue")
@@ -99,7 +102,7 @@
 The Subject and Sender (From:) headers are currently tracked this
 way."
   :group 'gnus-registry
-  :type      
+  :type
   '(set :tag "Tracking choices"
     (const :tag "Track by subject (Subject: header)" subject)
     (const :tag "Track by sender (From: header)"  sender)))
@@ -131,7 +134,7 @@
   "Maximum number of entries in the registry, nil for unlimited."
   :group 'gnus-registry
   :type '(radio (const :format "Unlimited " nil)
-		(integer :format "Maximum number: %v\n" :size 0)))
+		(integer :format "Maximum number: %v")))
 
 (defun gnus-registry-track-subject-p ()
   (memq 'subject gnus-registry-track-extra))
@@ -184,12 +187,12 @@
 				 "%s#tmp#%d"))
 			     working-dir (setq i (1+ i))))
 		      (file-exists-p working-file)))
-	
+
 	(unwind-protect
 	    (progn
 	      (gnus-with-output-to-file working-file
 		(gnus-gnus-to-quick-newsrc-format t "gnus registry startup file" 'gnus-registry-alist))
-	      
+
 	      ;; These bindings will mislead the current buffer
 	      ;; into thinking that it is visiting the startup
 	      ;; file.
@@ -199,14 +202,14 @@
 		    (setmodes (file-modes startup-file)))
 		;; Backup the current version of the startup file.
 		(backup-buffer)
-		
+
 		;; Replace the existing startup file with the temp file.
 		(rename-file working-file startup-file t)
-		(set-file-modes startup-file setmodes)))
+		(gnus-set-file-modes startup-file setmodes)))
 	  (condition-case nil
 	      (delete-file working-file)
 	    (file-error nil)))))
-    
+
     (gnus-kill-buffer (current-buffer))
     (gnus-message 5 "Saving %s...done" file))))
 
@@ -234,10 +237,10 @@
 	     (remhash key gnus-registry-hashtb)))
        gnus-registry-hashtb)
       ;; remove empty entries
-      (when gnus-registry-clean-empty 
+      (when gnus-registry-clean-empty
 	(gnus-registry-clean-empty-function))
       ;; now trim the registry appropriately
-      (setq gnus-registry-alist (gnus-registry-trim 
+      (setq gnus-registry-alist (gnus-registry-trim
 				 (hashtable-to-alist gnus-registry-hashtb)))
       ;; really save
       (gnus-registry-cache-save)
@@ -247,15 +250,37 @@
 (defun gnus-registry-clean-empty-function ()
   "Remove all empty entries from the registry.  Returns count thereof."
   (let ((count 0))
+
     (maphash
      (lambda (key value)
-       (unless (or
-		(gnus-registry-fetch-group key)
-		;; TODO: look for specific extra data here!
-		;; in this example, we look for 'label
-		(gnus-registry-fetch-extra key 'label)) 
-	 (incf count)
-	 (remhash key gnus-registry-hashtb)))
+       (when (stringp key)
+	 (dolist (group (gnus-registry-fetch-groups key))
+	   (when (gnus-parameter-registry-ignore group)
+	     (gnus-message 
+	      10 
+	      "gnus-registry: deleted ignored group %s from key %s"
+	      group key)
+	     (gnus-registry-delete-group key group)))
+
+	 (unless (gnus-registry-group-count key)
+	   (gnus-registry-delete-id key))
+
+	 (unless (or
+		  (gnus-registry-fetch-group key)
+		  ;; TODO: look for specific extra data here!
+		  ;; in this example, we look for 'label
+		  (gnus-registry-fetch-extra key 'label)
+		  (stringp key))
+	   (incf count)
+	   (gnus-registry-delete-id key))
+	 
+	 (unless (stringp key)
+	   (gnus-message 
+	    10 
+	    "gnus-registry key %s was not a string, removing" 
+	    key)
+	   (gnus-registry-delete-id key))))
+       
      gnus-registry-hashtb)
     count))
 
@@ -265,31 +290,34 @@
   (setq gnus-registry-dirty nil))
 
 (defun gnus-registry-trim (alist)
-  "Trim alist to size, using gnus-registry-max-entries."
+  "Trim alist to size, using gnus-registry-max-entries.
+Also, drop all gnus-registry-ignored-groups matches."
   (if (null gnus-registry-max-entries)
-      alist				; just return the alist
+      alist                             ; just return the alist
     ;; else, when given max-entries, trim the alist
-    (let ((timehash (make-hash-table 			    
-		     :size 4096
-		     :test 'equal)))
+    (let* ((timehash (make-hash-table
+		      :size 4096
+		      :test 'equal))
+	   (trim-length (- (length alist) gnus-registry-max-entries))
+	   (trim-length (if (natnump trim-length) trim-length 0)))
       (maphash
        (lambda (key value)
-	 (puthash key (gnus-registry-fetch-extra key 'mtime) timehash))
+         (puthash key (gnus-registry-fetch-extra key 'mtime) timehash))
        gnus-registry-hashtb)
-
+      
       ;; we use the return value of this setq, which is the trimmed alist
       (setq alist
 	    (nthcdr
-	     (- (length alist) gnus-registry-max-entries)
+	     trim-length
 	     (sort alist 
 		   (lambda (a b)
-		     (time-less-p 
-		      (cdr (gethash (car a) timehash))
-		      (cdr (gethash (car b) timehash))))))))))
+		     (time-less-p
+		      (or (cdr (gethash (car a) timehash)) '(0 0 0))
+		      (or (cdr (gethash (car b) timehash)) '(0 0 0))))))))))
 
 (defun alist-to-hashtable (alist)
   "Build a hashtable from the values in ALIST."
-  (let ((ht (make-hash-table 			    
+  (let ((ht (make-hash-table
 	     :size 4096
 	     :test 'equal)))
     (mapc
@@ -309,7 +337,7 @@
 
 (defun gnus-registry-action (action data-header from &optional to method)
   (let* ((id (mail-header-id data-header))
-	 (subject (gnus-registry-simplify-subject 
+	 (subject (gnus-registry-simplify-subject
 		   (mail-header-subject data-header)))
 	 (sender (mail-header-from data-header))
 	 (from (gnus-group-guess-full-name-from-command-method from))
@@ -325,7 +353,7 @@
     ;; All except copy will need a delete
     (gnus-registry-delete-group id from)
 
-    (when (equal 'copy action) 
+    (when (equal 'copy action)
       (gnus-registry-add-group id from subject sender)) ; undo the delete
 
     (gnus-registry-add-group id to subject sender)))
@@ -345,7 +373,7 @@
   "Split this message into the same group as its parent.  The parent
 is obtained from the registry.  This function can be used as an entry
 in `nnmail-split-fancy' or `nnimap-split-fancy', for example like
-this: (: gnus-registry-split-fancy-with-parent) 
+this: (: gnus-registry-split-fancy-with-parent)
 
 This function tracks ALL backends, unlike
 `nnmail-split-fancy-with-parent' which tracks only nnmail
@@ -356,22 +384,27 @@
 see which group that message was put in.  This group is returned.
 
 See the Info node `(gnus)Fancy Mail Splitting' for more details."
-  (let ((refstr (or (message-fetch-field "references")
-		    (message-fetch-field "in-reply-to")))
+  (let* ((refstr (or (message-fetch-field "references") "")) ; guarantee string
+	 (reply-to (message-fetch-field "in-reply-to"))	     ; grab reply-to
+	 ;; now, if reply-to is valid, append it to the References
+	 (refstr (if reply-to 
+		     (concat refstr " " reply-to)
+		   refstr))
 	(nnmail-split-fancy-with-parent-ignore-groups
 	 (if (listp nnmail-split-fancy-with-parent-ignore-groups)
 	     nnmail-split-fancy-with-parent-ignore-groups
 	   (list nnmail-split-fancy-with-parent-ignore-groups)))
 	references res)
-    (if refstr
+    ;; the references string must be valid and parse to valid references
+    (if (and refstr (gnus-extract-references refstr))
 	(progn
-	  (setq references (nreverse (gnus-split-references refstr)))
+	  (setq references (nreverse (gnus-extract-references refstr)))
 	  (mapcar (lambda (x)
 		    (setq res (or (gnus-registry-fetch-group x) res))
 		    (when (or (gnus-registry-grep-in-list
 			       res
 			       gnus-registry-unfollowed-groups)
-			      (gnus-registry-grep-in-list 
+			      (gnus-registry-grep-in-list
 			       res
 			       nnmail-split-fancy-with-parent-ignore-groups))
 		      (setq res nil)))
@@ -387,7 +420,7 @@
 		   sender)
 	  (maphash
 	   (lambda (key value)
-	     (let ((this-sender (cdr 
+	     (let ((this-sender (cdr
 				 (gnus-registry-fetch-extra key 'sender))))
 	       (when (and single-match
 			  this-sender
@@ -411,7 +444,7 @@
 		   (< gnus-registry-minimum-subject-length (length subject)))
 	  (maphash
 	   (lambda (key value)
-	     (let ((this-subject (cdr 
+	     (let ((this-subject (cdr
 				  (gnus-registry-fetch-extra key 'subject))))
 	       (when (and single-match
 			  this-subject
@@ -443,13 +476,13 @@
 
     (when (and res gnus-registry-use-long-group-names)
       (let ((m1 (gnus-find-method-for-group res))
-	    (m2 (or gnus-command-method 
+	    (m2 (or gnus-command-method
 		    (gnus-find-method-for-group gnus-newsgroup-name)))
 	    (short-res (gnus-group-short-name res)))
       (if (gnus-methods-equal-p m1 m2)
 	  (progn
 	    (gnus-message
-	     9 
+	     9
 	     "gnus-registry-split-fancy-with-parent stripped group %s to %s"
 	     res
 	     short-res)
@@ -468,9 +501,9 @@
     (dolist (article gnus-newsgroup-articles)
       (let ((id (gnus-registry-fetch-message-id-fast article)))
 	(unless (gnus-registry-fetch-group id)
-	  (gnus-message 9 "Registry: Registering article %d with group %s" 
+	  (gnus-message 9 "Registry: Registering article %d with group %s"
 			article gnus-newsgroup-name)
-	  (gnus-registry-add-group 
+	  (gnus-registry-add-group
 	   (gnus-registry-fetch-message-id-fast article)
 	   gnus-newsgroup-name
 	   (gnus-registry-fetch-simplified-message-subject-fast article)
@@ -509,7 +542,7 @@
   (when word
     (memq nil
 	  (mapcar 'not
-		  (mapcar 
+		  (mapcar
 		   (lambda (x)
 		     (string-match x word))
 		   list)))))
@@ -545,7 +578,7 @@
 
 	  ;; get the entree from the hash table or from the alist
 	  (setq entree (gethash id entry-cache)))
-	
+
 	(unless entree
 	  (setq entree (assq entry alist))
 	  (when gnus-registry-entry-caching
@@ -586,10 +619,27 @@
     (let ((trail (gethash id gnus-registry-hashtb)))
       (dolist (crumb trail)
 	(when (stringp crumb)
-	  (return (if gnus-registry-use-long-group-names 
-		       crumb 
+	  (return (if gnus-registry-use-long-group-names
+		       crumb
 		     (gnus-group-short-name crumb))))))))
 
+(defun gnus-registry-fetch-groups (id)
+  "Get the groups of a message, based on the message ID."
+  (let ((trail (gethash id gnus-registry-hashtb))
+	groups)
+    (dolist (crumb trail)
+      (when (stringp crumb)
+	;; push the group name into the list
+	(setq 
+	 groups
+	 (cons
+	  (if (or (not (stringp crumb)) gnus-registry-use-long-group-names)
+	      crumb
+	    (gnus-group-short-name crumb))
+	 groups))))
+    ;; return the list of groups
+    groups))
+
 (defun gnus-registry-group-count (id)
   "Get the number of groups of a message, based on the message ID."
   (let ((trail (gethash id gnus-registry-hashtb)))
@@ -599,19 +649,20 @@
 
 (defun gnus-registry-delete-group (id group)
   "Delete a group for a message, based on the message ID."
-  (when group
-    (when id
+  (when (and group id)
       (let ((trail (gethash id gnus-registry-hashtb))
-	    (group (gnus-group-short-name group)))
+	    (short-group (gnus-group-short-name group)))
 	(puthash id (if trail
-			(delete group trail)
+			(delete short-group (delete group trail))
 		      nil)
 		 gnus-registry-hashtb))
       ;; now, clear the entry if there are no more groups
       (when gnus-registry-trim-articles-without-groups
 	(unless (gnus-registry-group-count id)
 	  (gnus-registry-delete-id id)))
-      (gnus-registry-store-extra-entry id 'mtime (current-time)))))
+      ;; is this ID still in the registry?
+      (when (gethash id gnus-registry-hashtb)
+	(gnus-registry-store-extra-entry id 'mtime (current-time)))))
 
 (defun gnus-registry-delete-id (id)
   "Delete a message ID from the registry."
@@ -629,8 +680,8 @@
     (when (and id
 	       (not (string-match "totally-fudged-out-message-id" id)))
       (let ((full-group group)
-	    (group (if gnus-registry-use-long-group-names 
-		       group 
+	    (group (if gnus-registry-use-long-group-names
+		       group
 		     (gnus-group-short-name group))))
 	(gnus-registry-delete-group id group)
 
@@ -646,16 +697,16 @@
 	  (when (and (gnus-registry-track-subject-p)
 		     subject)
 	    (gnus-registry-store-extra-entry
-	     id 
-	     'subject 
+	     id
+	     'subject
 	     (gnus-registry-simplify-subject subject)))
 	  (when (and (gnus-registry-track-sender-p)
 		     sender)
 	    (gnus-registry-store-extra-entry
-	     id 
+	     id
 	     'sender
 	     sender))
-	  
+
 	  (gnus-registry-store-extra-entry id 'mtime (current-time)))))))
 
 (defun gnus-registry-clear ()
@@ -676,11 +727,11 @@
 (defun gnus-registry-install-hooks ()
   "Install the registry hooks."
   (interactive)
-  (add-hook 'gnus-summary-article-move-hook 'gnus-registry-action) 
+  (add-hook 'gnus-summary-article-move-hook 'gnus-registry-action)
   (add-hook 'gnus-summary-article-delete-hook 'gnus-registry-action)
   (add-hook 'gnus-summary-article-expire-hook 'gnus-registry-action)
   (add-hook 'nnmail-spool-hook 'gnus-registry-spool-action)
-  
+
   (add-hook 'gnus-save-newsrc-hook 'gnus-registry-save)
   (add-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read)
 
@@ -689,16 +740,18 @@
 (defun gnus-registry-unload-hook ()
   "Uninstall the registry hooks."
   (interactive)
-  (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action) 
+  (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action)
   (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action)
   (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action)
   (remove-hook 'nnmail-spool-hook 'gnus-registry-spool-action)
-  
+
   (remove-hook 'gnus-save-newsrc-hook 'gnus-registry-save)
   (remove-hook 'gnus-read-newsrc-el-hook 'gnus-registry-read)
 
   (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids))
 
+(add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook)
+
 (when gnus-registry-install
   (gnus-registry-install-hooks)
   (gnus-registry-read))
@@ -707,4 +760,5 @@
 
 (provide 'gnus-registry)
 
+;;; arch-tag: 5cba0a32-718a-4a97-8c91-0a15af21da94
 ;;; gnus-registry.el ends here
Index: gnus/lisp/gnus-salt.el
diff -u gnus/lisp/gnus-salt.el:7.4 gnus/lisp/gnus-salt.el:7.6
--- gnus/lisp/gnus-salt.el:7.4	Tue Jan  6 07:20:33 2004
+++ gnus/lisp/gnus-salt.el	Fri Sep 10 17:04:33 2004
@@ -230,7 +230,7 @@
   (let* ((echo-keystrokes 0)
 	 (start-posn (event-start start-event))
 	 (start-point (posn-point start-posn))
-	 (start-line (1+ (count-lines 1 start-point)))
+         (start-line (1+ (count-lines (point-min) start-point)))
 	 (start-window (posn-window start-posn))
 	 (bounds (gnus-window-edges start-window))
 	 (top (nth 1 bounds))
@@ -266,17 +266,18 @@
 	     ;; Are we moving within the original window?
 	     ((and (eq (posn-window end) start-window)
 		   (integer-or-marker-p end-point))
-	;; Go to START-POINT first, so that when we move to END-POINT,
+	      ;; Go to START-POINT first, so that when we move to END-POINT,
 	      ;; if it's in the middle of intangible text,
 	      ;; point jumps in the direction away from START-POINT.
 	      (goto-char start-point)
 	      (goto-char end-point)
 	      (gnus-pick-article)
 	      ;; In case the user moved his mouse really fast, pick
-	    ;; articles on the line between this one and the last one.
-	      (let* ((this-line (1+ (count-lines 1 end-point)))
+	      ;; articles on the line between this one and the last one.
+	      (let* ((this-line (1+ (count-lines (point-min) end-point)))
 		     (min-line (min this-line start-line))
 		     (max-line (max this-line start-line)))
+		;; Why not use `forward-line'?  --Stef
 		(while (< min-line max-line)
 		  (goto-line min-line)
 		  (gnus-pick-article)
@@ -787,7 +788,7 @@
 	  (setq beg (point))
 	  (forward-char -1)
 	  ;; Draw "-" lines leftwards.
-	  (while (and (> (point) 1)
+	  (while (and (not (bobp))
 		      (eq (char-after (1- (point))) ? ))
 	    (delete-char -1)
 	    (insert (car gnus-tree-parent-child-edges))
@@ -858,7 +859,8 @@
 		(gnus-extent-detached-p gnus-selected-tree-overlay))
 	;; Create a new overlay.
 	(gnus-overlay-put
-	 (setq gnus-selected-tree-overlay (gnus-make-overlay 1 2))
+	 (setq gnus-selected-tree-overlay
+	       (gnus-make-overlay (point-min) (1+ (point-min))))
 	 'face gnus-selected-tree-face))
       ;; Move the overlay to the article.
       (gnus-move-overlay
@@ -1062,4 +1064,5 @@
 
 (provide 'gnus-salt)
 
+;; arch-tag: 35449164-77b3-4398-bcbd-a2e3e998f810
 ;;; gnus-salt.el ends here
Index: gnus/lisp/gnus-score.el
diff -u gnus/lisp/gnus-score.el:7.9 gnus/lisp/gnus-score.el:7.20
--- gnus/lisp/gnus-score.el:7.9	Sun Apr 25 20:01:34 2004
+++ gnus/lisp/gnus-score.el	Thu Mar 31 22:09:53 2005
@@ -146,9 +146,15 @@
   :type 'boolean)
 
 (defcustom gnus-decay-scores nil
-  "*If non-nil, decay non-permanent scores."
+  "*If non-nil, decay non-permanent scores.
+
+If it is a regexp, only decay score files matching regexp."
   :group 'gnus-score-decay
-  :type 'boolean)
+  :type `(choice (const :tag "never" nil)
+		 (const :tag "always" t)
+		 (const :tag "adaptive score files"
+			,(concat "\\." gnus-adaptive-file-suffix "\\'"))
+		 (regexp)))
 
 (defcustom gnus-decay-score-function 'gnus-decay-score
   "*Function called to decay a score.
@@ -235,9 +241,10 @@
 
 (defcustom gnus-adaptive-word-length-limit nil
   "*Words of a length lesser than this limit will be ignored when doing adaptive scoring."
+  :version "22.1"
   :group 'gnus-score-adapt
   :type '(radio (const :format "Unlimited " nil)
-		(integer :format "Maximum length: %v\n" :size 0)))
+		(integer :format "Maximum length: %v")))
 
 (defcustom gnus-ignored-adaptive-words nil
   "List of words to be ignored when doing adaptive word scoring."
@@ -305,6 +312,13 @@
   :group 'gnus-score-files
   :type 'regexp)
 
+(defcustom gnus-adaptive-pretty-print nil
+  "If non-nil, adaptive score files fill are pretty printed."
+  :group 'gnus-score-files
+  :group 'gnus-score-adapt
+  :version "23.0" ;; No Gnus
+  :type 'boolean)
+
 (defcustom gnus-score-default-header nil
   "Default header when entering new scores.
 
@@ -740,7 +754,7 @@
 	(setq i (1+ i))))
     (goto-char (point-min))
     ;; display ourselves in a small window at the bottom
-    (gnus-appt-select-lowest-window)
+    (gnus-select-lowest-window)
     (if (< (/ (window-height) 2) window-min-height)
 	(switch-to-buffer "*Score Help*")
       (split-window)
@@ -1202,7 +1216,9 @@
 	  (decay (car (gnus-score-get 'decay alist)))
 	  (eval (car (gnus-score-get 'eval alist))))
       ;; Perform possible decays.
-      (when (and gnus-decay-scores
+      (when (and (if (stringp gnus-decay-scores)
+		     (string-match gnus-decay-scores file)
+		   gnus-decay-scores)
 		 (or cached (file-exists-p file))
 		 (or (not decay)
 		     (gnus-decay-scores alist decay)))
@@ -1404,17 +1420,18 @@
 	  (setq score (setcdr entry (gnus-delete-alist 'touched score)))
 	  (erase-buffer)
 	  (let (emacs-lisp-mode-hook)
-	    (if (string-match
-		 (concat (regexp-quote gnus-adaptive-file-suffix) "$")
-		 file)
-		;; This is an adaptive score file, so we do not run
-		;; it through `pp'.  These files can get huge, and
-		;; are not meant to be edited by human hands.
+	    (if (and (not gnus-adaptive-pretty-print)
+		     (string-match
+		      (concat (regexp-quote gnus-adaptive-file-suffix) "$")
+		      file))
+		;; This is an adaptive score file, so we do not run it through
+		;; `pp' unless requested.  These files can get huge, and are
+		;; not meant to be edited by human hands.
 		(gnus-prin1 score)
 	      ;; This is a normal score file, so we print it very
 	      ;; prettily.
 	      (let ((lisp-mode-syntax-table score-mode-syntax-table))
-		(pp score (current-buffer)))))
+		(gnus-pp score))))
 	  (gnus-make-directory (file-name-directory file))
 	  ;; If the score file is empty, we delete it.
 	  (if (zerop (buffer-size))
@@ -2357,7 +2374,8 @@
     (when winconf
       (set-window-configuration winconf))
     (gnus-score-remove-from-cache bufnam)
-    (gnus-score-load-file bufnam)))
+    (gnus-score-load-file bufnam)
+    (run-hooks 'gnus-score-edit-done-hook)))
 
 (defun gnus-score-find-trace ()
   "Find all score rules that applies to the current article."
@@ -3057,4 +3075,5 @@
 
 (provide 'gnus-score)
 
+;;; arch-tag: d3922589-764d-46ae-9954-9330fd192634
 ;;; gnus-score.el ends here
Index: gnus/lisp/gnus-setup.el
diff -u gnus/lisp/gnus-setup.el:7.2 gnus/lisp/gnus-setup.el:7.3
--- gnus/lisp/gnus-setup.el:7.2	Thu Mar  4 07:30:18 2004
+++ gnus/lisp/gnus-setup.el	Thu May 20 10:02:39 2004
@@ -191,4 +191,5 @@
 
 (run-hooks 'gnus-setup-load-hook)
 
+;;; arch-tag: 08e4af93-8565-46bf-905c-36229400609d
 ;;; gnus-setup.el ends here
Index: gnus/lisp/gnus-sieve.el
diff -u gnus/lisp/gnus-sieve.el:7.1 gnus/lisp/gnus-sieve.el:7.2
--- gnus/lisp/gnus-sieve.el:7.1	Sun Jan  4 22:51:00 2004
+++ gnus/lisp/gnus-sieve.el	Thu May 20 10:02:39 2004
@@ -236,4 +236,5 @@
 
 (provide 'gnus-sieve)
 
+;;; arch-tag: 3b906527-c7f3-4c86-9e82-62e2697998a3
 ;;; gnus-sieve.el ends here
Index: gnus/lisp/gnus-soup.el
diff -u gnus/lisp/gnus-soup.el:7.2 gnus/lisp/gnus-soup.el:7.3
--- gnus/lisp/gnus-soup.el:7.2	Sat Jan 10 05:27:00 2004
+++ gnus/lisp/gnus-soup.el	Thu May 20 10:02:39 2004
@@ -582,4 +582,5 @@
 
 (provide 'gnus-soup)
 
+;;; arch-tag: eddfa69d-13e8-4aea-84ef-62a526ef185c
 ;;; gnus-soup.el ends here
Index: gnus/lisp/gnus-spec.el
diff -u gnus/lisp/gnus-spec.el:7.4 gnus/lisp/gnus-spec.el:7.11
--- gnus/lisp/gnus-spec.el:7.4	Tue Jan 27 13:08:56 2004
+++ gnus/lisp/gnus-spec.el	Sun Feb 13 05:44:40 2005
@@ -1,5 +1,5 @@
 ;;; gnus-spec.el --- format spec functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -32,12 +32,14 @@
 
 (defcustom gnus-use-correct-string-widths (featurep 'xemacs)
   "*If non-nil, use correct functions for dealing with wide characters."
+  :version "22.1"
   :group 'gnus-format
   :type 'boolean)
 
 (defcustom gnus-make-format-preserve-properties (featurep 'xemacs)
   "*If non-nil, use a replacement `format' function which preserves
 text properties. This is only needed on XEmacs, as FSF Emacs does this anyway."
+  :version "22.1"
   :group 'gnus-format
   :type 'boolean)
 
@@ -180,10 +182,11 @@
     (pop-to-buffer "*Gnus Format*")
     (erase-buffer)
     (lisp-interaction-mode)
-    (insert (pp-to-string spec))))
+    (insert (gnus-pp-to-string spec))))
 
 (defun gnus-update-format-specifications (&optional force &rest types)
-  "Update all (necessary) format specifications."
+  "Update all (necessary) format specifications.
+Return a list of updated types."
   ;; Make the indentation array.
   ;; See whether all the stored info needs to be flushed.
   (when (or force
@@ -193,21 +196,22 @@
 	    (not (equal emacs-version
 			(cdr (assq 'version gnus-format-specs)))))
     (setq gnus-format-specs nil))
-  ;; Flush the group format spec cache if there's the grouplens stuff.
-  (let ((spec (assq 'group gnus-format-specs)))
-    (when (and (memq 'group types)
-	       (string-match " gnus-tmp-grouplens[ )]"
-			     (gnus-prin1-to-string (cdr spec))))
-      (setq gnus-format-specs (delq spec gnus-format-specs))))
+  ;; Flush the group format spec cache if there's the grouplens stuff
+  ;; or it doesn't support decoded group names.
+  (when (memq 'group types)
+    (let* ((spec (assq 'group gnus-format-specs))
+	   (sspec (gnus-prin1-to-string (nth 2 spec))))
+      (when (or (string-match " gnus-tmp-grouplens[ )]" sspec)
+		(not (string-match " gnus-tmp-decoded-group[ )]" sspec)))
+	(setq gnus-format-specs (delq spec gnus-format-specs)))))
 
   ;; Go through all the formats and see whether they need updating.
-  (let (new-format entry type val)
+  (let (new-format entry type val updated)
     (while (setq type (pop types))
       ;; Jump to the proper buffer to find out the value of the
       ;; variable, if possible.  (It may be buffer-local.)
       (save-excursion
-	(let ((buffer (intern (format "gnus-%s-buffer" type)))
-	      val)
+	(let ((buffer (intern (format "gnus-%s-buffer" type))))
 	  (when (and (boundp buffer)
 		     (setq val (symbol-value buffer))
 		     (gnus-buffer-exists-p val))
@@ -237,10 +241,12 @@
 		(setcar (cdr entry) val)
 		(setcar entry new-format))
 	    (push (list type new-format val) gnus-format-specs))
-	  (set (intern (format "gnus-%s-line-format-spec" type)) val)))))
+	  (set (intern (format "gnus-%s-line-format-spec" type)) val)
+	  (push type updated))))
 
-  (unless (assq 'version gnus-format-specs)
-    (push (cons 'version emacs-version) gnus-format-specs)))
+    (unless (assq 'version gnus-format-specs)
+      (push (cons 'version emacs-version) gnus-format-specs))
+    updated))
 
 (defvar gnus-mouse-face-0 'highlight)
 (defvar gnus-mouse-face-1 'highlight)
@@ -277,21 +283,15 @@
 
 (defun gnus-spec-tab (column)
   (if (> column 0)
-      `(insert (make-string (max (- ,column (current-column)) 0) ? ))
+      `(insert-char ?  (max (- ,column (current-column)) 0))
     (let ((column (abs column)))
-      (if gnus-use-correct-string-widths
-	  `(progn
-	     (if (> (current-column) ,column)
-		 (while (progn
-			  (delete-backward-char 1)
-			  (> (current-column) ,column))))
-	     (insert (make-string (max (- ,column (current-column)) 0) ? )))
-	`(progn
-	   (if (> (current-column) ,column)
-	       (delete-region (point)
-			      (- (point) (- (current-column) ,column)))
-	     (insert (make-string (max (- ,column (current-column)) 0)
-				  ? ))))))))
+      `(if (> (current-column) ,column)
+	   (let ((end (point)))
+	     (if (= (move-to-column ,column) ,column)
+		 (delete-region (point) end)
+	       (delete-region (1- (point)) end)
+	       (insert " ")))
+	 (insert-char ?  (max (- ,column (current-column)) 0))))))
 
 (defun gnus-correct-length (string)
   "Return the correct width of STRING."
@@ -763,4 +763,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;;; arch-tag: a4328fa1-1f84-4b09-97ad-4b5767cfd50f
 ;;; gnus-spec.el ends here
Index: gnus/lisp/gnus-srvr.el
diff -u gnus/lisp/gnus-srvr.el:7.5 gnus/lisp/gnus-srvr.el:7.14
--- gnus/lisp/gnus-srvr.el:7.5	Fri Feb 27 04:24:06 2004
+++ gnus/lisp/gnus-srvr.el	Wed Mar 23 01:48:06 2005
@@ -1,5 +1,5 @@
 ;;; gnus-srvr.el --- virtual server support for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -71,6 +71,7 @@
 (defcustom gnus-server-browse-in-group-buffer nil
   "Whether server browsing should take place in the group buffer.
 If nil, a faster, but more primitive, buffer is used instead."
+  :version "22.1"
   :group 'gnus-server-visual
   :type 'boolean)
 
@@ -204,26 +205,31 @@
 
 (defcustom gnus-server-agent-face 'gnus-server-agent-face
   "Face name to use on AGENTIZED servers."
+  :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
 (defcustom gnus-server-opened-face 'gnus-server-opened-face
   "Face name to use on OPENED servers."
+  :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
 (defcustom gnus-server-closed-face 'gnus-server-closed-face
   "Face name to use on CLOSED servers."
+  :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
 (defcustom gnus-server-denied-face 'gnus-server-denied-face
   "Face name to use on DENIED servers."
+  :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
 (defcustom gnus-server-offline-face 'gnus-server-offline-face
   "Face name to use on OFFLINE servers."
+  :version "22.1"
   :group 'gnus-server-visual
   :type 'face)
 
@@ -313,7 +319,6 @@
   (gnus-set-format 'server t)
   (let ((alist gnus-server-alist)
 	(buffer-read-only nil)
-	(opened gnus-opened-servers)
 	done server op-ser)
     (erase-buffer)
     (setq gnus-inserted-opened-servers nil)
@@ -328,16 +333,15 @@
 	(pop alist)))
     ;; Then we insert the list of servers that have been opened in
     ;; this session.
-    (while opened
-      (when (and (not (member (caar opened) done))
+    (dolist (open gnus-opened-servers)
+      (when (and (not (member (car open) done))
 		 ;; Just ignore ephemeral servers.
-		 (not (member (caar opened) gnus-ephemeral-servers)))
-	(push (caar opened) done)
+		 (not (member (car open) gnus-ephemeral-servers)))
+	(push (car open) done)
 	(gnus-server-insert-server-line
-	 (setq op-ser (format "%s:%s" (caaar opened) (nth 1 (caar opened))))
-	 (caar opened))
-	(push (list op-ser (caar opened)) gnus-inserted-opened-servers))
-      (setq opened (cdr opened))))
+	 (setq op-ser (format "%s:%s" (caar open) (nth 1 (car open))))
+	 (car open))
+	(push (list op-ser (car open)) gnus-inserted-opened-servers))))
   (goto-char (point-min))
   (gnus-server-position-point))
 
@@ -391,7 +395,14 @@
       (if cached
 	  (setq gnus-server-method-cache
 		(delq cached gnus-server-method-cache)))
-      (if entry (setcdr entry info)
+      (if entry
+	  (progn
+	    ;; Remove the server from `gnus-opened-servers' since
+	    ;; it has never been opened with the new `info' yet.
+	    (gnus-opened-servers-remove (cdr entry))
+	    ;; Don't make a new Lisp object.
+	    (setcar (cdr entry) (car info))
+	    (setcdr (cdr entry) (cdr info)))
 	(setq gnus-server-alist
 	      (nconc gnus-server-alist (list (cons server info))))))))
 
@@ -492,9 +503,8 @@
 (defun gnus-server-open-all-servers ()
   "Open all servers."
   (interactive)
-  (let ((servers gnus-inserted-opened-servers))
-    (while servers
-      (gnus-server-open-server (car (pop servers))))))
+  (dolist (server gnus-inserted-opened-servers)
+    (gnus-server-open-server (car server))))
 
 (defun gnus-server-close-server (server)
   "Close SERVER."
@@ -853,23 +863,26 @@
   (setq buffer-read-only t)
   (gnus-run-hooks 'gnus-browse-mode-hook))
 
-(defun gnus-browse-read-group (&optional no-article)
-  "Enter the group at the current line."
-  (interactive)
+(defun gnus-browse-read-group (&optional no-article number)
+  "Enter the group at the current line.
+If NUMBER, fetch this number of articles."
+  (interactive "P")
   (let ((group (gnus-browse-group-name)))
     (if (or (not (gnus-get-info group))
 	    (gnus-ephemeral-group-p group))
 	(unless (gnus-group-read-ephemeral-group
 		 group gnus-browse-current-method nil
-		 (cons (current-buffer) 'browse))
+		 (cons (current-buffer) 'browse)
+		 nil nil nil number)
 	  (error "Couldn't enter %s" group))
       (unless (gnus-group-read-group nil no-article group)
 	(error "Couldn't enter %s" group)))))
 
-(defun gnus-browse-select-group ()
-  "Select the current group."
-  (interactive)
-  (gnus-browse-read-group 'no))
+(defun gnus-browse-select-group (&optional number)
+  "Select the current group.
+If NUMBER, fetch this number of articles."
+  (interactive "P")
+  (gnus-browse-read-group 'no number))
 
 (defun gnus-browse-next-group (n)
   "Go to the next group."
@@ -990,4 +1003,5 @@
 
 (provide 'gnus-srvr)
 
+;;; arch-tag: c0117f64-27ca-475d-9406-8da6854c7a25
 ;;; gnus-srvr.el ends here
Index: gnus/lisp/gnus-start.el
diff -u gnus/lisp/gnus-start.el:7.11 gnus/lisp/gnus-start.el:7.34
--- gnus/lisp/gnus-start.el:7.11	Thu Apr  8 18:02:08 2004
+++ gnus/lisp/gnus-start.el	Wed Mar 30 10:17:05 2005
@@ -1,5 +1,5 @@
 ;;; gnus-start.el --- startup functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -37,7 +37,7 @@
 (autoload 'gnus-agent-save-local "gnus-agent")
 (autoload 'gnus-agent-possibly-alter-active "gnus-agent")
 
-(eval-when-compile 
+(eval-when-compile
   (require 'cl)
 
   (defvar gnus-agent-covered-methods nil)
@@ -54,6 +54,7 @@
   "Whether to create backup files.
 This variable takes the same values as the `version-control'
 variable."
+  :version "22.1"
   :group 'gnus-start
   :type '(choice (const :tag "Never" never)
 		 (const :tag "If existing" nil)
@@ -64,6 +65,7 @@
 the buffer or write directly to the file.  The buffer is faster
 because all of the contents are written at once.  The direct write
 uses considerably less memory."
+  :version "22.1"
   :group 'gnus-start
   :type '(choice (const :tag "Write via buffer" t)
                  (const :tag "Write directly to file" nil)))
@@ -256,7 +258,7 @@
 			       (and value (not (stringp value))))
 		      :value t)
 		(const nil)
-		(regexp :format "%t: %v\n" :size 0)))
+		regexp))
 
 (defcustom gnus-ignored-newsgroups
   (mapconcat 'identity
@@ -297,6 +299,7 @@
 (defcustom gnus-subscribe-newsgroup-hooks nil
   "*Hooks run after you subscribe to a new group.
 The hooks will be called with new group's name as argument."
+  :version "22.1"
   :group 'gnus-group-new
   :type 'hook)
 
@@ -403,6 +406,7 @@
 
 (defcustom gnus-get-top-new-news-hook nil
   "A hook run just before Gnus checks for new news globally."
+  :version "22.1"
   :group 'gnus-group-new
   :type 'hook)
 
@@ -496,19 +500,23 @@
 
 (defun gnus-subscribe-hierarchical-interactive (groups)
   (let ((groups (sort groups 'string<))
-	prefixes prefix start ans group starts)
+	prefixes prefix start ans group starts real-group)
     (while groups
       (setq prefixes (list "^"))
       (while (and groups prefixes)
-	(while (not (string-match (car prefixes) (car groups)))
+	(while (not (string-match (car prefixes)
+				  (gnus-group-real-name (car groups))))
 	  (setq prefixes (cdr prefixes)))
 	(setq prefix (car prefixes))
 	(setq start (1- (length prefix)))
-	(if (and (string-match "[^\\.]\\." (car groups) start)
+	(if (and (string-match "[^\\.]\\." (gnus-group-real-name (car groups))
+			       start)
 		 (cdr groups)
 		 (setq prefix
-		       (concat "^" (substring (car groups) 0 (match-end 0))))
-		 (string-match prefix (cadr groups)))
+		       (concat "^" (substring
+				    (gnus-group-real-name (car groups))
+				    0 (match-end 0))))
+		 (string-match prefix (gnus-group-real-name (cadr groups))))
 	    (progn
 	      (push prefix prefixes)
 	      (message "Descend hierarchy %s? ([y]nsq): "
@@ -520,16 +528,18 @@
 			 (substring prefix 1 (1- (length prefix)))))
 	      (cond ((= ans ?n)
 		     (while (and groups
-				 (string-match prefix
-					       (setq group (car groups))))
+				 (setq group (car groups)
+				       real-group (gnus-group-real-name group))
+				 (string-match prefix real-group))
 		       (push group gnus-killed-list)
 		       (gnus-sethash group group gnus-killed-hashtb)
 		       (setq groups (cdr groups)))
 		     (setq starts (cdr starts)))
 		    ((= ans ?s)
 		     (while (and groups
-				 (string-match prefix
-					       (setq group (car groups))))
+				 (setq group (car groups)
+				       real-group (gnus-group-real-name group))
+				 (string-match prefix real-group))
 		       (gnus-sethash group group gnus-killed-hashtb)
 		       (gnus-subscribe-alphabetically (car groups))
 		       (setq groups (cdr groups)))
@@ -870,7 +880,7 @@
 	  (when (and (file-exists-p gnus-current-startup-file)
 		     (file-exists-p dribble-file)
 		     (setq modes (file-modes gnus-current-startup-file)))
-	    (set-file-modes dribble-file modes))
+	    (gnus-set-file-modes dribble-file modes))
 	  (goto-char (point-min))
 	  (when (search-forward "Gnus was exited on purpose" nil t)
 	    (setq purpose t))
@@ -942,16 +952,28 @@
     ;; Make sure the archive server is available to all and sundry.
     (when gnus-message-archive-method
       (unless (assoc "archive" gnus-server-alist)
-	(push `("archive"
-		nnfolder
-		"archive"
-		(nnfolder-directory
-		 ,(nnheader-concat message-directory "archive"))
-		(nnfolder-active-file
-		 ,(nnheader-concat message-directory "archive/active"))
-		(nnfolder-get-new-mail nil)
-		(nnfolder-inhibit-expiry t))
-	      gnus-server-alist)))
+	(let ((method (or (and (stringp gnus-message-archive-method)
+			       (gnus-server-to-method
+				gnus-message-archive-method))
+			  gnus-message-archive-method)))
+	  ;; Check whether the archive method is writable.
+	  (unless (or (stringp method)
+		      (memq 'respool (assoc (format "%s" (car method))
+					    gnus-valid-select-methods)))
+	    (setq method "archive")) ;; The default.
+	  (push (if (stringp method)
+		    `("archive"
+		      nnfolder
+		      ,method
+		      (nnfolder-directory
+		       ,(nnheader-concat message-directory method))
+		      (nnfolder-active-file
+		       ,(nnheader-concat message-directory
+					 (concat method "/active")))
+		      (nnfolder-get-new-mail nil)
+		      (nnfolder-inhibit-expiry t))
+		  (cons "archive" method))
+		gnus-server-alist))))
 
     ;; If we don't read the complete active file, we fill in the
     ;; hashtb here.
@@ -1479,8 +1501,8 @@
 	    (setcdr active (cdr cache-active))))))))
 
 (defun gnus-activate-group (group &optional scan dont-check method)
-  ;; Check whether a group has been activated or not.
-  ;; If SCAN, request a scan of that group as well.
+  "Check whether a group has been activated or not.
+If SCAN, request a scan of that group as well."
   (let ((method (or method (inline (gnus-find-method-for-group group))))
 	active)
     (and (inline (gnus-check-server method))
@@ -1525,7 +1547,7 @@
 	     active)))))
 
 (defun gnus-get-unread-articles-in-group (info active &optional update)
-  (when active
+  (when (and info active)
     ;; Allow the backend to update the info in the group.
     (when (and update
 	       (gnus-request-update-info
@@ -1637,12 +1659,12 @@
 	 (methods-cache nil)
 	 (type-cache nil)
 	 scanned-methods info group active method retrieve-groups cmethod
-	 method-type)
+	 method-type ignore)
     (gnus-message 6 "Checking new news...")
 
     (while newsrc
       (setq active (gnus-active (setq group (gnus-info-group
-						  (setq info (pop newsrc))))))
+					     (setq info (pop newsrc))))))
 
       ;; Check newsgroups.  If the user doesn't want to check them, or
       ;; they can't be checked (for instance, if the news server can't
@@ -1665,28 +1687,30 @@
       (when (and method
 		 (not (setq method-type (cdr (assoc method type-cache)))))
 	(setq method-type
-		   (cond
-		    ((gnus-secondary-method-p method)
-		     'secondary)
-		    ((inline (gnus-server-equal gnus-select-method method))
-		     'primary)
-		    (t
-		     'foreign)))
+	      (cond
+	       ((gnus-secondary-method-p method)
+		'secondary)
+	       ((inline (gnus-server-equal gnus-select-method method))
+		'primary)
+	       (t
+		'foreign)))
 	(push (cons method method-type) type-cache))
 
+      (setq ignore nil)
       (cond ((and method (eq method-type 'foreign))
 	     ;; These groups are foreign.  Check the level.
-	     (when (and (<= (gnus-info-level info) foreign-level)
-			(setq active (gnus-activate-group group 'scan)))
-	       ;; Let the Gnus agent save the active file.
-	       (when (and gnus-agent active (gnus-online method))
-		 (gnus-agent-save-group-info
-		  method (gnus-group-real-name group) active))
-	       (unless (inline (gnus-virtual-group-p group))
-		 (inline (gnus-close-group group)))
-	       (when (fboundp (intern (concat (symbol-name (car method))
-					      "-request-update-info")))
-		 (inline (gnus-request-update-info info method)))))
+	     (if (<= (gnus-info-level info) foreign-level)
+		 (when (setq active (gnus-activate-group group 'scan))
+		   ;; Let the Gnus agent save the active file.
+		   (when (and gnus-agent active (gnus-online method))
+		     (gnus-agent-save-group-info
+		      method (gnus-group-real-name group) active))
+		   (unless (inline (gnus-virtual-group-p group))
+		     (inline (gnus-close-group group)))
+		   (when (fboundp (intern (concat (symbol-name (car method))
+						  "-request-update-info")))
+		     (inline (gnus-request-update-info info method))))
+	       (setq ignore t)))
 	    ;; These groups are native or secondary.
 	    ((> (gnus-info-level info) level)
 	     ;; We don't want these groups.
@@ -1725,6 +1749,10 @@
        ((eq active 'ignore)
 	;; Don't do anything.
 	)
+       ((and active ignore)
+	;; The level of the foreign group is higher than the specified
+	;; value.
+	)
        (active
 	(inline (gnus-get-unread-articles-in-group info active t)))
        (t
@@ -1745,8 +1773,8 @@
 	  (when (gnus-check-backend-function 'request-scan (car method))
 	    (gnus-request-scan nil method))
 	  (gnus-read-active-file-2
-		(mapcar (lambda (group) (gnus-group-real-name group)) groups)
-		method)
+	   (mapcar (lambda (group) (gnus-group-real-name group)) groups)
+	   method)
 	  (dolist (group groups)
 	    (cond
 	     ((setq active (gnus-active (gnus-info-group
@@ -1765,7 +1793,7 @@
 (defun gnus-make-hashtable-from-newsrc-alist ()
   (let ((alist gnus-newsrc-alist)
 	(ohashtb gnus-newsrc-hashtb)
-	prev)
+	prev info method rest methods)
     (setq gnus-newsrc-hashtb (gnus-make-hashtable (length alist)))
     (setq alist
 	  (setq prev (setq gnus-newsrc-alist
@@ -1774,14 +1802,26 @@
 			       gnus-newsrc-alist
 			     (cons (list "dummy.group" 0 nil) alist)))))
     (while alist
+      (setq info (car alist))
+      ;; Make the same select-methods identical Lisp objects.
+      (when (setq method (gnus-info-method info))
+	(if (setq rest (member method methods))
+	    (gnus-info-set-method info (car rest))
+	  (push method methods)))
       (gnus-sethash
-       (caar alist)
+       (car info)
        ;; Preserve number of unread articles in groups.
-       (cons (and ohashtb (car (gnus-gethash (caar alist) ohashtb)))
+       (cons (and ohashtb (car (gnus-gethash (car info) ohashtb)))
 	     prev)
        gnus-newsrc-hashtb)
       (setq prev alist
-	    alist (cdr alist)))))
+	    alist (cdr alist)))
+    ;; Make the same select-methods in `gnus-server-alist' identical
+    ;; as well.
+    (while methods
+      (setq method (pop methods))
+      (when (setq rest (rassoc method gnus-server-alist))
+	(setcdr rest method)))))
 
 (defun gnus-make-hashtable-from-killed ()
   "Create a hash table from the killed and zombie lists."
@@ -1882,7 +1922,7 @@
                             (setcdr range (1- article))
                             (setq modified t)
                             ranges))))))))
-                  
+
     (when modified
       (when (eq modified 'remove-null)
         (setq r (delq nil r)))
@@ -2215,9 +2255,10 @@
 (defun gnus-convert-old-newsrc ()
   "Convert old newsrc formats into the current format, if needed."
   (let ((fcv (and gnus-newsrc-file-version
-		  (gnus-continuum-version gnus-newsrc-file-version))))
+		  (gnus-continuum-version gnus-newsrc-file-version)))
+	(gcv (gnus-continuum-version)))
     (when fcv
-      ;; A .newsrc.eld file was loaded.
+      ;; A newsrc file was loaded.
       (let (prompt-displayed
             (converters
              (sort
@@ -2233,13 +2274,13 @@
                       ;; doesn't change with each release) and the
                       ;; function that must be applied to convert the
                       ;; previous version into the current version.
-                      '(("September Gnus v0.1" nil 
+                      '(("September Gnus v0.1" nil
                          gnus-convert-old-ticks)
                         ("Oort Gnus v0.08"     "legacy-gnus-agent"
                          gnus-agent-convert-to-compressed-agentview)
-                        ("No Gnus v0.2"        "legacy-gnus-agent"
+                        ("Gnus v5.10.7"        "legacy-gnus-agent"
                          gnus-agent-unlist-expire-days)
-                        ("No Gnus v0.2"        "legacy-gnus-agent" 
+                        ("Gnus v5.10.7"        "legacy-gnus-agent"
                          gnus-agent-unhook-expire-days)))
               #'car-less-than-car)))
         ;; Skip converters older than the file version
@@ -2248,7 +2289,8 @@
 
         ;; Perform converters to bring older version up to date.
 	(when (and converters (< fcv (caar converters)))
-	  (while (and converters (< fcv (caar converters)))
+	  (while (and converters (< fcv (caar converters))
+		      (<= (caar converters) gcv))
             (let* ((converter-spec  (pop converters))
                    (convert-to      (nth 1 converter-spec))
                    (load-from       (nth 2 converter-spec))
@@ -2256,24 +2298,23 @@
               (when (and load-from
                          (not (fboundp func)))
                 (load load-from t))
-              
               (or prompt-displayed
                   (not (gnus-convert-converter-needs-prompt func))
                   (while (let (c
                                (cursor-in-echo-area t)
                                (echo-keystrokes 0))
-                           (message "Convert newsrc from version '%s' to '%s'? (n/y/?)"
+                           (message "Convert gnus from version '%s' to '%s'? (n/y/?)"
                                     gnus-newsrc-file-version gnus-version)
                            (setq c (read-char-exclusive))
 
                            (cond ((or (eq c ?n) (eq c ?N))
-                                  (error "Can not start gnus using old (unconverted) newsrc"))
+                                  (error "Can not start gnus without converting"))
                                  ((or (eq c ?y) (eq c ?Y))
                                   (setq prompt-displayed t)
                                   nil)
                                  ((eq c ?\?)
                                   (message "This conversion is irreversible. \
- You should backup your files before proceeding.")
+ To be safe, you should backup your files before proceeding.")
                                   (sit-for 5)
                                   t)
                                  (t
@@ -2282,20 +2323,22 @@
                                   t)))))
 
               (funcall func convert-to)))
-          (gnus-dribble-enter 
-           (format ";Converted newsrc from version '%s' to '%s'? (n/y/?)"
+          (gnus-dribble-enter
+           (format ";Converted gnus from version '%s' to '%s'."
                    gnus-newsrc-file-version gnus-version)))))))
 
 (defun gnus-convert-mark-converter-prompt (converter no-prompt)
-  (setplist converter
-            (let* ((symbol 'gnus-convert-no-prompt)
-                   (value (delq symbol (symbol-plist converter))))
-            (if no-prompt
-                (cons symbol value)
-              value))))
+  "Indicate whether CONVERTER requires gnus-convert-old-newsrc to
+  display the conversion prompt.  NO-PROMPT may be nil (prompt),
+  t (no prompt), or any form that can be called as a function.
+  The form should return either t or nil."
+  (put converter 'gnus-convert-no-prompt no-prompt))
 
 (defun gnus-convert-converter-needs-prompt (converter)
-  (not (memq 'gnus-convert-no-prompt (symbol-plist converter))))
+  (let ((no-prompt (get converter 'gnus-convert-no-prompt)))
+    (not (if (memq no-prompt '(t nil))
+	     no-prompt
+	   (funcall no-prompt)))))
 
 (defun gnus-convert-old-ticks (converting-to)
   (let ((newsrc (cdr gnus-newsrc-alist))
@@ -2752,7 +2795,7 @@
 
                       ;; Replace the existing startup file with the temp file.
                       (rename-file working-file startup-file t)
-                      (set-file-modes startup-file setmodes)))
+                      (gnus-set-file-modes startup-file setmodes)))
                 (condition-case nil
                     (delete-file working-file)
                   (file-error nil)))))
@@ -2897,7 +2940,7 @@
       (let ((coding-system-for-write gnus-ding-file-coding-system))
 	(gnus-write-buffer slave-name))
       (when modes
-	(set-file-modes slave-name modes)))))
+	(gnus-set-file-modes slave-name modes)))))
 
 (defun gnus-master-read-slave-newsrc ()
   (let ((slave-files
@@ -3056,12 +3099,10 @@
 	    (file-name-as-directory (expand-file-name gnus-default-directory))
 	  default-directory)))
 
-(eval-and-compile
-(defalias 'gnus-display-time-event-handler
-  (if (gnus-boundp 'display-time-timer)
-      'display-time-event-handler
-    (lambda () "Does nothing as `display-time-timer' is not bound.
-Would otherwise be an alias for `display-time-event-handler'." nil))))
+(defun gnus-display-time-event-handler ()
+  (if (and (fboundp 'display-time-event-handler)
+	   (gnus-boundp 'display-time-timer))
+      (display-time-event-handler)))
 
 ;;;###autoload
 (defun gnus-fixup-nnimap-unread-after-getting-new-news ()
@@ -3077,9 +3118,45 @@
 	 (symbol-value 'nnimap-mailbox-info)
        (make-vector 1 0)))))
 
+(defun gnus-check-reasonable-setup ()
+  ;; Check whether nnml and nnfolder share a directory.
+  (let ((display-warn
+	 (if (fboundp 'display-warning)
+	     'display-warning
+	   (lambda (type message)
+	     (if noninteractive
+		 (message "Warning (%s): %s" type message)
+	       (let (window)
+		 (with-current-buffer (get-buffer-create "*Warnings*")
+		   (goto-char (point-max))
+		   (unless (bolp)
+		     (insert "\n"))
+		   (insert (format "Warning (%s): %s\n" type message))
+		   (setq window (display-buffer (current-buffer)))
+		   (set-window-start
+		    window
+		    (prog2
+			(forward-line (- 1 (window-height window)))
+			(point)
+		      (goto-char (point-max))))))))))
+	method active actives match)
+    (dolist (server gnus-server-alist)
+      (setq method (gnus-server-to-method server)
+	    active (intern (format "%s-active-file" (car method))))
+      (when (and (member (car method) '(nnml nnfolder))
+		 (gnus-server-opened method)
+		 (boundp active))
+	(when (setq match (assoc (symbol-value active) actives))
+	  (funcall display-warn 'gnus-server
+		   (format "%s and %s share the same active file %s"
+			   (car method)
+			   (cadr match)
+			   (car match))))
+	(push (list (symbol-value active) method) actives)))))
 
 (provide 'gnus-start)
 
+;; arch-tag: f4584a22-b7b7-4853-abfc-a637329af5d2
 ;;; gnus-start.el ends here
 
 
Index: gnus/lisp/gnus-sum.el
diff -u gnus/lisp/gnus-sum.el:7.29 gnus/lisp/gnus-sum.el:7.87
--- gnus/lisp/gnus-sum.el:7.29	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/gnus-sum.el	Thu Mar  3 19:00:15 2005
@@ -1,5 +1,5 @@
 ;;; gnus-sum.el --- summary mode commands for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -64,7 +64,7 @@
   "*Non-nil means that Gnus will try to build threads by grabbing old headers.
 If an unread article in the group refers to an older, already read (or
 just marked as read) article, the old article will not normally be
-displayed in the Summary buffer.  If this variable is non-nil, Gnus
+displayed in the Summary buffer.  If this variable is t, Gnus
 will attempt to grab the headers to the old articles, and thereby
 build complete threads.  If it has the value `some', only enough
 headers to connect otherwise loose threads will be displayed.  This
@@ -75,7 +75,9 @@
 The server has to support NOV for any of this to work."
   :group 'gnus-thread
   :type '(choice (const :tag "off" nil)
+		 (const :tag "on" t)
 		 (const some)
+		 (const invisible)
 		 number
 		 (sexp :menu-tag "other" t)))
 
@@ -117,6 +119,7 @@
 
 (defcustom gnus-summary-make-false-root-always nil
   "Always make a false dummy root."
+  :version "22.1"
   :group 'gnus-thread
   :type 'boolean)
 
@@ -217,6 +220,7 @@
   "*Default threshold for a high scored article.
 An article will be highlighted as high scored if its score is greater
 than this score."
+  :version "22.1"
   :group 'gnus-score-default
   :type 'integer)
 
@@ -224,6 +228,7 @@
   "*Default threshold for a low scored article.
 An article will be highlighted as low scored if its score is smaller
 than this score."
+  :version "22.1"
   :group 'gnus-score-default
   :type 'integer)
 
@@ -259,7 +264,7 @@
 			       (not (or (consp value) (functionp value))))
 		      :value t)
 		(const nil)
-		(sexp :tag "Predicate specifier" :size 0)))
+		(sexp :tag "Predicate specifier")))
 
 (defcustom gnus-thread-hide-killed t
   "*If non-nil, hide killed threads automatically."
@@ -319,6 +324,7 @@
 line of the first unseen article or, if all article have been seen, on the
 subject line of the first unread article), or a function to be called to
 place point on some subject line."
+  :version "22.1"
   :group 'gnus-group-select
   :type '(choice (const best)
 		 (const unread)
@@ -362,6 +368,7 @@
 
 NOTE: The list of unfetched articles will always be nil when plugged
 and, when unplugged, a subset of the undownloaded article list."
+  :version "22.1"
   :group 'gnus-summary-maneuvering
   :type '(choice (const :tag "None" nil)
                  (const :tag "Undownloaded when unplugged" undownloaded)
@@ -375,7 +382,7 @@
   :group 'gnus-summary-maneuvering
   :type 'boolean)
 
-(defcustom gnus-auto-center-summary t
+(defcustom gnus-auto-center-summary 2
   "*If non-nil, always center the current summary buffer.
 In particular, if `vertical' do only vertical recentering.  If non-nil
 and non-`vertical', do both horizontal and vertical recentering."
@@ -429,6 +436,9 @@
   :group 'gnus-summary-mail
   :type 'function)
 
+;; FIXME: Although the custom type is `character' for the following variables,
+;; using multibyte characters (Latin-1, UTF-8) doesn't work.  -- rs
+
 (defcustom gnus-unread-mark ?           ;Whitespace
   "*Mark used for unread articles."
   :group 'gnus-summary-marks
@@ -466,6 +476,7 @@
 
 (defcustom gnus-spam-mark ?$
   "*Mark used for spam articles."
+  :version "22.1"
   :group 'gnus-summary-marks
   :type 'character)
 
@@ -496,11 +507,13 @@
 
 (defcustom gnus-forwarded-mark ?F
   "*Mark used for articles that have been forwarded."
+  :version "22.1"
   :group 'gnus-summary-marks
   :type 'character)
 
 (defcustom gnus-recent-mark ?N
   "*Mark used for articles that are recent."
+  :version "22.1"
   :group 'gnus-summary-marks
   :type 'character)
 
@@ -516,11 +529,13 @@
 
 (defcustom gnus-unseen-mark ?.
   "*Mark used for articles that haven't been seen."
+  :version "22.1"
   :group 'gnus-summary-marks
   :type 'character)
 
 (defcustom gnus-no-mark ?               ;Whitespace
   "*Mark used for articles that have no other secondary mark."
+  :version "22.1"
   :group 'gnus-summary-marks
   :type 'character)
 
@@ -546,6 +561,7 @@
 
 (defcustom gnus-undownloaded-mark ?-
   "*Mark used for articles that weren't downloaded."
+  :version "22.1"
   :group 'gnus-summary-marks
   :type 'character)
 
@@ -712,7 +728,6 @@
   :match 'gnus-widget-reversible-match
   :value-to-internal 'gnus-widget-reversible-to-internal
   :value-to-external 'gnus-widget-reversible-to-external)
-                        
 
 (defcustom gnus-article-sort-functions '(gnus-article-sort-by-number)
   "*List of functions used for sorting articles in the summary buffer.
@@ -933,16 +948,19 @@
 
 (defcustom gnus-summary-article-move-hook nil
   "*A hook called after an article is moved, copied, respooled, or crossposted."
+  :version "22.1"
   :group 'gnus-summary
   :type 'hook)
 
 (defcustom gnus-summary-article-delete-hook nil
   "*A hook called after an article is deleted."
+  :version "22.1"
   :group 'gnus-summary
   :type 'hook)
 
 (defcustom gnus-summary-article-expire-hook nil
   "*A hook called after an article is expired."
+  :version "22.1"
   :group 'gnus-summary
   :type 'hook)
 
@@ -950,7 +968,7 @@
   (and (fboundp 'display-graphic-p)
        (display-graphic-p))
   "*If non-nil, display an arrow highlighting the current article."
-  :version "21.1"
+  :version "22.1"
   :group 'gnus-summary
   :type 'boolean)
 
@@ -1128,22 +1146,23 @@
 This is mostly relevant for slow back ends where the user may
 wish to widen the summary buffer to include all headers
 that were fetched.  Say, for nnultimate groups."
+  :version "22.1"
   :group 'gnus-summary
   :type '(choice boolean regexp))
 
 (defcustom gnus-summary-muttprint-program "muttprint"
   "Command (and optional arguments) used to run Muttprint."
-  :version "21.3"
+  :version "22.1"
   :group 'gnus-summary
   :type 'string)
 
-(defcustom gnus-article-loose-mime nil
+(defcustom gnus-article-loose-mime t
   "If non-nil, don't require MIME-Version header.
 Some brain-damaged MUA/MTA, e.g. Lotus Domino 5.0.6 clients, does not
-supply the MIME-Version header or deliberately strip it From the mail.
-Set it to non-nil, Gnus will treat some articles as MIME even if
-the MIME-Version header is missed."
-  :version "21.3"
+supply the MIME-Version header or deliberately strip it from the mail.
+If non-nil (the default), Gnus will treat some articles as MIME
+even if the MIME-Version header is missing."
+  :version "22.1"
   :type 'boolean
   :group 'gnus-article-mime)
 
@@ -1152,6 +1171,7 @@
 This means that Gnus will search message bodies for text that look
 like uuencoded bits, yEncoded bits, and so on, and present that using
 the normal Gnus MIME machinery."
+  :version "22.1"
   :type 'boolean
   :group 'gnus-article-mime)
 
@@ -1469,7 +1489,6 @@
         nil
       (load "gnus-sum.el" t t t))
     (require 'gnus)
-    (require 'gnus-agent)
     (require 'gnus-art)))
 
 ;; MIME stuff.
@@ -1710,6 +1729,7 @@
   "\C-c\C-s\C-l" gnus-summary-sort-by-lines
   "\C-c\C-s\C-c" gnus-summary-sort-by-chars
   "\C-c\C-s\C-a" gnus-summary-sort-by-author
+  "\C-c\C-s\C-t" gnus-summary-sort-by-recipient
   "\C-c\C-s\C-s" gnus-summary-sort-by-subject
   "\C-c\C-s\C-d" gnus-summary-sort-by-date
   "\C-c\C-s\C-i" gnus-summary-sort-by-score
@@ -1737,6 +1757,7 @@
   "Q" gnus-summary-exit-no-update
   "\C-c\C-i" gnus-info-find-node
   gnus-mouse-2 gnus-mouse-pick-article
+  [follow-link] mouse-face
   "m" gnus-summary-mail-other-window
   "a" gnus-summary-post-news
   "i" gnus-summary-news-other-window
@@ -1820,7 +1841,8 @@
   "C" gnus-summary-limit-mark-excluded-as-read
   "o" gnus-summary-insert-old-articles
   "N" gnus-summary-insert-new-articles
-  "r" gnus-summary-limit-to-replied)
+  "r" gnus-summary-limit-to-replied
+  "R" gnus-summary-limit-to-recipient)
 
 (gnus-define-keys (gnus-summary-goto-map "G" gnus-summary-mode-map)
   "n" gnus-summary-next-unread-article
@@ -1923,7 +1945,8 @@
   "v" gnus-summary-verbose-headers
   "a" gnus-article-strip-headers-in-body ;; mnemonic: wash archive
   "p" gnus-article-verify-x-pgp-sig
-  "d" gnus-article-treat-dumbquotes)
+  "d" gnus-article-treat-dumbquotes
+  "i" gnus-summary-idna-message)
 
 (gnus-define-keys (gnus-summary-wash-deuglify-map "Y" gnus-summary-wash-map)
   ;; mnemonic: deuglif*Y*
@@ -2246,6 +2269,7 @@
 	      ["Rot 13" gnus-summary-caesar-message
 	       ,@(if (featurep 'xemacs) '(t)
 		   '(:help "\"Caesar rotate\" article by 13"))]
+	      ["De-IDNA" gnus-summary-idna-message t]
 	      ["Morse decode" gnus-summary-morse-message t]
 	      ["Unix pipe..." gnus-summary-pipe-message t]
 	      ["Add buttons" gnus-article-add-buttons t]
@@ -2282,8 +2306,12 @@
 	      ["Pipe through a filter..." gnus-summary-pipe-output t]
 	      ["Add to SOUP packet" gnus-soup-add-article t]
 	      ["Print with Muttprint..." gnus-summary-muttprint t]
-	      ["Print" gnus-summary-print-article t])
-	     ("Backend"
+	      ["Print" gnus-summary-print-article
+	       ,@(if (featurep 'xemacs) '(t)
+		   '(:help "Generate and print a PostScript image"))])
+	     ("Copy, move,... (Backend)"
+	      ,@(if (featurep 'xemacs) nil
+		  '(:help "Copying, moving, expiring articles..."))
 	      ["Respool article..." gnus-summary-respool-article t]
 	      ["Move article..." gnus-summary-move-article
 	       (gnus-check-backend-function
@@ -2374,7 +2402,7 @@
       `("Post"
 	["Send a message (mail or news)" gnus-summary-post-news
 	 ,@(if (featurep 'xemacs) '(t)
-	     '(:help "Post an article"))]
+	     '(:help "Compose a new message (mail or news)"))]
 	["Followup" gnus-summary-followup
 	 ,@(if (featurep 'xemacs) '(t)
 	     '(:help "Post followup to this article"))]
@@ -2453,6 +2481,7 @@
 	 ["Marks..." gnus-summary-limit-to-marks t]
 	 ["Subject..." gnus-summary-limit-to-subject t]
 	 ["Author..." gnus-summary-limit-to-author t]
+	 ["Recipient..." gnus-summary-limit-to-recipient t]
 	 ["Age..." gnus-summary-limit-to-age t]
 	 ["Extra..." gnus-summary-limit-to-extra t]
 	 ["Score..." gnus-summary-limit-to-score t]
@@ -2473,6 +2502,7 @@
 	 ["Set mark" gnus-summary-mark-as-processable t]
 	 ["Remove mark" gnus-summary-unmark-as-processable t]
 	 ["Remove all marks" gnus-summary-unmark-all-processable t]
+	 ["Invert marks" gnus-uu-invert-processable t]
 	 ["Mark above" gnus-uu-mark-over t]
 	 ["Mark series" gnus-uu-mark-series t]
 	 ["Mark region" gnus-uu-mark-region (gnus-mark-active-p)]
@@ -2516,6 +2546,7 @@
 	("Sort"
 	 ["Sort by number" gnus-summary-sort-by-number t]
 	 ["Sort by author" gnus-summary-sort-by-author t]
+	 ["Sort by recipient" gnus-summary-sort-by-recipient t]
 	 ["Sort by subject" gnus-summary-sort-by-subject t]
 	 ["Sort by date" gnus-summary-sort-by-date t]
 	 ["Sort by score" gnus-summary-sort-by-score t]
@@ -2610,6 +2641,8 @@
 	      (tool-bar-add-item-from-menu
 	       'gnus-uu-post-news "uu-post" gnus-summary-mode-map)
 	      (tool-bar-add-item-from-menu
+	       'gnus-uu-post-news "uu-post" gnus-summary-mode-map)
+	      (tool-bar-add-item-from-menu
 	       'gnus-summary-catchup "catchup" gnus-summary-mode-map)
 	      (tool-bar-add-item-from-menu
 	       'gnus-summary-catchup-and-exit "cu-exit" gnus-summary-mode-map)
@@ -2741,7 +2774,8 @@
   (make-local-variable 'minor-mode-alist)
   (use-local-map gnus-summary-mode-map)
   (buffer-disable-undo)
-  (setq buffer-read-only t)		;Disable modification
+  (setq buffer-read-only t		;Disable modification
+	show-trailing-whitespace nil)
   (setq truncate-lines t)
   (setq selective-display t)
   (setq selective-display-ellipses t)	;Display `...'
@@ -2780,9 +2814,9 @@
   (let ((locals gnus-summary-local-variables))
     (while locals
       (if (consp (car locals))
-	  (and (vectorp (caar locals))
+	  (and (symbolp (caar locals))
 	       (set (caar locals) nil))
-	(and (vectorp (car locals))
+	(and (symbolp (car locals))
 	     (set (car locals) nil)))
       (setq locals (cdr locals)))))
 
@@ -2854,10 +2888,9 @@
 	    (setq gnus-newsgroup-data (nconc list gnus-newsgroup-data))
 	    (when offset
 	      (gnus-data-update-list odata offset)))
-      ;; Find the last element in the list to be spliced into the main
+	;; Find the last element in the list to be spliced into the main
 	;; list.
-	(while (cdr list)
-	  (setq list (cdr list)))
+	(setq list (last list))
 	(if (not data)
 	    (progn
 	      (setcdr list gnus-newsgroup-data)
@@ -3264,34 +3297,55 @@
   (save-excursion
     (when (gnus-buffer-exists-p gnus-summary-buffer)
       (set-buffer gnus-summary-buffer))
-    (let ((gnus-replied-mark 129)
-	  (gnus-score-below-mark 130)
-	  (gnus-score-over-mark 130)
-	  (gnus-undownloaded-mark 131)
-	  (spec gnus-summary-line-format-spec)
-	  gnus-visual pos)
+    (let ((spec gnus-summary-line-format-spec)
+	  pos)
       (save-excursion
 	(gnus-set-work-buffer)
-	(let ((gnus-summary-line-format-spec spec)
-	      (gnus-newsgroup-downloadable '(0)))
-	  (gnus-summary-insert-line
-	   [0 "" "" "05 Apr 2001 23:33:09 +0400" "" "" 0 0 "" nil]
-	   0 nil t 128 t nil "" nil 1)
+	(let ((gnus-tmp-unread ?Z)
+	      (gnus-replied-mark ?Z)
+	      (gnus-score-below-mark ?Z)
+	      (gnus-score-over-mark ?Z)
+	      (gnus-undownloaded-mark ?Z)
+	      (gnus-summary-line-format-spec spec)
+	      (gnus-newsgroup-downloadable '(0))
+	      (header [0 "" "" "05 Apr 2001 23:33:09 +0400" "" "" 0 0 "" nil])
+	      case-fold-search ignores)
+	  ;; Here, all marks are bound to Z.
+	  (gnus-summary-insert-line header
+				    0 nil t gnus-tmp-unread t nil "" nil 1)
+	  (goto-char (point-min))
+	  ;; Memorize the positions of the same characters as dummy marks.
+	  (while (re-search-forward "[A-D]" nil t)
+	    (push (point) ignores))
+	  (erase-buffer)
+	  ;; We use A-D as dummy marks in order to know column positions
+	  ;; where marks should be inserted.
+	  (setq gnus-tmp-unread ?A
+		gnus-replied-mark ?B
+		gnus-score-below-mark ?C
+		gnus-score-over-mark ?C
+		gnus-undownloaded-mark ?D)
+	  (gnus-summary-insert-line header
+				    0 nil t gnus-tmp-unread t nil "" nil 1)
+	  ;; Ignore characters which aren't dummy marks.
+	  (dolist (p ignores)
+	    (delete-region (goto-char (1- p)) p)
+	    (insert ?Z))
 	  (goto-char (point-min))
-	  (setq pos (list (cons 'unread (and (search-forward "\200" nil t)
-					     (- (point) (point-min) 1)))))
+	  (setq pos (list (cons 'unread
+				(and (search-forward "A" nil t)
+				     (- (point) (point-min) 1)))))
 	  (goto-char (point-min))
-	  (push (cons 'replied (and (search-forward "\201" nil t)
+	  (push (cons 'replied (and (search-forward "B" nil t)
 				    (- (point) (point-min) 1)))
 		pos)
 	  (goto-char (point-min))
-	  (push (cons 'score (and (search-forward "\202" nil t)
+	  (push (cons 'score (and (search-forward "C" nil t)
 				  (- (point) (point-min) 1)))
 		pos)
 	  (goto-char (point-min))
-	  (push (cons 'download
-		      (and (search-forward "\203" nil t)
-			   (- (point) (point-min) 1)))
+	  (push (cons 'download (and (search-forward "D" nil t)
+				     (- (point) (point-min) 1)))
 		pos)))
       (setq gnus-summary-mark-positions pos))))
 
@@ -3474,12 +3528,8 @@
 
 (defun gnus-summary-set-local-parameters (group)
   "Go through the local params of GROUP and set all variable specs in that list."
-  (let ((params (gnus-group-find-parameter group))
-	(vars '(quit-config))           ; Ignore quit-config.
-	elem)
-    (while params
-      (setq elem (car params)
-	    params (cdr params))
+  (let ((vars '(quit-config)))          ; Ignore quit-config.
+    (dolist (elem (gnus-group-find-parameter group))
       (and (consp elem)			; Has to be a cons.
 	   (consp (cdr elem))		; The cdr has to be a list.
 	   (symbolp (car elem))		; Has to be a symbol in there.
@@ -3588,9 +3638,11 @@
 	     (gnus-active gnus-newsgroup-name)))
       ;; You can change the summary buffer in some way with this hook.
       (gnus-run-hooks 'gnus-select-group-hook)
-      (gnus-update-format-specifications
-       nil 'summary 'summary-mode 'summary-dummy)
-      (gnus-update-summary-mark-positions)
+      (when (memq 'summary (gnus-update-format-specifications
+			    nil 'summary 'summary-mode 'summary-dummy))
+	;; The format specification for the summary line was updated,
+	;; so we need to update the mark positions as well.
+	(gnus-update-summary-mark-positions))
       ;; Do score processing.
       (when gnus-use-scoring
 	(gnus-possibly-score-headers))
@@ -3598,16 +3650,10 @@
       (when gnus-build-sparse-threads
 	(gnus-build-sparse-threads))
       ;; Find the initial limit.
-      (if gnus-show-threads
-	  (if show-all
-	      (let ((gnus-newsgroup-dormant nil))
-		(gnus-summary-initial-limit show-all))
+      (if show-all
+	  (let ((gnus-newsgroup-dormant nil))
 	    (gnus-summary-initial-limit show-all))
-	;; When unthreaded, all articles are always shown.
-	(setq gnus-newsgroup-limit
-	      (mapcar
-	       (lambda (header) (mail-header-number header))
-	       gnus-newsgroup-headers)))
+	(gnus-summary-initial-limit show-all))
       ;; Generate the summary buffer.
       (unless no-display
 	(gnus-summary-prepare))
@@ -4077,7 +4123,7 @@
 			       (setq x (nnheader-nov-field))))
 		   (error x))
 		 (nnheader-nov-field)	; date
-		 (nnheader-nov-read-message-id)	; id
+		 (nnheader-nov-read-message-id number)	; id
 		 (setq references (nnheader-nov-field))	; refs
 		 (nnheader-nov-read-integer) ; chars
 		 (nnheader-nov-read-integer) ; lines
@@ -4529,6 +4575,18 @@
   (gnus-article-sort-by-author
    (gnus-thread-header h1)  (gnus-thread-header h2)))
 
+(defsubst gnus-article-sort-by-recipient (h1 h2)
+  "Sort articles by recipient."
+  (string-lessp
+   (let ((extract (funcall
+		   gnus-extract-address-components
+		   (or (cdr (assq 'To (mail-header-extra h1))) ""))))
+     (or (car extract) (cadr extract)))
+   (let ((extract (funcall
+		   gnus-extract-address-components
+		   (or (cdr (assq 'To (mail-header-extra h2))) ""))))
+     (or (car extract) (cadr extract)))))
+
 (defsubst gnus-article-sort-by-subject (h1 h2)
   "Sort articles by root subject."
   (string-lessp
@@ -4646,32 +4704,39 @@
 (defcustom gnus-sum-thread-tree-root "> "
   "With %B spec, used for the root of a thread.
 If nil, use subject instead."
-  :type '(radio (const :format "%v  " nil) (string :size 0))
+  :version "22.1"
+  :type '(radio (const :format "%v  " nil) string)
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-false-root "> "
   "With %B spec, used for a false root of a thread.
 If nil, use subject instead."
-  :type '(radio (const :format "%v  " nil) (string :size 0))
+  :version "22.1"
+  :type '(radio (const :format "%v  " nil) string)
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-single-indent ""
   "With %B spec, used for a thread with just one message.
 If nil, use subject instead."
-  :type '(radio (const :format "%v  " nil) (string :size 0))
+  :version "22.1"
+  :type '(radio (const :format "%v  " nil) string)
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-vertical "| "
   "With %B spec, used for drawing a vertical line."
+  :version "22.1"
   :type 'string
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-indent "  "
   "With %B spec, used for indenting."
+  :version "22.1"
   :type 'string
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-leaf-with-other "+-> "
   "With %B spec, used for a leaf with brothers."
+  :version "22.1"
   :type 'string
   :group 'gnus-thread)
 (defcustom gnus-sum-thread-tree-single-leaf "\\-> "
   "With %B spec, used for a leaf without brothers."
+  :version "22.1"
   :type 'string
   :group 'gnus-thread)
 
@@ -5094,7 +5159,7 @@
 
     (when gnus-agent
       (gnus-agent-possibly-alter-active group (gnus-active group) info)
-      
+
       (setq gnus-summary-use-undownloaded-faces
 	    (gnus-agent-find-parameter
 	     group
@@ -5296,8 +5361,7 @@
 
 (defun gnus-articles-to-read (group &optional read-all)
   "Find out what articles the user wants to read."
-  (let* ((display (gnus-group-find-parameter group 'display))
-	 (articles
+  (let* ((articles
 	  ;; Select all articles if `read-all' is non-nil, or if there
 	  ;; are no unread articles.
 	  (if (or read-all
@@ -5784,7 +5848,7 @@
 	 (or dependencies
 	     (with-current-buffer gnus-summary-buffer
 	       gnus-newsgroup-dependencies)))
-	headers id end ref
+	headers id end ref number
 	(mail-parse-charset gnus-newsgroup-charset)
 	(mail-parse-ignored-charsets
 	 (save-excursion (condition-case nil
@@ -5817,7 +5881,7 @@
 	   (vector
 	    ;; Number.
 	    (prog1
-		(read cur)
+		(setq number (read cur))
 	      (end-of-line)
 	      (setq p (point))
 	      (narrow-to-region (point)
@@ -5854,7 +5918,7 @@
 					     (match-end 1))
 			 ;; If there was no message-id, we just fake one
 			 ;; to make subsequent routines simpler.
-			 (nnheader-generate-fake-message-id))))
+			 (nnheader-generate-fake-message-id number))))
 	    ;; References.
 	    (progn
 	      (goto-char p)
@@ -6048,6 +6112,10 @@
 	      (prog1
 		  (1+ (point-at-eol))
 		(gnus-delete-line))))))
+      ;; Remove list identifiers from subject.
+      (when gnus-list-identifiers
+	(let ((gnus-newsgroup-headers (list header)))
+	  (gnus-summary-remove-list-identifiers)))
       (when old-header
 	(mail-header-set-number header (mail-header-number old-header)))
       (setq gnus-newsgroup-sparse
@@ -6156,8 +6224,7 @@
 (defun gnus-summary-process-mark-set (set)
   "Make SET into the current process marked articles."
   (gnus-summary-unmark-all-processable)
-  (while set
-    (gnus-summary-set-process-mark (pop set))))
+  (mapc 'gnus-summary-set-process-mark set))
 
 ;;; Searching and stuff
 
@@ -6304,7 +6371,7 @@
 		      ((< (window-height) 7) 1)
 		      (t (if (numberp gnus-auto-center-summary)
 			     gnus-auto-center-summary
-			   2))))
+                           (/ (1- (window-height)) 2)))))
 	   (height (1- (window-height)))
 	   (bottom (save-excursion (goto-char (point-max))
 				   (forward-line (- height))
@@ -6362,7 +6429,8 @@
 (defun gnus-list-of-unread-articles (group)
   (let* ((read (gnus-info-read (gnus-get-info group)))
 	 (active (or (gnus-active group) (gnus-activate-group group)))
-	 (last (cdr active))
+	 (last (or (cdr active)
+		   (error "Group %s couldn't be activated " group)))
 	 first nlast unread)
     ;; If none are read, then all are unread.
     (if (not read)
@@ -6656,25 +6724,20 @@
 	  (gnus-summary-clear-local-variables))
 	(when (get-buffer gnus-article-buffer)
 	  (bury-buffer gnus-article-buffer))
-	;; We clear the global counterparts of the buffer-local
-	;; variables as well, just to be on the safe side.
-	(set-buffer gnus-group-buffer)
-	(gnus-summary-clear-local-variables)
-	(let ((gnus-summary-local-variables gnus-newsgroup-variables))
-	  (gnus-summary-clear-local-variables))
 	;; Return to group mode buffer.
 	(when (eq mode 'gnus-summary-mode)
 	  (gnus-kill-buffer buf)))
       (setq gnus-current-select-method gnus-select-method)
-      (if leave-hidden
-	  (set-buffer gnus-group-buffer)
-	(pop-to-buffer gnus-group-buffer))
-      (if (not quit-config)
-	  (progn
-	    (goto-char group-point)
-	    (unless leave-hidden
-	      (gnus-configure-windows 'group 'force)))
-	(gnus-handle-ephemeral-exit quit-config))
+      (set-buffer gnus-group-buffer)
+      (if quit-config
+	  (gnus-handle-ephemeral-exit quit-config)
+	(goto-char group-point)
+	;; If gnus-group-buffer is already displayed, make sure we also move
+	;; the cursor in the window that displays it.
+	(let ((win (get-buffer-window (current-buffer) 0)))
+	  (if win (set-window-point win (point))))
+	(unless leave-hidden
+	  (gnus-configure-windows 'group 'force)))
       ;; Clear the current group name.
       (unless quit-config
 	(setq gnus-newsgroup-name nil)))))
@@ -6710,10 +6773,6 @@
 	(gnus-summary-clear-local-variables)
 	(let ((gnus-summary-local-variables gnus-newsgroup-variables))
 	  (gnus-summary-clear-local-variables))
-	(set-buffer gnus-group-buffer)
-	(gnus-summary-clear-local-variables)
-	(let ((gnus-summary-local-variables gnus-newsgroup-variables))
-	  (gnus-summary-clear-local-variables))
 	(gnus-kill-buffer gnus-summary-buffer))
       (unless gnus-single-article-buffer
 	(setq gnus-article-current nil))
@@ -7035,7 +7094,7 @@
       (gnus-summary-goto-subject article t)))
   (gnus-summary-limit (append articles gnus-newsgroup-limit))
   (gnus-summary-position-point))
- 
+
 (defun gnus-summary-goto-subject (article &optional force silent)
   "Go the subject line of ARTICLE.
 If FORCE, also allow jumping to articles not currently shown."
@@ -7239,11 +7298,12 @@
 	     (if (and group
 		      (not (gnus-ephemeral-group-p gnus-newsgroup-name)))
 		 (format " (Type %s for %s [%s])"
-			 (single-key-description cmd) group
+			 (single-key-description cmd)
+			 (gnus-group-decoded-name group)
 			 (gnus-group-unread group))
 	       (format " (Type %s to exit %s)"
 		       (single-key-description cmd)
-		       gnus-newsgroup-name))))
+		       (gnus-group-decoded-name gnus-newsgroup-name)))))
       ;; Confirm auto selection.
       (setq key (car (setq keve (gnus-read-event-char prompt)))
 	    ended t)
@@ -7628,6 +7688,49 @@
 	 current-prefix-arg))
   (gnus-summary-limit-to-subject from "from" not-matching))
 
+(defun gnus-summary-limit-to-recipient (recipient &optional not-matching)
+  "Limit the summary buffer to articles with the given RECIPIENT.
+
+If NOT-MATCHING, exclude RECIPIENT.
+
+To and Cc headers are checked.  You need to include them in
+`nnmail-extra-headers'."
+  ;; Unlike `rmail-summary-by-recipients', doesn't include From.
+  (interactive
+   (list (read-string (format "%s recipient (regexp): "
+			      (if current-prefix-arg "Exclude" "Limit to")))
+	 current-prefix-arg))
+  (when (not (equal "" recipient))
+    (prog1 (let* ((to
+		   (if (memq 'To nnmail-extra-headers)
+		       (gnus-summary-find-matching
+			(cons 'extra 'To) recipient 'all nil nil
+			not-matching)
+		     (gnus-message
+		      1 "`To' isn't present in `nnmail-extra-headers'")
+		     (sit-for 1)
+		     nil))
+		  (cc
+		   (if (memq 'Cc nnmail-extra-headers)
+		       (gnus-summary-find-matching
+			(cons 'extra 'Cc) recipient 'all nil nil
+			not-matching)
+		     (gnus-message
+		      1 "`Cc' isn't present in `nnmail-extra-headers'")
+		     (sit-for 1)
+		     nil))
+		  (articles
+		   (if not-matching
+		       ;; We need the numbers that are in both lists:
+		       (mapcar (lambda (a)
+				 (and (memq a to) a))
+			       cc)
+		     (nconc to cc))))
+	     (unless articles
+	       (error "Found no matches for \"%s\"" recipient))
+	     (gnus-summary-limit articles))
+      (gnus-summary-position-point))))
+
 (defun gnus-summary-limit-to-age (age &optional younger-p)
   "Limit the summary buffer to articles that are older than (or equal) AGE days.
 If YOUNGER-P (the prefix) is non-nil, limit the summary buffer to
@@ -8363,12 +8466,11 @@
 documents as newsgroups.
 Obeys the standard process/prefix convention."
   (interactive "P")
-  (let* ((articles (gnus-summary-work-articles n))
-	 (ogroup gnus-newsgroup-name)
+  (let* ((ogroup gnus-newsgroup-name)
 	 (params (append (gnus-info-params (gnus-get-info ogroup))
 			 (list (cons 'to-group ogroup))))
-	 article group egroup groups vgroup)
-    (while (setq article (pop articles))
+	 group egroup groups vgroup)
+    (dolist (article (gnus-summary-work-articles n))
       (setq group (format "%s-%d" gnus-newsgroup-name article))
       (gnus-summary-remove-process-mark article)
       (when (gnus-summary-display-article article)
@@ -8438,7 +8540,7 @@
   (let ((gnus-last-article gnus-last-article))
     (if (gnus-summary-search-article regexp backward)
 	(gnus-summary-show-thread)
-      (error "Search failed: \"%s\"" regexp))))
+      (signal 'search-failed (list regexp)))))
 
 (defun gnus-summary-search-article-backward (regexp)
   "Search for an article containing REGEXP backward."
@@ -8720,8 +8822,7 @@
 	   (or (cdr (assq arg gnus-summary-show-article-charset-alist))
 	       (mm-read-coding-system
 		"View as charset: " ;; actually it is coding system.
-		(save-excursion
-		  (set-buffer gnus-article-buffer)
+		(with-current-buffer gnus-article-buffer
 		  (mm-detect-coding-region (point) (point-max))))))
 	  (gnus-newsgroup-ignored-charsets 'gnus-all))
       (gnus-summary-select-article nil 'force)
@@ -8810,7 +8911,8 @@
 	     (inhibit-point-motion-hooks t)
 	     (hidden (if (numberp arg)
 			 (>= arg 0)
-		       (gnus-article-hidden-text-p 'headers)))
+		       (or (not (looking-at "[^ \t\n]+:"))
+			   (gnus-article-hidden-text-p 'headers))))
 	     s e)
 	(delete-region (point-min) (point-max))
 	(with-current-buffer gnus-original-article-buffer
@@ -8855,7 +8957,35 @@
 	(let ((start (window-start))
 	      buffer-read-only)
 	  (message-caesar-buffer-body arg)
-	  (set-window-start (get-buffer-window (current-buffer)) start))))))
+	  (set-window-start (get-buffer-window (current-buffer)) start)))))
+  ;; Create buttons and stuff...
+  (gnus-treat-article nil))
+
+(defun gnus-summary-idna-message (&optional arg)
+  "Decode IDNA encoded domain names in the current articles.
+IDNA encoded domain names looks like `xn--bar'.  If a string
+remain unencoded after running this function, it is likely an
+invalid IDNA string (`xn--bar' is invalid).
+
+You must have GNU Libidn (`http://www.gnu.org/software/libidn/')
+installed for this command to work."
+  (interactive "P")
+  (if (not (and (condition-case nil (require 'idna)
+		  (file-error))
+		(mm-coding-system-p 'utf-8)
+		(executable-find (symbol-value 'idna-program))))
+      (gnus-message
+       5 "GNU Libidn not installed properly (`idn' or `idna.el' missing)")
+    (gnus-summary-select-article)
+    (let ((mail-header-separator ""))
+      (gnus-eval-in-buffer-window gnus-article-buffer
+	(save-restriction
+	  (widen)
+	  (let ((start (window-start))
+		buffer-read-only)
+	    (while (re-search-forward "\\(xn--[-0-9a-z]+\\)" nil t)
+	      (replace-match (idna-to-unicode (match-string 1))))
+	    (set-window-start (get-buffer-window (current-buffer)) start)))))))
 
 (autoload 'unmorse-region "morse"
   "Convert morse coded text in region to ordinary ASCII text."
@@ -8876,7 +9006,7 @@
 	    (when (message-goto-body)
 	      (gnus-narrow-to-body))
 	    (goto-char (point-min))
-	    (while (re-search-forward "·" (point-max) t)
+	    (while (search-forward "·" (point-max) t)
 	      (replace-match "."))
 	    (unmorse-region (point-min) (point-max))
 	    (widen)
@@ -8937,7 +9067,7 @@
 		 (crosspost "Crosspost" "Crossposting")))
 	(copy-buf (save-excursion
 		    (nnheader-set-temp-buffer " *copy article*")))
-	art-group to-method new-xref article to-groups)
+	art-group to-method new-xref article to-groups articles-to-update-marks)
     (unless (assq action names)
       (error "Unknown action %s" action))
     ;; Read the newsgroup name.
@@ -8982,6 +9112,11 @@
 	((eq action 'move)
 	 ;; Remove this article from future suppression.
 	 (gnus-dup-unsuppress-article article)
+	 (let* ((from-method (gnus-find-method-for-group
+			      gnus-newsgroup-name))
+		(to-method (gnus-find-method-for-group
+			    to-newsgroup))
+		(move-is-internal (gnus-method-equal from-method to-method)))
 	 (gnus-request-move-article
 	  article			; Article to move
 	  gnus-newsgroup-name		; From newsgroup
@@ -8990,12 +9125,17 @@
 	  (list 'gnus-request-accept-article
 		to-newsgroup (list 'quote select-method)
 		(not articles) t)	; Accept form
-	  (not articles)))		; Only save nov last time
+	  (not articles)		; Only save nov last time
+	  move-is-internal)))		; is this move internal?
 	;; Copy the article.
 	((eq action 'copy)
 	 (save-excursion
 	   (set-buffer copy-buf)
 	   (when (gnus-request-article-this-buffer article gnus-newsgroup-name)
+	     (save-restriction
+	       (nnheader-narrow-to-headers)
+	       (dolist (hdr gnus-copy-article-ignored-headers)
+		 (message-remove-header hdr t)))
 	     (gnus-request-accept-article
 	      to-newsgroup select-method (not articles) t))))
 	;; Crosspost the article.
@@ -9140,20 +9280,22 @@
 	(gnus-summary-goto-subject article)
 	(when (eq action 'move)
 	  (gnus-summary-mark-article article gnus-canceled-mark))))
-      (gnus-summary-remove-process-mark article))
+      (push article articles-to-update-marks))
+
+    (apply 'gnus-summary-remove-process-mark articles-to-update-marks)
     ;; Re-activate all groups that have been moved to.
     (save-excursion
       (set-buffer gnus-group-buffer)
       (let ((gnus-group-marked to-groups))
 	(gnus-group-get-new-news-this-group nil t)))
-
+    
     (gnus-kill-buffer copy-buf)
     (gnus-summary-position-point)
     (gnus-set-mode-line 'summary)))
 
 (defun gnus-summary-copy-article (&optional n to-newsgroup select-method)
-  "Move the current article to a different newsgroup.
-If TO-NEWSGROUP is string, do not prompt for a newsgroup to move to.
+  "Copy the current article to some other group.
+If TO-NEWSGROUP is string, do not prompt for a newsgroup to copy to.
 When called interactively, if TO-NEWSGROUP is nil, use the value of
 the variable `gnus-move-split-methods' for finding a default target
 newsgroup.
@@ -9177,6 +9319,7 @@
   "If non-nil, show and update the summary buffer as it's being built.
 If the value is t, update the buffer after every line is inserted.  If
 the value is an integer (N), update the display every N lines."
+  :version "22.1"
   :group 'gnus-thread
   :type '(choice (const :tag "off" nil)
 		 number
@@ -9415,10 +9558,10 @@
 	(unless (memq (car articles) not-deleted)
 	  (gnus-summary-mark-article (car articles) gnus-canceled-mark))
 	(let* ((article (car articles))
-	       (id (mail-header-id (gnus-data-header
-				    (assoc article (gnus-data-list nil))))))
+	       (ghead  (gnus-data-header
+				    (assoc article (gnus-data-list nil)))))
 	  (run-hook-with-args 'gnus-summary-article-delete-hook
-			      'delete id gnus-newsgroup-name nil
+			      'delete ghead gnus-newsgroup-name nil
 			      nil))
 	(setq articles (cdr articles)))
       (when not-deleted
@@ -9479,7 +9622,8 @@
 	   `(lambda ()
 	      (let ((mbl mml-buffer-list))
 		(setq mml-buffer-list nil)
-		(mime-to-mml ,'current-handles)
+		(let ((rfc2047-quote-decoded-words-containing-tspecials t))
+		  (mime-to-mml ,'current-handles))
 		(let ((mbl1 mml-buffer-list))
 		  (setq mml-buffer-list mbl)
 		  (set (make-local-variable 'mml-buffer-list) mbl1))
@@ -9834,13 +9978,14 @@
     (gnus-summary-goto-subject article)
     (gnus-summary-update-secondary-mark article)))
 
-(defun gnus-summary-remove-process-mark (article)
-  "Remove the process mark from ARTICLE and update the summary line."
-  (setq gnus-newsgroup-processable (delq article gnus-newsgroup-processable))
-  (when (gnus-summary-goto-subject article)
-    (gnus-summary-show-thread)
-    (gnus-summary-goto-subject article)
-    (gnus-summary-update-secondary-mark article)))
+(defun gnus-summary-remove-process-mark (&rest articles)
+  "Remove the process mark from ARTICLES and update the summary line."
+  (dolist (article articles)
+    (setq gnus-newsgroup-processable (delq article gnus-newsgroup-processable))
+    (when (gnus-summary-goto-subject article)
+      (gnus-summary-show-thread)
+      (gnus-summary-goto-subject article)
+      (gnus-summary-update-secondary-mark article))))
 
 (defun gnus-summary-set-saved-mark (article)
   "Set the process mark on ARTICLE and update the summary line."
@@ -10779,6 +10924,13 @@
   (interactive "P")
   (gnus-summary-sort 'author reverse))
 
+(defun gnus-summary-sort-by-recipient (&optional reverse)
+  "Sort the summary buffer by recipient name alphabetically.
+If `case-fold-search' is non-nil, case of letters is ignored.
+Argument REVERSE means reverse order."
+  (interactive "P")
+  (gnus-summary-sort 'recipient reverse))
+
 (defun gnus-summary-sort-by-subject (&optional reverse)
   "Sort the summary buffer by subject alphabetically.  `Re:'s are ignored.
 If `case-fold-search' is non-nil, case of letters is ignored.
@@ -11757,4 +11909,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;; arch-tag: 17c6748f-6d00-4d36-bf01-835c42f31235
 ;;; gnus-sum.el ends here
Index: gnus/lisp/gnus-topic.el
diff -u gnus/lisp/gnus-topic.el:7.6 gnus/lisp/gnus-topic.el:7.10
--- gnus/lisp/gnus-topic.el:7.6	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/gnus-topic.el	Wed Oct  6 01:13:27 2004
@@ -166,9 +166,11 @@
    (list (completing-read "Go to topic: "
 			  (mapcar 'list (gnus-topic-list))
 			  nil t)))
-  (dolist (topic (gnus-current-topics topic))
-    (gnus-topic-goto-topic topic)
-    (gnus-topic-fold t))
+  (let ((buffer-read-only nil))
+    (dolist (topic (gnus-current-topics topic))
+      (unless (gnus-topic-goto-topic topic)
+	(gnus-topic-goto-missing-topic topic)
+	(gnus-topic-display-missing-topic topic))))
   (gnus-topic-goto-topic topic))
 
 (defun gnus-current-topic ()
@@ -392,10 +394,9 @@
 
 (defun gnus-topic-hierarchical-parameters (topic)
   "Return a topic list computed for TOPIC."
-  (let ((topics (gnus-current-topics topic))
-	params-list param out params)
-    (while topics
-      (push (gnus-topic-parameters (pop topics)) params-list))
+  (let ((params-list (nreverse (mapcar 'gnus-topic-parameters
+				       (gnus-current-topics topic))))
+	param out params)
     ;; We probably have lots of nil elements here, so
     ;; we remove them.  Probably faster than doing this "properly".
     (setq params-list (delq nil params-list))
@@ -1729,9 +1730,7 @@
     (if (gnus-topic-find-topology to current-top 0);; Don't care the level
 	(error "Can't move `%s' to its sub-level" current))
     (gnus-topic-find-topology current nil nil 'delete)
-    (while (cdr to-top)
-      (setq to-top (cdr to-top)))
-    (setcdr to-top (list current-top))
+    (setcdr (last to-top) (list current-top))
     (gnus-topic-enter-dribble)
     (gnus-group-list-groups)
     (gnus-topic-goto-topic current)))
@@ -1758,4 +1757,5 @@
 
 (provide 'gnus-topic)
 
+;;; arch-tag: bf176856-f30c-40f0-ae77-e41529a1134c
 ;;; gnus-topic.el ends here
Index: gnus/lisp/gnus-undo.el
diff -u gnus/lisp/gnus-undo.el:7.3 gnus/lisp/gnus-undo.el:7.5
--- gnus/lisp/gnus-undo.el:7.3	Thu Jan 15 18:30:46 2004
+++ gnus/lisp/gnus-undo.el	Sun Sep 26 20:40:31 2004
@@ -186,9 +186,9 @@
       (error "Nothing further to undo"))
     (setq gnus-undo-actions (delq action gnus-undo-actions))
     (setq gnus-undo-boundary t)
-    (while action
-      (funcall (pop action)))))
+    (mapc 'funcall action)))
 
 (provide 'gnus-undo)
 
+;;; arch-tag: 0d787bc7-787d-499a-837f-211d2cb07f2e
 ;;; gnus-undo.el ends here
Index: gnus/lisp/gnus-util.el
diff -u gnus/lisp/gnus-util.el:7.8 gnus/lisp/gnus-util.el:7.25
--- gnus/lisp/gnus-util.el:7.8	Thu Apr  8 03:48:42 2004
+++ gnus/lisp/gnus-util.el	Sun Feb 13 05:44:40 2005
@@ -1,5 +1,5 @@
 ;;; gnus-util.el --- utility functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -60,12 +60,12 @@
     (defalias 'gnus-replace-in-string 'replace-in-string))
    ((fboundp 'replace-regexp-in-string)
     (defun gnus-replace-in-string  (string regexp newtext &optional literal)
-      (replace-regexp-in-string regexp newtext string nil literal)))))
+      "Replace all matches for REGEXP with NEWTEXT in STRING.
+If LITERAL is non-nil, insert NEWTEXT literally.  Return a new
+string containing the replacements.
 
-;;; bring in the netrc functions as aliases
-(defalias 'gnus-netrc-get 'netrc-get)
-(defalias 'gnus-netrc-machine 'netrc-machine)
-(defalias 'gnus-parse-netrc 'netrc-parse)
+This is a compatibility function for different Emacsen."
+      (replace-regexp-in-string regexp newtext string nil literal)))))
 
 (defun gnus-boundp (variable)
   "Return non-nil if VARIABLE is bound and non-nil."
@@ -219,12 +219,15 @@
 
 (defun gnus-remove-text-with-property (prop)
   "Delete all text in the current buffer with text property PROP."
-  (save-excursion
-    (goto-char (point-min))
-    (while (not (eobp))
-      (while (get-text-property (point) prop)
-	(delete-char 1))
-      (goto-char (next-single-property-change (point) prop nil (point-max))))))
+  (let ((start (point-min))
+	end)
+    (unless (get-text-property start prop)
+      (setq start (next-single-property-change start prop)))
+    (while start
+      (setq end (text-property-any start (point-max) prop nil))
+      (delete-region start (or end (point-max)))
+      (setq start (when end
+		    (next-single-property-change start prop))))))
 
 (defun gnus-newsgroup-directory-form (newsgroup)
   "Make hierarchical directory name from NEWSGROUP name."
@@ -476,12 +479,23 @@
 (defun gnus-split-references (references)
   "Return a list of Message-IDs in REFERENCES."
   (let ((beg 0)
+	(references (or references ""))
 	ids)
     (while (string-match "<[^<]+[^< \t]" references beg)
       (push (substring references (match-beginning 0) (setq beg (match-end 0)))
 	    ids))
     (nreverse ids)))
 
+(defun gnus-extract-references (references)
+  "Return a list of Message-IDs in REFERENCES (in In-Reply-To
+  format), trimmed to only contain the Message-IDs."
+  (let ((ids (gnus-split-references references)) 
+	refs)
+    (dolist (id ids)
+      (when (string-match "<[^<>]+>" id)
+	(push (match-string 0 id) refs)))
+    refs))
+
 (defsubst gnus-parent-id (references &optional n)
   "Return the last Message-ID in REFERENCES.
 If N, return the Nth ancestor instead."
@@ -567,6 +581,15 @@
 	 (substring gname (match-end 0))
        gname)))
 
+(defmacro gnus-group-server (group)
+  "Find the server name of a foreign newsgroup.
+For example, (gnus-group-server \"nnimap+yxa:INBOX.foo\") would
+yield \"nnimap:yxa\"."
+  `(let ((gname ,group))
+     (if (string-match "^\\([^+]+\\).\\([^:]+\\):" gname)
+	 (format "%s:%s" (match-string 1 gname) (match-string 2 gname))
+       (format "%s:%s" (car gnus-select-method) (cadr gnus-select-method)))))
+
 (defun gnus-make-sort-function (funs)
   "Return a composite sort condition based on the functions in FUNS."
   (cond
@@ -612,24 +635,49 @@
   (define-key (symbol-value (intern (format "gnus-%s-mode-map" type)))
     [menu-bar edit] 'undefined))
 
+(defmacro gnus-bind-print-variables (&rest forms)
+  "Bind print-* variables and evaluate FORMS.
+This macro is used with `prin1', `pp', etc. in order to ensure printed
+Lisp objects are loadable.  Bind `print-quoted' and `print-readably'
+to t, and `print-escape-multibyte', `print-escape-newlines',
+`print-escape-nonascii', `print-length', `print-level' and
+`print-string-length' to nil."
+  `(let ((print-quoted t)
+	 (print-readably t)
+	 ;;print-circle
+	 ;;print-continuous-numbering
+	 print-escape-multibyte
+	 print-escape-newlines
+	 print-escape-nonascii
+	 ;;print-gensym
+	 print-length
+	 print-level
+	 print-string-length)
+     ,@forms))
+
 (defun gnus-prin1 (form)
   "Use `prin1' on FORM in the current buffer.
-Bind `print-quoted' and `print-readably' to t while printing."
-  (let ((print-quoted t)
-	(print-readably t)
-	(print-escape-multibyte nil)
-	print-level print-length)
-    (prin1 form (current-buffer))))
+Bind `print-quoted' and `print-readably' to t, and `print-length' and
+`print-level' to nil.  See also `gnus-bind-print-variables'."
+  (gnus-bind-print-variables (prin1 form (current-buffer))))
 
 (defun gnus-prin1-to-string (form)
   "The same as `prin1'.
-Bind `print-quoted' and `print-readably' to t, and `print-length'
-and `print-level' to nil."
-  (let ((print-quoted t)
-	(print-readably t)
-	(print-length nil)
-	(print-level nil))
-    (prin1-to-string form)))
+Bind `print-quoted' and `print-readably' to t, and `print-length' and
+`print-level' to nil.  See also `gnus-bind-print-variables'."
+  (gnus-bind-print-variables (prin1-to-string form)))
+
+(defun gnus-pp (form &optional stream)
+  "Use `pp' on FORM in the current buffer.
+Bind `print-quoted' and `print-readably' to t, and `print-length' and
+`print-level' to nil.  See also `gnus-bind-print-variables'."
+  (gnus-bind-print-variables (pp form (or stream (current-buffer)))))
+
+(defun gnus-pp-to-string (form)
+  "The same as `pp-to-string'.
+Bind `print-quoted' and `print-readably' to t, and `print-length' and
+`print-level' to nil.  See also `gnus-bind-print-variables'."
+  (gnus-bind-print-variables (pp-to-string form)))
 
 (defun gnus-make-directory (directory)
   "Make DIRECTORY (and all its parents) if it doesn't exist."
@@ -653,6 +701,23 @@
   (when (file-exists-p file)
     (delete-file file)))
 
+(defun gnus-delete-directory (directory)
+  "Delete files in DIRECTORY.  Subdirectories remain.
+If there's no subdirectory, delete DIRECTORY as well."
+  (when (file-directory-p directory)
+    (let ((files (directory-files
+		  directory t "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"))
+	  file dir)
+      (while files
+	(setq file (pop files))
+	(if (eq t (car (file-attributes file)))
+	    ;; `file' is a subdirectory.
+	    (setq dir t)
+	  ;; `file' is a file or a symlink.
+	  (delete-file file)))
+      (unless dir
+	(delete-directory directory)))))
+
 (defun gnus-strip-whitespace (string)
   "Return STRING stripped of all whitespace."
   (while (string-match "[\r\n\t ]+" string)
@@ -1053,7 +1118,7 @@
             (standard-output
 	     (lambda (c)
                (aset ,buffer ,leng c)
-                   
+
 	       (if (= ,size (setq ,leng (1+ ,leng)))
 		   (progn (write-region ,buffer nil ,file ,append 'no-msg)
 			  (setq ,leng 0
@@ -1122,7 +1187,7 @@
 Setting it to nil has no effect after the first time `gnus-byte-compile'
 is run."
   :type 'boolean
-  :version "21.1"
+  :version "22.1"
   :group 'gnus-various)
 
 (defun gnus-byte-compile (form)
@@ -1145,7 +1210,7 @@
   "Delete by side effect any elements of LIST whose car is `equal' to KEY.
 The modified LIST is returned.  If the first member
 of LIST has a car that is `equal' to KEY, there is no way to remove it
-by side effect; therefore, write `(setq foo (remassoc key foo))' to be
+by side effect; therefore, write `(setq foo (gnus-remassoc key foo))' to be
 sure of changing the value of `foo'."
   (when alist
     (if (equal key (caar alist))
@@ -1414,41 +1479,48 @@
       (nconc (nreverse res) list1 list2))))
 
 (eval-when-compile
-  (defvar xemacs-codename))
+  (defvar xemacs-codename)
+  (defvar sxemacs-codename)
+  (defvar emacs-program-version))
 
 (defun gnus-emacs-version ()
   "Stringified Emacs version."
-  (let ((system-v
-	 (cond
-	  ((eq gnus-user-agent 'emacs-gnus-config)
-	   system-configuration)
-	  ((eq gnus-user-agent 'emacs-gnus-type)
-	   (symbol-name system-type))
-	  (t nil))))
+  (let* ((lst (if (listp gnus-user-agent)
+		  gnus-user-agent
+		'(gnus emacs type)))
+	 (system-v (cond ((memq 'config lst)
+			  system-configuration)
+			 ((memq 'type lst)
+			  (symbol-name system-type))
+			 (t nil)))
+	 codename emacsname)
+    (cond ((featurep 'sxemacs)
+	   (setq emacsname "SXEmacs"
+		 codename sxemacs-codename))
+	  ((featurep 'xemacs)
+	   (setq emacsname "XEmacs"
+		 codename xemacs-codename))
+	  (t
+	   (setq emacsname "Emacs")))
     (cond
-     ((eq gnus-user-agent 'gnus)
+     ((not (memq 'emacs lst))
       nil)
      ((string-match "^\\(\\([.0-9]+\\)*\\)\\.[0-9]+$" emacs-version)
+      ;; Emacs:
       (concat "Emacs/" (match-string 1 emacs-version)
 	      (if system-v
 		  (concat " (" system-v ")")
 		"")))
-     ((string-match
-       "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)[^(]*\\(\\((beta.*)\\|'\\)\\)?"
-       emacs-version)
-      (concat
-       (match-string 1 emacs-version)
-       (format "/%d.%d" emacs-major-version emacs-minor-version)
-       (if (match-beginning 3)
-	   (match-string 3 emacs-version)
-	 "")
-       (if (boundp 'xemacs-codename)
-	   (concat
-	    " (" xemacs-codename
-	    (if system-v
-		(concat ", " system-v ")")
+     ((or (featurep 'sxemacs) (featurep 'xemacs))
+      ;; XEmacs or SXEmacs:
+      (concat emacsname "/" emacs-program-version
+	      " ("
+	      (when (and (memq 'codename lst)
+			 codename)
+		(concat codename
+			(when system-v ", ")))
+	      (when system-v system-v)
 	      ")"))
-	 "")))
      (t emacs-version))))
 
 (defun gnus-rename-file (old-path new-path &optional trim)
@@ -1468,11 +1540,16 @@
 			(setq temp (cdr temp)))
 		      (= (length temp) 0))
 	  (delete-directory old-dir)
-	  (setq old-dir (file-name-as-directory 
-			 (file-truename 
+	  (setq old-dir (file-name-as-directory
+			 (file-truename
 			  (concat old-dir "..")))))))))
 
+(defun gnus-set-file-modes (filename mode)
+  "Wrapper for set-file-modes."
+  (ignore-errors
+    (set-file-modes filename mode)))
 
 (provide 'gnus-util)
 
+;;; arch-tag: f94991af-d32b-4c97-8c26-ca12a934de49
 ;;; gnus-util.el ends here
Index: gnus/lisp/gnus-uu.el
diff -u gnus/lisp/gnus-uu.el:7.8 gnus/lisp/gnus-uu.el:7.12
--- gnus/lisp/gnus-uu.el:7.8	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/gnus-uu.el	Fri Sep 24 11:51:42 2004
@@ -1,6 +1,6 @@
 ;;; gnus-uu.el --- extract (uu)encoded files in Gnus
 ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
-;;        2001, 2002, 2003 Free Software Foundation, Inc.
+;;        2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Created: 2 Oct 1993
@@ -480,7 +480,16 @@
     (if (and n (not (numberp n)))
 	(setq message-forward-as-mime (not message-forward-as-mime)
 	      n nil))
-    (let ((gnus-article-reply (gnus-summary-work-articles n)))
+    (let ((gnus-article-reply (gnus-summary-work-articles n))
+	  gnus-newsgroup-processable)
+      (when (and (not n)
+		 (= (length gnus-article-reply) 1))
+	;; The case where neither a number of articles nor a region is
+	;; specified.
+	(gnus-summary-top-thread)
+	(setq gnus-article-reply (gnus-uu-get-list-of-articles nil)))
+      ;; Specify articles to be forwarded.
+      (setq gnus-newsgroup-processable (copy-sequence gnus-article-reply))
       (gnus-setup-message 'forward
 	(setq gnus-uu-digest-from-subject nil)
 	(setq gnus-uu-digest-buffer
@@ -859,7 +868,7 @@
 	      (mm-enable-multibyte)
 	      (mime-to-mml))
 	    (goto-char (point-min))
-	    (re-search-forward "\n\n")
+	    (search-forward "\n\n")
 	    (unless (and message-forward-as-mime gnus-uu-digest-buffer)
 	      ;; Quote all 30-dash lines.
 	      (save-excursion
@@ -1751,7 +1760,7 @@
 
       (setq gnus-uu-work-dir
 	    (mm-make-temp-file (concat gnus-uu-tmp-dir "gnus") 'dir))
-      (set-file-modes gnus-uu-work-dir 448)
+      (gnus-set-file-modes gnus-uu-work-dir 448)
       (setq gnus-uu-work-dir (file-name-as-directory gnus-uu-work-dir))
       (push (cons gnus-newsgroup-name gnus-uu-work-dir)
 	    gnus-uu-tmp-alist))))
@@ -1895,7 +1904,7 @@
   (when (gnus-uu-post-encode-file "uuencode" path file-name)
     (goto-char (point-min))
     (forward-line 1)
-    (while (re-search-forward " " nil t)
+    (while (search-forward " " nil t)
       (replace-match "`"))
     t))
 
@@ -2106,4 +2115,5 @@
 
 (provide 'gnus-uu)
 
+;;; arch-tag: 05312384-0a83-4720-9a58-b3160b888853
 ;;; gnus-uu.el ends here
Index: gnus/lisp/gnus-vm.el
diff -u gnus/lisp/gnus-vm.el:7.1 gnus/lisp/gnus-vm.el:7.2
--- gnus/lisp/gnus-vm.el:7.1	Sun Jan  4 22:51:01 2004
+++ gnus/lisp/gnus-vm.el	Thu May 20 10:02:39 2004
@@ -105,4 +105,5 @@
 
 (provide 'gnus-vm)
 
+;;; arch-tag: 42ca7f88-a12f-461d-be3e-cac7efb44866
 ;;; gnus-vm.el ends here
Index: gnus/lisp/gnus-win.el
diff -u gnus/lisp/gnus-win.el:7.1 gnus/lisp/gnus-win.el:7.5
--- gnus/lisp/gnus-win.el:7.1	Sun Jan  4 22:51:01 2004
+++ gnus/lisp/gnus-win.el	Sun Feb 13 05:44:41 2005
@@ -1,5 +1,5 @@
 ;;; gnus-win.el --- window configuration functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -62,6 +62,7 @@
   "*If non-nil, frames on all displays will be considered useable by Gnus.
 When nil, only frames on the same display as the selected frame will be
 used to display Gnus windows."
+  :version "22.1"
   :group 'gnus-windows
   :type 'boolean)
 
@@ -164,8 +165,12 @@
 	       (article 0.5)
 	       (message 1.0 point)))
     (display-term
-      (vertical 1.0
-		("*display*" 1.0))))
+     (vertical 1.0
+	       ("*display*" 1.0)))
+    (mml-preview
+     (vertical 1.0
+	       (message 0.5)
+	       (mml-preview 1.0 point))))
   "Window configuration for all possible Gnus buffers.
 See the Gnus manual for an explanation of the syntax used.")
 
@@ -193,11 +198,13 @@
     (info . gnus-info-buffer)
     (category . gnus-category-buffer)
     (article-copy . gnus-article-copy)
-    (draft . gnus-draft-buffer))
+    (draft . gnus-draft-buffer)
+    (mml-preview . mml-preview-buffer))
   "Mapping from short symbols to buffer names or buffer variables.")
 
 (defcustom gnus-configure-windows-hook nil
   "*A hook called when configuring windows."
+  :version "22.1"
   :group 'gnus-windows
   :type 'hook)
 
@@ -579,4 +586,5 @@
 
 (provide 'gnus-win)
 
+;;; arch-tag: ccd5a394-2ddf-4397-b8f8-6d80d3e46e2b
 ;;; gnus-win.el ends here
Index: gnus/lisp/gnus-xmas.el
diff -u gnus/lisp/gnus-xmas.el:7.6 gnus/lisp/gnus-xmas.el:7.10
--- gnus/lisp/gnus-xmas.el:7.6	Fri Jan 23 04:49:37 2004
+++ gnus/lisp/gnus-xmas.el	Wed Jan 26 09:54:34 2005
@@ -39,7 +39,7 @@
 (defvar menu-bar-mode (featurep 'menubar))
 (require 'messagexmas)
 (require 'wid-edit)
-(require 'run-at-time)
+(require 'timer-funcs)
 
 (defgroup gnus-xmas nil
   "XEmacsoid support for Gnus"
@@ -243,7 +243,7 @@
 	  (select-window selected))))))
 
 ;; Select the lowest window on the frame.
-(defun gnus-xmas-appt-select-lowest-window ()
+(defun gnus-xmas-select-lowest-window ()
   (let* ((lowest-window (selected-window))
 	 (bottom-edge (car (cdr (cdr (cdr (window-pixel-edges))))))
 	 (last-window (previous-window))
@@ -419,8 +419,8 @@
   (defalias 'gnus-read-event-char 'gnus-xmas-read-event-char)
   (defalias 'gnus-group-startup-message 'gnus-xmas-group-startup-message)
   (defalias 'gnus-tree-minimize 'gnus-xmas-tree-minimize)
-  (defalias 'gnus-appt-select-lowest-window
-    'gnus-xmas-appt-select-lowest-window)
+  (defalias 'gnus-select-lowest-window
+    'gnus-xmas-select-lowest-window)
   (defalias 'gnus-mail-strip-quoted-names 'gnus-xmas-mail-strip-quoted-names)
   (defalias 'gnus-character-to-event 'character-to-event)
   (defalias 'gnus-mode-line-buffer-identification
@@ -837,12 +837,13 @@
   glyph)
 
 (defun gnus-xmas-remove-image (image &optional category)
+  "Remove the image matching IMAGE and CATEGORY found first."
   (map-extents
    (lambda (ext unused)
      (when (equal (extent-end-glyph ext) image)
        (set-extent-property ext 'invisible nil)
-       (set-extent-property ext 'end-glyph nil))
-     nil)
+       (set-extent-property ext 'end-glyph nil)
+       t))
    nil nil nil nil nil 'gnus-image category))
 
 (defun gnus-xmas-assq-delete-all (key alist)
@@ -853,4 +854,5 @@
 
 (provide 'gnus-xmas)
 
+;;; arch-tag: 4e84de3f-ea0a-4ee3-bfeb-e03d46fcacef
 ;;; gnus-xmas.el ends here
Index: gnus/lisp/gnus.el
diff -u gnus/lisp/gnus.el:7.16 gnus/lisp/gnus.el:7.36
--- gnus/lisp/gnus.el:7.16	Fri Apr 30 16:33:59 2004
+++ gnus/lisp/gnus.el	Sun Mar 13 02:53:39 2005
@@ -1,7 +1,7 @@
 ;;; gnus.el --- a newsreader for GNU Emacs
 
 ;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997,
-;; 1998, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;;	Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -34,6 +34,7 @@
 (require 'wid-edit)
 (require 'mm-util)
 (require 'nnheader)
+(autoload 'message-y-or-n-p "message" nil nil 'macro)
 
 (defgroup gnus nil
   "The coffee-brewing, all singing, all dancing, kitchen sink newsreader."
@@ -155,7 +156,7 @@
 
 (defgroup gnus-summary-sort nil
   "Sorting the summary buffer."
-  :link '(custom-manual "(gnus)Summary Sorting")
+  :link '(custom-manual "(gnus)Sorting the Summary Buffer")
   :group 'gnus-summary)
 
 (defgroup gnus-summary-visual nil
@@ -282,7 +283,7 @@
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "0.2"
+(defconst gnus-version-number "0.3"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "No Gnus v%s" gnus-version-number)
@@ -313,7 +314,6 @@
   (defalias 'gnus-overlay-end 'overlay-end)
   (defalias 'gnus-extent-detached-p 'ignore)
   (defalias 'gnus-extent-start-open 'ignore)
-  (defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
   (defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
   (defalias 'gnus-character-to-event 'identity)
   (defalias 'gnus-assq-delete-all 'assq-delete-all)
@@ -322,7 +322,8 @@
   (defvar gnus-mode-line-image-cache t)
   (if (fboundp 'find-image)
       (defun gnus-mode-line-buffer-identification (line)
-	(let ((str (car-safe line)))
+	(let ((str (car-safe line))
+	      (load-path (mm-image-load-path)))
 	  (if (and (stringp str)
 		   (string-match "^Gnus:" str))
 	      (progn (add-text-properties
@@ -871,7 +872,7 @@
    ((and
      (fboundp 'find-image)
      (display-graphic-p)
-     (let* ((data-directory (nnheader-find-etc-directory "gnus"))
+     (let* ((data-directory (nnheader-find-etc-directory "images/gnus"))
 	    (image (find-image
 		    `((:type xpm :file "gnus.xpm"
 			     :color-symbols
@@ -960,6 +961,7 @@
      (\"mail\\\\.me\" (gnus-use-scoring  t))
      (\"list\\\\..*\" (total-expire . t)
 		  (broken-reply-to . t)))"
+  :version "22.1"
   :group 'gnus-group-various
   :type '(repeat (cons regexp
 		       (repeat sexp))))
@@ -1309,6 +1311,7 @@
 			(gnus-replace-in-string name "\\." "-") "-charter.html")))
   "*An alist of (HIERARCHY . FORM) pairs used to construct the URL of a charter.
 When FORM is evaluated `name' is bound to the name of the group."
+  :version "22.1"
   :group 'gnus-group-various
   :type '(repeat (cons (string :tag "Hierarchy") (sexp :tag "Form"))))
 
@@ -1316,6 +1319,7 @@
   "*Non-nil means that control messages are displayed using `browse-url'.
 Otherwise they are fetched with ange-ftp and displayed in an ephemeral
 group."
+  :version "22.1"
   :group 'gnus-group-various
   :type 'boolean)
 
@@ -1590,6 +1594,7 @@
  "Return GROUP's to-address."
  :variable-document
  "*Alist of group regexps and correspondent to-addresses."
+ :variable-group gnus-group-parameter
  :parameter-type '(gnus-email-address :tag "To Address")
  :parameter-document "\
 This will be used when doing followups and posts.
@@ -1616,6 +1621,7 @@
  "Return GROUP's to-list."
  :variable-document
  "*Alist of group regexps and correspondent to-lists."
+ :variable-group gnus-group-parameter
  :parameter-type '(gnus-email-address :tag "To List")
  :parameter-document "\
 This address will be used when doing a `a' in the group.
@@ -1634,6 +1640,7 @@
  "Return GROUP's subscription status."
  :variable-document
  "*Groups which are automatically considered subscribed."
+ :variable-group gnus-group-parameter
  :parameter-type '(const :tag "Subscribed" t)
  :parameter-document "\
 Gnus assumed that you are subscribed to the To/List address.
@@ -1740,6 +1747,7 @@
  "Return GROUP's initial input of the number of articles."
  :variable-document
  "*Alist of group regexps and its initial input of the number of articles."
+ :variable-group gnus-group-parameter
  :parameter-type '(choice :tag "Initial Input for Large Newsgroup"
 			  (const :tag "All" nil)
 			  (integer))
@@ -1765,7 +1773,7 @@
 		  (list
 		   (regexp :tag "Group Name Regular Expression")
 		   (boolean :tag "Ignored")))
- 
+
  :parameter-type '(boolean :tag "Group Ignored by the Registry")
  :parameter-document
  "Whether the Gnus Registry should ignore this group.")
@@ -1774,6 +1782,7 @@
 (defcustom gnus-install-group-spam-parameters t
   "*Disable the group parameters for spam detection.
 Enable if `G c' in XEmacs is giving you trouble, and make sure to submit a bug report."
+  :version "22.1"
   :type 'boolean
   :group 'gnus-start)
 
@@ -1801,11 +1810,12 @@
    :variable gnus-spam-newsgroup-contents
    :variable-default nil
    :variable-document
-   "*Groups in which to automatically mark new articles as spam on
-summary entry.  If non-nil, this should be a list of group name
-regexps that should match all groups in which to do automatic spam
-tagging, associated with a classification (spam, ham, or neither).
-This only makes sense for mail groups."
+   "*Group classification (spam, ham, or neither).  Only
+meaningful when spam.el is loaded.  If non-nil, this should be a
+list of group name regexps associated with a classification for
+each one.  In spam groups, new articles are marked as spam on
+summary entry.  There is other behavior associated with ham and
+no classification when spam.el is loaded - see the manual."
    :variable-group spam
    :variable-type '(repeat
 		    (list :tag "Group contents spam/ham classification"
@@ -1822,7 +1832,45 @@
 				  (const :tag "Unclassified" nil)))
    :parameter-document
    "The spam classification (spam, ham, or neither) of this group.
-When a spam group is entered, all unread articles are marked as spam.")
+When a spam group is entered, all unread articles are marked as
+spam.  There is other behavior associated with ham and no
+classification when spam.el is loaded - see the manual.")
+
+  (gnus-define-group-parameter
+   spam-resend-to
+   :type list
+   :function-document
+   "The address to get spam resent (through spam-report-resend)."
+   :variable gnus-spam-resend-to
+   :variable-default nil
+   :variable-document
+   "The address to get spam resent (through spam-report-resend)."
+   :variable-group spam
+   :variable-type '(repeat
+		    (list :tag "Group address for resending spam"
+			  (regexp :tag "Group")
+			  (string :tag "E-mail address for resending spam (requires the spam-use-resend exit processor)")))
+   :parameter-type 'string :tag "E-mail address for resending spam (requires the spam-use-resend exit processor)"
+   :parameter-document
+   "The address to get spam resent (through spam-report-resend).")
+
+  (gnus-define-group-parameter
+   ham-resend-to
+   :type list
+   :function-document
+   "The address to get ham resent (through spam-report-resend)."
+   :variable gnus-ham-resend-to
+   :variable-default nil
+   :variable-document
+   "The address to get ham resent (through spam-report-resend)."
+   :variable-group spam
+   :variable-type '(repeat
+		    (list :tag "Group address for resending ham"
+			  (regexp :tag "Group")
+			  (string :tag "E-mail address for resending ham (requires the spam-use-resend exit processor)")))
+   :parameter-type 'string :tag "E-mail address for resending ham (requires the spam-use-resend exit processor)"
+   :parameter-document
+   "The address to get ham resent (through spam-report-resend).")
 
   (defvar gnus-group-spam-exit-processor-ifile "ifile"
     "OBSOLETE: The ifile summary exit spam processor.")
@@ -1874,42 +1922,46 @@
   (gnus-define-group-parameter
    spam-process
    :type list
-   :parameter-type 
-   '(choice 
+   :parameter-type
+   '(choice
      :tag "Spam Summary Exit Processor"
      :value nil
      (list :tag "Spam Summary Exit Processor Choices"
 	   (set
-	    (variable-item gnus-group-spam-exit-processor-ifile)
-	    (variable-item gnus-group-spam-exit-processor-stat)
-	    (variable-item gnus-group-spam-exit-processor-bogofilter)
-	    (variable-item gnus-group-spam-exit-processor-blacklist)
-	    (variable-item gnus-group-spam-exit-processor-spamoracle)
-	    (variable-item gnus-group-spam-exit-processor-report-gmane)
-	    (variable-item gnus-group-ham-exit-processor-bogofilter)
-	    (variable-item gnus-group-ham-exit-processor-ifile)
-	    (variable-item gnus-group-ham-exit-processor-stat)
-	    (variable-item gnus-group-ham-exit-processor-whitelist)
-	    (variable-item gnus-group-ham-exit-processor-BBDB)
-	    (variable-item gnus-group-ham-exit-processor-spamoracle)
-	    (variable-item gnus-group-ham-exit-processor-copy)
 	    (const :tag "Spam: Bogofilter"    (spam spam-use-bogofilter))
 	    (const :tag "Spam: Blacklist"     (spam spam-use-blacklist))
 	    (const :tag "Spam: Bsfilter"      (spam spam-use-bsfilter))
 	    (const :tag "Spam: Gmane Report"  (spam spam-use-gmane))
+	    (const :tag "Spam: Resend Message"(spam spam-use-resend))
 	    (const :tag "Spam: ifile"	      (spam spam-use-ifile))
 	    (const :tag "Spam: Spam Oracle"   (spam spam-use-spamoracle))
 	    (const :tag "Spam: Spam-stat"     (spam spam-use-stat))
 	    (const :tag "Spam: SpamAssassin"  (spam spam-use-spamassassin))
+	    (const :tag "Spam: CRM114"        (spam spam-use-crm114))
 	    (const :tag "Ham: BBDB"	      (ham spam-use-BBDB))
 	    (const :tag "Ham: Bogofilter"     (ham spam-use-bogofilter))
 	    (const :tag "Ham: Bsfilter"       (ham spam-use-bsfilter))
 	    (const :tag "Ham: Copy"	      (ham spam-use-ham-copy))
+	    (const :tag "Ham: Resend Message" (ham spam-use-resend))
 	    (const :tag "Ham: ifile"	      (ham spam-use-ifile))
 	    (const :tag "Ham: Spam Oracle"    (ham spam-use-spamoracle))
 	    (const :tag "Ham: Spam-stat"      (ham spam-use-stat))
 	    (const :tag "Ham: SpamAssassin"   (ham spam-use-spamassassin))
-	    (const :tag "Ham: Whitelist"      (ham spam-use-whitelist)))))
+	    (const :tag "Ham: CRM114"         (ham spam-use-crm114))
+	    (const :tag "Ham: Whitelist"      (ham spam-use-whitelist))
+	    (variable-item gnus-group-spam-exit-processor-ifile)
+	    (variable-item gnus-group-spam-exit-processor-stat)
+	    (variable-item gnus-group-spam-exit-processor-bogofilter)
+	    (variable-item gnus-group-spam-exit-processor-blacklist)
+	    (variable-item gnus-group-spam-exit-processor-spamoracle)
+	    (variable-item gnus-group-spam-exit-processor-report-gmane)
+	    (variable-item gnus-group-ham-exit-processor-bogofilter)
+	    (variable-item gnus-group-ham-exit-processor-ifile)
+	    (variable-item gnus-group-ham-exit-processor-stat)
+	    (variable-item gnus-group-ham-exit-processor-whitelist)
+	    (variable-item gnus-group-ham-exit-processor-BBDB)
+	    (variable-item gnus-group-ham-exit-processor-spamoracle)
+	    (variable-item gnus-group-ham-exit-processor-copy))))
    :function-document
    "Which spam or ham processors will be applied when the summary is exited."
    :variable gnus-spam-process-newsgroups
@@ -1920,42 +1972,46 @@
 name regexps that should match all groups in which to do automatic
 spam processing, associated with the appropriate processor."
    :variable-group spam
-   :variable-type 
+   :variable-type
    '(repeat :tag "Spam/Ham Processors"
 	    (list :tag "Spam Summary Exit Processor Choices"
 		  (regexp :tag "Group Regexp")
-		  (set 
+		  (set
 		   :tag "Spam/Ham Summary Exit Processor"
-		   (variable-item gnus-group-spam-exit-processor-ifile)
-		   (variable-item gnus-group-spam-exit-processor-stat)
-		   (variable-item gnus-group-spam-exit-processor-bogofilter)
-		   (variable-item gnus-group-spam-exit-processor-blacklist)
-		   (variable-item gnus-group-spam-exit-processor-spamoracle)
-		   (variable-item gnus-group-spam-exit-processor-report-gmane)
-		   (variable-item gnus-group-ham-exit-processor-bogofilter)
-		   (variable-item gnus-group-ham-exit-processor-ifile)
-		   (variable-item gnus-group-ham-exit-processor-stat)
-		   (variable-item gnus-group-ham-exit-processor-whitelist)
-		   (variable-item gnus-group-ham-exit-processor-BBDB)
-		   (variable-item gnus-group-ham-exit-processor-spamoracle)
-		   (variable-item gnus-group-ham-exit-processor-copy)
 		   (const :tag "Spam: Bogofilter"    (spam spam-use-bogofilter))
 		   (const :tag "Spam: Blacklist"     (spam spam-use-blacklist))
 		   (const :tag "Spam: Bsfilter"	     (spam spam-use-bsfilter))
-		   (const :tag "Spam: ifile"	     (spam spam-use-ifile))
 		   (const :tag "Spam: Gmane Report"  (spam spam-use-gmane))
+		   (const :tag "Spam: Resend Message"(spam spam-use-resend))
+		   (const :tag "Spam: ifile"	     (spam spam-use-ifile))
 		   (const :tag "Spam: Spam-stat"     (spam spam-use-stat))
 		   (const :tag "Spam: Spam Oracle"   (spam spam-use-spamoracle))
 		   (const :tag "Spam: SpamAssassin"  (spam spam-use-spamassassin))
+		   (const :tag "Spam: CRM114"        (spam spam-use-crm114))
 		   (const :tag "Ham: BBDB"	     (ham spam-use-BBDB))
 		   (const :tag "Ham: Bogofilter"     (ham spam-use-bogofilter))
 		   (const :tag "Ham: Bsfilter"	     (ham spam-use-bsfilter))
 		   (const :tag "Ham: Copy"	     (ham spam-use-ham-copy))
+		   (const :tag "Ham: Resend Message" (ham spam-use-resend))
 		   (const :tag "Ham: ifile"	     (ham spam-use-ifile))
 		   (const :tag "Ham: Spam-stat"	     (ham spam-use-stat))
 		   (const :tag "Ham: Spam Oracle"    (ham spam-use-spamoracle))
 		   (const :tag "Ham: SpamAssassin"   (ham spam-use-spamassassin))
-		   (const :tag "Ham: Whitelist"	     (ham spam-use-whitelist)))))
+		   (const :tag "Ham: CRM114"         (ham spam-use-crm114))
+		   (const :tag "Ham: Whitelist"	     (ham spam-use-whitelist))
+		   (variable-item gnus-group-spam-exit-processor-ifile)
+		   (variable-item gnus-group-spam-exit-processor-stat)
+		   (variable-item gnus-group-spam-exit-processor-bogofilter)
+		   (variable-item gnus-group-spam-exit-processor-blacklist)
+		   (variable-item gnus-group-spam-exit-processor-spamoracle)
+		   (variable-item gnus-group-spam-exit-processor-report-gmane)
+		   (variable-item gnus-group-ham-exit-processor-bogofilter)
+		   (variable-item gnus-group-ham-exit-processor-ifile)
+		   (variable-item gnus-group-ham-exit-processor-stat)
+		   (variable-item gnus-group-ham-exit-processor-whitelist)
+		   (variable-item gnus-group-ham-exit-processor-BBDB)
+		   (variable-item gnus-group-ham-exit-processor-spamoracle)
+		   (variable-item gnus-group-ham-exit-processor-copy))))
 
    :parameter-document
    "Which spam or ham processors will be applied when the summary is exited.")
@@ -1963,7 +2019,7 @@
   (gnus-define-group-parameter
    spam-autodetect
    :type list
-   :parameter-type 
+   :parameter-type
    '(boolean :tag "Spam autodetection")
    :function-document
    "Should spam be autodetected (with spam-split) in this group?"
@@ -1974,7 +2030,7 @@
    Only unseen articles will be examined, unless
    spam-autodetect-recheck-messages is set."
    :variable-group spam
-   :variable-type 
+   :variable-type
    '(repeat
      :tag "Autodetection setting"
      (list
@@ -1988,7 +2044,7 @@
   (gnus-define-group-parameter
    spam-autodetect-methods
    :type list
-   :parameter-type 
+   :parameter-type
    '(choice :tag "Spam autodetection-specific methods"
      (const none)
      (const default)
@@ -2001,6 +2057,7 @@
 	  (variable-item spam-use-BBDB)
 	  (variable-item spam-use-ifile)
 	  (variable-item spam-use-spamoracle)
+	  (variable-item spam-use-crm114)
 	  (variable-item spam-use-spamassassin)
 	  (variable-item spam-use-spamassassin-headers)
 	  (variable-item spam-use-bsfilter)
@@ -2020,7 +2077,7 @@
 will be examined, unless spam-autodetect-recheck-messages is
 set."
    :variable-group spam
-   :variable-type 
+   :variable-type
    '(repeat
      :tag "Autodetection methods"
      (list
@@ -2037,6 +2094,7 @@
 	(variable-item spam-use-BBDB)
 	(variable-item spam-use-ifile)
 	(variable-item spam-use-spamoracle)
+	(variable-item spam-use-crm114)
 	(variable-item spam-use-stat)
 	(variable-item spam-use-blackholes)
 	(variable-item spam-use-hashcash)
@@ -2047,7 +2105,7 @@
 	(variable-item spam-use-bogofilter-headers)
 	(variable-item spam-use-bogofilter)))))
      :parameter-document
-   "Spam autodetection methods.  
+   "Spam autodetection methods.
 Requires the spam-autodetect parameter.  Only unseen articles
 will be examined, unless spam-autodetect-recheck-messages is
 set.")
@@ -2055,7 +2113,7 @@
   (gnus-define-group-parameter
    spam-process-destination
    :type list
-   :parameter-type 
+   :parameter-type
    '(choice :tag "Destination for spam-processed articles at summary exit"
 	    (string :tag "Move to a group")
 	    (repeat :tag "Move to multiple groups"
@@ -2073,7 +2131,7 @@
 group or nil for explicit expiration.  This only makes sense for
 mail groups."
    :variable-group spam
-   :variable-type 
+   :variable-type
    '(repeat
      :tag "Spam-processed articles destination"
      (list
@@ -2086,11 +2144,11 @@
        (const :tag "Expire" nil))))
    :parameter-document
    "Where spam-processed articles will go at summary exit.")
-  
+
   (gnus-define-group-parameter
    ham-process-destination
    :type list
-   :parameter-type 
+   :parameter-type
    '(choice
      :tag "Destination for ham articles at summary exit from a spam group"
      (string :tag "Move to a group")
@@ -2110,7 +2168,7 @@
 group or nil for explicit ignoring.  This only makes sense for
 mail groups, and only works in spam groups."
    :variable-group spam
-   :variable-type 
+   :variable-type
    '(repeat
      :tag "Ham articles destination"
      (list
@@ -2294,7 +2352,7 @@
 When set, Gnus will prefer using the locally stored content rather
 than re-fetching it from the server.  You also need to enable
 `gnus-agent' for this to have any affect."
-  :version "21.3"
+  :version "22.1"
   :group 'gnus-agent
   :type 'boolean)
 
@@ -2313,7 +2371,7 @@
 You may customize gnus-agent to disable its use.  However, some
 back ends have started to use the agent as a client-side cache.
 Disabling the agent may result in noticeable loss of performance."
-  :version "21.3"
+  :version "22.1"
   :group 'gnus-agent
   :type 'boolean)
 
@@ -2337,23 +2395,45 @@
 			 (symbol :tag "Parameter")
 			 (sexp :tag "Value")))))
 
-(defcustom gnus-user-agent 'emacs-gnus-type
+(defcustom gnus-user-agent '(emacs gnus type)
   "Which information should be exposed in the User-Agent header.
 
-It can be one of the symbols `gnus' \(show only Gnus version\), `emacs-gnus'
-\(show only Emacs and Gnus versions\), `emacs-gnus-config' \(same as
-`emacs-gnus' plus system configuration\), `emacs-gnus-type' \(same as
-`emacs-gnus' plus system type\) or a custom string.  If you set it to a
-string, be sure to use a valid format, see RFC 2616."
+Can be a list of symbols or a string.  Valid symbols are `gnus'
+\(show Gnus version\) and `emacs' \(show Emacs version\).  In
+addition to the Emacs version, you can add `codename' \(show
+\(S\)XEmacs codename\) or either `config' \(show system
+configuration\) or `type' \(show system type\).  If you set it to
+a string, be sure to use a valid format, see RFC 2616."
+
+  :version "22.1"
   :group 'gnus-message
-  :type '(choice
-	  (item :tag "Show Gnus and Emacs versions and system type"
-		emacs-gnus-type)
-	  (item :tag "Show Gnus and Emacs versions and system configuration"
-		emacs-gnus-config)
-	  (item :tag "Show Gnus and Emacs versions" emacs-gnus)
-	  (item :tag "Show only Gnus version" gnus)
-	  (string :tag "Other")))
+  :type '(choice (list (set :inline t
+			    (const gnus  :tag "Gnus version")
+			    (const emacs :tag "Emacs version")
+			    (choice :tag "system"
+				    (const type   :tag "system type")
+				    (const config :tag "system configuration"))
+			    (const codename :tag "Emacs codename")))
+		 (string)))
+
+;; Convert old (< 2005-01-10) symbol type values:
+(when (symbolp gnus-user-agent)
+  (setq gnus-user-agent
+	(cond ((eq gnus-user-agent 'emacs-gnus-config)
+	       '(emacs gnus config))
+	      ((eq gnus-user-agent 'emacs-gnus-type)
+	       '(emacs gnus type))
+	      ((eq gnus-user-agent 'emacs-gnus)
+	       '(emacs gnus))
+	      ((eq gnus-user-agent 'gnus)
+	       '(gnus))
+	      (t gnus-user-agent)))
+  (gnus-message 1 "Converted `gnus-user-agent' to `%s'." gnus-user-agent)
+  (sit-for 1)
+  (if (get 'gnus-user-agent 'saved-value)
+      (customize-save-variable 'gnus-user-agent gnus-user-agent)
+    (gnus-message 1 "Edit your init file to make this change permanent.")
+    (sit-for 2)))
 
 
 ;;; Internal variables
@@ -2451,7 +2531,6 @@
 (defvar gnus-headers-retrieved-by nil)
 (defvar gnus-article-reply nil)
 (defvar gnus-override-method nil)
-(defvar gnus-article-check-size nil)
 (defvar gnus-opened-servers nil)
 
 (defvar gnus-current-kill-article nil)
@@ -2645,7 +2724,7 @@
       gnus-uu-decode-uu-and-save-view gnus-uu-decode-unshar-view
       gnus-uu-decode-unshar-and-save-view gnus-uu-decode-save-view
       gnus-uu-decode-binhex-view gnus-uu-unmark-thread
-      gnus-uu-mark-over gnus-uu-post-news)
+      gnus-uu-mark-over gnus-uu-post-news gnus-uu-invert-processable)
      ("gnus-uu" gnus-uu-delete-work-dir gnus-uu-unmark-thread)
      ("gnus-msg" (gnus-summary-send-map keymap)
       gnus-article-mail gnus-copy-article-buffer gnus-extended-version)
@@ -2704,7 +2783,8 @@
       gnus-mime-view-all-parts)
      ("gnus-int" gnus-request-type)
      ("gnus-start" gnus-newsrc-parse-options gnus-1 gnus-no-server-1
-      gnus-dribble-enter gnus-read-init-file gnus-dribble-touch)
+      gnus-dribble-enter gnus-read-init-file gnus-dribble-touch
+      gnus-check-reasonable-setup)
      ("gnus-dup" gnus-dup-suppress-articles gnus-dup-unsuppress-article
       gnus-dup-enter-articles)
      ("gnus-range" gnus-copy-sequence)
@@ -2717,7 +2797,7 @@
       gnus-async-prefetch-article gnus-async-prefetch-remove-group
       gnus-async-halt-prefetch)
      ("gnus-agent" gnus-open-agent gnus-agent-get-function
-      gnus-agent-save-groups gnus-agent-save-active gnus-agent-method-p
+      gnus-agent-save-active gnus-agent-method-p
       gnus-agent-get-undownloaded-list gnus-agent-fetch-session
       gnus-summary-set-agent-mark gnus-agent-save-group-info
       gnus-agent-request-article gnus-agent-retrieve-headers)
@@ -2952,11 +3032,9 @@
 
 (defun gnus-shutdown (symbol)
   "Shut down everything that waits for SYMBOL."
-  (let ((alist gnus-shutdown-alist)
-	entry)
-    (while (setq entry (pop alist))
-      (when (memq symbol (cdr entry))
-	(funcall (car entry))))))
+  (dolist (entry gnus-shutdown-alist)
+    (when (memq symbol (cdr entry))
+      (funcall (car entry)))))
 
 
 ;;;
@@ -3325,7 +3403,7 @@
               ;; gnus-server-method-cache so this only happens once,
               ;; if at all.
               (let (match)
-                (mapcar 
+                (mapcar
                  (lambda (info)
                    (let ((info-method (gnus-info-method info)))
                      (unless (stringp info-method)
@@ -3989,10 +4067,10 @@
 (defun gnus-agent-method-p (method)
   "Say whether METHOD is covered by the agent."
   (or (eq (car gnus-agent-method-p-cache) method)
-      (setq gnus-agent-method-p-cache 
+      (setq gnus-agent-method-p-cache
             (cons method
-                  (member (if (stringp method) 
-                              method 
+                  (member (if (stringp method)
+                              method
                             (gnus-method-to-server method)) gnus-agent-covered-methods))))
   (cdr gnus-agent-method-p-cache))
 
@@ -4096,4 +4174,5 @@
 
 (provide 'gnus)
 
+;;; arch-tag: acebeeab-f331-4f8f-a7ea-89c58c84f636
 ;;; gnus.el ends here
Index: gnus/lisp/hashcash.el
diff -u /dev/null gnus/lisp/hashcash.el:7.11
--- /dev/null	Sun May  1 19:05:01 2005
+++ gnus/lisp/hashcash.el	Sun Jan 16 11:00:19 2005
@@ -0,0 +1,368 @@
+;;; hashcash.el --- Add hashcash payments to email
+
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation
+
+;; Written by: Paul Foley <mycroft@actrix.gen.nz> (1997-2002)
+;; Maintainer: Paul Foley <mycroft@actrix.gen.nz>
+;; Keywords: mail, hashcash
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; The hashcash binary is at http://www.hashcash.org/.
+;;
+;; Call mail-add-payment to add a hashcash payment to a mail message
+;; in the current buffer.
+;;
+;; Call mail-add-payment-async after writing the addresses but before
+;; writing the mail to start calculating the hashcash payment
+;; asynchronously.
+;;
+;; The easiest way to do this automatically for all outgoing mail
+;; is to set `message-generate-hashcash' to t.  If you want more
+;; control, try the following hooks.
+;;
+;; To automatically add payments to all outgoing mail when sending:
+;;    (add-hook 'message-send-hook 'mail-add-payment)
+;;
+;; To start calculations automatically when addresses are prefilled:
+;;    (add-hook 'message-setup-hook 'mail-add-payment-async)
+;;
+;; To check whether calculations are done before sending:
+;;    (add-hook 'message-send-hook 'hashcash-wait-or-cancel)
+
+;;; Code:
+
+(eval-and-compile
+ (autoload 'executable-find "executable"))
+
+(defcustom hashcash-default-payment 20
+  "*The default number of bits to pay to unknown users.
+If this is zero, no payment header will be generated.
+See `hashcash-payment-alist'."
+  :type 'integer)
+
+(defcustom hashcash-payment-alist '()
+  "*An association list mapping email addresses to payment amounts.
+Elements may consist of (ADDR AMOUNT) or (ADDR STRING AMOUNT), where
+ADDR is the email address of the intended recipient and AMOUNT is
+the value of hashcash payment to be made to that user.  STRING, if
+present, is the string to be hashed; if not present ADDR will be used."
+  :type '(repeat (choice (list :tag "Normal"
+			       (string :name "Address")
+			       (integer :name "Amount"))
+			 (list :tag "Replace hash input"
+			       (string :name "Address")
+			       (string :name "Hash input")
+			       (integer :name "Amount")))))
+
+(defcustom hashcash-default-accept-payment 20
+  "*The default minimum number of bits to accept on incoming payments."
+  :type 'integer)
+
+(defcustom hashcash-accept-resources `((,user-mail-address nil))
+  "*An association list mapping hashcash resources to payment amounts.
+Resources named here are to be accepted in incoming payments.  If the
+corresponding AMOUNT is NIL, the value of `hashcash-default-accept-payment'
+is used instead.")
+
+(defcustom hashcash-path (executable-find "hashcash")
+  "*The path to the hashcash binary.")
+
+(defcustom hashcash-extra-generate-parameters nil
+  "*A list of parameter strings passed to `hashcash-path' when minting.
+For example, you may want to set this to '(\"-Z2\") to reduce header length."
+  :type '(repeat string))
+
+(defcustom hashcash-double-spend-database "hashcash.db"
+  "*The path to the double-spending database.")
+
+(defcustom hashcash-in-news nil
+  "*Specifies whether or not hashcash payments should be made to newsgroups."
+  :type 'boolean)
+
+(defvar hashcash-process-alist nil
+  "Alist of asynchronous hashcash processes and buffers.")
+
+(require 'mail-utils)
+
+(eval-and-compile
+ (if (fboundp 'point-at-bol)
+     (defalias 'hashcash-point-at-bol 'point-at-bol)
+   (defalias 'hashcash-point-at-bol 'line-beginning-position))
+
+ (if (fboundp 'point-at-eol)
+     (defalias 'hashcash-point-at-eol 'point-at-eol)
+   (defalias 'hashcash-point-at-eol 'line-end-position)))
+
+(defun hashcash-strip-quoted-names (addr)
+  (setq addr (mail-strip-quoted-names addr))
+  (if (and addr (string-match "\\`\\([^+@]+\\)\\+[^@]*\\(@.+\\)" addr))
+      (concat (match-string 1 addr) (match-string 2 addr))
+    addr))
+
+(defun hashcash-token-substring ()
+  (save-excursion
+    (let ((token ""))
+      (loop
+	(setq token
+	  (concat token (buffer-substring (point) (hashcash-point-at-eol))))
+	(goto-char (hashcash-point-at-eol))
+	(forward-char 1)
+	(unless (looking-at "[ \t]") (return token))
+	(while (looking-at "[ \t]") (forward-char 1))))))
+
+(defun hashcash-payment-required (addr)
+  "Return the hashcash payment value required for the given address."
+  (let ((val (assoc addr hashcash-payment-alist)))
+    (or (nth 2 val) (nth 1 val) hashcash-default-payment)))
+
+(defun hashcash-payment-to (addr)
+  "Return the string with which hashcash payments should collide."
+  (let ((val (assoc addr hashcash-payment-alist)))
+    (or (nth 1 val) (nth 0 val) addr)))
+
+(defun hashcash-generate-payment (str val)
+  "Generate a hashcash payment by finding a VAL-bit collison on STR."
+  (if (and (> val 0)
+	   hashcash-path)
+      (save-excursion
+	(set-buffer (get-buffer-create " *hashcash*"))
+	(erase-buffer)
+	(apply 'call-process hashcash-path nil t nil
+	       "-m" "-q" "-b" (number-to-string val) str
+	       hashcash-extra-generate-parameters)
+	(goto-char (point-min))
+	(hashcash-token-substring))
+    (error "No `hashcash' binary found")))
+
+(defun hashcash-generate-payment-async (str val callback)
+  "Generate a hashcash payment by finding a VAL-bit collison on STR.
+Return immediately.  Call CALLBACK with process and result when ready."
+  (if (> val 0)
+      (let ((process (apply 'start-process "hashcash" nil
+			    hashcash-path "-m" "-q"
+			    "-b" (number-to-string val) str
+			    hashcash-extra-generate-parameters)))
+	(setq hashcash-process-alist (cons
+				      (cons process (current-buffer))
+				      hashcash-process-alist))
+	(set-process-filter process `(lambda (process output)
+				       (funcall ,callback process output))))
+    (funcall callback nil)))
+
+(defun hashcash-check-payment (token str val)
+  "Check the validity of a hashcash payment."
+  (if hashcash-path
+      (zerop (call-process hashcash-path nil nil nil "-c"
+			   "-d" "-f" hashcash-double-spend-database
+			   "-b" (number-to-string val)
+			   "-r" str
+			   token))
+    (progn
+      (message "No hashcash binary found")
+      (sleep-for 1)
+      nil)))
+
+(defun hashcash-version (token)
+  "Find the format version of a hashcash token."
+  ;; Version 1.2 looks like n:yymmdd:rrrrr:xxxxxxxxxxxxxxxx
+  ;;   This carries its own version number embedded in the token,
+  ;;   so no further format number changes should be necessary
+  ;;   in the X-Payment header.
+  ;;
+  ;; Version 1.1 looks like yymmdd:rrrrr:xxxxxxxxxxxxxxxx
+  ;;   You need to upgrade your hashcash binary.
+  ;;
+  ;; Version 1.0 looked like nnnnnrrrrrxxxxxxxxxxxxxxxx
+  ;;   This is no longer supported.
+  (cond ((equal (aref token 1) ?:) 1.2)
+	((equal (aref token 6) ?:) 1.1)
+	(t (error "Unknown hashcash format version"))))
+
+(defun hashcash-already-paid-p (recipient)
+  "Check for hashcash token to RECIPIENT in current buffer."
+  (save-excursion
+    (save-restriction
+      (message-narrow-to-headers-or-head)
+      (let ((token (message-fetch-field "x-hashcash")))
+	(and (stringp token)
+	     (string-match (regexp-quote recipient) token))))))
+
+;;;###autoload
+(defun hashcash-insert-payment (arg)
+  "Insert X-Payment and X-Hashcash headers with a payment for ARG"
+  (interactive "sPay to: ")
+  (unless (hashcash-already-paid-p arg)
+    (let ((pay (hashcash-generate-payment (hashcash-payment-to arg)
+					  (hashcash-payment-required arg))))
+      (when pay
+	;;      (insert-before-markers "X-Payment: hashcash "
+	;;			     (number-to-string (hashcash-version pay)) " "
+	;;			     pay "\n")
+	(insert-before-markers "X-Hashcash: " pay "\n")))))
+
+;;;###autoload
+(defun hashcash-insert-payment-async (arg)
+  "Insert X-Payment and X-Hashcash headers with a payment for ARG
+Only start calculation.  Results are inserted when ready."
+  (interactive "sPay to: ")
+  (unless (hashcash-already-paid-p arg)
+    (hashcash-generate-payment-async (hashcash-payment-to arg)
+				     (hashcash-payment-required arg)
+				     `(lambda (process payment)
+					(hashcash-insert-payment-async-2 ,(current-buffer) process payment)))))
+
+(defun hashcash-insert-payment-async-2 (buffer process pay)
+  (with-current-buffer buffer
+    (save-excursion
+      (save-restriction
+	(setq hashcash-process-alist (delq
+				      (assq process hashcash-process-alist)
+				      hashcash-process-alist))
+	(goto-char (point-min))
+	(search-forward mail-header-separator)
+	(beginning-of-line)
+	(when pay
+;;      (insert-before-markers "X-Payment: hashcash "
+;;			     (number-to-string (hashcash-version pay)) " "
+;;			     pay "\n")
+	  (insert-before-markers "X-Hashcash: " pay))))))
+
+(defun hashcash-cancel-async (&optional buffer)
+  "Delete any hashcash processes associated with BUFFER.
+BUFFER defaults to the current buffer."
+  (interactive)
+  (unless buffer (setq buffer (current-buffer)))
+  (let (entry)
+    (while (setq entry (rassq buffer hashcash-process-alist))
+      (delete-process (car entry))
+      (setq hashcash-process-alist
+	    (delq entry hashcash-process-alist)))))
+
+(defun hashcash-wait-async (&optional buffer)
+  "Wait for asynchronous hashcash processes in BUFFER to finish.
+BUFFER defaults to the current buffer."
+  (interactive)
+  (unless buffer (setq buffer (current-buffer)))
+  (let (entry)
+    (while (setq entry (rassq buffer hashcash-process-alist))
+      (accept-process-output (car entry)))))
+
+(defun hashcash-processes-running-p (buffer)
+  "Return non-nil if hashcash processes in BUFFER are still running."
+  (rassq buffer hashcash-process-alist))
+
+(defun hashcash-wait-or-cancel ()
+  "Ask user whether to wait for hashcash processes to finish."
+  (interactive)
+  (when (hashcash-processes-running-p (current-buffer))
+    (if (y-or-n-p 
+	  "Hashcash process(es) still running; wait for them to finish? ")
+	(hashcash-wait-async)
+      (hashcash-cancel-async))))
+
+;;;###autoload
+(defun hashcash-verify-payment (token &optional resource amount)
+  "Verify a hashcash payment"
+  (let* ((split (split-string token ":"))
+	 (key (if (< (hashcash-version token) 1.2)
+		  (nth 1 split)
+		  (case (string-to-number (nth 0 split))
+		    (0 (nth 2 split))
+		    (1 (nth 3 split))))))
+    (cond ((null resource)
+	   (let ((elt (assoc key hashcash-accept-resources)))
+	     (and elt (hashcash-check-payment token (car elt)
+			(or (cadr elt) hashcash-default-accept-payment)))))
+	  ((equal token key)
+	   (hashcash-check-payment token resource
+				(or amount hashcash-default-accept-payment)))
+	  (t nil))))
+
+;;;###autoload
+(defun mail-add-payment (&optional arg async)
+  "Add X-Payment: and X-Hashcash: headers with a hashcash payment
+for each recipient address.  Prefix arg sets default payment temporarily.
+Set ASYNC to t to start asynchronous calculation.  (See
+`mail-add-payment-async')."
+  (interactive "P")
+  (let ((hashcash-default-payment (if arg (prefix-numeric-value arg)
+				    hashcash-default-payment))
+	(addrlist nil))
+    (save-excursion
+      (save-restriction
+	(goto-char (point-min))
+	(search-forward mail-header-separator)
+	(beginning-of-line)
+	(narrow-to-region (point-min) (point))
+	(let ((to (hashcash-strip-quoted-names (mail-fetch-field "To" nil t)))
+	      (cc (hashcash-strip-quoted-names (mail-fetch-field "Cc" nil t)))
+	      (ng (hashcash-strip-quoted-names (mail-fetch-field "Newsgroups"
+								 nil t))))
+	  (when to
+	    (setq addrlist (split-string to ",[ \t\n]*")))
+	  (when cc
+	    (setq addrlist (nconc addrlist (split-string cc ",[ \t\n]*"))))
+	  (when (and hashcash-in-news ng)
+	    (setq addrlist (nconc addrlist (split-string ng ",[ \t\n]*")))))
+	(when addrlist
+	  (mapcar (if async
+		      #'hashcash-insert-payment-async
+		    #'hashcash-insert-payment)
+		  addrlist))))) ; mapc
+  t)
+
+;;;###autoload
+(defun mail-add-payment-async (&optional arg)
+  "Add X-Payment: and X-Hashcash: headers with a hashcash payment
+for each recipient address.  Prefix arg sets default payment temporarily.
+Calculation is asynchronous."
+  (interactive "P")
+  (mail-add-payment arg t))
+
+;;;###autoload
+(defun mail-check-payment (&optional arg)
+  "Look for a valid X-Payment: or X-Hashcash: header.
+Prefix arg sets default accept amount temporarily."
+  (interactive "P")
+  (let ((hashcash-default-accept-payment (if arg (prefix-numeric-value arg)
+					   hashcash-default-accept-payment))
+	(version (hashcash-version (hashcash-generate-payment "x" 1))))
+    (save-excursion
+      (goto-char (point-min))
+      (search-forward "\n\n")
+      (beginning-of-line)
+      (let ((end (point))
+	    (ok nil))
+	(goto-char (point-min))
+	(while (and (not ok) (search-forward "X-Payment: hashcash " end t))
+	  (let ((value (split-string (hashcash-token-substring) " ")))
+	    (when (equal (car value) (number-to-string version))
+	      (setq ok (hashcash-verify-payment (cadr value))))))
+	(goto-char (point-min))
+	(while (and (not ok) (search-forward "X-Hashcash: " end t))
+	  (setq ok (hashcash-verify-payment (hashcash-token-substring))))
+	(when ok
+	  (message "Payment valid"))
+	ok))))
+
+(provide 'hashcash)
+
+;;; arch-tag: 0e7fe983-a124-4392-9788-0dbcbd2c4d62
Index: gnus/lisp/hex-util.el
diff -u gnus/lisp/hex-util.el:7.1 gnus/lisp/hex-util.el:7.2
--- gnus/lisp/hex-util.el:7.1	Sun Jan  4 22:51:01 2004
+++ gnus/lisp/hex-util.el	Thu May 20 10:02:40 2004
@@ -70,4 +70,5 @@
 
 (provide 'hex-util)
 
+;;; arch-tag: fe8aaa79-6c86-400e-813f-5a8cc4cb3859
 ;;; hex-util.el ends here
Index: gnus/lisp/hmac-def.el
diff -u gnus/lisp/hmac-def.el:7.1 gnus/lisp/hmac-def.el:7.2
--- gnus/lisp/hmac-def.el:7.1	Mon Jan  5 00:09:08 2004
+++ gnus/lisp/hmac-def.el	Thu May 20 10:02:40 2004
@@ -82,4 +82,5 @@
 
 (provide 'hmac-def)
 
+;;; arch-tag: 645adcef-b835-4900-a10a-11f636c982b9
 ;;; hmac-def.el ends here
Index: gnus/lisp/hmac-md5.el
diff -u gnus/lisp/hmac-md5.el:7.2 gnus/lisp/hmac-md5.el:7.3
--- gnus/lisp/hmac-md5.el:7.2	Mon Jan  5 02:00:55 2004
+++ gnus/lisp/hmac-md5.el	Thu May 20 10:02:40 2004
@@ -81,4 +81,5 @@
 
 (provide 'hmac-md5)
 
+;;; arch-tag: 0ab3f4f6-3d4b-4167-a9fa-635b7fed7f27
 ;;; hmac-md5.el ends here
Index: gnus/lisp/html2text.el
diff -u gnus/lisp/html2text.el:7.4 gnus/lisp/html2text.el:7.10
--- gnus/lisp/html2text.el:7.4	Wed Apr 28 20:48:16 2004
+++ gnus/lisp/html2text.el	Tue Nov  2 12:58:40 2004
@@ -24,11 +24,11 @@
 
 ;; These functions provide a simple way to wash/clean html infected
 ;; mails.  Definitely do not work in all cases, but some improvement
-;; in readability is generally obtained. Formatting is only done in
+;; in readability is generally obtained.  Formatting is only done in
 ;; the buffer, so the next time you enter the article it will be
 ;; "re-htmlized".
 ;;
-;; The main function is "html2text"
+;; The main function is `html2text'.
 
 ;;; Code:
 
@@ -47,9 +47,9 @@
   "The map of entity to text.
 
 This is an alist were each element is a dotted pair consisting of an
-old string, and a replacement string. This replacement is done by the
-function \"html2text-substitute\" which basically performs a
-replace-string operation for every element in the list. This is
+old string, and a replacement string.  This replacement is done by the
+function `html2text-substitute' which basically performs a
+`replace-string' operation for every element in the list.  This is
 completely verbatim - without any use of REGEXP.")
 
 (defvar html2text-remove-tag-list
@@ -57,11 +57,11 @@
   "A list of removable tags.
 
 This is a list of tags which should be removed, without any
-formatting.  Observe that if you the tags in the list are presented
-*without* any \"<\" or \">\". All occurences of a tag appearing in
-this list are removed, irrespective of whether it is a closing or
-opening tag, or if the tag has additional attributes. The actual
-deletion is done by the function \"html2text-remove-tags\".
+formatting.  Note that tags in the list are presented *without*
+any \"<\" or \">\".  All occurences of a tag appearing in this
+list are removed, irrespective of whether it is a closing or
+opening tag, or if the tag has additional attributes.  The
+deletion is done by the function `html2text-remove-tags'.
 
 For instance the text:
 
@@ -75,8 +75,10 @@
 
 (defvar html2text-format-tag-list
   '(("b" 	  . html2text-clean-bold)
+    ("strong"     . html2text-clean-bold)
     ("u" 	  . html2text-clean-underline)
     ("i" 	  . html2text-clean-italic)
+    ("em"         . html2text-clean-italic)
     ("blockquote" . html2text-clean-blockquote)
     ("a"          . html2text-clean-anchor)
     ("ul"         . html2text-clean-ul)
@@ -86,7 +88,7 @@
   "An alist of tags and processing functions.
 
 This is an alist where each dotted pair consists of a tag, and then
-the name of a function to be called when this tag is found. The
+the name of a function to be called when this tag is found.  The
 function is called with the arguments p1, p2, p3 and p4. These are
 demontrated below:
 
@@ -116,16 +118,13 @@
 ;; <Utility functions>
 ;;
 
-(defun html2text-buffer-head ()
-  (if (string= mode-name "Article")
-      (beginning-of-buffer)
-    (beginning-of-buffer)))
 
-(defun html2text-replace-string (from-string to-string p1 p2)
-  (goto-char p1)
+(defun html2text-replace-string (from-string to-string min max)
+  "Replace FROM-STRING with TO-STRING in region from MIN to MAX."
+  (goto-char min)
   (let ((delta (- (string-width to-string) (string-width from-string)))
 	(change 0))
-    (while (search-forward from-string p2 t)
+    (while (search-forward from-string max t)
       (replace-match to-string)
       (setq change (+ change delta)))
     change))
@@ -141,27 +140,80 @@
 ;; <Functions related to attributes> i.e. <font size=+3>
 ;;
 
-(defun html2text-attr-value (attr-list attr)
-  (nth 1 (assoc attr attr-list)))
+(defun html2text-attr-value (list attribute)
+  "Get value of ATTRIBUTE from LIST."
+  (nth 1 (assoc attribute list)))
 
 (defun html2text-get-attr (p1 p2)
-  (save-restriction
-    (narrow-to-region p1 p2)
-    (let (result)
-      (goto-char (point-min))
-      (while (not (eobp))
-	(when (re-search-forward "[^= ]+" nil t)
-	  (push
-	   (list
-	    (match-string 0)
-	    (when (looking-at " *= *")
-	      (goto-char (match-end 0))
-	      (buffer-substring 
-	       (point)
-	       (goto-char (or (ignore-errors (scan-sexps (point) 1))
-			      (point-max))))))
-	   result)))
-      result)))
+  (goto-char p1)
+  (re-search-forward " +[^ ]" p2 t)
+  (let* ((attr-string (buffer-substring-no-properties (1- (point)) (1- p2)))
+	 (tmp-list (split-string attr-string))
+	 (attr-list)
+	 (counter 0)
+	 (prev (car tmp-list))
+	 (this (nth 1 tmp-list))
+	 (next (nth 2 tmp-list))
+	 (index 1))
+
+    (cond
+     ;; size=3
+     ((string-match "[^ ]=[^ ]" prev)
+      (let ((attr  (nth 0 (split-string prev "=")))
+	    (value (nth 1 (split-string prev "="))))
+	(setq attr-list (cons (list attr value) attr-list))))
+     ;; size= 3
+     ((string-match "[^ ]=\\'" prev)
+      (setq attr-list (cons (list (substring prev 0 -1) this) attr-list))))
+
+    (while (< index (length tmp-list))
+      (cond
+       ;; size=3
+       ((string-match "[^ ]=[^ ]" this)
+	(let ((attr  (nth 0 (split-string this "=")))
+	      (value (nth 1 (split-string this "="))))
+	  (setq attr-list (cons (list attr value) attr-list))))
+       ;; size =3
+       ((string-match "\\`=[^ ]" this)
+	(setq attr-list (cons (list prev (substring this 1)) attr-list)))
+       ;; size= 3
+       ((string-match "[^ ]=\\'" this)
+	(setq attr-list (cons (list (substring this 0 -1) next) attr-list)))
+       ;; size = 3
+       ((string= "=" this)
+	(setq attr-list (cons (list prev next) attr-list))))
+      (setq index (1+ index))
+      (setq prev this)
+      (setq this next)
+      (setq next (nth (1+ index) tmp-list)))
+    ;;
+    ;; Tags with no accompanying "=" i.e. value=nil
+    ;;
+    (setq prev (car tmp-list))
+    (setq this (nth 1 tmp-list))
+    (setq next (nth 2 tmp-list))
+    (setq index 1)
+
+    (when (and (not (string-match "=" prev))
+	       (not (string= (substring this 0 1) "=")))
+      (setq attr-list (cons (list prev nil) attr-list)))
+    (while (< index (1- (length tmp-list)))
+      (when (and (not (string-match "=" this))
+		 (not (or (string= (substring next 0 1) "=")
+			  (string= (substring prev -1) "="))))
+	(setq attr-list (cons (list this nil) attr-list)))
+      (setq index (1+ index))
+      (setq prev this)
+      (setq this next)
+      (setq next (nth (1+ index) tmp-list)))
+
+    (when (and this
+	       (not (string-match "=" this))
+	       (not (string= (substring prev -1) "=")))
+      (setq attr-list (cons (list this nil) attr-list)))
+    ;; return - value
+    attr-list))
+
 ;;
 ;; </Functions related to attributes>
 ;;
@@ -176,12 +228,12 @@
   (goto-char p1)
   (let ((item-nr 0)
 	(items   0))
-    (while (re-search-forward "<li>" p2 t)
+    (while (search-forward "<li>" p2 t)
       (setq items (1+ items)))
     (goto-char p1)
     (while (< item-nr items)
       (setq item-nr (1+ item-nr))
-      (re-search-forward "<li>" (point-max) t)
+      (search-forward "<li>" (point-max) t)
       (cond
        ((string= list-type "ul") (insert " o "))
        ((string= list-type "ol") (insert (format " %s: " item-nr)))
@@ -191,7 +243,7 @@
   (goto-char p1)
   (let ((items   0)
 	(item-nr 0))
-    (while (re-search-forward "<dt>" p2 t)
+    (while (search-forward "<dt>" p2 t)
       (setq items (1+ items)))
     (goto-char p1)
     (while (< item-nr items)
@@ -265,9 +317,11 @@
   (html2text-delete-tags p1 p2 p3 p4))
 
 (defun html2text-clean-anchor (p1 p2 p3 p4)
-  ;; If someone can explain how to make the URL clickable I will
-  ;; surely improve upon this.
-  (let ((href (html2text-attr-value (html2text-get-attr p1 p2) "href")))
+  ;; If someone can explain how to make the URL clickable I will surely
+  ;; improve upon this.
+  ;; Maybe `goto-addr.el' can be used here.
+  (let* ((attr-list (html2text-get-attr p1 p2))
+	 (href (html2text-attr-value attr-list "href")))
     (delete-region p1 p4)
     (when href
       (goto-char p1)
@@ -287,31 +341,28 @@
 
 (defun html2text-fix-paragraph (p1 p2)
   (goto-char p1)
-  (let ((has-br-line)
-	(refill-start)
+  (let ((refill-start)
 	(refill-stop))
     (when (re-search-forward "<br>$" p2 t)
-      (setq has-br-line t))
-    (when has-br-line
-	(goto-char p1)
-	(when (re-search-forward ".+[^<][^b][^r][^>]$" p2 t)
-	  (beginning-of-line)
-	  (setq refill-start (point))
-	  (goto-char p2)
-	  (re-search-backward ".+[^<][^b][^r][^>]$" refill-start t)
-	  (next-line 1)
-	  (end-of-line)
-	  ;; refill-stop should ideally be adjusted to
-	  ;; accomodate the "<br>" strings which are removed
-	  ;; between refill-start and refill-stop.  Can simply
-	  ;; be returned from my-replace-string
-	  (setq refill-stop (+ (point)
-			       (html2text-replace-string
-				"<br>" ""
-				refill-start (point))))
-	  ;; (message "Point = %s  refill-stop = %s" (point) refill-stop)
-	  ;; (sleep-for 4)
-	  (fill-region refill-start refill-stop))))
+      (goto-char p1)
+      (when (re-search-forward ".+[^<][^b][^r][^>]$" p2 t)
+	(beginning-of-line)
+	(setq refill-start (point))
+	(goto-char p2)
+	(re-search-backward ".+[^<][^b][^r][^>]$" refill-start t)
+	(next-line 1)
+	(end-of-line)
+	;; refill-stop should ideally be adjusted to
+	;; accomodate the "<br>" strings which are removed
+	;; between refill-start and refill-stop.  Can simply
+	;; be returned from my-replace-string
+	(setq refill-stop (+ (point)
+			     (html2text-replace-string
+			      "<br>" ""
+			      refill-start (point))))
+	;; (message "Point = %s  refill-stop = %s" (point) refill-stop)
+	;; (sleep-for 4)
+	(fill-region refill-start refill-stop))))
   (html2text-replace-string "<br>" "" p1 p2))
 
 ;;
@@ -321,11 +372,11 @@
   "This _tries_ to fix up the paragraphs - this is done in quite a ad-hook
 fashion, quite close to pure guess-work. It does work in some cases though."
   (interactive)
-  (html2text-buffer-head)
+  (goto-char (point-min))
   (replace-regexp "^<br>$" "")
   ;; Removing lonely <br> on a single line, if they are left intact we
   ;; dont have any paragraphs at all.
-  (html2text-buffer-head)
+  (goto-char (point-min))
   (while (not (eobp))
     (let ((p1 (point)))
       (forward-paragraph 1)
@@ -347,55 +398,51 @@
 ;;
 
 (defun html2text-remove-tags (tag-list)
-  "Removes the tags listed in the list \"html2text-remove-tag-list\".
+  "Removes the tags listed in the list `html2text-remove-tag-list'.
 See the documentation for that variable."
   (interactive)
   (dolist (tag tag-list)
-    (html2text-buffer-head)
-    (while (re-search-forward (format "</?%s[^>]*>" tag) (point-max) t)
+    (goto-char (point-min))
+    (while (re-search-forward (format "\\(</?%s[^>]*>\\)" tag) (point-max) t)
       (delete-region (match-beginning 0) (match-end 0)))))
 
 (defun html2text-format-tags ()
-  "See the variable \"html2text-format-tag-list\" for documentation"
+  "See the variable `html2text-format-tag-list' for documentation."
   (interactive)
   (dolist (tag-and-function html2text-format-tag-list)
     (let ((tag      (car tag-and-function))
 	  (function (cdr tag-and-function)))
-      (html2text-buffer-head)
-      (while (re-search-forward (format "<%s\\( [^>]*\\)?>" tag)
+      (goto-char (point-min))
+      (while (re-search-forward (format "\\(<%s\\( [^>]*\\)?>\\)" tag)
 				(point-max) t)
 	(let ((p1)
 	      (p2 (point))
-	      (p3) (p4)
-	      (attr (match-string 0)))
+	      (p3) (p4))
 	  (search-backward "<" (point-min) t)
 	  (setq p1 (point))
-	  (re-search-forward (format "</%s>" tag) (point-max) t)
+	  (search-forward (format "</%s>" tag) (point-max) t)
 	  (setq p4 (point))
 	  (search-backward "</" (point-min) t)
 	  (setq p3 (point))
 	  (funcall function p1 p2 p3 p4)
-	  (goto-char p1)
-	  )))))
+	  (goto-char p1))))))
 
 (defun html2text-substitute ()
-  "See the variable \"html2text-replace-list\" for documentation"
+  "See the variable `html2text-replace-list' for documentation."
   (interactive)
   (dolist (e html2text-replace-list)
-    (html2text-buffer-head)
+    (goto-char (point-min))
     (let ((old-string (car e))
 	  (new-string (cdr e)))
-      (html2text-replace-string old-string new-string (point-min) (point-max)))
-    ))
+      (html2text-replace-string old-string new-string (point-min) (point-max)))))
 
 (defun html2text-format-single-elements ()
-  ""
   (interactive)
   (dolist (tag-and-function html2text-format-single-element-list)
     (let ((tag      (car tag-and-function))
 	  (function (cdr tag-and-function)))
-      (html2text-buffer-head)
-      (while (re-search-forward (format "<%s\\( [^>]*\\)?>" tag)
+      (goto-char (point-min))
+      (while (re-search-forward (format "\\(<%s\\( [^>]*\\)?>\\)" tag)
 				(point-max) t)
 	(let ((p1)
 	      (p2 (point)))
@@ -424,5 +471,6 @@
 ;;
 ;; </Interactive functions>
 ;;
-
+(provide 'html2text)
+;;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e
 ;;; html2text.el ends here
Index: gnus/lisp/ietf-drums.el
diff -u gnus/lisp/ietf-drums.el:7.2 gnus/lisp/ietf-drums.el:7.6
--- gnus/lisp/ietf-drums.el:7.2	Mon Jan  5 23:16:58 2004
+++ gnus/lisp/ietf-drums.el	Mon Aug 30 20:13:58 2004
@@ -1,5 +1,5 @@
 ;;; ietf-drums.el --- Functions for parsing RFC822bis headers
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -27,6 +27,16 @@
 ;; Messages".  This library is based on
 ;; draft-ietf-drums-msg-fmt-05.txt, released on 1998-08-05.
 
+;; Pending a real regression self test suite, Simon Josefsson added
+;; various self test expressions snipped from bug reports, and their
+;; expected value, below.  I you believe it could be useful, please
+;; add your own test cases, or write a real self test suite, or just
+;; remove this.
+
+;; <m3oekvfd50.fsf@whitebox.m5r.de>
+;; (ietf-drums-parse-address "'foo' <foo@example.com>")
+;; => ("foo@example.com" . "'foo'")
+
 ;;; Code:
 
 (eval-when-compile (require 'cl))
@@ -64,9 +74,9 @@
     (modify-syntax-entry ?> ")" table)
     (modify-syntax-entry ?@ "w" table)
     (modify-syntax-entry ?/ "w" table)
-    (modify-syntax-entry ?* " " table)
-    (modify-syntax-entry ?\; " " table)
-    (modify-syntax-entry ?\' " " table)
+    (modify-syntax-entry ?* "_" table)
+    (modify-syntax-entry ?\; "_" table)
+    (modify-syntax-entry ?\' "_" table)
     (if (featurep 'xemacs)
 	(let ((i 128))
 	  (while (< i 256)
@@ -133,7 +143,7 @@
 	  (forward-sexp 1))
 	 ((eq c ?\()
 	  (forward-sexp 1))
-	 ((memq c '(? ?\t ?\n))
+	 ((memq c '(?\  ?\t ?\n))
 	  (delete-char 1))
 	 (t
 	  (forward-char 1))))
@@ -263,6 +273,12 @@
       (concat "\"" string "\"")
     string))
 
+(defun ietf-drums-make-address (name address)
+  (if name
+      (concat (ietf-drums-quote-string name) " <" address ">")
+    address))
+
 (provide 'ietf-drums)
 
+;;; arch-tag: 379a0191-dbae-4ca6-a0f5-d4202c209ef9
 ;;; ietf-drums.el ends here
Index: gnus/lisp/imap.el
diff -u gnus/lisp/imap.el:7.7 gnus/lisp/imap.el:7.19
--- gnus/lisp/imap.el:7.7	Fri Mar 12 20:16:58 2004
+++ gnus/lisp/imap.el	Tue Mar  8 21:39:58 2005
@@ -1,5 +1,5 @@
 ;;; imap.el --- imap library
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <jas@pdc.kth.se>
@@ -69,7 +69,7 @@
 ;; imap-message-append,               imap-envelope-from
 ;; imap-body-lines
 ;;
-;; It is my hope that theese commands should be pretty self
+;; It is my hope that these commands should be pretty self
 ;; explanatory for someone that know IMAP.  All functions have
 ;; additional documentation on how to invoke them.
 ;;
@@ -141,6 +141,7 @@
 (eval-and-compile
   (autoload 'starttls-open-stream "starttls")
   (autoload 'starttls-negotiate "starttls")
+  (autoload 'sasl-find-mechanism "sasl")
   (autoload 'digest-md5-parse-digest-challenge "digest-md5")
   (autoload 'digest-md5-digest-response "digest-md5")
   (autoload 'digest-md5-digest-uri "digest-md5")
@@ -216,7 +217,8 @@
 pipe, or t or `pty' to use a pty.  The value has no effect if the
 system has no ptys or if all ptys are busy: then a pipe is used
 in any case.  The value takes effect when a IMAP server is
-opened, changing it after that has no effect.."
+opened, changing it after that has no effect."
+  :version "22.1"
   :group 'imap
   :type 'boolean)
 
@@ -229,12 +231,20 @@
   :type 'boolean)
 
 (defcustom imap-log nil
-  "If non-nil, a imap session trace is placed in *imap-log* buffer."
+  "If non-nil, a imap session trace is placed in *imap-log* buffer.
+Note that username, passwords and other privacy sensitive
+information (such as e-mail) may be stored in the *imap-log*
+buffer.  It is not written to disk, however.  Do not enable this
+variable unless you are comfortable with that."
   :group 'imap
   :type 'boolean)
 
 (defcustom imap-debug nil
-  "If non-nil, random debug spews are placed in *imap-debug* buffer."
+  "If non-nil, random debug spews are placed in *imap-debug* buffer.
+Note that username, passwords and other privacy sensitive
+information (such as e-mail) may be stored in the *imap-debug*
+buffer.  It is not written to disk, however.  Do not enable this
+variable unless you are comfortable with that."
   :group 'imap
   :type 'boolean)
 
@@ -291,6 +301,7 @@
 			      kerberos4
 			      digest-md5
 			      cram-md5
+			      ;;sasl
 			      login
 			      anonymous)
   "Priority of authenticators to consider when authenticating to server.")
@@ -298,6 +309,7 @@
 (defvar imap-authenticator-alist
   '((gssapi     imap-gssapi-auth-p    imap-gssapi-auth)
     (kerberos4  imap-kerberos4-auth-p imap-kerberos4-auth)
+    (sasl	imap-sasl-auth-p      imap-sasl-auth)
     (cram-md5   imap-cram-md5-p       imap-cram-md5-auth)
     (login      imap-login-p          imap-login-auth)
     (anonymous  imap-anonymous-p      imap-anonymous-auth)
@@ -313,7 +325,7 @@
 (defvar imap-error nil
   "Error codes from the last command.")
 
-;; Internal constants.  Change theese and die.
+;; Internal constants.  Change these and die.
 
 (defconst imap-default-port 143)
 (defconst imap-default-ssl-port 993)
@@ -625,7 +637,7 @@
       (let* ((port (or port imap-default-ssl-port))
 	     (coding-system-for-read imap-coding-system-for-read)
 	     (coding-system-for-write imap-coding-system-for-write)
-	     (process-connection-type nil)
+	     (process-connection-type imap-process-connection-type)
 	     process)
 	(when (progn
 		(setq process (start-process
@@ -904,6 +916,66 @@
 		(concat "LOGIN anonymous \"" (concat (user-login-name) "@"
 						     (system-name)) "\"")))))
 
+;;; Compiler directives.
+
+(defvar imap-sasl-client)
+(defvar imap-sasl-step)
+
+(defun imap-sasl-make-mechanisms (buffer)
+  (let ((mecs '()))
+    (mapc (lambda (sym)
+	    (let ((name (symbol-name sym)))
+	      (if (and (> (length name) 5)
+		       (string-equal "AUTH=" (substring name 0 5 )))
+		  (setq mecs (cons (substring name 5) mecs)))))
+	  (imap-capability nil buffer))
+    mecs))
+
+(defun imap-sasl-auth-p (buffer)
+  (and (condition-case ()
+	   (require 'sasl)
+	 (error nil))
+       (sasl-find-mechanism (imap-sasl-make-mechanisms buffer))))
+
+(defun imap-sasl-auth (buffer)
+  "Login to server using the SASL method."
+  (message "imap: Authenticating using SASL...")
+  (with-current-buffer buffer
+    (make-local-variable 'imap-username)
+    (make-local-variable 'imap-sasl-client)
+    (make-local-variable 'imap-sasl-step)
+    (let ((mechanism (sasl-find-mechanism (imap-sasl-make-mechanisms buffer)))
+	  logged user)
+      (while (not logged)
+	(setq user (or imap-username
+		       (read-from-minibuffer
+			(concat "IMAP username for " imap-server " using SASL "
+				(sasl-mechanism-name mechanism) ": ")
+			(or user imap-default-user))))
+	(when user
+	  (setq imap-sasl-client (sasl-make-client mechanism user "imap2" imap-server)
+		imap-sasl-step (sasl-next-step imap-sasl-client nil))
+	  (let ((tag (imap-send-command
+		      (if (sasl-step-data imap-sasl-step)
+			  (format "AUTHENTICATE %s %s"
+				  (sasl-mechanism-name mechanism)
+				  (sasl-step-data imap-sasl-step))
+			(format "AUTHENTICATE %s" (sasl-mechanism-name mechanism)))
+		      buffer)))
+	    (while (eq (imap-wait-for-tag tag) 'INCOMPLETE)
+	      (sasl-step-set-data imap-sasl-step (base64-decode-string imap-continuation))
+	      (setq imap-continuation nil
+		    imap-sasl-step (sasl-next-step imap-sasl-client imap-sasl-step))
+	      (imap-send-command-1 (if (sasl-step-data imap-sasl-step)
+				       (base64-encode-string (sasl-step-data imap-sasl-step) t)
+				     "")))
+	    (if (imap-ok-p (imap-wait-for-tag tag))
+		(setq imap-username user
+		      logged t)
+	      (message "Login failed...")
+	      (sit-for 1)))))
+      logged)))
+
 (defun imap-digest-md5-p (buffer)
   (and (imap-capability 'AUTH=DIGEST-MD5 buffer)
        (condition-case ()
@@ -1051,7 +1123,7 @@
   (with-current-buffer (or buffer (current-buffer))
     (if (not (eq imap-state 'nonauth))
 	(or (eq imap-state 'auth)
-	    (eq imap-state 'select)
+	    (eq imap-state 'selected)
 	    (eq imap-state 'examine))
       (make-local-variable 'imap-username)
       (make-local-variable 'imap-password)
@@ -1469,7 +1541,7 @@
 (defun imap-fetch (uids props &optional receive nouidfetch buffer)
   "Fetch properties PROPS from message set UIDS from server in BUFFER.
 UIDS can be a string, number or a list of numbers.  If RECEIVE
-is non-nil return theese properties."
+is non-nil return these properties."
   (with-current-buffer (or buffer (current-buffer))
     (when (imap-ok-p (imap-send-command-wait
 		      (format "%sFETCH %s %s" (if nouidfetch "" "UID ")
@@ -1997,7 +2069,9 @@
 	(when (eq (char-after) ?\))
 	  (imap-forward)
 	  (nreverse addresses)))
-    (assert (imap-parse-nil) t "In imap-parse-address-list")))
+    ;; With assert, the code might not be eval'd.
+    ;; (assert (imap-parse-nil) t "In imap-parse-address-list")
+    (imap-parse-nil)))
 
 ;;   mailbox         = "INBOX" / astring
 ;;                       ; INBOX is case-insensitive.  All case variants of
@@ -2562,7 +2636,9 @@
 	      (imap-forward)
 	      (push (imap-parse-string-list) dsp)
 	      (imap-forward))
-	  (assert (imap-parse-nil) t "In imap-parse-body-ext"))
+	  ;; With assert, the code might not be eval'd.
+	  ;; (assert (imap-parse-nil) t "In imap-parse-body-ext")
+	  (imap-parse-nil))
 	(push (nreverse dsp) ext))
       (when (eq (char-after) ?\ ) ;; body-fld-lang
 	(imap-forward)
@@ -2821,4 +2897,5 @@
 
 (provide 'imap)
 
+;;; arch-tag: 27369ed6-33e4-482f-96f1-8bb906ba70f7
 ;;; imap.el ends here
Index: gnus/lisp/legacy-gnus-agent.el
diff -u gnus/lisp/legacy-gnus-agent.el:1.2 gnus/lisp/legacy-gnus-agent.el:1.5
--- gnus/lisp/legacy-gnus-agent.el:1.2	Thu Apr 15 19:14:21 2004
+++ gnus/lisp/legacy-gnus-agent.el	Fri Sep 10 01:50:14 2004
@@ -6,6 +6,8 @@
 ; Oort Gnus v0.08 - This release updated agent to no longer use
 ;                   history file and to support a compressed alist.
 
+(defvar gnus-agent-compressed-agentview-search-only nil)
+
 (defun gnus-agent-convert-to-compressed-agentview (converting-to)
   "Iterates over all agentview files to ensure that they have been
 converted to the compressed format."
@@ -30,6 +32,13 @@
     (if converted-something
         (gnus-message 4 "Successfully converted Gnus %s offline (agent) files to %s" gnus-newsrc-file-version converting-to))))
 
+(defun gnus-agent-convert-to-compressed-agentview-prompt ()
+  (catch 'found-file-to-convert
+    (let ((gnus-agent-compressed-agentview-search-only t))
+      (gnus-agent-convert-to-compressed-agentview nil))))
+
+(gnus-convert-mark-converter-prompt 'gnus-agent-convert-to-compressed-agentview 'gnus-agent-convert-to-compressed-agentview-prompt)
+
 (defun gnus-agent-convert-agentview (file)
   "Load FILE and do a `read' there."
   (with-temp-buffer
@@ -68,6 +77,9 @@
 	  (setq changed-version t)))
 
         (when changed-version
+	  (when gnus-agent-compressed-agentview-search-only
+	    (throw 'found-file-to-convert t))
+
           (erase-buffer)
           (let ((compressed nil))
             (mapcar (lambda (pair)
@@ -109,7 +121,7 @@
             (set-buffer buffer)
             (erase-buffer)
             (insert "The definition of gnus-agent-expire-days has been changed.\nYou currently have it set to the list:\n  ")
-            (let (print-level print-length) (pp gnus-agent-expire-days (current-buffer)))
+            (gnus-pp gnus-agent-expire-days)
 
             (insert "\nIn order to use version '" converting-to "' of gnus, you will need to set\n")
             (insert "gnus-agent-expire-days to an integer. If you still wish to set different\n")
@@ -211,3 +223,5 @@
 ;; gnus-agent-unhook-expire-days is safe in that it does not modify
 ;; the .newsrc.eld file.
 (gnus-convert-mark-converter-prompt 'gnus-agent-unhook-expire-days t)
+
+;;; arch-tag: 845c7b8a-88f7-4468-b8d7-94e8fc72cf1a
Index: gnus/lisp/lpath.el
diff -u gnus/lisp/lpath.el:7.5 gnus/lisp/lpath.el:7.10
--- gnus/lisp/lpath.el:7.5	Mon Mar  1 07:12:46 2004
+++ gnus/lisp/lpath.el	Sun May  1 18:32:46 2005
@@ -10,17 +10,17 @@
   (mapcar (lambda (var) (unless (boundp var) (set var nil))) args))
 
 (maybe-fbind '(Info-directory
-	       Info-menu bbdb-create-internal bbdb-records create-image
-	       display-graphic-p find-coding-system find-image image-size
-	       image-type-available-p insert-image make-mode-line-mouse-map
-	       make-temp-file propertize put-image replace-regexp-in-string
-	       rmail-msg-is-pruned rmail-msg-restore-non-pruned-header
-	       sort-coding-systems spam-BBDB-register-routine
-	       spam-enter-ham-BBDB string-to-multibyte tool-bar-add-item
-	       tool-bar-add-item-from-menu tool-bar-local-item-from-menu
-	       url-generic-parse-url url-http-file-exists-p
-	       url-insert-file-contents vcard-pretty-print w32-focus-frame
-	       w3m-charset-to-coding-system w3m-region x-focus-frame))
+	       Info-menu create-image display-graphic-p
+	       display-time-event-handler find-coding-system find-image
+	       image-size image-type-available-p insert-image
+	       make-mode-line-mouse-map make-temp-file propertize put-image
+	       replace-regexp-in-string rmail-msg-is-pruned
+	       rmail-msg-restore-non-pruned-header sort-coding-systems
+	       tool-bar-add-item tool-bar-add-item-from-menu
+	       tool-bar-local-item-from-menu url-generic-parse-url
+	       url-http-file-exists-p url-insert-file-contents
+	       vcard-pretty-print w32-focus-frame w3m-detect-meta-charset
+	       w3m-region x-focus-frame))
 (maybe-bind '(eudc-protocol
 	      filladapt-mode mc-pgp-always-sign
 	      rmail-insert-mime-forwarded-message-function url-current-object
@@ -28,8 +28,7 @@
 	      w3-meta-charset-content-type-regexp
 	      w3-meta-content-type-charset-regexp
 	      w3m-cid-retrieve-function-alist w3m-current-buffer
-	      w3m-display-inline-images w3m-meta-content-type-charset-regexp
-	      w3m-minor-mode-map))
+	      w3m-display-inline-images w3m-minor-mode-map))
 
 (if (featurep 'xemacs)
     (progn
@@ -60,7 +59,8 @@
 		 w3-coding-system-for-mime-charset w3-do-setup
 		 w3-prepare-buffer w3-region window-pixel-height
 		 window-pixel-width))
-  (maybe-bind '(help-echo-owns-message mail-mode-hook mm-w3m-mode-map)))
+  (maybe-bind '(help-echo-owns-message mail-mode-hook mm-w3m-mode-map
+				       show-nonbreak-escape)))
 
 (when (and (featurep 'xemacs)
 	   (not (featurep 'mule)))
@@ -81,3 +81,5 @@
   )
 
 (provide 'lpath)
+
+;;; arch-tag: d1ad864f-dca6-4d21-aa3f-be3248e66dba
Index: gnus/lisp/mail-parse.el
diff -u gnus/lisp/mail-parse.el:7.1 gnus/lisp/mail-parse.el:7.3
--- gnus/lisp/mail-parse.el:7.1	Sun Jan  4 22:51:01 2004
+++ gnus/lisp/mail-parse.el	Thu May 20 10:02:40 2004
@@ -58,6 +58,7 @@
 (defalias 'mail-header-parse-date 'ietf-drums-parse-date)
 (defalias 'mail-narrow-to-head 'ietf-drums-narrow-to-header)
 (defalias 'mail-quote-string 'ietf-drums-quote-string)
+(defalias 'mail-header-make-address 'ietf-drums-make-address)
 
 (defalias 'mail-header-fold-field 'rfc2047-fold-field)
 (defalias 'mail-header-unfold-field 'rfc2047-unfold-field)
@@ -72,4 +73,5 @@
 
 (provide 'mail-parse)
 
+;;; arch-tag: 3e63d75c-c962-4784-ab01-7ba07ca9d2d4
 ;;; mail-parse.el ends here
Index: gnus/lisp/mail-prsvr.el
diff -u gnus/lisp/mail-prsvr.el:7.1 gnus/lisp/mail-prsvr.el:7.2
--- gnus/lisp/mail-prsvr.el:7.1	Sun Jan  4 22:51:01 2004
+++ gnus/lisp/mail-prsvr.el	Thu May 20 10:02:40 2004
@@ -41,4 +41,5 @@
 
 (provide 'mail-prsvr)
 
+;;; arch-tag: 9ba878cc-8b43-4f7a-85b1-69b1a9a5d9f5
 ;;; mail-prsvr.el ends here
Index: gnus/lisp/mail-source.el
diff -u gnus/lisp/mail-source.el:7.3 gnus/lisp/mail-source.el:7.10
--- gnus/lisp/mail-source.el:7.3	Mon Mar  8 07:54:23 2004
+++ gnus/lisp/mail-source.el	Sun Feb 13 05:44:41 2005
@@ -1,5 +1,5 @@
 ;;; mail-source.el --- functions for fetching mail
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -234,7 +234,10 @@
 (defcustom mail-source-ignore-errors nil
   "*Ignore errors when querying mail sources.
 If nil, the user will be prompted when an error occurs.  If non-nil,
-the error will be ignored.")
+the error will be ignored."
+  :version "22.1"
+  :group 'mail-source
+  :type 'boolean)
 
 (defcustom mail-source-primary-source nil
   "*Primary source for incoming mail.
@@ -253,7 +256,7 @@
   :type 'file)
 
 (defcustom mail-source-directory message-directory
-  "Directory where files (if any) will be stored."
+  "Directory where incoming mail source files (if any) will be stored."
   :group 'mail-source
   :type 'directory)
 
@@ -280,6 +283,7 @@
   "*If non-nil, ask for for confirmation before deleting old incoming files.
 This variable only applies when `mail-source-delete-incoming' is a positive
 number."
+  :version "22.1"
   :group 'mail-source
   :type 'boolean)
 
@@ -300,6 +304,7 @@
 
 (defcustom mail-source-movemail-program nil
   "If non-nil, name of program for fetching new mail."
+  :version "22.1"
   :group 'mail-source
   :type '(choice (const nil) string))
 
@@ -493,7 +498,8 @@
 	    (when (file-exists-p mail-source-crash-box)
 	      (message "Processing mail from %s..." mail-source-crash-box)
 	      (setq found (mail-source-callback
-			   callback mail-source-crash-box)))
+			   callback mail-source-crash-box))
+	      (mail-source-delete-crash-box))
 	    (+ found
 	       (if (or debug-on-quit debug-on-error)
 		   (funcall function source callback)
@@ -506,7 +512,7 @@
 			       (format "Mail source %s error (%s).  Continue? "
 				       (if (memq ':password source)
 					   (let ((s (copy-sequence source)))
-					     (setcar (cdr (memq ':password s)) 
+					     (setcar (cdr (memq ':password s))
 						     "********")
 					     s)
 					 source)
@@ -543,33 +549,33 @@
 	  (delete-file ffile))))))
 
 (defun mail-source-callback (callback info)
-  "Call CALLBACK on the mail file, and then remove the mail file.
-Pass INFO on to CALLBACK."
+  "Call CALLBACK on the mail file.  Pass INFO on to CALLBACK."
   (if (or (not (file-exists-p mail-source-crash-box))
 	  (zerop (nth 7 (file-attributes mail-source-crash-box))))
       (progn
 	(when (file-exists-p mail-source-crash-box)
 	  (delete-file mail-source-crash-box))
 	0)
-    (prog1
-	(funcall callback mail-source-crash-box info)
-      (when (file-exists-p mail-source-crash-box)
-	;; Delete or move the incoming mail out of the way.
-	(if (eq mail-source-delete-incoming t)
-	    (delete-file mail-source-crash-box)
-	  (let ((incoming
-		 (mm-make-temp-file
-		  (expand-file-name
-		   mail-source-incoming-file-prefix
-		   mail-source-directory))))
-	    (unless (file-exists-p (file-name-directory incoming))
-	      (make-directory (file-name-directory incoming) t))
-	    (rename-file mail-source-crash-box incoming t)
-	    ;; remove old incoming files?
-	    (when (natnump mail-source-delete-incoming)
-	      (mail-source-delete-old-incoming
-	       mail-source-delete-incoming
-	       mail-source-delete-old-incoming-confirm))))))))
+    (funcall callback mail-source-crash-box info)))
+
+(defun mail-source-delete-crash-box ()
+  (when (file-exists-p mail-source-crash-box)
+    ;; Delete or move the incoming mail out of the way.
+    (if (eq mail-source-delete-incoming t)
+	(delete-file mail-source-crash-box)
+      (let ((incoming
+	     (mm-make-temp-file
+	      (expand-file-name
+	       mail-source-incoming-file-prefix
+	       mail-source-directory))))
+	(unless (file-exists-p (file-name-directory incoming))
+	  (make-directory (file-name-directory incoming) t))
+	(rename-file mail-source-crash-box incoming t)
+	;; remove old incoming files?
+	(when (natnump mail-source-delete-incoming)
+	  (mail-source-delete-old-incoming
+	   mail-source-delete-incoming
+	   mail-source-delete-old-incoming-confirm))))))
 
 (defun mail-source-movemail (from to)
   "Move FROM to TO using movemail."
@@ -683,7 +689,8 @@
 	  (prog1
 	      (mail-source-callback callback path)
 	    (mail-source-run-script
-	     postscript (format-spec-make ?t mail-source-crash-box)))
+	     postscript (format-spec-make ?t mail-source-crash-box))
+	    (mail-source-delete-crash-box))
 	0))))
 
 (defun mail-source-fetch-directory (source callback)
@@ -698,8 +705,9 @@
 	(when (and (file-regular-p file)
 		   (funcall predicate file)
 		   (mail-source-movemail file mail-source-crash-box))
-	  (incf found (mail-source-callback callback file))))
-      (mail-source-run-script postscript (format-spec-make ?t path))
+	  (incf found (mail-source-callback callback file))
+	  (mail-source-run-script postscript (format-spec-make ?t path))
+	  (mail-source-delete-crash-box)))
       found)))
 
 (defun mail-source-fetch-pop (source callback)
@@ -763,7 +771,8 @@
 	      (mail-source-run-script
 	       postscript
 	       (format-spec-make ?p password ?t mail-source-crash-box
-				 ?s server ?P port ?u user))))
+				 ?s server ?P port ?u user))
+	      (mail-source-delete-crash-box)))
 	;; We nix out the password in case the error
 	;; was because of a wrong password being given.
 	(setq mail-source-password-cache
@@ -856,7 +865,7 @@
 
 (eval-when-compile
   (if (featurep 'xemacs)
-      (require 'itimer)
+      (require 'timer-funcs)
     (require 'timer)))
 
 (defun mail-source-start-idle-timer ()
@@ -946,7 +955,8 @@
 				  ;; MMDF mail format
 				  (insert "\001\001\001\001\n"))
 				(delete-file file)))))
-	      (incf found (mail-source-callback callback file))))))
+	      (incf found (mail-source-callback callback file))
+	      (mail-source-delete-crash-box)))))
       found)))
 
 (eval-and-compile
@@ -1007,11 +1017,13 @@
 		  (insert "From imap " (current-time-string) "\n")
 		  (save-excursion
 		    (insert str "\n\n"))
-		  (while (re-search-forward "^From " nil t)
+		  (while (let ((case-fold-search nil))
+			   (re-search-forward "^From " nil t))
 		    (replace-match ">From "))
 		  (goto-char (point-max))))
 	      (nnheader-ms-strip-cr))
 	    (incf found (mail-source-callback callback server))
+	    (mail-source-delete-crash-box)
 	    (when (and remove fetchflag)
 	      (setq remove (nreverse remove))
 	      (imap-message-flags-add
@@ -1057,8 +1069,10 @@
 	  (push (cons (format "webmail:%s:%s" subtype user) password)
 		mail-source-password-cache)))
       (webmail-fetch mail-source-crash-box subtype user password)
-      (mail-source-callback callback (symbol-name subtype)))))
+      (mail-source-callback callback (symbol-name subtype))
+      (mail-source-delete-crash-box))))
 
 (provide 'mail-source)
 
+;;; arch-tag: 72948025-1d17-4d6c-bb12-ef1aa2c490fd
 ;;; mail-source.el ends here
Index: gnus/lisp/mailcap.el
diff -u gnus/lisp/mailcap.el:7.1 gnus/lisp/mailcap.el:7.5
--- gnus/lisp/mailcap.el:7.1	Sun Jan  4 22:51:01 2004
+++ gnus/lisp/mailcap.el	Fri Oct  1 00:48:04 2004
@@ -1,5 +1,5 @@
 ;;; mailcap.el --- MIME media types configuration
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;       Free Software Foundation, Inc.
 
 ;; Author: William M. Perry <wmperry@aventail.com>
@@ -135,23 +135,21 @@
       (non-viewer . t)
       (type   . "application/zip")
       ("copiousoutput"))
-     ;; Prefer free viewers.
      ("pdf"
       (viewer . "gv -safer %s")
       (type . "application/pdf")
       (test . window-system)
       ("print" . ,(concat "pdf2ps %s - | " mailcap-print-command)))
      ("pdf"
-      (viewer . "xpdf %s")
+      (viewer . "gpdf %s")
       (type . "application/pdf")
       ("print" . ,(concat "pdftops %s - | " mailcap-print-command))
       (test . (eq window-system 'x)))
      ("pdf"
-      (viewer . "acroread %s")
-      (type   . "application/pdf")
-      ("print" . ,(concat "cat %s | acroread -toPostScript | "
-			  mailcap-print-command))
-      (test . window-system))
+      (viewer . "xpdf %s")
+      (type . "application/pdf")
+      ("print" . ,(concat "pdftops %s - | " mailcap-print-command))
+      (test . (eq window-system 'x)))
      ("pdf"
       (viewer . ,(concat "pdftotext %s -"))
       (type   . "application/pdf")
@@ -255,7 +253,11 @@
      ("html"
       (viewer . mm-w3-prepare-buffer)
       (test   . (fboundp 'w3-prepare-buffer))
-      (type   . "text/html")))
+      (type   . "text/html"))
+     ("dns"
+      (viewer . dns-mode)
+      (test   . (fboundp 'dns-mode))
+      (type   . "text/dns")))
     ("video"
      ("mpeg"
       (viewer . "mpeg_play %s")
@@ -305,6 +307,7 @@
 whose car is a symbol, it is `eval'led to yield the validity.  If it
 is a string or list of strings, it represents a shell command to run
 to return a true or false shell value for the validity.")
+(put 'mailcap-mime-data 'risky-local-variable t)
 
 (defcustom mailcap-download-directory nil
   "*Directory to which `mailcap-save-binary-file' downloads files by default.
@@ -846,6 +849,7 @@
     (".sit"   . "application/x-stuffit")
     (".siv"   . "application/sieve")
     (".snd"   . "audio/basic")
+    (".soa"   . "text/dns")
     (".src"   . "application/x-wais-source")
     (".tar"   . "archive/tar")
     (".tcl"   . "application/x-tcl")
@@ -985,4 +989,5 @@
 
 (provide 'mailcap)
 
+;;; arch-tag: 1fd4f9c9-c305-4d2e-9747-3a4d45baa0bd
 ;;; mailcap.el ends here
Index: gnus/lisp/md4.el
diff -u gnus/lisp/md4.el:7.3 gnus/lisp/md4.el:7.4
--- gnus/lisp/md4.el:7.3	Mon Jan  5 02:57:02 2004
+++ gnus/lisp/md4.el	Thu May 20 10:02:40 2004
@@ -225,4 +225,5 @@
 
 (provide 'md4)
 
+;;; arch-tag: 99d706fe-089b-42ea-9507-67ae41091e6e
 ;;; md4.el ends here
Index: gnus/lisp/message.el
diff -u gnus/lisp/message.el:7.18 gnus/lisp/message.el:7.78
--- gnus/lisp/message.el:7.18	Wed Apr 28 16:12:31 2004
+++ gnus/lisp/message.el	Thu Apr 21 20:23:01 2005
@@ -1,5 +1,5 @@
 ;;; message.el --- composing mail and news messages
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -33,7 +33,8 @@
 (eval-when-compile
   (require 'cl)
   (defvar gnus-message-group-art)
-  (defvar gnus-list-identifiers)) ; gnus-sum is required where necessary
+  (defvar gnus-list-identifiers) ; gnus-sum is required where necessary
+  (require 'hashcash))
 (require 'canlock)
 (require 'mailheader)
 (require 'nnheader)
@@ -131,6 +132,7 @@
 
 (defcustom message-fcc-externalize-attachments nil
   "If non-nil, attachments are included as external parts in Fcc copies."
+  :version "22.1"
   :type 'boolean
   :group 'message-sending)
 
@@ -141,7 +143,7 @@
 the article has been posted to will be inserted there.
 If this variable is nil, no such courtesy message will be added."
   :group 'message-sending
-  :type '(radio (string :format "%t: %v\n" :size 0) (const nil)))
+  :type '(radio string (const nil)))
 
 (defcustom message-ignored-bounced-headers
   "^\\(Received\\|Return-Path\\|Delivered-To\\):"
@@ -170,7 +172,7 @@
 
 (defcustom message-insert-canlock t
   "Whether to insert a Cancel-Lock header in news postings."
-  :version "21.3"
+  :version "22.1"
   :group 'message-headers
   :type 'boolean)
 
@@ -199,6 +201,7 @@
   "*Headers to be generated or prompted for when sending a message.
 Also see `message-required-news-headers' and
 `message-required-mail-headers'."
+  :version "22.1"
   :group 'message-news
   :group 'message-headers
   :link '(custom-manual "(message)Message Headers")
@@ -206,6 +209,7 @@
 
 (defcustom message-draft-headers '(References From)
   "*Headers to be generated when saving a draft message."
+  :version "22.1"
   :group 'message-news
   :group 'message-headers
   :link '(custom-manual "(message)Message Headers")
@@ -248,7 +252,12 @@
   :group 'message-news
   :group 'message-headers
   :link '(custom-manual "(message)Message Headers")
-  :type 'regexp)
+  :type '(repeat :value-to-internal (lambda (widget value)
+				      (custom-split-regexp-maybe value))
+		 :match (lambda (widget value)
+			  (or (stringp value)
+			      (widget-editable-list-match widget value)))
+		 regexp))
 
 (defcustom message-ignored-mail-headers
   "^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From:\\|^X-Gnus-Agent-Meta-Information:"
@@ -258,13 +267,18 @@
   :link '(custom-manual "(message)Mail Headers")
   :type 'regexp)
 
-(defcustom message-ignored-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\|^X-Trace:\\|^X-Complaints-To:\\|Return-Path:\\|^Supersedes:\\|^NNTP-Posting-Date:\\|^X-Trace:\\|^X-Complaints-To:\\|^Cancel-Lock:\\|^Cancel-Key:\\|^X-Hashcash:\\|^X-Payment:"
+(defcustom message-ignored-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\|^X-Trace:\\|^X-Complaints-To:\\|Return-Path:\\|^Supersedes:\\|^NNTP-Posting-Date:\\|^X-Trace:\\|^X-Complaints-To:\\|^Cancel-Lock:\\|^Cancel-Key:\\|^X-Hashcash:\\|^X-Payment:\\|^Approved:"
   "*Header lines matching this regexp will be deleted before posting.
 It's best to delete old Path and Date headers before posting to avoid
 any confusion."
   :group 'message-interface
   :link '(custom-manual "(message)Superseding")
-  :type 'regexp)
+  :type '(repeat :value-to-internal (lambda (widget value)
+				      (custom-split-regexp-maybe value))
+		 :match (lambda (widget value)
+			  (or (stringp value)
+			      (widget-editable-list-match widget value)))
+		 regexp))
 
 (defcustom message-subject-re-regexp
   "^[ \t]*\\([Rr][Ee]\\(\\[[0-9]*\\]\\)*:[ \t]*\\)*[ \t]*"
@@ -283,6 +297,7 @@
 `message-subject-trailing-was-query' is t, always strip the trailing
 old subject.  In this case, `message-subject-trailing-was-regexp' is
 used."
+  :version "22.1"
   :type '(choice (const :tag "never" nil)
 		 (const :tag "always strip" t)
                  (const ask))
@@ -299,6 +314,7 @@
 `message-subject-trailing-was-regexp' instead.
 
 It is okay to create some false positives here, as the user is asked."
+  :version "22.1"
   :group 'message-various
   :link '(custom-manual "(message)Message Headers")
   :type 'regexp)
@@ -311,46 +327,43 @@
 matched against `message-subject-trailing-was-regexp' in
 `message-strip-subject-trailing-was'.  You should use a regexp creating very
 few false positives here."
+  :version "22.1"
   :group 'message-various
   :link '(custom-manual "(message)Message Headers")
   :type 'regexp)
 
-;; Fixme: Why are all these things autoloaded?
-
 ;;; marking inserted text
 
-;;;###autoload
 (defcustom message-mark-insert-begin
   "--8<---------------cut here---------------start------------->8---\n"
   "How to mark the beginning of some inserted text."
+  :version "22.1"
   :type 'string
   :link '(custom-manual "(message)Insertion Variables")
   :group 'message-various)
 
-;;;###autoload
 (defcustom message-mark-insert-end
   "--8<---------------cut here---------------end--------------->8---\n"
   "How to mark the end of some inserted text."
+  :version "22.1"
   :type 'string
   :link '(custom-manual "(message)Insertion Variables")
   :group 'message-various)
 
-;;;###autoload
-(defcustom message-archive-header
-  "X-No-Archive: Yes\n"
+(defcustom message-archive-header "X-No-Archive: Yes\n"
   "Header to insert when you don't want your article to be archived.
 Archives \(such as groups.google.com\) respect this header."
+  :version "22.1"
   :type 'string
   :link '(custom-manual "(message)Header Commands")
   :group 'message-various)
 
-;;;###autoload
 (defcustom message-archive-note
   "X-No-Archive: Yes - save http://groups.google.com/"
   "Note to insert why you wouldn't want this posting archived.
 If nil, don't insert any text in the body."
-  :type '(radio (string :format "%t: %v\n" :size 0)
-		(const nil))
+  :version "22.1"
+  :type '(radio string (const nil))
   :link '(custom-manual "(message)Header Commands")
   :group 'message-various)
 
@@ -362,36 +375,33 @@
   "Old target for cross-posts or follow-ups.")
 (make-variable-buffer-local 'message-cross-post-old-target)
 
-;;;###autoload
 (defcustom message-cross-post-default t
   "When non-nil `message-cross-post-followup-to' will perform a crosspost.
 If nil, `message-cross-post-followup-to' will only do a followup.  Note that
 you can explicitly override this setting by calling
 `message-cross-post-followup-to' with a prefix."
+  :version "22.1"
   :type 'boolean
   :group 'message-various)
 
-;;;###autoload
-(defcustom message-cross-post-note
-  "Crosspost & Followup-To: "
+(defcustom message-cross-post-note "Crosspost & Followup-To: "
   "Note to insert before signature to notify of cross-post and follow-up."
+  :version "22.1"
   :type 'string
   :group 'message-various)
 
-;;;###autoload
-(defcustom message-followup-to-note
-  "Followup-To: "
+(defcustom message-followup-to-note "Followup-To: "
   "Note to insert before signature to notify of follow-up only."
+  :version "22.1"
   :type 'string
   :group 'message-various)
 
-;;;###autoload
-(defcustom message-cross-post-note-function
-  'message-cross-post-insert-note
+(defcustom message-cross-post-note-function 'message-cross-post-insert-note
   "Function to use to insert note about Crosspost or Followup-To.
 The function will be called with four arguments.  The function should not only
 insert a note, but also ensure old notes are deleted.  See the documentation
 for `message-cross-post-insert-note'."
+  :version "22.1"
   :type 'function
   :group 'message-various)
 
@@ -436,6 +446,13 @@
   :link '(custom-manual "(message)Message Buffers")
   :type 'boolean)
 
+(defcustom message-kill-buffer-query t
+  "*Non-nil means that killing a modified message buffer has to be confirmed.
+This is used by `message-kill-buffer'."
+  :version "23.0" ;; No Gnus
+  :group 'message-buffers
+  :type 'boolean)
+
 (eval-when-compile
   (defvar gnus-local-organization))
 (defcustom message-user-organization
@@ -516,13 +533,22 @@
   "*All headers that match this regexp will be deleted when resending a message."
   :group 'message-interface
   :link '(custom-manual "(message)Resending")
-  :type 'regexp)
+  :type '(repeat :value-to-internal (lambda (widget value)
+				      (custom-split-regexp-maybe value))
+		 :match (lambda (widget value)
+			  (or (stringp value)
+			      (widget-editable-list-match widget value)))
+		 regexp))
 
 (defcustom message-forward-ignored-headers "^Content-Transfer-Encoding:\\|^X-Gnus"
   "*All headers that match this regexp will be deleted when forwarding a message."
   :version "21.1"
   :group 'message-forwarding
-  :type '(choice (const :tag "None" nil)
+  :type '(repeat :value-to-internal (lambda (widget value)
+				      (custom-split-regexp-maybe value))
+		 :match (lambda (widget value)
+			  (or (stringp value)
+			      (widget-editable-list-match widget value)))
 		 regexp))
 
 (defcustom message-ignored-cited-headers "."
@@ -548,6 +574,7 @@
 		non-word-constituents
 		"]\\)+>+\\|[ \t]*[]>|}+]\\)+"))))
   "*Regexp matching the longest possible citation prefix on a line."
+  :version "22.1"
   :group 'message-insertion
   :link '(custom-manual "(message)Insertion Variables")
   :type 'regexp)
@@ -560,7 +587,20 @@
 
 ;; Useful to set in site-init.el
 ;;;###autoload
-(defcustom message-send-mail-function 'message-send-mail-with-sendmail
+(defcustom message-send-mail-function
+  (let ((program (if (boundp 'sendmail-program)
+		     ;; see paths.el
+		     sendmail-program)))
+    (cond
+     ((and program
+	   (string-match "/" program) ;; Skip path
+	   (file-executable-p program))
+      'message-send-mail-with-sendmail)
+     ((and program
+	   (executable-find program))
+      'message-send-mail-with-sendmail)
+     (t
+      'smtpmail-send-it)))
   "Function to call to send the current buffer as mail.
 The headers should be delimited by a line whose contents match the
 variable `mail-header-separator'.
@@ -614,6 +654,12 @@
   :link '(custom-manual "(message)Followup")
   :type '(choice function (const nil)))
 
+(defcustom message-extra-wide-headers nil
+  "If non-nil, a list of additional address headers.
+These are used when composing a wide reply."
+  :group 'message-sending
+  :type '(repeat string))
+
 (defcustom message-use-followup-to 'ask
   "*Specifies what to do with Followup-To header.
 If nil, always ignore the header.  If it is t, use its value, but
@@ -632,6 +678,7 @@
 If nil, always ignore the header.  If it is the symbol `ask', always
 query the user whether to use the value.  If it is the symbol `use',
 always use the value."
+  :version "22.1"
   :group 'message-interface
   :link '(custom-manual "(message)Mailing Lists")
   :type '(choice (const :tag "ignore" nil)
@@ -645,6 +692,7 @@
 regular expressions to match lists.  These functions can be used in
 conjunction with `message-subscribed-regexps' and
 `message-subscribed-addresses'."
+  :version "22.1"
   :group 'message-interface
   :link '(custom-manual "(message)Mailing Lists")
   :type '(repeat sexp))
@@ -653,16 +701,17 @@
   "*A file containing addresses the user is subscribed to.
 If nil, do not look at any files to determine list subscriptions.  If
 non-nil, each line of this file should be a mailing list address."
+  :version "22.1"
   :group 'message-interface
   :link '(custom-manual "(message)Mailing Lists")
-  :type '(radio (file :format "%t: %v\n" :size 0)
-		(const nil)))
+  :type '(radio file (const nil)))
 
 (defcustom message-subscribed-addresses nil
   "*Specifies a list of addresses the user is subscribed to.
 If nil, do not use any predefined list subscriptions.  This list of
 addresses can be used in conjunction with
 `message-subscribed-address-functions' and `message-subscribed-regexps'."
+  :version "22.1"
   :group 'message-interface
   :link '(custom-manual "(message)Mailing Lists")
   :type '(repeat string))
@@ -672,6 +721,7 @@
 If nil, do not use any predefined list subscriptions.  This list of
 regular expressions can be used in conjunction with
 `message-subscribed-address-functions' and `message-subscribed-addresses'."
+  :version "22.1"
   :group 'message-interface
   :link '(custom-manual "(message)Mailing Lists")
   :type '(repeat regexp))
@@ -681,6 +731,7 @@
 If it is the symbol `always', the posting is allowed.  If it is the
 symbol `never', the posting is not allowed.  If it is the symbol
 `ask', you are prompted."
+  :version "22.1"
   :group 'message-interface
   :link '(custom-manual "(message)Message Headers")
   :type '(choice (const always)
@@ -698,6 +749,7 @@
   "*Envelope-from when sending mail with sendmail.
 If this is nil, use `user-mail-address'.  If it is the symbol
 `header', use the From: header of the message."
+  :version "22.1"
   :type '(choice (string :tag "From name")
 		 (const :tag "Use From: header from message" header)
 		 (const :tag "Use `user-mail-address'" nil))
@@ -805,7 +857,8 @@
   (let ((map (make-sparse-keymap 'message-minibuffer-local-map)))
     (set-keymap-parent map minibuffer-local-map)
     map)
-  "Keymap for `message-read-from-minibuffer'.")
+  "Keymap for `message-read-from-minibuffer'."
+  :version "22.1")
 
 ;;;###autoload
 (defcustom message-citation-line-function 'message-insert-citation-line
@@ -832,6 +885,7 @@
   "*Prefix inserted on cited or empty lines of yanked messages.
 Fix `message-cite-prefix-regexp' if it is set to an abnormal value.
 See also `message-yank-prefix'."
+  :version "22.1"
   :type 'string
   :link '(custom-manual "(message)Insertion Variables")
   :group 'message-insertion)
@@ -888,6 +942,7 @@
 ;;;###autoload
 (defcustom message-signature-insert-empty-line t
   "*If non-nil, insert an empty line before the signature separator."
+  :version "22.1"
   :type 'boolean
   :link '(custom-manual "(message)Insertion Variables")
   :group 'message-insertion)
@@ -1064,13 +1119,27 @@
   (or (not (listp message-shoot-gnksa-feet))
       (memq feature message-shoot-gnksa-feet)))
 
-(defcustom message-hidden-headers nil
+(defcustom message-hidden-headers "^References:"
   "Regexp of headers to be hidden when composing new messages.
 This can also be a list of regexps to match headers.  Or a list
 starting with `not' and followed by regexps."
+  :version "22.1"
   :group 'message
   :link '(custom-manual "(message)Message Headers")
-  :type '(repeat regexp))
+  :type '(choice
+	  :format "%{%t%}: %[Value Type%] %v"
+	  (regexp :menu-tag "regexp" :format "regexp\n%t: %v")
+	  (repeat :menu-tag "(regexp ...)" :format "(regexp ...)\n%v%i"
+		  (regexp :format "%t: %v"))
+	  (cons :menu-tag "(not regexp ...)" :format "(not regexp ...)\n%v"
+		(const not)
+		(repeat :format "%v%i"
+			(regexp :format "%t: %v")))))
+
+(defcustom message-cite-articles-with-x-no-archive t
+  "If non-nil, cite text from articles that has X-No-Archive set."
+  :group 'message
+  :type 'boolean)
 
 ;;; Internal variables.
 ;;; Well, not really internal.
@@ -1343,6 +1412,7 @@
 for a message, the subaddresses will be removed (if present) before
 the mail is sent.  All addresses in this structure should be
 downcased."
+  :version "22.1"
   :group 'message-headers
   :type '(repeat (repeat string)))
 
@@ -1350,6 +1420,7 @@
   "Like `mail-user-agent'.
 Except if it is nil, use Gnus native MUA; if it is t, use
 `mail-user-agent'."
+  :version "22.1"
   :type '(radio (const :tag "Gnus native"
 		       :format "%t\n"
 		       nil)
@@ -1373,17 +1444,18 @@
 recipients?\" before a wide reply to multiple recipients.  If the user
 answers yes, reply to all recipients as usual.  If the user answers
 no, only reply back to the author."
-  :version "21.3"
+  :version "22.1"
   :group 'message-headers
   :link '(custom-manual "(message)Wide Reply")
   :type 'boolean)
 
 (defcustom message-user-fqdn nil
   "*Domain part of Messsage-Ids."
+  :version "22.1"
   :group 'message-headers
   :link '(custom-manual "(message)News Headers")
   :type '(radio (const :format "%v  " nil)
-		(string :format "FQDN: %v\n" :size 0)))
+		(string :format "FQDN: %v")))
 
 (defcustom message-use-idna (and (condition-case nil (require 'idna)
 				   (file-error))
@@ -1391,12 +1463,20 @@
 				 (executable-find idna-program)
 				 'ask)
   "Whether to encode non-ASCII in domain names into ASCII according to IDNA."
+  :version "22.1"
   :group 'message-headers
   :link '(custom-manual "(message)IDNA")
   :type '(choice (const :tag "Ask" ask)
 		 (const :tag "Never" nil)
 		 (const :tag "Always" t)))
 
+(defcustom message-generate-hashcash nil
+  "*Whether to generate X-Hashcash: headers.
+You must have the \"hashcash\" binary installed, see `hashcash-path'."
+  :group 'message-headers
+  :link '(custom-manual "(message)Mail Headers")
+  :type 'boolean)
+
 ;;; Internal variables.
 
 (defvar message-sending-message "Sending...")
@@ -1479,10 +1559,17 @@
 	  "^|? *---+ +Message text follows: +---+ *|?$")
   "A regexp that matches the separator before the text of a failed message.")
 
+(defvar message-field-fillers
+  '((To message-fill-field-address)
+    (Cc message-fill-field-address)
+    (From message-fill-field-address))
+  "Alist of header names/filler functions.")
+
 (defvar message-header-format-alist
-  `((Newsgroups)
-    (To . message-fill-address)
-    (Cc . message-fill-address)
+  `((From)
+    (Newsgroups)
+    (To)
+    (Cc)
     (Subject)
     (In-Reply-To)
     (Fcc)
@@ -1516,6 +1603,7 @@
 	  "\\)")
   "Regular expression that matches a valid FQDN."
   ;; see also: gnus-button-valid-fqdn-regexp
+  :version "22.1"
   :group 'message-headers
   :type 'regexp)
 
@@ -1546,9 +1634,6 @@
   (autoload 'rmail-msg-restore-non-pruned-header "rmail")
   (autoload 'rmail-output "rmailout"))
 
-(eval-when-compile
-  (autoload 'sha1 "sha1-el"))
-
 
 
 ;;;
@@ -1584,11 +1669,11 @@
   (if (not header)
       nil
     (let ((regexp (format "[%s]+" (or separator ",")))
-	  (beg 1)
 	  (first t)
-	  quoted elems paren)
+	  beg quoted elems paren)
       (with-temp-buffer
 	(mm-enable-multibyte)
+	(setq beg (point-min))
 	(insert header)
 	(goto-char (point-min))
 	(while (not (eobp))
@@ -1631,7 +1716,6 @@
     (when value
       (while (string-match "\n[\t ]+" value)
 	(setq value (replace-match " " t t value)))
-      (set-text-properties 0 (length value) nil value)
       value)))
 
 (defun message-field-value (header &optional not-all)
@@ -1644,6 +1728,8 @@
 (defun message-narrow-to-field ()
   "Narrow the buffer to the header on the current line."
   (beginning-of-line)
+  (while (looking-at "[ \t]")
+    (forward-line -1))
   (narrow-to-region
    (point)
    (progn
@@ -1711,7 +1797,7 @@
 ;;; Start of functions adopted from `message-utils.el'.
 
 (defun message-strip-subject-trailing-was (subject)
-  "Remove trailing \"(Was: <old subject>)\" from SUBJECT lines.
+  "Remove trailing \"(was: <old subject>)\" from SUBJECT lines.
 Leading \"Re: \" is not stripped by this function.  Use the function
 `message-strip-subject-re' for this."
   (let* ((query message-subject-trailing-was-query)
@@ -2125,6 +2211,12 @@
 	     (1+ max)))))
       (message-sort-headers-1))))
 
+(defun message-kill-address ()
+  "Kill the address under point."
+  (interactive)
+  (let ((start (point)))
+    (message-skip-to-next-address)
+    (kill-region start (point))))
 
 
 
@@ -2197,11 +2289,11 @@
   (define-key message-mode-map "\C-c\C-d" 'message-dont-send)
   (define-key message-mode-map "\C-c\n" 'gnus-delay-article)
 
+  (define-key message-mode-map "\C-c\M-k" 'message-kill-address)
   (define-key message-mode-map "\C-c\C-e" 'message-elide-region)
   (define-key message-mode-map "\C-c\C-v" 'message-delete-not-region)
   (define-key message-mode-map "\C-c\C-z" 'message-kill-to-signature)
   (define-key message-mode-map "\M-\r" 'message-newline-and-reformat)
-  ;;(define-key message-mode-map "\M-q" 'message-fill-paragraph)
   (define-key message-mode-map [remap split-line]  'message-split-line)
 
   (define-key message-mode-map "\C-c\C-a" 'mml-attach-file)
@@ -2329,6 +2421,7 @@
 packages requires these properties to be present in order to work.
 If you use one of these packages, turn this option off, and hope the
 message composition doesn't break too bad."
+  :version "22.1"
   :group 'message-various
   :link '(custom-manual "(message)Various Message Variables")
   :type 'boolean)
@@ -2345,7 +2438,7 @@
   ;; fontified: is used by font-lock.
   ;; syntax-table, local-map: I dunno.
   ;; We need to add XEmacs names to the list.
-  "Property list of with properties.forbidden in message buffers.
+  "Property list of with properties forbidden in message buffers.
 The values of the properties are ignored, only the property names are used.")
 
 (defun message-tamago-not-in-use-p (pos)
@@ -2368,11 +2461,9 @@
 See also `message-forbidden-properties'."
   (when (and message-strip-special-text-properties
 	     (message-tamago-not-in-use-p begin))
-    (while (not (= begin end))
-      (when (not (get-text-property begin 'message-hidden))
-	(remove-text-properties begin (1+ begin)
-				message-forbidden-properties))
-      (incf begin))))
+    (let ((buffer-read-only nil)
+	  (inhibit-read-only t))
+      (remove-text-properties begin end message-forbidden-properties))))
 
 ;;;###autoload
 (define-derived-mode message-mode text-mode "Message"
@@ -2438,7 +2529,11 @@
   (set (make-local-variable 'message-mime-part) 0)
   (message-setup-fill-variables)
   ;; Allow using comment commands to add/remove quoting.
-  (set (make-local-variable 'comment-start) message-yank-prefix)
+  ;; (set (make-local-variable 'comment-start) message-yank-prefix)
+  (when message-yank-prefix
+    (set (make-local-variable 'comment-start) message-yank-prefix)
+    (set (make-local-variable 'comment-start-skip)
+	 (concat "^" (regexp-quote message-yank-prefix) "[ \t]*")))
   (if (featurep 'xemacs)
       (message-setup-toolbar)
     (set (make-local-variable 'font-lock-defaults)
@@ -2571,7 +2666,7 @@
 (defun message-goto-mail-followup-to ()
   "Move point to the Mail-Followup-To header."
   (interactive)
-  (message-position-on-field "Mail-Followup-To" "From"))
+  (message-position-on-field "Mail-Followup-To" "To"))
 
 (defun message-goto-keywords ()
   "Move point to the Keywords header."
@@ -2669,6 +2764,7 @@
 E.g., if this list contains a member list with elements `Cc' and `To',
 then `message-carefully-insert-headers' will not insert a `To' header
 when the message is already `Cc'ed to the recipient."
+  :version "22.1"
   :group 'message-headers
   :link '(custom-manual "(message)Message Headers")
   :type '(repeat sexp))
@@ -2680,6 +2776,7 @@
   ;; FIXME: Should compare only the address and not the full name.  Comparison
   ;; should be done case-folded (and with `string=' rather than
   ;; `string-match').
+  ;; (mail-strip-quoted-names "Foo Bar <foo@bar>, bla@fasel (Bla Fasel)")
   (dolist (header headers)
     (let* ((header-name (symbol-name (car header)))
            (new-header (cdr header))
@@ -2865,7 +2962,9 @@
   (interactive (list (if current-prefix-arg 'full)))
   (if (if (boundp 'filladapt-mode) filladapt-mode)
       nil
-    (message-newline-and-reformat arg t)
+    (if (message-point-in-header-p)
+	(message-fill-field)
+      (message-newline-and-reformat arg t))
     t))
 
 ;; Is it better to use `mail-header-end'?
@@ -3207,8 +3306,7 @@
 	;; Insert a blank line if it is peeled off.
 	(insert "\n")))
     (goto-char start)
-    (while functions
-      (funcall (pop functions)))
+    (mapc 'funcall functions)
     (when message-citation-line-function
       (unless (bolp)
 	(insert "\n"))
@@ -3222,6 +3320,7 @@
       (run-hooks 'mail-citation-hook)
     (let* ((start (point))
 	   (end (mark t))
+	   (x-no-archive nil)
 	   (functions
 	    (when message-indent-citation-function
 	      (if (listp message-indent-citation-function)
@@ -3234,6 +3333,7 @@
 	    (save-restriction
 	      (narrow-to-region start end)
 	      (message-narrow-to-head-1)
+	      (setq x-no-archive (message-fetch-field "x-no-archive"))
 	      (vector 0
 		      (or (message-fetch-field "subject") "none")
 		      (message-fetch-field "from")
@@ -3243,12 +3343,18 @@
 		      0 0 ""))))
       (mml-quote-region start end)
       (goto-char start)
-      (while functions
-	(funcall (pop functions)))
+      (mapc 'funcall functions)
       (when message-citation-line-function
 	(unless (bolp)
 	  (insert "\n"))
-	(funcall message-citation-line-function)))))
+	(funcall message-citation-line-function))
+      (when (and x-no-archive
+		 (not message-cite-articles-with-x-no-archive)
+		 (string-match "yes" x-no-archive))
+	(undo-boundary)
+	(delete-region (point) (mark t))
+	(insert "> [Quoted text removed due to X-No-Archive]\n")
+	(forward-line -1)))))
 
 (defun message-insert-citation-line ()
   "Insert a simple citation line."
@@ -3340,6 +3446,7 @@
   "Kill the current buffer."
   (interactive)
   (when (or (not (buffer-modified-p))
+	    (not message-kill-buffer-query)
 	    (yes-or-no-p "Message modified; kill anyway? "))
     (let ((actions message-kill-actions)
 	  (draft-article message-draft-article)
@@ -3352,8 +3459,15 @@
 			  (file-exists-p auto-save-file-name))
 		     (and file-name
 			  (file-exists-p file-name)))
-	       (yes-or-no-p (format "Remove the backup file%s? "
-				    (if modified " too" ""))))
+		 (progn
+		   ;; If the message buffer has lived in a dedicated window,
+		   ;; `kill-buffer' has killed the frame.  Thus the
+		   ;; `yes-or-no-p' may show up in a lowered frame.  Make sure
+		   ;; that the user can see the question by raising the
+		   ;; current frame:
+		   (raise-frame)
+		   (yes-or-no-p (format "Remove the backup file%s? "
+					(if modified " too" "")))))
 	(ignore-errors
 	  (delete-file auto-save-file-name))
 	(let ((message-draft-article draft-article))
@@ -3364,8 +3478,7 @@
   "Bury this mail BUFFER."
   (let ((newbuf (other-buffer buffer)))
     (bury-buffer buffer)
-    (if (and (fboundp 'frame-parameters)
-	     (cdr (assq 'dedicated (frame-parameters)))
+    (if (and (window-dedicated-p (selected-window))
 	     (not (null (delq (selected-frame) (visible-frame-list)))))
 	(delete-frame (selected-frame))
       (switch-to-buffer newbuf))))
@@ -3453,16 +3566,31 @@
 (put 'message-check 'lisp-indent-function 1)
 (put 'message-check 'edebug-form-spec '(form body))
 
-(defun message-text-with-property (prop)
-  "Return a list of all points where the text has PROP."
-  (let ((points nil)
-	(point (point-min)))
-    (save-excursion
-      (while (< point (point-max))
-	(when (get-text-property point prop)
-	  (push point points))
-	(incf point)))
-    (nreverse points)))
+(defun message-text-with-property (prop &optional start end reverse)
+  "Return a list of start and end positions where the text has PROP.
+START and END bound the search, they default to `point-min' and
+`point-max' respectively.  If REVERSE is non-nil, find text which does
+not have PROP."
+  (unless start
+    (setq start (point-min)))
+  (unless end
+    (setq end (point-max)))
+  (let (next regions)
+    (if reverse
+	(while (and start
+		    (setq start (text-property-any start end prop nil)))
+	  (setq next (next-single-property-change start prop nil end))
+	  (push (cons start (or next end)) regions)
+	  (setq start next))
+      (while (and start
+		  (or (get-text-property start prop)
+		      (and (setq start (next-single-property-change
+					start prop nil end))
+			   (get-text-property start prop))))
+	(setq next (text-property-any start end prop nil))
+	(push (cons start (or next end)) regions)
+	(setq start next)))
+    (nreverse regions)))
 
 (defun message-fix-before-sending ()
   "Do various things to make the message nice before sending it."
@@ -3471,22 +3599,22 @@
   (unless (bolp)
     (insert "\n"))
   ;; Make the hidden headers visible.
-  (let ((points (message-text-with-property 'message-hidden)))
-    (when points
-      (goto-char (car points))
-      (dolist (point points)
-	(add-text-properties point (1+ point)
-			     '(invisible nil intangible nil)))))
+  (widen)
+  ;; Sort headers before sending the message.
+  (message-sort-headers)
   ;; Make invisible text visible.
   ;; It doesn't seem as if this is useful, since the invisible property
   ;; is clobbered by an after-change hook anyhow.
   (message-check 'invisible-text
-    (let ((points (message-text-with-property 'invisible)))
-      (when points
-	(goto-char (car points))
-	(dolist (point points)
-	  (put-text-property point (1+ point) 'invisible nil)
-	  (message-overlay-put (message-make-overlay point (1+ point))
+    (let ((regions (message-text-with-property 'invisible))
+	  from to)
+      (when regions
+	(while regions
+	  (setq from (caar regions)
+		to (cdar regions)
+		regions (cdr regions))
+	  (put-text-property from to 'invisible nil)
+	  (message-overlay-put (message-make-overlay from to)
 			       'face 'highlight))
 	(unless (yes-or-no-p
 		 "Invisible text found and made visible; continue sending? ")
@@ -3557,16 +3685,15 @@
 (defun message-do-actions (actions)
   "Perform all actions in ACTIONS."
   ;; Now perform actions on successful sending.
-  (while actions
+  (dolist (action actions)
     (ignore-errors
       (cond
        ;; A simple function.
-       ((functionp (car actions))
-	(funcall (car actions)))
+       ((functionp action)
+	(funcall action))
        ;; Something to be evaled.
        (t
-	(eval (car actions)))))
-    (pop actions)))
+	(eval action))))))
 
 (defun message-send-mail-partially ()
   "Send mail as message/partial."
@@ -3651,6 +3778,14 @@
 	      (gnus-setup-posting-charset nil)
 	    message-posting-charset))
 	 (headers message-required-mail-headers))
+    (when message-generate-hashcash
+      (message "Generating hashcash...")
+      ;; Wait for calculations already started to finish...
+      (hashcash-wait-async)
+      ;; ...and do calculations not already done.  mail-add-payment
+      ;; will leave existing X-Hashcash headers alone.
+      (mail-add-payment)
+      (message "Generating hashcash...done"))
     (save-restriction
       (message-narrow-to-headers)
       ;; Generate the Mail-Followup-To header if the header is not there...
@@ -3718,13 +3853,13 @@
 				   "content-transfer-encoding")))))))
 	    (message-insert-courtesy-copy))
 	  (if (or (not message-send-mail-partially-limit)
-		  (< (point-max) message-send-mail-partially-limit)
+		  (< (buffer-size) message-send-mail-partially-limit)
 		  (not (message-y-or-n-p
 			"The message size is too large, split? "
 			t
 			"\
 The message size, "
-			(/ (point-max) 1000) "KB, is too large.
+			(/ (buffer-size) 1000) "KB, is too large.
 
 Some mail gateways (MTA's) bounce large messages.  To avoid the
 problem, answer `y', and the message will be split into several
@@ -3777,8 +3912,7 @@
 	    (when (eval message-mailer-swallows-blank-line)
 	      (newline))
 	    (when message-interactive
-	      (save-excursion
-		(set-buffer errbuf)
+	      (with-current-buffer errbuf
 		(erase-buffer))))
 	  (let* ((default-directory "/")
 		 (coding-system-for-write message-send-coding-system)
@@ -3813,7 +3947,7 @@
 	    (save-excursion
 	      (set-buffer errbuf)
 	      (goto-char (point-min))
-	      (while (re-search-forward "\n\n* *" nil t)
+	      (while (re-search-forward "\n+ *" nil t)
 		(replace-match "; "))
 	      (if (not (zerop (buffer-size)))
 		  (error "Sending...failed to %s"
@@ -3835,8 +3969,8 @@
   (case
       (let ((coding-system-for-write message-send-coding-system))
 	(apply
-	 'call-process-region 1 (point-max) message-qmail-inject-program
-	 nil nil nil
+	 'call-process-region (point-min) (point-max)
+	 message-qmail-inject-program nil nil nil
 	 ;; qmail-inject's default behaviour is to look for addresses on the
 	 ;; command line; if there're none, it scans the headers.
 	 ;; yes, it does The Right Thing w.r.t. Resent-To and it's kin.
@@ -3895,7 +4029,7 @@
 (defun message-canlock-generate ()
   "Return a string that is non-trivial to guess.
 Do not use this for anything important, it is cryptographically weak."
-  (require 'sha1-el)
+  (require 'sha1)
   (let (sha1-maximum-internal-length)
     (sha1 (concat (message-unique-id)
 		  (format "%x%x%x" (random) (random t) (random))
@@ -4366,7 +4500,9 @@
 	     nil))))
    ;; Check for control characters.
    (message-check 'control-chars
-     (if (re-search-forward "[\000-\007\013\015-\032\034-\037\200-\237]" nil t)
+     (if (re-search-forward
+	  (mm-string-as-multibyte "[\000-\007\013\015-\032\034-\037\200-\237]")
+	  nil t)
 	 (y-or-n-p
 	  "The article contains control characters.  Really post? ")
        t))
@@ -4522,24 +4658,8 @@
 (defun message-make-date (&optional now)
   "Make a valid data header.
 If NOW, use that time instead."
-  (let* ((now (or now (current-time)))
-	 (zone (nth 8 (decode-time now)))
-	 (sign "+"))
-    (when (< zone 0)
-      (setq sign "-")
-      (setq zone (- zone)))
-    (concat
-     ;; The day name of the %a spec is locale-specific.  Pfff.
-     (format "%s, " (capitalize (car (rassoc (nth 6 (decode-time now))
-					     parse-time-weekdays))))
-     (format-time-string "%d" now)
-     ;; The month name of the %b spec is locale-specific.  Pfff.
-     (format " %s "
-	     (capitalize (car (rassoc (nth 4 (decode-time now))
-				      parse-time-months))))
-     (format-time-string "%Y %H:%M:%S " now)
-     ;; We do all of this because XEmacs doesn't have the %z spec.
-     (format "%s%02d%02d" sign (/ zone 3600) (/ (% zone 3600) 60)))))
+  (let ((system-time-locale "C"))
+    (format-time-string "%a, %d %b %Y %T %z" now)))
 
 (defun message-make-message-id ()
   "Make a unique Message-ID."
@@ -4875,55 +4995,25 @@
 	      list
 	    msg-recipients))))))
 
-(defun message-idna-inside-rhs-p ()
-  "Return t iff point is inside a RHS (heuristically).
-Only works properly if header contains mailbox-list or address-list.
-I.e., calling it on a Subject: header is useless."
-  (save-restriction
-    (narrow-to-region (save-excursion (or (re-search-backward "^[^ \t]" nil t)
-					  (point-min)))
-		      (save-excursion (or (re-search-forward "^[^ \t]" nil t)
-					  (point-max))))
-    (if (re-search-backward "[\\\n\r\t ]"
-			    (save-excursion (search-backward "@" nil t)) t)
-	;; whitespace between @ and point
-	nil
-      (let ((dquote 1) (paren 1))
-	(while (save-excursion (re-search-backward "[^\\]\"" nil t dquote))
-	  (incf dquote))
-	(while (save-excursion (re-search-backward "[^\\]\(" nil t paren))
-	  (incf paren))
-	(and (= (% dquote 2) 1) (= (% paren 2) 1))))))
-
 (defun message-idna-to-ascii-rhs-1 (header)
   "Interactively potentially IDNA encode domain names in HEADER."
-  (let (rhs ace start startpos endpos ovl)
-    (goto-char (point-min))
-    (while (re-search-forward (concat "^" header) nil t)
-      (while (re-search-forward "@\\([^ \t\r\n>,]+\\)"
-				(or (save-excursion
-				      (re-search-forward "^[^ \t]" nil t))
-				    (point-max))
-				t)
-	(setq rhs (match-string-no-properties 1)
-	      startpos (match-beginning 1)
-	      endpos (match-end 1))
-	(when (save-match-data
-		(and (message-idna-inside-rhs-p)
-		     (setq ace (idna-to-ascii rhs))
-		     (not (string= rhs ace))
-		     (if (eq message-use-idna 'ask)
-			 (unwind-protect
-			     (progn
-			       (setq ovl (message-make-overlay startpos
-							       endpos))
-			       (message-overlay-put ovl 'face 'highlight)
-			       (y-or-n-p
-				(format "Replace with `%s'? " ace)))
-			   (message "")
-			   (message-delete-overlay ovl))
-		       message-use-idna)))
-	  (replace-match (concat "@" ace)))))))
+  (let ((field (message-fetch-field header))
+	rhs ace  address)
+    (when field
+      (dolist (address (mail-header-parse-addresses field))
+	(setq address (car address)
+	      rhs (downcase (or (cadr (split-string address "@")) ""))
+	      ace (downcase (idna-to-ascii rhs)))
+	(when (and (not (equal rhs ace))
+		   (or (not (eq message-use-idna 'ask))
+		       (y-or-n-p (format "Replace %s with %s? " rhs ace))))
+	  (goto-char (point-min))
+	  (while (re-search-forward (concat "^" header ":") nil t)
+	    (message-narrow-to-field)
+	    (while (search-forward (concat "@" rhs) nil t)
+	      (replace-match (concat "@" ace) t t))
+	    (goto-char (point-max))
+	    (widen)))))))
 
 (defun message-idna-to-ascii-rhs ()
   "Possibly IDNA encode non-ASCII domain names in From:, To: and Cc: headers.
@@ -4935,6 +5025,7 @@
 	(message-narrow-to-head)
 	(message-idna-to-ascii-rhs-1 "From")
 	(message-idna-to-ascii-rhs-1 "To")
+	(message-idna-to-ascii-rhs-1 "Reply-To")
 	(message-idna-to-ascii-rhs-1 "Cc")))))
 
 (defun message-generate-headers (headers)
@@ -5044,8 +5135,9 @@
 		      (if formatter
 			  (funcall formatter header value)
 			(insert header-string ": " value))
+		      (goto-char (message-fill-field))
 		      ;; We check whether the value was ended by a
-		      ;; newline.  If now, we insert one.
+		      ;; newline.  If not, we insert one.
 		      (unless (bolp)
 			(insert "\n"))
 		      (forward-line -1)))
@@ -5056,7 +5148,8 @@
 		;; empty, we con't insert it anyway.
 		(unless optionalp
 		  (push header-string message-inserted-headers)
-		  (insert value)))
+		  (insert value)
+		  (message-fill-field)))
 	      ;; Add the deletable property to the headers that require it.
 	      (and (memq header message-deletable-headers)
 		   (progn (beginning-of-line) (looking-at "[^:]+: "))
@@ -5112,65 +5205,89 @@
 ;;; Setting up a message buffer
 ;;;
 
+(defun message-skip-to-next-address ()
+  (let ((end (save-excursion
+	       (message-next-header)
+	       (point)))
+	quoted char)
+    (when (looking-at ",")
+      (forward-char 1))
+    (while (and (not (= (point) end))
+		(or (not (eq char ?,))
+		    quoted))
+      (skip-chars-forward "^,\"" (point-max))
+      (when (eq (setq char (following-char)) ?\")
+	(setq quoted (not quoted)))
+      (unless (= (point) end)
+	(forward-char 1)))
+    (skip-chars-forward " \t\n")))
+
 (defun message-fill-address (header value)
-  (save-restriction
-    (narrow-to-region (point) (point))
-    (insert (capitalize (symbol-name header))
-	    ": "
-	    (if (consp value) (car value) value)
-	    "\n")
-    (narrow-to-region (point-min) (1- (point-max)))
-    (let (quoted last)
-      (goto-char (point-min))
-      (while (not (eobp))
-	(skip-chars-forward "^,\"" (point-max))
-	(if (or (eq (char-after) ?,)
-		(eobp))
-	    (when (not quoted)
-	      (if (and (> (current-column) 78)
-		       last)
-		  (progn
-		    (save-excursion
-		      (goto-char last)
-		      (insert "\n\t"))
-		    (setq last (1+ (point))))
-		(setq last (1+ (point)))))
-	  (setq quoted (not quoted)))
-	(unless (eobp)
-	  (forward-char 1))))
-    (goto-char (point-max))
-    (widen)
-    (forward-line 1)))
+  (insert (capitalize (symbol-name header))
+	  ": "
+	  (if (consp value) (car value) value)
+	  "\n")
+  (message-fill-field-address))
 
 (defun message-split-line ()
   "Split current line, moving portion beyond point vertically down.
 If the current line has `message-yank-prefix', insert it on the new line."
   (interactive "*")
   (condition-case nil
-      (split-line message-yank-prefix) ;; Emacs 21.3.50+ supports arg.
+      (split-line message-yank-prefix) ;; Emacs 22.1+ supports arg.
     (error
      (split-line))))
-     
-(defun message-fill-header (header value)
+
+(defun message-insert-header (header value)
+  (insert (capitalize (symbol-name header))
+	  ": "
+	  (if (consp value) (car value) value)))
+
+(defun message-field-name ()
+  (save-excursion
+    (goto-char (point-min))
+    (when (looking-at "\\([^:]+\\):")
+      (intern (capitalize (match-string 1))))))
+
+(defun message-fill-field ()
+  (save-excursion
+    (save-restriction
+      (message-narrow-to-field)
+      (let ((field-name (message-field-name)))
+	(funcall (or (cadr (assq field-name message-field-fillers))
+		     'message-fill-field-general)))
+      (point-max))))
+
+(defun message-fill-field-address ()
+  (while (not (eobp))
+    (message-skip-to-next-address)
+    (let (last)
+      (if (and (> (current-column) 78)
+	       last)
+	  (progn
+	    (save-excursion
+	      (goto-char last)
+	      (insert "\n\t"))
+	    (setq last (1+ (point))))
+	(setq last (1+ (point)))))))
+
+(defun message-fill-field-general ()
   (let ((begin (point))
 	(fill-column 78)
 	(fill-prefix "\t"))
-    (insert (capitalize (symbol-name header))
-	    ": "
-	    (if (consp value) (car value) value)
-	    "\n")
-    (save-restriction
-      (narrow-to-region begin (point))
-      (fill-region-as-paragraph begin (point))
-      ;; Tapdance around looong Message-IDs.
-      (forward-line -1)
-      (when (looking-at "[ \t]*$")
-	(message-delete-line))
-      (goto-char begin)
-      (re-search-forward ":" nil t)
-      (when (looking-at "\n[ \t]+")
-	(replace-match " " t t))
-      (goto-char (point-max)))))
+    (while (and (search-forward "\n" nil t)
+		(not (eobp)))
+      (replace-match " " t t))
+    (fill-region-as-paragraph begin (point-max))
+    ;; Tapdance around looong Message-IDs.
+    (forward-line -1)
+    (when (looking-at "[ \t]*$")
+      (message-delete-line))
+    (goto-char begin)
+    (search-forward ":" nil t)
+    (when (looking-at "\n[ \t]+")
+      (replace-match " " t t))
+    (goto-char (point-max))))
 
 (defun message-shorten-1 (list cut surplus)
   "Cut SURPLUS elements out of LIST, beginning with CUTth one."
@@ -5206,7 +5323,7 @@
     ;; When sending via news, make sure the total folded length will
     ;; be less than 998 characters.  This is to cater to broken INN
     ;; 2.3 which counts the total number of characters in a header
-    ;; rather than the physical line length of each line, as it shuld.
+    ;; rather than the physical line length of each line, as it should.
     ;;
     ;; This hack should be removed when it's believed than INN 2.3 is
     ;; no longer widely used.
@@ -5216,12 +5333,13 @@
     (when message-this-is-news
       (while (< 998
 		(with-temp-buffer
-		  (message-fill-header header (mapconcat #'identity refs " "))
+		  (message-insert-header
+		   header (mapconcat #'identity refs " "))
 		  (buffer-size)))
 	(message-shorten-1 refs cut 1)))
     ;; Finally, collect the references back into a string and insert
     ;; it into the buffer.
-    (message-fill-header header (mapconcat #'identity refs " "))))
+    (message-insert-header header (mapconcat #'identity refs " "))))
 
 (defun message-position-point ()
   "Move point to where the user probably wants to find it."
@@ -5245,6 +5363,7 @@
 (defcustom message-beginning-of-line t
   "Whether \\<message-mode-map>\\[message-beginning-of-line]\
  goes to beginning of header values."
+  :version "22.1"
   :group 'message-buffers
   :link '(custom-manual "(message)Movement")
   :type 'boolean)
@@ -5258,10 +5377,10 @@
 is nil.
 
 If point is in the message header and on a (non-continued) header
-line, move point to the beginning of the header value.  If point
-is already there, move point to beginning of line.  Therefore,
-repeated calls will toggle point between beginning of field and
-beginning of line."
+line, move point to the beginning of the header value or the beginning of line,
+whichever is closer.  If point is already at beginning of line, move point to
+beginning of header value.  Therefore, repeated calls will toggle point
+between beginning of field and beginning of line."
   (interactive "p")
   (let ((zrs 'zmacs-region-stays))
     (when (and (interactive-p) (boundp zrs))
@@ -5272,9 +5391,9 @@
 	     (bol (progn (beginning-of-line n) (point)))
 	     (eol (point-at-eol))
 	     (eoh (re-search-forward ": *" eol t)))
-	(if (or (not eoh) (equal here eoh))
-	    (goto-char bol)
-	  (goto-char eoh)))
+	(goto-char
+	 (if (and eoh (or (< eoh here) (= bol here)))
+	     eoh bol)))
     (beginning-of-line n)))
 
 (defun message-buffer-name (type &optional to group)
@@ -5484,6 +5603,9 @@
     (run-hooks 'message-header-setup-hook))
   (set-buffer-modified-p nil)
   (setq buffer-undo-list nil)
+  (when message-generate-hashcash
+    ;; Generate hashcash headers for recipients already known
+    (mail-add-payment-async))
   (run-hooks 'message-setup-hook)
   (message-position-point)
   (undo-boundary))
@@ -5570,7 +5692,7 @@
 		     (Subject . ,(or subject ""))))))
 
 (defun message-get-reply-headers (wide &optional to-address address-headers)
-  (let (follow-to mct never-mct to cc author mft recipients)
+  (let (follow-to mct never-mct to cc author mft recipients extra)
     ;; Find all relevant headers we need.
     (save-restriction
       (message-narrow-to-headers-or-head)
@@ -5582,6 +5704,11 @@
 			      return t)
 			(message-fetch-field "original-to")))
 	    cc (message-fetch-field "cc")
+	    extra (when message-extra-wide-headers
+		    (mapconcat 'identity
+			       (mapcar 'message-fetch-field
+				       message-extra-wide-headers)
+			       ", "))
 	    mct (message-fetch-field "mail-copies-to")
 	    author (or (message-fetch-field "mail-reply-to")
 		       (message-fetch-field "reply-to")
@@ -5633,7 +5760,10 @@
 fragmented and very difficult to follow.
 
 Also, some source/announcement lists are not intended for discussion;
-responses here are directed to other addresses.")))
+responses here are directed to other addresses.
+
+You may customize the variable `message-use-mail-followup-to', if you
+want to get rid of this query permanently.")))
 	(setq recipients (concat ", " mft)))
        (to-address
 	(setq recipients (concat ", " to-address))
@@ -5641,8 +5771,9 @@
 	(if mct (setq recipients (concat recipients ", " mct))))
        (t
 	(setq recipients (if never-mct "" (concat ", " author)))
-	(if to  (setq recipients (concat recipients ", " to)))
-	(if cc  (setq recipients (concat recipients ", " cc)))
+	(if to (setq recipients (concat recipients ", " to)))
+	(if cc (setq recipients (concat recipients ", " cc)))
+	(if extra (setq recipients (concat recipients ", " extra)))
 	(if mct (setq recipients (concat recipients ", " mct)))))
       (if (>= (length recipients) 2)
 	  ;; Strip the leading ", ".
@@ -5829,7 +5960,10 @@
 `Followup-To: poster' sends your response via e-mail instead of news.
 
 A typical situation where `Followup-To: poster' is used is when the poster
-does not read the newsgroup, so he wouldn't see any replies sent to it."))
+does not read the newsgroup, so he wouldn't see any replies sent to it.
+
+You may customize the variable `message-use-followup-to', if you
+want to get rid of this query permanently."))
 		  (progn
 		    (setq message-this-is-news nil)
 		    (cons 'To (or mrt reply-to from "")))
@@ -5852,7 +5986,10 @@
 be fragmented and very difficult to follow.
 
 Also, some source/announcement newsgroups are not intended for discussion;
-responses here are directed to other newsgroups."))
+responses here are directed to other newsgroups.
+
+You may customize the variable `message-use-followup-to', if you
+want to get rid of this query permanently."))
 		  (cons 'Newsgroups followup-to)
 		(cons 'Newsgroups newsgroups))))))
 	  (posted-to
@@ -6097,18 +6234,17 @@
 		      subject
 		    (mail-decode-encoded-word-string subject))
 		""))
-	(if message-wash-forwarded-subjects
-	    (setq subject (message-wash-subject subject)))
+	(when message-wash-forwarded-subjects
+	  (setq subject (message-wash-subject subject)))
 	;; Make sure funcs is a list.
 	(and funcs
 	     (not (listp funcs))
 	     (setq funcs (list funcs)))
 	;; Apply funcs in order, passing subject generated by previous
 	;; func to the next one.
-	(while funcs
-	  (when (functionp (car funcs))
-	    (setq subject (funcall (car funcs) subject)))
-	  (setq funcs (cdr funcs)))
+	(dolist (func funcs)
+	  (when (functionp func)
+	    (setq subject (funcall func subject))))
 	subject))))
 
 (eval-when-compile
@@ -6151,8 +6287,7 @@
     (setq e (point))
     (insert
      "\n-------------------- End of forwarded message --------------------\n")
-    (when (and (not current-prefix-arg)
-	       message-forward-ignored-headers)
+    (when message-forward-ignored-headers
       (save-restriction
 	(narrow-to-region b e)
 	(goto-char b)
@@ -6198,7 +6333,7 @@
 	(goto-char (point-max))))
     (setq e (point))
     (insert "<#/mml>\n")
-    (when (and (not current-prefix-arg)
+    (when (and (not message-forward-decoded-p)
 	       message-forward-ignored-headers)
       (save-restriction
 	(narrow-to-region b e)
@@ -6325,7 +6460,8 @@
 	(replace-match "X-From-Line: "))
       ;; Send it.
       (let ((message-inhibit-body-encoding t)
-	    message-required-mail-headers)
+	    message-required-mail-headers
+	    rfc2047-encode-encoded-words)
 	(message-send-mail))
       (kill-buffer (current-buffer)))
     (message "Resending message to %s...done" address)))
@@ -6464,7 +6600,7 @@
     (let ((end1 (make-marker)))
       (move-marker end1 (max start end))
       (goto-char (min start end))
-      (while (re-search-forward "\b" end1 t)
+      (while (search-forward "\b" end1 t)
 	(if (eq (char-after) (char-after (- (point) 2)))
 	    (delete-char -2))))))
 
@@ -6550,12 +6686,21 @@
 	'("^\\(Disposition-Notification-To\\|Return-Receipt-To\\):"
 	  . message-expand-name))
   "Alist of (RE . FUN).  Use FUN for completion on header lines matching RE."
+  :version "22.1"
   :group 'message
   :type '(alist :key-type regexp :value-type function))
 
+(defcustom message-expand-name-databases
+  (list 'bbdb 'eudc)
+  "List of databases to try for name completion (`message-expand-name').
+Each element is a symbol and can be `bbdb' or `eudc'."
+  :group 'message
+  :type '(set (const bbdb) (const eudc)))
+
 (defcustom message-tab-body-function nil
   "*Function to execute when `message-tab' (TAB) is executed in the body.
 If nil, the function bound in `text-mode-map' or `global-map' is executed."
+  :version "22.1"
   :group 'message
   :link '(custom-manual "(message)Various Commands")
   :type 'function)
@@ -6618,9 +6763,12 @@
 	    (delete-region (point) (progn (forward-line 3) (point))))))))))
 
 (defun message-expand-name ()
-  (cond ((when (boundp 'eudc-protocol) eudc-protocol)
+  (cond ((and (memq 'eudc message-expand-name-databases)
+		    (boundp 'eudc-protocol)
+		    eudc-protocol)
 	 (eudc-expand-inline))
-	((fboundp 'bbdb-complete-name)
+	((and (memq 'bbdb message-expand-name-databases)
+	      (fboundp 'bbdb-complete-name))
 	 (bbdb-complete-name))
 	(t
 	 (expand-abbrev))))
@@ -6669,7 +6817,7 @@
   (let ((locals (save-excursion
 		  (set-buffer buffer)
 		  (buffer-local-variables)))
-	(regexp "^gnus\\|^nn\\|^message\\|^user-mail-address"))
+	(regexp "^gnus\\|^nn\\|^message\\|^sendmail\\|^smtp\\|^user-mail-address"))
     (mapcar
      (lambda (local)
        (when (and (consp local)
@@ -6746,7 +6894,7 @@
 
 (defun message-use-alternative-email-as-from ()
   (require 'mail-utils)
-  (let* ((fields '("To" "Cc"))
+  (let* ((fields '("To" "Cc" "From"))
 	 (emails
 	  (split-string
 	   (mail-strip-quoted-names
@@ -6760,7 +6908,8 @@
       (pop emails))
     (unless (or (not email) (equal email user-mail-address))
       (goto-char (point-max))
-      (insert "From: " email "\n"))))
+      (insert "From: " (let ((user-mail-address email)) (message-make-from))
+	      "\n"))))
 
 (defun message-options-get (symbol)
   (cdr (assq symbol message-options)))
@@ -6799,7 +6948,8 @@
 		     (list message-hidden-headers)
 		   message-hidden-headers))
 	(inhibit-point-motion-hooks t)
-	(after-change-functions nil))
+	(after-change-functions nil)
+	(end-of-headers 0))
     (when regexps
       (save-excursion
 	(save-restriction
@@ -6808,11 +6958,17 @@
 	  (while (not (eobp))
 	    (if (not (message-hide-header-p regexps))
 		(message-next-header)
-	      (let ((begin (point)))
+	      (let ((begin (point))
+		    header header-len)
 		(message-next-header)
-		(add-text-properties
-		 begin (point)
-		 '(invisible t message-hidden t))))))))))
+		(setq header (buffer-substring begin (point))
+		      header-len (- (point) begin))
+		(delete-region begin (point))
+		(goto-char (1+ end-of-headers))
+		(insert header)
+		(setq end-of-headers
+		      (+ end-of-headers header-len))))))))
+    (narrow-to-region (1+ end-of-headers) (point-max))))
 
 (defun message-hide-header-p (regexps)
   (let ((result nil)
@@ -6838,4 +6994,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;; arch-tag: 94b32cac-4504-4b6c-8181-030ebf380ee0
 ;;; message.el ends here
Index: gnus/lisp/messagexmas.el
diff -u gnus/lisp/messagexmas.el:7.2 gnus/lisp/messagexmas.el:7.4
--- gnus/lisp/messagexmas.el:7.2	Tue Jan  6 05:09:16 2004
+++ gnus/lisp/messagexmas.el	Fri Jun 18 12:33:19 2004
@@ -1,6 +1,6 @@
 ;;; messagexmas.el --- XEmacs extensions to message
 
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003, 2004
 ;;      Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -114,6 +114,21 @@
      (substring table a (+ a n))
      (substring table (+ a 26) 255))))
 
+(defun message-xmas-make-date (&optional now)
+  "Make a valid data header.
+If NOW, use that time instead."
+  (let ((zone (car (current-time-zone)))
+	sign)
+    (if (>= zone 0)
+	(setq sign "+")
+      (setq sign "-"
+	    zone (- zone)))
+    (format "%s %s%02d%02d"
+	    (format-time-string "%a, %d %b %Y %T" now)
+	    sign
+	    (/ zone 3600)
+	    (/ (% zone 3600) 60))))
+
 (add-hook 'message-mode-hook 'message-xmas-maybe-fontify)
 
 (defun message-xmas-redefine ()
@@ -126,10 +141,12 @@
     'message-xmas-make-caesar-translation-table)
   (defalias 'message-make-overlay 'make-extent)
   (defalias 'message-delete-overlay 'delete-extent)
-  (defalias 'message-overlay-put 'set-extent-property))
+  (defalias 'message-overlay-put 'set-extent-property)
+  (defalias 'message-make-date 'message-xmas-make-date))
 
 (message-xmas-redefine)
 
 (provide 'messagexmas)
 
+;;; arch-tag: 0ece0484-8757-4641-b2d4-17147dd5c5b5
 ;;; messagexmas.el ends here
Index: gnus/lisp/messcompat.el
diff -u gnus/lisp/messcompat.el:7.1 gnus/lisp/messcompat.el:7.2
--- gnus/lisp/messcompat.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/messcompat.el	Thu May 20 10:02:40 2004
@@ -91,4 +91,5 @@
 
 (provide 'messcompat)
 
+;;; arch-tag: a76673be-905e-4bbd-8966-615370494a7b
 ;;; messcompat.el ends here
Index: gnus/lisp/mm-bodies.el
diff -u gnus/lisp/mm-bodies.el:7.3 gnus/lisp/mm-bodies.el:7.5
--- gnus/lisp/mm-bodies.el:7.3	Tue Feb  3 01:43:00 2004
+++ gnus/lisp/mm-bodies.el	Mon Dec 27 02:13:22 2004
@@ -1,6 +1,6 @@
 ;;; mm-bodies.el --- Functions for decoding MIME things
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2003
+;; Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -137,7 +137,8 @@
     (cond
      ((and (not longp)
 	   (not (and mm-use-ultra-safe-encoding
-		     (save-excursion (re-search-forward "^From " nil t))))
+		     (or (save-excursion (re-search-forward " $" nil t))
+			 (save-excursion (re-search-forward "^From " nil t)))))
 	   (eq bits '7bit))
       bits)
      ((and (not mm-use-ultra-safe-encoding)
@@ -292,4 +293,5 @@
 
 (provide 'mm-bodies)
 
+;;; arch-tag: 41104bb6-4443-4ca9-8d5c-ff87ecf27d8d
 ;;; mm-bodies.el ends here
Index: gnus/lisp/mm-decode.el
diff -u gnus/lisp/mm-decode.el:7.7 gnus/lisp/mm-decode.el:7.20
--- gnus/lisp/mm-decode.el:7.7	Mon Mar 22 06:31:57 2004
+++ gnus/lisp/mm-decode.el	Sat Feb 26 00:23:52 2005
@@ -1,5 +1,5 @@
 ;;; mm-decode.el --- Functions for decoding MIME things
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -98,8 +98,9 @@
 
 (defcustom mm-text-html-renderer
   (cond ((locate-library "w3") 'w3)
-	((locate-library "w3m") 'w3m)
-	((executable-find "w3m") 'w3m-standalone)
+	((executable-find "w3m") (if (locate-library "w3m")
+				     'w3m
+				   'w3m-standalone))
 	((executable-find "links") 'links)
 	((executable-find "lynx") 'lynx)
 	(t 'html2text))
@@ -113,6 +114,7 @@
 `lynx' : use lynx;
 `html2text' : use html2text;
 nil    : use external viewer."
+  :version "22.1"
   :type '(choice (const w3)
 		 (const w3m)
 		 (const w3m-standalone)
@@ -121,7 +123,6 @@
 		 (const html2text)
 		 (const nil)
 		 (function))
-  :version "21.3"
   :group 'mime-display)
 
 (defvar mm-inline-text-html-renderer nil
@@ -132,6 +133,7 @@
   "If non-nil, Gnus will allow retrieving images in HTML contents with
 the <img> tags.  It has no effect on Emacs/w3.  See also the
 documentation for the `mm-w3m-safe-url-regexp' variable."
+  :version "22.1"
   :type 'boolean
   :group 'mime-display)
 
@@ -147,12 +149,14 @@
 matches parts embedded to the Multipart/Related type MIME contents and
 Gnus will never connect to the spammer's site arbitrarily.  You may
 set this variable to nil if you consider all urls to be safe."
+  :version "22.1"
   :type '(choice (regexp :tag "Regexp")
 		 (const :tag "All URLs are safe" nil))
   :group 'mime-display)
 
 (defcustom mm-inline-text-html-with-w3m-keymap t
   "If non-nil, use emacs-w3m command keys in the article buffer."
+  :version "22.1"
   :type 'boolean
   :group 'mime-display)
 
@@ -162,7 +166,7 @@
 If t, all defined external MIME handlers are used.  If nil, files are saved by
 `mailcap-save-binary-file'.  If it is the symbol `ask', you are prompted
 before the external MIME handler is invoked."
-  :version "21.4"
+  :version "22.1"
   :type '(choice (const :tag "Always" t)
 		 (const :tag "Never" nil)
 		 (const :tag "Ask" ask))
@@ -217,6 +221,7 @@
        (locate-library "diff-mode")))
     ("application/emacs-lisp" mm-display-elisp-inline identity)
     ("application/x-emacs-lisp" mm-display-elisp-inline identity)
+    ("text/dns" mm-display-dns-inline identity)
     ("text/html"
      mm-inline-text-html
      (lambda (handle)
@@ -278,13 +283,14 @@
     "application/pdf" "application/x-dvi")
   "List of media types for which the external viewer will not be killed
 when selecting a different article."
+  :version "22.1"
   :type '(repeat string)
   :group 'mime-display)
 
 (defcustom mm-automatic-display
   '("text/plain" "text/enriched" "text/richtext" "text/html"
     "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*"
-    "message/rfc822" "text/x-patch" "application/pgp-signature"
+    "message/rfc822" "text/x-patch" "text/dns" "application/pgp-signature"
     "application/emacs-lisp" "application/x-emacs-lisp"
     "application/x-pkcs7-signature"
     "application/pkcs7-signature" "application/x-pkcs7-mime"
@@ -374,11 +380,13 @@
 
 (defcustom mm-attachment-file-modes 384
   "Set the mode bits of saved attachments to this integer."
+  :version "22.1"
   :type 'integer
   :group 'mime-display)
 
 (defcustom mm-external-terminal-program "xterm"
   "The program to start an external terminal."
+  :version "22.1"
   :type 'string
   :group 'mime-display)
 
@@ -411,6 +419,7 @@
   "Option of verifying signed parts.
 `never', not verify; `always', always verify;
 `known', only verify known protocols.  Otherwise, ask user."
+  :version "22.1"
   :type '(choice (item always)
 		 (item never)
 		 (item :tag "only known protocols" known)
@@ -429,6 +438,7 @@
   "Option of decrypting encrypted parts.
 `never', not decrypt; `always', always decrypt;
 `known', only decrypt known protocols.  Otherwise, ask user."
+  :version "22.1"
   :type '(choice (item always)
 		 (item never)
 		 (item :tag "only known protocols" known)
@@ -499,10 +509,10 @@
     (message "Destroying external MIME viewers")
     (mm-destroy-parts mm-postponed-undisplay-list)))
 
-(defun mm-dissect-buffer (&optional no-strict-mime loose-mime)
+(defun mm-dissect-buffer (&optional no-strict-mime loose-mime from)
   "Dissect the current buffer and return a list of MIME handles."
   (save-excursion
-    (let (ct ctl type subtype cte cd description id result from)
+    (let (ct ctl type subtype cte cd description id result)
       (save-restriction
 	(mail-narrow-to-head)
 	(when (or no-strict-mime
@@ -513,23 +523,20 @@
 		cte (mail-fetch-field "content-transfer-encoding")
 		cd (mail-fetch-field "content-disposition")
 		description (mail-fetch-field "content-description")
-		from (mail-fetch-field "from")
 		id (mail-fetch-field "content-id"))
+	  (unless from
+		(setq from (mail-fetch-field "from")))
 	  ;; FIXME: In some circumstances, this code is running within
 	  ;; an unibyte macro.  mail-extract-address-components
 	  ;; creates unibyte buffers. This `if', though not a perfect
 	  ;; solution, avoids most of them.
 	  (if from
 	      (setq from (cadr (mail-extract-address-components from))))))
-      (when cte
-	(setq cte (mail-header-strip cte)))
       (if (or (not ctl)
 	      (not (string-match "/" (car ctl))))
 	  (mm-dissect-singlepart
 	   (list mm-dissect-default-type)
-	   (and cte (intern (downcase (mail-header-remove-whitespace
-				       (mail-header-remove-comments
-					cte)))))
+	   (and cte (intern (downcase (mail-header-strip cte))))
 	   no-strict-mime
 	   (and cd (ignore-errors (mail-header-parse-content-disposition cd)))
 	   description)
@@ -557,14 +564,12 @@
 					'from from
 					'start start)
 				  (car ctl))
-	     (cons (car ctl) (mm-dissect-multipart ctl))))
+	     (cons (car ctl) (mm-dissect-multipart ctl from))))
 	  (t
 	   (mm-possibly-verify-or-decrypt
 	    (mm-dissect-singlepart
 	     ctl
-	     (and cte (intern (downcase (mail-header-remove-whitespace
-					 (mail-header-remove-comments
-					  cte)))))
+	     (and cte (intern (downcase (mail-header-strip cte))))
 	     no-strict-mime
 	     (and cd (ignore-errors
 		       (mail-header-parse-content-disposition cd)))
@@ -584,7 +589,7 @@
     (mm-make-handle
      (mm-copy-to-buffer) ctl cte nil cdl description nil id)))
 
-(defun mm-dissect-multipart (ctl)
+(defun mm-dissect-multipart (ctl from)
   (goto-char (point-min))
   (let* ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary)))
 	 (close-delimiter (concat (regexp-quote boundary) "--[ \t]*$"))
@@ -601,7 +606,7 @@
 	(save-excursion
 	  (save-restriction
 	    (narrow-to-region start (point))
-	    (setq parts (nconc (list (mm-dissect-buffer t)) parts)))))
+	    (setq parts (nconc (list (mm-dissect-buffer t nil from)) parts)))))
       (end-of-line 2)
       (or (looking-at boundary)
 	  (forward-line 1))
@@ -610,7 +615,7 @@
       (save-excursion
 	(save-restriction
 	  (narrow-to-region start end)
-	  (setq parts (nconc (list (mm-dissect-buffer t)) parts)))))
+	  (setq parts (nconc (list (mm-dissect-buffer t nil from)) parts)))))
     (mm-possibly-verify-or-decrypt (nreverse parts) ctl)))
 
 (defun mm-copy-to-buffer ()
@@ -621,7 +626,10 @@
       (goto-char (point-min))
       (search-forward-regexp "^\n" nil t)
       (setq beg (point))
-      (set-buffer (generate-new-buffer " *mm*"))
+      (set-buffer
+       ;; Preserve the data's unibyteness (for url-insert-file-contents).
+       (let ((default-enable-multibyte-characters (mm-multibyte-p)))
+	 (generate-new-buffer " *mm*")))
       (insert-buffer-substring obuf beg)
       (current-buffer))))
 
@@ -1019,27 +1027,10 @@
 
 (defun mm-insert-part (handle)
   "Insert the contents of HANDLE in the current buffer."
-  (let ((cur (current-buffer)))
-    (save-excursion
-      (if (member (mm-handle-media-supertype handle) '("text" "message"))
-	  (with-temp-buffer
-	    (insert-buffer-substring (mm-handle-buffer handle))
-	    (prog1
-		(mm-decode-content-transfer-encoding
-		 (mm-handle-encoding handle)
-		 (mm-handle-media-type handle))
-	      (let ((temp (current-buffer)))
-		(set-buffer cur)
-		(insert-buffer-substring temp))))
-	(mm-with-unibyte-buffer
-	  (insert-buffer-substring (mm-handle-buffer handle))
-	  (prog1
-	      (mm-decode-content-transfer-encoding
-	       (mm-handle-encoding handle)
-	       (mm-handle-media-type handle))
-	    (let ((temp (current-buffer)))
-	      (set-buffer cur)
-	      (insert-buffer-substring temp))))))))
+  (save-excursion
+    (insert (if (mm-multibyte-p)
+		(mm-string-as-multibyte (mm-get-part handle))
+	      (mm-get-part handle)))))
 
 (defun mm-file-name-delete-whitespace (file-name)
   "Remove all whitespace characters from FILE-NAME."
@@ -1480,4 +1471,5 @@
 
 (provide 'mm-decode)
 
+;; arch-tag: 4f35d360-56b8-4030-9388-3ed82d359b9b
 ;;; mm-decode.el ends here
Index: gnus/lisp/mm-encode.el
diff -u gnus/lisp/mm-encode.el:7.1 gnus/lisp/mm-encode.el:7.5
--- gnus/lisp/mm-encode.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/mm-encode.el	Fri Jul  2 11:30:22 2004
@@ -1,5 +1,5 @@
 ;;; mm-encode.el --- Functions for encoding MIME things
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -36,13 +36,23 @@
   '(("text/x-patch" 8bit)
     ("text/.*" qp-or-base64)
     ("message/rfc822" 8bit)
-    ("application/emacs-lisp" 8bit)
-    ("application/x-emacs-lisp" 8bit)
-    ("application/x-patch" 8bit)
+    ("application/emacs-lisp" qp-or-base64)
+    ("application/x-emacs-lisp" qp-or-base64)
+    ("application/x-patch" qp-or-base64)
     (".*" base64))
   "Alist of regexps that match MIME types and their encodings.
 If the encoding is `qp-or-base64', then either quoted-printable
-or base64 will be used, depending on what is more efficient."
+or base64 will be used, depending on what is more efficient.
+
+`qp-or-base64' has another effect.  It will fold long lines so that
+MIME parts may not be broken by MTA.  So do `quoted-printable' and
+`base64'.
+
+Note: It affects body encoding only when a part is a raw forwarded
+message (which will be made by `gnus-summary-mail-forward' with the
+arg 2 for example) or is neither the text/* type nor the message/*
+type.  Even though in those cases, you can use the `encoding' MML tag
+to specify encoding of non-ASCII MIME parts."
   :type '(repeat (list (regexp :tag "MIME type")
 		       (choice :tag "encoding"
 			       (const 7bit)
@@ -88,7 +98,8 @@
 (defun mm-safer-encoding (encoding)
   "Return an encoding similar to ENCODING but safer than it."
   (cond
-   ((memq encoding '(7bit 8bit quoted-printable)) 'quoted-printable)
+   ((eq encoding '7bit) '7bit) ;; 7bit is considered safe.
+   ((memq encoding '(8bit quoted-printable)) 'quoted-printable)
    ;; The remaining encodings are binary and base64 (and perhaps some
    ;; non-standard ones), which are both turned into base64.
    (t 'base64)))
@@ -194,4 +205,5 @@
 
 (provide 'mm-encode)
 
+;;; arch-tag: 7d01bba4-d469-4851-952b-dc863f84ed66
 ;;; mm-encode.el ends here
Index: gnus/lisp/mm-extern.el
diff -u gnus/lisp/mm-extern.el:7.1 gnus/lisp/mm-extern.el:7.2
--- gnus/lisp/mm-extern.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/mm-extern.el	Thu May 20 10:02:40 2004
@@ -165,4 +165,5 @@
 
 (provide 'mm-extern)
 
+;;; arch-tag: 9653808e-14d9-4172-86e6-adceaa05378e
 ;;; mm-extern.el ends here
Index: gnus/lisp/mm-partial.el
diff -u gnus/lisp/mm-partial.el:7.1 gnus/lisp/mm-partial.el:7.3
--- gnus/lisp/mm-partial.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/mm-partial.el	Sat Oct  2 00:33:01 2004
@@ -32,8 +32,7 @@
 (require 'mm-decode)
 
 (defun mm-partial-find-parts (id &optional art)
-  (let ((headers (save-excursion
-		   (set-buffer gnus-summary-buffer)
+  (let ((headers (with-current-buffer gnus-summary-buffer
 		   gnus-newsgroup-headers))
 	phandles header)
     (while (setq header (pop headers))
@@ -151,4 +150,5 @@
 
 (provide 'mm-partial)
 
+;;; arch-tag: 460e7424-05f2-4a1d-a0f2-70ec081eff7d
 ;;; mm-partial.el ends here
Index: gnus/lisp/mm-url.el
diff -u gnus/lisp/mm-url.el:7.2 gnus/lisp/mm-url.el:7.7
--- gnus/lisp/mm-url.el:7.2	Thu Mar  4 07:30:18 2004
+++ gnus/lisp/mm-url.el	Sun Feb 13 05:44:41 2005
@@ -35,7 +35,9 @@
 (require 'gnus)
 
 (eval-when-compile
-  (require 'timer))
+  (if (featurep 'xemacs)
+      (require 'timer-funcs)
+    (require 'timer)))
 
 (defgroup mm-url nil
   "A wrapper of url package and external url command for Gnus."
@@ -46,6 +48,7 @@
 				    (require 'url)
 				  (error nil)))
   "*If non-nil, use external grab program `mm-url-program'."
+  :version "22.1"
   :type 'boolean
   :group 'mm-url)
 
@@ -53,7 +56,7 @@
   '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-")
     (w3m  "w3m" "-dump_source")
     (lynx "lynx" "-source")
-    (curl "curl")))
+    (curl "curl" "--silent")))
 
 (defcustom mm-url-program
   (cond
@@ -64,6 +67,7 @@
    (t "GET"))
   "The url grab program.
 Likely values are `wget', `w3m', `lynx' and `curl'."
+  :version "22.1"
   :type '(choice
 	  (symbol :tag "wget" wget)
 	  (symbol :tag "w3m" w3m)
@@ -74,6 +78,7 @@
 
 (defcustom mm-url-arguments nil
   "The arguments for `mm-url-program'."
+  :version "22.1"
   :type '(repeat string)
   :group 'mm-url)
 
@@ -443,4 +448,5 @@
 
 (provide 'mm-url)
 
+;;; arch-tag: 0594f9b3-417c-48b0-adc2-5082e1e7917f
 ;;; mm-url.el ends here
Index: gnus/lisp/mm-util.el
diff -u gnus/lisp/mm-util.el:7.7 gnus/lisp/mm-util.el:7.30
--- gnus/lisp/mm-util.el:7.7	Wed Apr  7 21:05:42 2004
+++ gnus/lisp/mm-util.el	Tue Apr 12 01:14:00 2005
@@ -1,5 +1,5 @@
 ;;; mm-util.el --- Utility functions for Mule and low level things
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -54,7 +54,8 @@
 		    mm-mime-mule-charset-alist)
 	    nil t))))
      (subst-char-in-string
-      . (lambda (from to string &optional inplace) ;; stolen (and renamed) from nnheader.el
+      . (lambda (from to string &optional inplace)
+	  ;; stolen (and renamed) from nnheader.el
 	  "Replace characters in STRING from FROM to TO.
 	  Unless optional argument INPLACE is non-nil, return a new string."
 	  (let ((string (if inplace string (copy-sequence string)))
@@ -66,9 +67,37 @@
 		(aset string idx to))
 	      (setq idx (1+ idx)))
 	    string)))
+     (replace-in-string
+      . (lambda (string regexp rep &optional literal)
+	  "See `replace-regexp-in-string', only the order of args differs."
+	  (replace-regexp-in-string regexp rep string nil literal)))
      (string-as-unibyte . identity)
      (string-make-unibyte . identity)
+     ;; string-as-multibyte often doesn't really do what you think it does.
+     ;; Example:
+     ;;    (aref (string-as-multibyte "\201") 0) -> 129 (aka ?\201)
+     ;;    (aref (string-as-multibyte "\300") 0) -> 192 (aka ?\300)
+     ;;    (aref (string-as-multibyte "\300\201") 0) -> 192 (aka ?\300)
+     ;;    (aref (string-as-multibyte "\300\201") 1) -> 129 (aka ?\201)
+     ;; but
+     ;;    (aref (string-as-multibyte "\201\300") 0) -> 2240
+     ;;    (aref (string-as-multibyte "\201\300") 1) -> <error>
+     ;; Better use string-to-multibyte or encode-coding-string.
+     ;; If you really need string-as-multibyte somewhere it's usually
+     ;; because you're using the internal emacs-mule representation (maybe
+     ;; because you're using string-as-unibyte somewhere), which is
+     ;; generally a problem in itself.
+     ;; Here is an approximate equivalence table to help think about it:
+     ;; (string-as-multibyte s)   ~= (decode-coding-string s 'emacs-mule)
+     ;; (string-to-multibyte s)   ~= (decode-coding-string s 'binary)
+     ;; (string-make-multibyte s) ~= (decode-coding-string s locale-coding-system)
      (string-as-multibyte . identity)
+     (string-to-multibyte
+      . (lambda (string)
+	  "Return a multibyte string with the same individual chars as string."
+	  (mapconcat
+	   (lambda (ch) (mm-string-as-multibyte (char-to-string ch)))
+	   string "")))
      (multibyte-string-p . ignore)
      ;; It is not a MIME function, but some MIME functions use it.
      (make-temp-file . (lambda (prefix &optional dir-flag)
@@ -121,13 +150,16 @@
 
 (defun mm-coding-system-p (cs)
   "Return non-nil if CS is a symbol naming a coding system.
-In XEmacs, also return non-nil if CS is a coding system object."
+In XEmacs, also return non-nil if CS is a coding system object.
+If CS is available, return CS itself in Emacs, and return a coding
+system object in XEmacs."
   (if (fboundp 'find-coding-system)
-      (find-coding-system cs)
+      (and cs (find-coding-system cs))
     (if (fboundp 'coding-system-p)
-	(coding-system-p cs)
+	(when (coding-system-p cs)
+	  cs)
       ;; Is this branch ever actually useful?
-      (memq cs (mm-get-coding-system-list)))))
+      (car (memq cs (mm-get-coding-system-list))))))
 
 (defvar mm-charset-synonym-alist
   `(
@@ -153,6 +185,10 @@
 	       (mm-coding-system-p 'cp1250))
 	  '((windows-1250 . cp1250)))
     ;; A Microsoft misunderstanding.
+    ,@(if (and (not (mm-coding-system-p 'unicode))
+	       (mm-coding-system-p 'utf-16-le))
+	  '((unicode . utf-16-le)))
+    ;; A Microsoft misunderstanding.
     ,@(unless (mm-coding-system-p 'ks_c_5601-1987)
 	(if (mm-coding-system-p 'cp949)
 	    '((ks_c_5601-1987 . cp949))
@@ -222,12 +258,12 @@
     (big5 chinese-big5-1 chinese-big5-2)
     (tibetan tibetan)
     (thai-tis620 thai-tis620)
+    (windows-1251 cyrillic-iso8859-5)
     (iso-2022-7bit ethiopic arabic-1-column arabic-2-column)
     (iso-2022-jp-2 latin-iso8859-1 greek-iso8859-7
 		   latin-jisx0201 japanese-jisx0208-1978
 		   chinese-gb2312 japanese-jisx0208
-		   korean-ksc5601 japanese-jisx0212
-		   katakana-jisx0201)
+		   korean-ksc5601 japanese-jisx0212)
     (iso-2022-int-1 latin-iso8859-1 greek-iso8859-7
 		    latin-jisx0201 japanese-jisx0208-1978
 		    chinese-gb2312 japanese-jisx0208
@@ -242,6 +278,9 @@
 		    chinese-cns11643-3 chinese-cns11643-4
 		    chinese-cns11643-5 chinese-cns11643-6
 		    chinese-cns11643-7)
+    (iso-2022-jp-3 latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208
+		   japanese-jisx0213-1 japanese-jisx0213-2)
+    (shift_jis latin-jisx0201 katakana-jisx0201 japanese-jisx0208)
     ,(if (or (not (fboundp 'charsetp)) ;; non-Mule case
 	     (charsetp 'unicode-a)
 	     (not (mm-coding-system-p 'mule-utf-8)))
@@ -252,24 +291,47 @@
 		       (coding-system-get 'mule-utf-8 'safe-charsets)))))
   "Alist of MIME-charset/MULE-charsets.")
 
-;; Correct by construction, but should be unnecessary:
-;; XEmacs hates it.
-(when (and (not (featurep 'xemacs))
-	   (fboundp 'coding-system-list)
-	   (fboundp 'sort-coding-systems))
-  (setq mm-mime-mule-charset-alist
-	(apply
-	 'nconc
-	 (mapcar
-	  (lambda (cs)
-	    (when (and (or (coding-system-get cs :mime-charset)	; Emacs 22
-			   (coding-system-get cs 'mime-charset))
-		       (not (eq t (coding-system-get cs 'safe-charsets))))
-	      (list (cons (or (coding-system-get cs :mime-charset)
-			      (coding-system-get cs 'mime-charset))
-			  (delq 'ascii
-				(coding-system-get cs 'safe-charsets))))))
-	  (sort-coding-systems (coding-system-list 'base-only))))))
+(defun mm-enrich-utf-8-by-mule-ucs ()
+  "Make the `utf-8' MIME charset usable by the Mule-UCS package.
+This function will run when the `un-define' module is loaded under
+XEmacs, and fill the `utf-8' entry in `mm-mime-mule-charset-alist'
+with Mule charsets.  It is completely useless for Emacs."
+  (unless (cdr (delete '(mm-enrich-utf-8-by-mule-ucs)
+		       (assoc "un-define" after-load-alist)))
+    (setq after-load-alist
+	  (delete '("un-define") after-load-alist)))
+  (when (boundp 'unicode-basic-translation-charset-order-list)
+    (condition-case nil
+	(let ((val (delq
+		    'ascii
+		    (copy-sequence
+		     (symbol-value
+		      'unicode-basic-translation-charset-order-list))))
+	      (elem (assq 'utf-8 mm-mime-mule-charset-alist)))
+	  (if elem
+	      (setcdr elem val)
+	    (setq mm-mime-mule-charset-alist
+		  (nconc mm-mime-mule-charset-alist
+			 (list (cons 'utf-8 val))))))
+      (error))))
+
+;; Correct by construction, but should be unnecessary for Emacs:
+(if (featurep 'xemacs)
+    (eval-after-load "un-define" '(mm-enrich-utf-8-by-mule-ucs))
+  (when (and (fboundp 'coding-system-list)
+	     (fboundp 'sort-coding-systems))
+    (let ((css (sort-coding-systems (coding-system-list 'base-only)))
+	  cs mime mule alist)
+      (while css
+	(setq cs (pop css)
+	      mime (or (coding-system-get cs :mime-charset) ; Emacs 22
+		       (coding-system-get cs 'mime-charset)))
+	(when (and mime
+		   (not (eq t (setq mule
+				    (coding-system-get cs 'safe-charsets))))
+		   (not (assq mime alist)))
+	  (push (cons mime (delq 'ascii mule)) alist)))
+      (setq mm-mime-mule-charset-alist (nreverse alist)))))
 
 (defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2)
   "A list of special charsets.
@@ -305,15 +367,17 @@
   (if (boundp 'current-language-environment)
       (let ((lang (symbol-value 'current-language-environment)))
 	(cond ((string= lang "Japanese")
-	       ;; Japanese users may prefer iso-2022-jp to shift-jis.
-	       '(iso-2022-jp iso-2022-jp-2 japanese-shift-jis
-			     iso-latin-1 utf-8)))))
+	       ;; Japanese users prefer iso-2022-jp to euc-japan or
+	       ;; shift_jis, however iso-8859-1 should be used when
+	       ;; there are only ASCII text and Latin-1 characters.
+	       '(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8)))))
   "Preferred coding systems for encoding outgoing messages.
 
 More than one suitable coding system may be found for some text.
 By default, the coding system with the highest priority is used
 to encode outgoing messages (see `sort-coding-systems').  If this
 variable is set, it overrides the default priority."
+  :version "21.2"
   :type '(repeat (symbol :tag "Coding system"))
   :group 'mime)
 
@@ -333,16 +397,20 @@
   "Return the MIME charset corresponding to the given Mule CHARSET."
   (if (and (fboundp 'find-coding-systems-for-charsets)
 	   (fboundp 'sort-coding-systems))
-      (let (mime)
-	(dolist (cs (sort-coding-systems
-		     (copy-sequence
-		      (find-coding-systems-for-charsets (list charset)))))
-	  (unless mime
-	    (when cs
-	      (setq mime (or (coding-system-get cs :mime-charset)
-			     (coding-system-get cs 'mime-charset))))))
+      (let ((css (sort (sort-coding-systems
+			(find-coding-systems-for-charsets (list charset)))
+		       'mm-sort-coding-systems-predicate))
+	    cs mime)
+	(while (and (not mime)
+		    css)
+	  (when (setq cs (pop css))
+	    (setq mime (or (coding-system-get cs :mime-charset)
+			   (coding-system-get cs 'mime-charset)))))
 	mime)
-    (let ((alist mm-mime-mule-charset-alist)
+    (let ((alist (mapcar (lambda (cs)
+			   (assq cs mm-mime-mule-charset-alist))
+			 (sort (mapcar 'car mm-mime-mule-charset-alist)
+			       'mm-sort-coding-systems-predicate)))
 	  out)
       (while alist
 	(when (memq charset (cdar alist))
@@ -532,11 +600,91 @@
   (let ((priorities
 	 (mapcar (lambda (cs)
 		   ;; Note: invalid entries are dropped silently
-		   (and (coding-system-p cs)
+		   (and (setq cs (mm-coding-system-p cs))
 			(coding-system-base cs)))
 		 mm-coding-system-priorities)))
-    (> (length (memq a priorities))
-       (length (memq b priorities)))))
+    (and (setq a (mm-coding-system-p a))
+	 (if (setq b (mm-coding-system-p b))
+	     (> (length (memq (coding-system-base a) priorities))
+		(length (memq (coding-system-base b) priorities)))
+	   t))))
+
+(eval-when-compile
+  (autoload 'latin-unity-massage-name "latin-unity")
+  (autoload 'latin-unity-maybe-remap "latin-unity")
+  (autoload 'latin-unity-representations-feasible-region "latin-unity")
+  (autoload 'latin-unity-representations-present-region "latin-unity")
+  (defvar latin-unity-coding-systems)
+  (defvar latin-unity-ucs-list))
+
+(defun mm-xemacs-find-mime-charset-1 (begin end)
+  "Determine which MIME charset to use to send region as message.
+This uses the XEmacs-specific latin-unity package to better handle the
+case where identical characters from diverse ISO-8859-? character sets
+can be encoded using a single one of the corresponding coding systems.
+
+It treats `mm-coding-system-priorities' as the list of preferred
+coding systems; a useful example setting for this list in Western
+Europe would be '(iso-8859-1 iso-8859-15 utf-8), which would default
+to the very standard Latin 1 coding system, and only move to coding
+systems that are less supported as is necessary to encode the
+characters that exist in the buffer.
+
+Latin Unity doesn't know about those non-ASCII Roman characters that
+are available in various East Asian character sets.  As such, its
+behavior if you have a JIS 0212 LATIN SMALL LETTER A WITH ACUTE in a
+buffer and it can otherwise be encoded as Latin 1, won't be ideal.
+But this is very much a corner case, so don't worry about it."
+  (let ((systems mm-coding-system-priorities) csets psets curset)
+
+    ;; Load the Latin Unity library, if available.
+    (when (and (not (featurep 'latin-unity)) (locate-library "latin-unity"))
+      (require 'latin-unity))
+
+    ;; Now, can we use it?
+    (if (featurep 'latin-unity)
+	(progn
+	  (setq csets (latin-unity-representations-feasible-region begin end)
+		psets (latin-unity-representations-present-region begin end))
+
+	  (catch 'done
+
+	    ;; Pass back the first coding system in the preferred list
+	    ;; that can encode the whole region.
+	    (dolist (curset systems)
+	      (setq curset (latin-unity-massage-name 'buffer-default curset))
+
+	      ;; If the coding system is a universal coding system, then
+	      ;; it can certainly encode all the characters in the region.
+	      (if (memq curset latin-unity-ucs-list)
+		  (throw 'done (list curset)))
+
+	      ;; If a coding system isn't universal, and isn't in
+	      ;; the list that latin unity knows about, we can't
+	      ;; decide whether to use it here. Leave that until later
+	      ;; in `mm-find-mime-charset-region' function, whence we
+	      ;; have been called.
+	      (unless (memq curset latin-unity-coding-systems)
+		(throw 'done nil))
+
+	      ;; Right, we know about this coding system, and it may
+	      ;; conceivably be able to encode all the characters in
+	      ;; the region.
+	      (if (latin-unity-maybe-remap begin end curset csets psets t)
+		  (throw 'done (list curset))))
+
+	    ;; Can't encode using anything from the
+	    ;; `mm-coding-system-priorities' list.
+	    ;; Leave `mm-find-mime-charset' to do most of the work.
+	    nil))
+
+      ;; Right, latin unity isn't available; let `mm-find-charset-region'
+      ;; take its default action, which equally applies to GNU Emacs.
+      nil)))
+
+(defmacro mm-xemacs-find-mime-charset (begin end)
+  (when (featurep 'xemacs)
+    `(and (featurep 'mule) (mm-xemacs-find-mime-charset-1 ,begin ,end))))
 
 (defun mm-find-mime-charset-region (b e &optional hack-charsets)
   "Return the MIME charsets needed to encode the region between B and E.
@@ -579,8 +727,12 @@
 			 (setq systems nil
 			       charsets (list cs))))))
 	       charsets))
-	;; Otherwise we're not multibyte, we're XEmacs, or a single
-	;; coding system won't cover it.
+	;; If we're XEmacs, and some coding system is appropriate,
+	;; mm-xemacs-find-mime-charset will return an appropriate list.
+	;; Otherwise, we'll get nil, and the next setq will get invoked.
+	(setq charsets (mm-xemacs-find-mime-charset b e))
+
+	;; We're not multibyte, or a single coding system won't cover it.
 	(setq charsets
 	      (mm-delete-duplicates
 	       (mapcar 'mm-mime-charset
@@ -605,6 +757,14 @@
 (put 'mm-with-unibyte-buffer 'lisp-indent-function 0)
 (put 'mm-with-unibyte-buffer 'edebug-form-spec '(body))
 
+(defmacro mm-with-multibyte-buffer (&rest forms)
+  "Create a temporary buffer, and evaluate FORMS there like `progn'.
+Use multibyte mode for this."
+  `(let ((default-enable-multibyte-characters t))
+     (with-temp-buffer ,@forms)))
+(put 'mm-with-multibyte-buffer 'lisp-indent-function 0)
+(put 'mm-with-multibyte-buffer 'edebug-form-spec '(body))
+
 (defmacro mm-with-unibyte-current-buffer (&rest forms)
   "Evaluate FORMS with current buffer temporarily made unibyte.
 Also bind `default-enable-multibyte-characters' to nil.
@@ -759,7 +919,7 @@
 		 (file-directory-p
 		  (setq dir (concat (file-name-directory
 				     (directory-file-name path))
-				    "etc/" (or package "gnus/")))))
+				    "etc/images/" (or package "gnus/")))))
 	(push dir result))
       (push path result))))
 
@@ -768,7 +928,7 @@
     (defun mm-detect-coding-region (start end)
       "Like `detect-coding-region' except returning the best one."
       (let ((coding-systems
-	     (detect-coding-region (point) (point-max))))
+	     (detect-coding-region start end)))
 	(or (car-safe coding-systems)
 	    coding-systems)))
   (defun mm-detect-coding-region (start end)
@@ -783,13 +943,191 @@
     (defun mm-detect-mime-charset-region (start end)
       "Detect MIME charset of the text in the region between START and END."
       (let ((cs (mm-detect-coding-region start end)))
-	(coding-system-get cs 'mime-charset)))
+	(or (coding-system-get cs :mime-charset)
+	    (coding-system-get cs 'mime-charset))))
   (defun mm-detect-mime-charset-region (start end)
     "Detect MIME charset of the text in the region between START and END."
     (let ((cs (mm-detect-coding-region start end)))
       cs)))
 
+(eval-when-compile
+  (unless (fboundp 'coding-system-to-mime-charset)
+    (defalias 'coding-system-to-mime-charset 'ignore)))
+
+(defun mm-coding-system-to-mime-charset (coding-system)
+  "Return the MIME charset corresponding to CODING-SYSTEM.
+To make this function work with XEmacs, the APEL package is required."
+  (when coding-system
+    (or (and (fboundp 'coding-system-get)
+	     (or (coding-system-get coding-system :mime-charset)
+		 (coding-system-get coding-system 'mime-charset)))
+	(and (featurep 'xemacs)
+	     (or (and (fboundp 'coding-system-to-mime-charset)
+		      (not (eq (symbol-function 'coding-system-to-mime-charset)
+			       'ignore)))
+		 (and (condition-case nil
+			  (require 'mcharset)
+			(error nil))
+		      (fboundp 'coding-system-to-mime-charset)))
+	     (coding-system-to-mime-charset coding-system)))))
+
+(eval-when-compile
+  (require 'jka-compr))
+
+(defun mm-decompress-buffer (filename &optional inplace force)
+  "Decompress buffer's contents, depending on jka-compr.
+Only when FORCE is t or `auto-compression-mode' is enabled and FILENAME
+agrees with `jka-compr-compression-info-list', decompression is done.
+Signal an error if FORCE is neither nil nor t and compressed data are
+not decompressed because `auto-compression-mode' is disabled.
+If INPLACE is nil, return decompressed data or nil without modifying
+the buffer.  Otherwise, replace the buffer's contents with the
+decompressed data.  The buffer's multibyteness must be turned off."
+  (when (and filename
+	     (if force
+		 (prog1 t (require 'jka-compr))
+	       (and (fboundp 'jka-compr-installed-p)
+		    (jka-compr-installed-p))))
+    (let ((info (jka-compr-get-compression-info filename)))
+      (when info
+	(unless (or (memq force (list nil t))
+		    (jka-compr-installed-p))
+	  (error ""))
+	(let ((prog (jka-compr-info-uncompress-program info))
+	      (args (jka-compr-info-uncompress-args info))
+	      (msg (format "%s %s..."
+			   (jka-compr-info-uncompress-message info)
+			   filename))
+	      (err-file (jka-compr-make-temp-name))
+	      (cur (current-buffer))
+	      (coding-system-for-read mm-binary-coding-system)
+	      (coding-system-for-write mm-binary-coding-system)
+	      retval err-msg)
+	  (message "%s" msg)
+	  (with-temp-buffer
+	    (insert-buffer-substring cur)
+	    (condition-case err
+		(progn
+		  (unless (memq (apply 'call-process-region
+				       (point-min) (point-max)
+				       prog t (list t err-file) nil args)
+				jka-compr-acceptable-retval-list)
+		    (erase-buffer)
+		    (insert (mapconcat
+			     'identity
+			     (delete "" (split-string
+					 (prog2
+					     (insert-file-contents err-file)
+					     (buffer-string)
+					   (erase-buffer))))
+			     " ")
+			    "\n")
+		    (setq err-msg
+			  (format "Error while executing \"%s %s < %s\""
+				  prog (mapconcat 'identity args " ")
+				  filename)))
+		  (setq retval (buffer-string)))
+	      (error
+	       (setq err-msg (error-message-string err)))))
+	  (when (file-exists-p err-file)
+	    (ignore-errors (jka-compr-delete-temp-file err-file)))
+	  (when inplace
+	    (unless err-msg
+	      (delete-region (point-min) (point-max))
+	      (insert retval))
+	    (setq retval nil))
+	  (message "%s" (or err-msg (concat msg "done")))
+	  retval)))))
+
+(eval-when-compile
+  (unless (fboundp 'coding-system-name)
+    (defalias 'coding-system-name 'ignore))
+  (unless (fboundp 'find-file-coding-system-for-read-from-filename)
+    (defalias 'find-file-coding-system-for-read-from-filename 'ignore))
+  (unless (fboundp 'find-operation-coding-system)
+    (defalias 'find-operation-coding-system 'ignore)))
+
+(defun mm-find-buffer-file-coding-system (&optional filename)
+  "Find coding system used to decode the contents of the current buffer.
+This function looks for the coding system magic cookie or examines the
+coding system specified by `file-coding-system-alist' being associated
+with FILENAME which defaults to `buffer-file-name'.  Data compressed by
+gzip, bzip2, etc. are allowed."
+  (unless filename
+    (setq filename buffer-file-name))
+  (save-excursion
+    (let ((decomp (mm-decompress-buffer filename nil t)))
+      (when decomp
+	(set-buffer (let (default-enable-multibyte-characters)
+		      (generate-new-buffer " *temp*")))
+	(insert decomp)
+	(setq filename (file-name-sans-extension filename)))
+      (goto-char (point-min))
+      (prog1
+	  (cond
+	   ((boundp 'set-auto-coding-function) ;; Emacs
+	    (if filename
+		(or (funcall (symbol-value 'set-auto-coding-function)
+			     filename (- (point-max) (point-min)))
+		    (car (find-operation-coding-system 'insert-file-contents
+						       filename)))
+	      (let (auto-coding-alist)
+		(condition-case nil
+		    (funcall (symbol-value 'set-auto-coding-function)
+			     nil (- (point-max) (point-min)))
+		  (error nil)))))
+	   ((featurep 'file-coding) ;; XEmacs
+	    (let ((case-fold-search t)
+		  (end (point-at-eol))
+		  codesys start)
+	      (or
+	       (and (re-search-forward "-\\*-+[\t ]*" end t)
+		    (progn
+		      (setq start (match-end 0))
+		      (re-search-forward "[\t ]*-+\\*-" end t))
+		    (progn
+		      (setq end (match-beginning 0))
+		      (goto-char start)
+		      (or (looking-at "coding:[\t ]*\\([^\t ;]+\\)")
+			  (re-search-forward
+			   "[\t ;]+coding:[\t ]*\\([^\t ;]+\\)"
+			   end t)))
+		    (find-coding-system (setq codesys
+					      (intern (match-string 1))))
+		    codesys)
+	       (and (re-search-forward "^[\t ]*;+[\t ]*Local[\t ]+Variables:"
+				       nil t)
+		    (progn
+		      (setq start (match-end 0))
+		      (re-search-forward "^[\t ]*;+[\t ]*End:" nil t))
+		    (progn
+		      (setq end (match-beginning 0))
+		      (goto-char start)
+		      (re-search-forward
+		       "^[\t ]*;+[\t ]*coding:[\t ]*\\([^\t\n\r ]+\\)"
+		       end t))
+		    (find-coding-system (setq codesys
+					      (intern (match-string 1))))
+		    codesys)
+	       (and (progn
+		      (goto-char (point-min))
+		      (setq case-fold-search nil)
+		      (re-search-forward "^;;;coding system: "
+					 ;;(+ (point-min) 3000) t))
+					 nil t))
+		    (looking-at "[^\t\n\r ]+")
+		    (find-coding-system
+		     (setq codesys (intern (match-string 0))))
+		    codesys)
+	       (and filename
+		    (setq codesys
+			  (find-file-coding-system-for-read-from-filename
+			   filename))
+		    (coding-system-name (coding-system-base codesys)))))))
+	(when decomp
+	  (kill-buffer (current-buffer)))))))
 
 (provide 'mm-util)
 
+;; arch-tag: 94dc5388-825d-4fd1-bfa5-2100aa351238
 ;;; mm-util.el ends here
Index: gnus/lisp/mm-uu.el
diff -u gnus/lisp/mm-uu.el:7.1 gnus/lisp/mm-uu.el:7.7
--- gnus/lisp/mm-uu.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/mm-uu.el	Sun Feb 13 05:44:41 2005
@@ -1,5 +1,6 @@
 ;;; mm-uu.el --- Return uu stuff as mm handles
-;; Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;;        Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Keywords: postscript uudecode binhex shar forward gnatsweb pgp
@@ -80,6 +81,7 @@
 
 (defcustom mm-uu-diff-groups-regexp "gnus\\.commits"
   "*Regexp matching diff groups."
+  :version "22.1"
   :type 'regexp
   :group 'gnus-article-mime)
 
@@ -162,6 +164,10 @@
 		   mm-uu-type-alist)
   :group 'gnus-article-mime)
 
+(defvar mm-uu-text-plain-type '("text/plain" (charset . gnus-decoded))
+  "MIME type and parameters for text/plain parts.
+`gnus-decoded' is a fake charset, which means no further decoding.")
+
 ;; functions
 
 (defsubst mm-uu-type (entry)
@@ -362,7 +368,7 @@
       (while (re-search-forward "^- " nil t)
 	(replace-match "" t t)
 	(forward-line 1)))
-    (list (mm-make-handle buf '("text/plain" (charset . gnus-decoded))))))
+    (list (mm-make-handle buf mm-uu-text-plain-type))))
 
 (defun mm-uu-pgp-signed-extract ()
   (let ((mm-security-handle (list (format "multipart/signed"))))
@@ -394,9 +400,7 @@
 	(with-current-buffer buf
 	  (mml2015-clean-buffer)
 	  (funcall (mml2015-clear-decrypt-function))))
-    (list
-     (mm-make-handle buf
-		     '("text/plain"  (charset . gnus-decoded))))))
+    (list (mm-make-handle buf mm-uu-text-plain-type))))
 
 (defun mm-uu-pgp-encrypted-extract ()
   (let ((mm-security-handle (list (format "multipart/encrypted"))))
@@ -430,23 +434,24 @@
 		    '("application/pgp-keys"))))
 
 ;;;###autoload
-(defun mm-uu-dissect ()
-  "Dissect the current buffer and return a list of uu handles."
+(defun mm-uu-dissect (&optional noheader mime-type)
+  "Dissect the current buffer and return a list of uu handles.
+The optional NOHEADER means there's no header in the buffer.
+MIME-TYPE specifies a MIME type and parameters, which defaults to the
+value of `mm-uu-text-plain-type'."
   (let ((case-fold-search t)
-	text-start start-point end-point file-name result
-	text-plain-type entry func)
+	(mm-uu-text-plain-type (or mime-type mm-uu-text-plain-type))
+	text-start start-point end-point file-name result entry func)
     (save-excursion
       (goto-char (point-min))
       (cond
+       (noheader)
        ((looking-at "\n")
 	(forward-line))
        ((search-forward "\n\n" nil t)
 	t)
        (t (goto-char (point-max))))
-      ;;; gnus-decoded is a fake charset, which means no further
-      ;;; decoding.
-      (setq text-start (point)
-	    text-plain-type '("text/plain"  (charset . gnus-decoded)))
+      (setq text-start (point))
       (while (re-search-forward mm-uu-beginning-regexp nil t)
 	(setq start-point (match-beginning 0))
 	(let ((alist mm-uu-type-alist)
@@ -475,7 +480,7 @@
 		     (re-search-forward "." start-point t)))
 	      (push
 	       (mm-make-handle (mm-uu-copy-to-buffer text-start start-point)
-			       text-plain-type)
+			       mm-uu-text-plain-type)
 	       result))
 	  (push
 	   (funcall (mm-uu-function-extract entry))
@@ -488,11 +493,31 @@
 		   (re-search-forward "." nil t)))
 	    (push
 	     (mm-make-handle (mm-uu-copy-to-buffer text-start (point-max))
-			     text-plain-type)
+			     mm-uu-text-plain-type)
 	     result))
 	(setq result (cons "multipart/mixed" (nreverse result))))
       result)))
 
+(defun mm-uu-dissect-text-parts (handle)
+  "Dissect text parts and put uu handles into HANDLE."
+  (let ((buffer (mm-handle-buffer handle))
+	type children)
+    (cond ((stringp buffer)
+	   (mapc 'mm-uu-dissect-text-parts (cdr handle)))
+	  ((bufferp buffer)
+	   (when (and (setq type (mm-handle-media-type handle))
+		      (stringp type)
+		      (string-match "\\`text/" type)
+		      (with-current-buffer buffer
+			(setq children
+			      (mm-uu-dissect t (mm-handle-type handle)))))
+	     (kill-buffer buffer)
+	     (setcar handle (car children))
+	     (setcdr handle (cdr children))))
+	  (t
+	   (mapc 'mm-uu-dissect-text-parts handle)))))
+
 (provide 'mm-uu)
 
+;;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c
 ;;; mm-uu.el ends here
Index: gnus/lisp/mm-view.el
diff -u gnus/lisp/mm-view.el:7.11 gnus/lisp/mm-view.el:7.21
--- gnus/lisp/mm-view.el:7.11	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/mm-view.el	Thu Feb 10 11:47:17 2005
@@ -1,6 +1,6 @@
 ;;; mm-view.el --- functions for viewing MIME objects
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003,
-;; 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
@@ -78,6 +78,7 @@
   (let ((b (point-marker))
 	buffer-read-only)
     (put-image (mm-get-image handle) b)
+    (insert "\n\n")
     (mm-handle-set-undisplayer
      handle
      `(lambda ()
@@ -129,26 +130,26 @@
 	(charset (mail-content-type-get
 		  (mm-handle-type handle) 'charset)))
     (save-excursion
-      (insert text)
+      (insert (if charset (mm-decode-string text charset) text))
       (save-restriction
 	(narrow-to-region b (point))
-	(goto-char (point-min))
-	(if (or (and (boundp 'w3-meta-content-type-charset-regexp)
-		     (re-search-forward
-		      w3-meta-content-type-charset-regexp nil t))
-		(and (boundp 'w3-meta-charset-content-type-regexp)
-		     (re-search-forward
-		      w3-meta-charset-content-type-regexp nil t)))
+	(unless charset
+	  (goto-char (point-min))
+	  (when (or (and (boundp 'w3-meta-content-type-charset-regexp)
+			 (re-search-forward
+			  w3-meta-content-type-charset-regexp nil t))
+		    (and (boundp 'w3-meta-charset-content-type-regexp)
+			 (re-search-forward
+			  w3-meta-charset-content-type-regexp nil t)))
 	    (setq charset
-		  (or (let ((bsubstr (buffer-substring-no-properties
-				      (match-beginning 2)
-				      (match-end 2))))
-			(if (fboundp 'w3-coding-system-for-mime-charset)
-			    (w3-coding-system-for-mime-charset bsubstr)
-			  (mm-charset-to-coding-system bsubstr)))
-		      charset)))
-	(delete-region (point-min) (point-max))
-	(insert (mm-decode-string text charset))
+		  (let ((bsubstr (buffer-substring-no-properties
+				  (match-beginning 2)
+				  (match-end 2))))
+		    (if (fboundp 'w3-coding-system-for-mime-charset)
+			(w3-coding-system-for-mime-charset bsubstr)
+		      (mm-charset-to-coding-system bsubstr))))
+	    (delete-region (point-min) (point-max))
+	    (insert (mm-decode-string text charset))))
 	(save-window-excursion
 	  (save-restriction
 	    (let ((w3-strict-width width)
@@ -201,13 +202,14 @@
   (setq w3m-display-inline-images mm-inline-text-html-with-images))
 
 (defun mm-w3m-cid-retrieve-1 (url handle)
-  (if (mm-multiple-handles handle)
-      (dolist (elem handle)
-	(mm-w3m-cid-retrieve-1 url elem))
-    (when (and (listp handle)
-	       (equal url (mm-handle-id handle)))
-      (mm-insert-part handle)
-      (throw 'found-handle (mm-handle-media-type handle)))))
+  (dolist (elem handle)
+    (when (listp elem)
+      (if (equal url (mm-handle-id elem))
+	  (progn
+	    (mm-insert-part elem)
+	    (throw 'found-handle (mm-handle-media-type elem))))
+      (if (equal "multipart" (mm-handle-media-supertype elem))
+	  (mm-w3m-cid-retrieve-1 url elem)))))
 
 (defun mm-w3m-cid-retrieve (url &rest args)
   "Insert a content pointed by URL if it has the cid: scheme."
@@ -224,19 +226,17 @@
 	(b (point))
 	(charset (mail-content-type-get (mm-handle-type handle) 'charset)))
     (save-excursion
-      (insert text)
+      (insert (if charset (mm-decode-string text charset) text))
       (save-restriction
 	(narrow-to-region b (point))
-	(goto-char (point-min))
-	(when (re-search-forward w3m-meta-content-type-charset-regexp nil t)
-	  (setq charset (or (w3m-charset-to-coding-system (match-string 2))
-			    charset)))
-	(when charset
-	  (delete-region (point-min) (point-max))
-	  (insert (mm-decode-string text charset)))
+	(unless charset
+	  (goto-char (point-min))
+	  (when (setq charset (w3m-detect-meta-charset))
+	    (delete-region (point-min) (point-max))
+	    (insert (mm-decode-string text charset))))
 	(let ((w3m-safe-url-regexp mm-w3m-safe-url-regexp)
 	      w3m-force-redisplay)
-	  (w3m-region (point-min) (point-max)))
+	  (w3m-region (point-min) (point-max) nil charset))
 	(when (and mm-inline-text-html-with-w3m-keymap
 		   (boundp 'w3m-minor-mode-map)
 		   w3m-minor-mode-map)
@@ -301,11 +301,14 @@
        (buffer-string)))))
 
 (defun mm-inline-render-with-function (handle func &rest args)
-  (let ((source (mm-get-part handle)))
+  (let ((source (mm-get-part handle))
+	(charset (mail-content-type-get (mm-handle-type handle) 'charset)))
     (mm-insert-inline
      handle
-     (mm-with-unibyte-buffer
-       (insert source)
+     (mm-with-multibyte-buffer
+       (insert (if charset
+		   (mm-decode-string source charset)
+		 source))
        (apply func args)
        (buffer-string)))))
 
@@ -375,6 +378,8 @@
   "Insert TEXT inline from HANDLE."
   (let ((b (point)))
     (insert text)
+    (unless (bolp)
+      (insert "\n"))
     (mm-handle-set-undisplayer
      handle
      `(lambda ()
@@ -456,32 +461,52 @@
 	      (delete-region ,(point-min-marker) ,(point-max-marker)))))))))
 
 (defun mm-display-inline-fontify (handle mode)
-  (let (text)
+  (let ((charset (mail-content-type-get (mm-handle-type handle) 'charset))
+	text coding-system)
+    (unless (eq charset 'gnus-decoded)
+      (mm-with-unibyte-buffer
+	(mm-insert-part handle)
+	(mm-decompress-buffer
+	 (or (mail-content-type-get (mm-handle-disposition handle) 'name)
+	     (mail-content-type-get (mm-handle-disposition handle) 'filename))
+	 t t)
+	(unless charset
+	  (setq coding-system (mm-find-buffer-file-coding-system)))
+	(setq text (buffer-string))))
     ;; XEmacs @#$@ version of font-lock refuses to fully turn itself
     ;; on for buffers whose name begins with " ".  That's why we use
-    ;; save-current-buffer/get-buffer-create rather than
-    ;; with-temp-buffer.
-    (save-current-buffer
-      (set-buffer (generate-new-buffer "*fontification*"))
-      (unwind-protect
-	  (progn
-	    (buffer-disable-undo)
-	    (mm-insert-part handle)
-	    (funcall mode)
-	    (require 'font-lock)
-	    (let ((font-lock-verbose nil))
-	      ;; I find font-lock a bit too verbose.
-	      (font-lock-fontify-buffer))
-	    ;; By default, XEmacs font-lock uses non-duplicable text
-	    ;; properties.  This code forces all the text properties
-	    ;; to be copied along with the text.
-	    (when (fboundp 'extent-list)
-	      (map-extents (lambda (ext ignored)
-			     (set-extent-property ext 'duplicable t)
-			     nil)
-			   nil nil nil nil nil 'text-prop))
-	    (setq text (buffer-string)))
-	(kill-buffer (current-buffer))))
+    ;; `with-current-buffer'/`generate-new-buffer' rather than
+    ;; `with-temp-buffer'.
+    (with-current-buffer (generate-new-buffer "*fontification*")
+      (buffer-disable-undo)
+      (mm-enable-multibyte)
+      (insert (cond ((eq charset 'gnus-decoded)
+		     (mm-insert-part handle))
+		    (coding-system
+		     (mm-decode-coding-string text coding-system))
+		    (charset
+		     (mm-decode-string text charset))
+		    (t
+		     text)))
+      (require 'font-lock)
+      ;; Inhibit font-lock this time (*-mode-hook might run
+      ;; `turn-on-font-lock') so that jit-lock may not turn off
+      ;; font-lock immediately after this.
+      (let ((font-lock-mode t))
+	(funcall mode))
+      (let ((font-lock-verbose nil))
+	;; I find font-lock a bit too verbose.
+	(font-lock-fontify-buffer))
+      ;; By default, XEmacs font-lock uses non-duplicable text
+      ;; properties.  This code forces all the text properties
+      ;; to be copied along with the text.
+      (when (fboundp 'extent-list)
+	(map-extents (lambda (ext ignored)
+		       (set-extent-property ext 'duplicable t)
+		       nil)
+		     nil nil nil nil nil 'text-prop))
+      (setq text (buffer-string))
+      (kill-buffer (current-buffer)))
     (mm-insert-inline handle text)))
 
 ;; Shouldn't these functions check whether the user even wants to use
@@ -495,6 +520,9 @@
 (defun mm-display-elisp-inline (handle)
   (mm-display-inline-fontify handle 'emacs-lisp-mode))
 
+(defun mm-display-dns-inline (handle)
+  (mm-display-inline-fontify handle 'dns-mode))
+
 ;;      id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
 ;;          us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }
 (defvar mm-pkcs7-signed-magic
@@ -569,4 +597,5 @@
 
 (provide 'mm-view)
 
+;;; arch-tag: b60e749a-d05c-47f2-bccd-bdaa59327cb2
 ;;; mm-view.el ends here
Index: gnus/lisp/mml-sec.el
diff -u gnus/lisp/mml-sec.el:7.2 gnus/lisp/mml-sec.el:7.7
--- gnus/lisp/mml-sec.el:7.2	Thu Feb  5 03:42:25 2004
+++ gnus/lisp/mml-sec.el	Tue Feb 22 17:53:21 2005
@@ -1,5 +1,5 @@
 ;;; mml-sec.el --- A package with security functions for MML documents
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org>
 
@@ -43,6 +43,7 @@
 (defcustom mml-default-sign-method "pgpmime"
   "Default sign method.
 The string must have an entry in `mml-sign-alist'."
+  :version "22.1"
   :type '(choice (const "smime")
 		 (const "pgp")
 		 (const "pgpauto")
@@ -60,6 +61,7 @@
 (defcustom mml-default-encrypt-method "pgpmime"
   "Default encryption method.
 The string must have an entry in `mml-encrypt-alist'."
+  :version "22.1"
   :type '(choice (const "smime")
 		 (const "pgp")
 		 (const "pgpauto")
@@ -83,6 +85,8 @@
 understood by all PGP implementations, in particular PGP version
 2 does not support it!  See Info node `(message)Security' for
 details."
+  :version "22.1"
+  :group 'message
   :type '(repeat (list (choice (const :tag "S/MIME" "smime")
 			       (const :tag "PGP" "pgp")
 			       (const :tag "PGP/MIME" "pgpmime")
@@ -220,6 +224,13 @@
 ;; defuns that add the proper <#secure ...> tag to the top of the message body
 (defun mml-secure-message (method &optional modesym)
   (let ((mode (prin1-to-string modesym))
+	(tags (append
+	       (if (or (eq modesym 'sign)
+		       (eq modesym 'signencrypt))
+		   (funcall (nth 2 (assoc method mml-sign-alist))))
+	       (if (or (eq modesym 'encrypt)
+		       (eq modesym 'signencrypt))
+		   (funcall (nth 2 (assoc method mml-encrypt-alist))))))
 	insert-loc)
     (mml-unsecure-message)
     (save-excursion
@@ -228,8 +239,8 @@
 	      (concat "^" (regexp-quote mail-header-separator) "\n") nil t)
 	     (goto-char (setq insert-loc (match-end 0)))
 	     (unless (looking-at "<#secure")
-	       (mml-insert-tag
-		'secure 'method method 'mode mode)))
+	       (apply 'mml-insert-tag
+		'secure 'method method 'mode mode tags)))
 	    (t (error
 		"The message is corrupted. No mail header separator"))))
     (when (eql insert-loc (point))
@@ -289,4 +300,5 @@
 
 (provide 'mml-sec)
 
+;;; arch-tag: 111c56e7-df5e-4287-87d7-93ed2911ec6c
 ;;; mml-sec.el ends here
Index: gnus/lisp/mml-smime.el
diff -u gnus/lisp/mml-smime.el:7.2 gnus/lisp/mml-smime.el:7.6
--- gnus/lisp/mml-smime.el:7.2	Thu Feb  5 03:42:25 2004
+++ gnus/lisp/mml-smime.el	Tue Feb 22 17:53:21 2005
@@ -1,5 +1,5 @@
 ;;; mml-smime.el --- S/MIME support for MML
-;; Copyright (c) 2000, 2001, 2003 Free Software Foundation, Inc.
+;; Copyright (c) 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org>
 ;; Keywords: Gnus, MIME, S/MIME, MML
@@ -115,16 +115,36 @@
       (quit))
     result))
 
+(defun mml-smime-get-ldap-cert ()
+  ;; todo: deal with comma separated multiple recipients
+  (let (result who bad cert)
+    (condition-case ()
+	(while (not result)
+	  (setq who (read-from-minibuffer
+		     (format "%sLookup certificate for: " (or bad ""))
+		     (cadr (funcall gnus-extract-address-components
+				    (or (save-excursion
+					  (save-restriction
+					    (message-narrow-to-headers)
+					    (message-fetch-field "to")))
+					"")))))
+	  (if (setq cert (smime-cert-by-ldap who))
+	      (setq result (list 'certfile (buffer-name cert)))
+	    (setq bad (format "`%s' not found. " who))))
+      (quit))
+    result))
+
 (defun mml-smime-encrypt-query ()
-  ;; todo: add ldap support (xemacs ldap api?)
   ;; todo: try dns/ldap automatically first, before prompting user
   (let (certs done)
     (while (not done)
       (ecase (read (gnus-completing-read-with-default
-		    "dns" "Fetch certificate from"
-		    '(("dns") ("file")) nil t))
+		    "ldap" "Fetch certificate from"
+		    '(("dns") ("ldap") ("file")) nil t))
 	(dns (setq certs (append certs
 				 (mml-smime-get-dns-cert))))
+	(ldap (setq certs (append certs
+				  (mml-smime-get-ldap-cert))))
 	(file (setq certs (append certs
 				  (mml-smime-get-file-cert)))))
       (setq done (not (y-or-n-p "Add more recipients? "))))
@@ -200,4 +220,5 @@
 
 (provide 'mml-smime)
 
+;;; arch-tag: f1bf94d4-f2cd-4c6f-b059-ad69492817e2
 ;;; mml-smime.el ends here
Index: gnus/lisp/mml.el
diff -u gnus/lisp/mml.el:7.13 gnus/lisp/mml.el:7.28
--- gnus/lisp/mml.el:7.13	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/mml.el	Tue Apr 19 08:23:28 2005
@@ -1,5 +1,5 @@
 ;;; mml.el --- A package for parsing and validating MML documents
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -38,13 +38,16 @@
   (autoload 'message-fetch-field "message")
   (autoload 'message-mark-active-p "message")
   (autoload 'fill-flowed-encode "flow-fill")
-  (autoload 'message-posting-charset "message")
-  (autoload 'x-dnd-get-local-file-name "x-dnd"))
+  (autoload 'message-posting-charset "message"))
+
+(eval-when-compile
+  (autoload 'dnd-get-local-file-name "dnd"))
 
 (defcustom mml-content-type-parameters
   '(name access-type expiration size permission format)
   "*A list of acceptable parameters in MML tag.
 These parameters are generated in Content-Type header if exists."
+  :version "22.1"
   :type '(repeat (symbol :tag "Parameter"))
   :group 'message)
 
@@ -52,12 +55,14 @@
   '(filename creation-date modification-date read-date)
   "*A list of acceptable parameters in MML tag.
 These parameters are generated in Content-Disposition header if exists."
+  :version "22.1"
   :type '(repeat (symbol :tag "Parameter"))
   :group 'message)
 
 (defcustom mml-insert-mime-headers-always nil
   "If non-nil, always put Content-Type: text/plain at top of empty parts.
 It is necessary to work against a bug in certain clients."
+  :version "22.1"
   :type 'boolean
   :group 'message)
 
@@ -155,6 +160,8 @@
 	;; included in the message
 	(let* (secure-mode
 	       (taginfo (mml-read-tag))
+	       (keyfile (cdr (assq 'keyfile taginfo)))
+	       (certfile (cdr (assq 'certfile taginfo)))
 	       (recipients (cdr (assq 'recipients taginfo)))
 	       (sender (cdr (assq 'sender taginfo)))
 	       (location (cdr (assq 'tag-location taginfo)))
@@ -178,6 +185,10 @@
 		 (setq tags (list "sign" method "encrypt" method))))
 	  (eval `(mml-insert-tag ,secure-mode
 				 ,@tags
+				 ,(if keyfile "keyfile")
+				 ,keyfile
+				 ,(if certfile "certfile")
+				 ,certfile
 				 ,(if recipients "recipients")
 				 ,recipients
 				 ,(if sender "sender")
@@ -394,22 +405,25 @@
       (cond
        ((or (eq (car cont) 'part) (eq (car cont) 'mml))
 	(let ((raw (cdr (assq 'raw cont)))
-	      coded encoding charset filename type flowed)
-	  (setq type (or (cdr (assq 'type cont)) "text/plain"))
+	      type charset coding filename encoding flowed coded)
+	  (setq type (or (cdr (assq 'type cont)) "text/plain")
+		charset (cdr (assq 'charset cont))
+		coding (mm-charset-to-coding-system charset))
+	  (cond ((eq coding 'ascii)
+		 (setq charset nil
+		       coding nil))
+		(charset
+		 (setq charset (intern (downcase charset)))))
 	  (if (and (not raw)
 		   (member (car (split-string type "/")) '("text" "message")))
 	      (progn
 		(with-temp-buffer
-		  (setq charset (mm-charset-to-coding-system
-				 (cdr (assq 'charset cont))))
-		  (when (eq charset 'ascii)
-		    (setq charset nil))
 		  (cond
 		   ((cdr (assq 'buffer cont))
 		    (insert-buffer-substring (cdr (assq 'buffer cont))))
 		   ((and (setq filename (cdr (assq 'filename cont)))
 			 (not (equal (cdr (assq 'nofile cont)) "yes")))
-		    (let ((coding-system-for-read charset))
+		    (let ((coding-system-for-read coding))
 		      (mm-insert-file-contents filename)))
 		   ((eq 'mml (car cont))
 		    (insert (cdr (assq 'contents cont))))
@@ -465,11 +479,17 @@
 	    (mm-with-unibyte-buffer
 	      (cond
 	       ((cdr (assq 'buffer cont))
-		(insert-buffer-substring (cdr (assq 'buffer cont))))
+		(insert (with-current-buffer (cdr (assq 'buffer cont))
+			  (mm-with-unibyte-current-buffer
+			    (buffer-string)))))
 	       ((and (setq filename (cdr (assq 'filename cont)))
 		     (not (equal (cdr (assq 'nofile cont)) "yes")))
 		(let ((coding-system-for-read mm-binary-coding-system))
-		  (mm-insert-file-contents filename nil nil nil nil t)))
+		  (mm-insert-file-contents filename nil nil nil nil t))
+		(unless charset
+		  (setq charset (mm-coding-system-to-mime-charset
+				 (mm-find-buffer-file-coding-system
+				  filename)))))
 	       (t
 		(insert (cdr (assq 'contents cont)))))
 	      (setq encoding (mm-encode-buffer type)
@@ -702,7 +722,8 @@
   ;; First decode the head.
   (save-restriction
     (message-narrow-to-head)
-    (mail-decode-encoded-word-region (point-min) (point-max)))
+    (let ((rfc2047-quote-decoded-words-containing-tspecials t))
+      (mail-decode-encoded-word-region (point-min) (point-max))))
   (unless handles
     (setq handles (mm-dissect-buffer t)))
   (goto-char (point-min))
@@ -803,7 +824,7 @@
       (insert " " param)
       (when (> (current-column) 71)
 	(goto-char point)
-	(insert "\n ")
+	(insert "\n")
 	(end-of-line)))))
 
 ;;;
@@ -895,11 +916,11 @@
 	       (> (prefix-numeric-value arg) 0)))
     (add-minor-mode 'mml-mode " MML" mml-mode-map)
     (easy-menu-add mml-menu mml-mode-map)
-    (when (boundp 'x-dnd-protocol-alist)
-      (set (make-local-variable 'x-dnd-protocol-alist)
-	   '(("^file:///" . mml-x-dnd-attach-file)
-	     ("^file://"  . x-dnd-open-file)
-	     ("^file:"    . mml-x-dnd-attach-file))))
+    (when (boundp 'dnd-protocol-alist)
+      (set (make-local-variable 'dnd-protocol-alist)
+	   '(("^file:///" . mml-dnd-attach-file)
+	     ("^file://"  . dnd-open-file)
+	     ("^file:"    . mml-dnd-attach-file))))
     (run-hooks 'mml-mode-hook)))
 
 ;;;
@@ -946,11 +967,9 @@
 		      (if (string-match "^text/.*" type)
 			  "inline"
 			"attachment")))
-        (disposition (completing-read 
-                      (format "Disposition: (default %s): " default)
-                      '(("attachment") ("inline") (""))
-                      nil
-                      nil)))
+	 (disposition (completing-read "Disposition: "
+				       '(("attachment") ("inline") (""))
+				       nil t)))
     (if (not (equal disposition ""))
 	disposition
       default)))
@@ -1017,9 +1036,9 @@
 			'disposition (or disposition "attachment")
 			'description description))
 
-(defun mml-x-dnd-attach-file (uri action)
+(defun mml-dnd-attach-file (uri action)
   "Attach a drag and drop file."
-  (let ((file (x-dnd-get-local-file-name uri t)))
+  (let ((file (dnd-get-local-file-name uri t)))
     (when (and file (file-regular-p file))
       (let* ((type (mml-minibuffer-read-type file))
 	    (description (mml-minibuffer-read-description))
@@ -1075,10 +1094,15 @@
     (message-position-on-field "Mail-Followup-To" "X-Draft-From")
     (insert (message-make-mail-followup-to))))
 
+(defvar mml-preview-buffer nil)
+
 (defun mml-preview (&optional raw)
   "Display current buffer with Gnus, in a new buffer.
 If RAW, don't highlight the article."
   (interactive "P")
+  (setq mml-preview-buffer (generate-new-buffer
+			    (concat (if raw "*Raw MIME preview of "
+				      "*MIME preview of ") (buffer-name))))
   (save-excursion
     (let* ((buf (current-buffer))
 	   (message-options message-options)
@@ -1090,13 +1114,13 @@
 					   (message-fetch-field "Newsgroups")))
 					message-posting-charset)))
       (message-options-set-recipient)
-      (switch-to-buffer (generate-new-buffer
-			 (concat (if raw "*Raw MIME preview of "
-				   "*MIME preview of ") (buffer-name))))
       (when (boundp 'gnus-buffers)
-	(push (current-buffer) gnus-buffers))
-      (erase-buffer)
-      (insert-buffer-substring buf)
+	(push mml-preview-buffer gnus-buffers))
+      (save-restriction
+	(widen)
+	(set-buffer mml-preview-buffer)
+	(erase-buffer)
+	(insert-buffer-substring buf))
       (mml-preview-insert-mail-followup-to)
       (let ((message-deletable-headers (if (message-news-p)
 					   nil
@@ -1109,6 +1133,7 @@
 	   (concat "^" (regexp-quote mail-header-separator) "\n") nil t)
 	  (replace-match "\n"))
       (let ((mail-header-separator ""));; mail-header-separator is removed.
+	(message-sort-headers)
 	(mml-to-mime))
       (if raw
 	  (when (fboundp 'set-buffer-multibyte)
@@ -1141,7 +1166,12 @@
 		     (lambda (event)
 		       (interactive "@e")
 		       (widget-button-press (widget-event-point event) event)))
-      (goto-char (point-min)))))
+      (goto-char (point-min))))
+  (if (and (boundp 'gnus-buffer-configuration)
+	   (assq 'mml-preview gnus-buffer-configuration))
+      (let ((gnus-message-buffer (current-buffer)))
+	(gnus-configure-windows 'mml-preview))
+    (pop-to-buffer mml-preview-buffer)))
 
 (defun mml-validate ()
   "Validate the current MML document."
@@ -1187,4 +1217,5 @@
 
 (provide 'mml)
 
+;;; arch-tag: 583c96cf-1ffe-451b-a5e5-4733ae9ddd12
 ;;; mml.el ends here
Index: gnus/lisp/mml1991.el
diff -u gnus/lisp/mml1991.el:7.1 gnus/lisp/mml1991.el:7.2
--- gnus/lisp/mml1991.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/mml1991.el	Thu May 20 10:02:40 2004
@@ -303,4 +303,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;;; arch-tag: e542be18-ab28-4393-9b33-97fe9cf30706
 ;;; mml1991.el ends here
Index: gnus/lisp/mml2015.el
diff -u gnus/lisp/mml2015.el:7.2 gnus/lisp/mml2015.el:7.6
--- gnus/lisp/mml2015.el:7.2	Fri Apr  9 02:03:19 2004
+++ gnus/lisp/mml2015.el	Sun Feb 13 05:44:41 2005
@@ -87,6 +87,8 @@
     ("TRUST_FULLY"     . t)
     ("TRUST_ULTIMATE"  . t))
   "Map GnuPG trust output values to a boolean saying if you trust the key."
+  :version "22.1"
+  :group 'mime-security
   :type '(repeat (cons (regexp :tag "GnuPG output regexp")
 		       (boolean :tag "Trust key"))))
 
@@ -587,7 +589,7 @@
 	;; set up a function to call the correct gpg encrypt routine
 	;; with the right arguments. (FIXME: this should be done
 	;; differently.)
-	(flet ((gpg-encrypt-func 
+	(flet ((gpg-encrypt-func
 		 (sign plaintext ciphertext result recipients &optional
 		       passphrase sign-with-key armor textmode)
 		 (if sign
@@ -658,7 +660,7 @@
 	(if (condition-case err
 		(prog1
 		    (pgg-decrypt-region (point-min) (point-max))
-		  (setq decrypt-status 
+		  (setq decrypt-status
 			(with-current-buffer mml2015-result-buffer
 			  (buffer-string)))
 		  (mm-set-handle-multipart-parameter
@@ -742,7 +744,7 @@
 	  (mm-insert-part signature))
 	(if (condition-case err
 		(prog1
-		    (pgg-verify-region (point-min) (point-max) 
+		    (pgg-verify-region (point-min) (point-max)
 				       signature-file t)
 		  (goto-char (point-min))
 		  (while (search-forward "\r\n" nil t)
@@ -918,4 +920,5 @@
 
 (provide 'mml2015)
 
+;;; arch-tag: b04701d5-0b09-44d8-bed8-de901bf435f2
 ;;; mml2015.el ends here
Index: gnus/lisp/netrc.el
diff -u gnus/lisp/netrc.el:7.4 gnus/lisp/netrc.el:7.9
--- gnus/lisp/netrc.el:7.4	Tue Jan  6 01:56:18 2004
+++ gnus/lisp/netrc.el	Fri Oct 15 20:56:16 2004
@@ -34,61 +34,16 @@
 ;;; .netrc and .authinfo rc parsing
 ;;;
 
-;; autoload password
+;; autoload encrypt
 (eval-and-compile
-  (autoload 'password-read "password"))
+  (autoload 'encrypt-find-model "encrypt")
+  (autoload 'encrypt-insert-file-contents "encrypt"))
 
 (defgroup netrc nil
  "Netrc configuration.")
 
-(defcustom netrc-encrypting-method nil
-  "Decoding method used for the netrc file.
-Use the OpenSSL symmetric ciphers here.  Leave nil for no
-decoding.  Encrypt the file with netrc-encrypt, but make sure you
-have set netrc-encrypting-method to a non-nil value."
-  :type '(choice
-	  (const :tag "DES-3" "des3")
-	  (const :tag "IDEA" "idea")
-	  (const :tag "RC4" "rc4")
-	  (string :tag "Explicit cipher name")
-	  (const :tag "None" nil))
-  :group 'netrc)
-
-(defcustom netrc-openssl-path (executable-find "openssl")
-  "File path of the OpenSSL shell."
-  :type '(choice (file :tag "Location of openssl")
-		 (const :tag "openssl is not installed" nil))
-  :group 'netrc)
-
-(defun netrc-encrypt (plain-file encrypted-file)
-  (interactive "fPlain File: \nFEncrypted File: ")
-  "Encrypt FILE to ENCRYPTED-FILE with netrc-encrypting-method cipher."
-  (when (and (file-exists-p plain-file)
-	     (stringp encrypted-file)
-	     netrc-encrypting-method
-	     netrc-openssl-path)
-    (let ((buffer-file-coding-system 'binary)
-	  (coding-system-for-read 'binary)
-	  (coding-system-for-write 'binary)
-	  (password 
-	   (password-read
-	    (format "OpenSSL Password for cipher %s? "
-		    netrc-encrypting-method)
-	    (format "netrc-openssl-password-%s"
-		    netrc-encrypting-method))))
-      (when password
-	(with-temp-buffer
-	  (insert-file-contents plain-file)
-	  (setenv "NETRC_OPENSSL_PASSWORD" password)
-	  (shell-command-on-region 
-	   (point-min) 
-	   (point-max)
-	   (format "%s %s -pass env:NETRC_OPENSSL_PASSWORD -e"
-		   netrc-openssl-path
-		   netrc-encrypting-method)
-	   t
-	   t)
-	  (write-file encrypted-file t))))))
+(defvar netrc-services-file "/etc/services"
+  "The name of the services file.")
 
 (defun netrc-parse (file)
   (interactive "fFile to Parse: ")
@@ -98,30 +53,13 @@
       (let ((tokens '("machine" "default" "login"
 		      "password" "account" "macdef" "force"
 		      "port"))
+	    (encryption-model (encrypt-find-model file))
 	    alist elem result pair)
-	(if (and netrc-encrypting-method
-		 netrc-openssl-path)
-	    (let ((buffer-file-coding-system 'binary)
-		  (coding-system-for-read 'binary)
-		  (coding-system-for-write 'binary)
-		  (password 
-		   (password-read
-		    (format "OpenSSL Password for cipher %s? "
-			    netrc-encrypting-method)
-		    (format "netrc-openssl-password-%s" 
-			    netrc-encrypting-method))))
-	      (when password
-		(insert-file-contents file)
-		(setenv "NETRC_OPENSSL_PASSWORD" password)
-		(shell-command-on-region
-		 (point-min) 
-		 (point-max)
-		 (format "%s %s -pass env:NETRC_OPENSSL_PASSWORD -d"
-			 netrc-openssl-path
-			 netrc-encrypting-method)
-		 t
-		 t)))
+
+	(if encryption-model
+	    (encrypt-insert-file-contents file encryption-model)
 	  (insert-file-contents file))
+
 	(goto-char (point-min))
 	;; Go through the file, line by line.
 	(while (not (eobp))
@@ -186,16 +124,80 @@
     (when result
       (setq result (nreverse result))
       (while (and result
-		  (not (equal (or port defaultport "nntp")
-			      (or (netrc-get (car result) "port")
-				  defaultport "nntp"))))
+		  (not (netrc-port-equal
+			(or port defaultport "nntp")
+			(or (netrc-get (car result) "port")
+			    defaultport "nntp"))))
 	(pop result))
       (car result))))
 
+(defun netrc-machine-user-or-password (mode authinfo-file-or-list machines ports defaults)
+  "Get the user name or password according to MODE from AUTHINFO-FILE-OR-LIST.
+Matches a machine from MACHINES and a port from PORTS, giving
+default ports DEFAULTS to `netrc-machine'.
+
+MODE can be \"login\" or \"password\", suitable for passing to
+`netrc-get'."
+  (let ((authinfo-list (if (stringp authinfo-file-or-list)
+			   (netrc-parse authinfo-file-or-list)
+			 authinfo-file-or-list))
+	(ports (or ports '(nil)))
+	(defaults (or defaults '(nil)))
+	info)
+    (dolist (machine machines)
+      (dolist (default defaults)
+	(dolist (port ports)
+	  (let ((alist (netrc-machine authinfo-list machine port default)))
+	  (setq info (or (netrc-get alist mode) info))))))
+    info))
+
 (defun netrc-get (alist type)
   "Return the value of token TYPE from ALIST."
   (cdr (assoc type alist)))
 
+(defun netrc-port-equal (port1 port2)
+  (when (numberp port1)
+    (setq port1 (or (netrc-find-service-name port1) port1)))
+  (when (numberp port2)
+    (setq port2 (or (netrc-find-service-name port2) port2)))
+  (equal port1 port2))
+
+(defun netrc-parse-services ()
+  (when (file-exists-p netrc-services-file)
+    (let ((services nil))
+      (with-temp-buffer
+	(insert-file-contents netrc-services-file)
+	(while (search-forward "#" nil t)
+	  (delete-region (1- (point)) (line-end-position)))
+	(goto-char (point-min))
+	(while (re-search-forward
+		"^ *\\([^ \n\t]+\\)[ \t]+\\([0-9]+\\)/\\([^ \t\n]+\\)" nil t)
+	  (push (list (match-string 1) (string-to-number (match-string 2))
+		      (intern (downcase (match-string 3))))
+		services))
+	(nreverse services)))))
+
+(defun netrc-find-service-name (number &optional type)
+  (let ((services (netrc-parse-services))
+	service)
+    (setq type (or type 'tcp))
+    (while (and (setq service (pop services))
+		(not (and (= number (cadr service))
+			  (eq type (caddr service)))))
+      )
+    (car service)))
+
+(defun netrc-find-service-number (name &optional type)
+  (let ((services (netrc-parse-services))
+	service)
+    (setq type (or type 'tcp))
+    (while (and (setq service (pop services))
+		(not (and (string= name (car service))
+			  (eq type (caddr service)))))
+      )
+    (cadr service)))
+
 (provide 'netrc)
 
+;;; arch-tag: af9929cc-2d12-482f-936e-eb4366f9fa55
 ;;; netrc.el ends here
Index: gnus/lisp/nnagent.el
diff -u gnus/lisp/nnagent.el:7.1 gnus/lisp/nnagent.el:7.5
--- gnus/lisp/nnagent.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/nnagent.el	Thu Mar  3 19:00:15 2005
@@ -103,7 +103,7 @@
 
 (defun nnagent-request-type (group article)
   (unless (stringp article)
-    (let ((gnus-plugged t))
+    (let ((gnus-agent nil))
       (if (not (gnus-check-backend-function
 		'request-type (car gnus-command-method)))
 	  'unknown
@@ -122,9 +122,14 @@
 
 (deffoo nnagent-request-set-mark (group action server)
   (with-temp-buffer
-    (insert (format "(%s-request-set-mark \"%s\" '%s \"%s\")\n"
-		    (nth 0 gnus-command-method) group action
-		    (or server (nth 1 gnus-command-method))))
+    (insert "(gnus-agent-synchronize-group-flags \""
+	    group 
+	    "\" '")
+    (gnus-pp action)
+    (insert " \""
+	    (gnus-method-to-server gnus-command-method)
+	    "\"")
+    (insert ")\n")
     (append-to-file (point-min) (point-max) (gnus-agent-lib-file "flags")))
   nil)
 
@@ -209,10 +214,10 @@
 			(list (nnagent-server server))))
 
 (deffoo nnagent-request-move-article
-    (article group server accept-form &optional last)
+    (article group server accept-form &optional last move-is-internal)
   (nnoo-parent-function 'nnagent 'nnml-request-move-article
 			(list article group (nnagent-server server)
-			      accept-form last)))
+			      accept-form last move-is-internal)))
 
 (deffoo nnagent-request-rename-group (group new-name &optional server)
   (nnoo-parent-function 'nnagent 'nnml-request-rename-group
@@ -247,4 +252,5 @@
 
 (provide 'nnagent)
 
+;;; arch-tag: af710b77-f816-4969-af31-6fd94fb42245
 ;;; nnagent.el ends here
Index: gnus/lisp/nnbabyl.el
diff -u gnus/lisp/nnbabyl.el:7.2 gnus/lisp/nnbabyl.el:7.4
--- gnus/lisp/nnbabyl.el:7.2	Tue Jan  6 07:20:33 2004
+++ gnus/lisp/nnbabyl.el	Thu Mar  3 19:00:15 2005
@@ -305,7 +305,7 @@
       (nconc rest articles))))
 
 (deffoo nnbabyl-request-move-article
-    (article group server accept-form &optional last)
+    (article group server accept-form &optional last move-is-internal)
   (let ((buf (get-buffer-create " *nnbabyl move*"))
 	result)
     (and
@@ -665,4 +665,5 @@
 
 (provide 'nnbabyl)
 
+;;; arch-tag: aa7ddedb-8c07-4c0e-beb0-58e795c2b81b
 ;;; nnbabyl.el ends here
Index: gnus/lisp/nndb.el
diff -u gnus/lisp/nndb.el:7.2 gnus/lisp/nndb.el:7.7
--- gnus/lisp/nndb.el:7.2	Thu Mar  4 07:30:18 2004
+++ gnus/lisp/nndb.el	Thu Mar  3 19:00:15 2005
@@ -60,12 +60,10 @@
 (eval-when-compile (require 'cl))
 
 (eval-and-compile
-  (unless (fboundp 'open-network-stream)
-    (require 'tcp)))
-
-(eval-when-compile (require 'cl))
-
-(eval-and-compile
+  (autoload 'news-setup "rnewspost")
+  (autoload 'news-reply-mode "rnewspost")
+  (autoload 'cancel-timer "timer")
+  (autoload 'telnet "telnet" nil t)
   (autoload 'telnet-send-input "telnet" nil t)
   (autoload 'gnus-declare-backend "gnus-start"))
 
@@ -248,7 +246,7 @@
     (nndb-request-expire-articles-local articles group server force)))
 
 (deffoo nndb-request-move-article
-    (article group server accept-form &optional last)
+    (article group server accept-form &optional last move-is-internal)
   "Move ARTICLE (a number) from GROUP on SERVER.
 Evals ACCEPT-FORM in current buffer, where the article is.
 Optional LAST is ignored."
@@ -323,4 +321,5 @@
 
 (provide 'nndb)
 
+;;; arch-tag: 83bd6fb4-58d9-4fed-a901-c6c625ad5f8a
 ;;; nndb.el ends here
Index: gnus/lisp/nndiary.el
diff -u gnus/lisp/nndiary.el:7.2 gnus/lisp/nndiary.el:7.7
--- gnus/lisp/nndiary.el:7.2	Mon Jan  5 17:30:15 2004
+++ gnus/lisp/nndiary.el	Thu Mar  3 19:00:15 2005
@@ -223,6 +223,7 @@
 
 (defgroup nndiary nil
   "The Gnus Diary backend."
+  :version "22.1"
   :group 'gnus-diary)
 
 (defcustom nndiary-mail-sources
@@ -723,7 +724,7 @@
     (nconc rest articles)))
 
 (deffoo nndiary-request-move-article
-    (article group server accept-form &optional last)
+    (article group server accept-form &optional last move-is-internal)
   (let ((buf (get-buffer-create " *nndiary move*"))
 	result)
     (nndiary-possibly-change-directory group server)
@@ -759,7 +760,7 @@
   (when (nndiary-schedule)
     (let (result)
       (when nnmail-cache-accepted-message-ids
-	(nnmail-cache-insert (nnmail-fetch-field "message-id") 
+	(nnmail-cache-insert (nnmail-fetch-field "message-id")
 			     group
 			     (nnmail-fetch-field "subject")))
       (if (stringp group)
@@ -1213,9 +1214,7 @@
     (push (list group
 		(cons (or (caar files) (1+ last))
 		      (max last
-			   (or (let ((f files))
-				 (while (cdr f) (setq f (cdr f)))
-				 (caar f))
+			   (or (caar (last files))
 			       0))))
 	  nndiary-group-alist)))
 
@@ -1708,4 +1707,5 @@
 (provide 'nndiary)
 
 
+;;; arch-tag: 9c542b95-92e7-4ace-a038-330ab296e203
 ;;; nndiary.el ends here
Index: gnus/lisp/nndir.el
diff -u gnus/lisp/nndir.el:7.1 gnus/lisp/nndir.el:7.2
--- gnus/lisp/nndir.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/nndir.el	Thu May 20 10:02:40 2004
@@ -98,4 +98,5 @@
 
 (provide 'nndir)
 
+;;; arch-tag: 56f09f68-0e4e-4816-818a-df80b4a394c8
 ;;; nndir.el ends here
Index: gnus/lisp/nndoc.el
diff -u gnus/lisp/nndoc.el:7.2 gnus/lisp/nndoc.el:7.5
--- gnus/lisp/nndoc.el:7.2	Wed Mar 24 06:29:18 2004
+++ gnus/lisp/nndoc.el	Thu Aug 26 11:04:44 2004
@@ -1,5 +1,5 @@
 ;;; nndoc.el --- single file access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -130,8 +130,10 @@
      (article-transform-function . nndoc-transform-lanl-gov-announce)
      (subtype preprints guess))
     (rfc822-forward
-     (article-begin . "^\n")
-     (body-end-function . nndoc-rfc822-forward-body-end-function))
+     (article-begin . "^\n+")
+     (body-end-function . nndoc-rfc822-forward-body-end-function)
+     (generate-head-function . nndoc-rfc822-forward-generate-head)
+     (generate-article-function . nndoc-rfc822-forward-generate-article))
     (outlook
      (article-begin-function . nndoc-outlook-article-begin)
      (body-end .  "\0"))
@@ -492,6 +494,29 @@
 (defun nndoc-rfc822-forward-body-end-function ()
   (goto-char (point-max)))
 
+(defun nndoc-rfc822-forward-generate-article (article &optional head)
+  (let ((entry (cdr (assq article nndoc-dissection-alist)))
+	(begin (point))
+	encoding)
+    (with-current-buffer nndoc-current-buffer
+      (save-restriction
+	(message-narrow-to-head)
+	(setq encoding (message-fetch-field "content-transfer-encoding"))))
+    (insert-buffer-substring nndoc-current-buffer (car entry) (nth 3 entry))
+    (when encoding
+      (save-restriction
+	(narrow-to-region begin (point-max))
+	(mm-decode-content-transfer-encoding
+	 (intern (downcase (mail-header-strip encoding))))))
+    (when head
+      (goto-char begin)
+      (when (search-forward "\n\n" nil t)
+	(delete-region (1- (point)) (point-max)))))
+  t)
+
+(defun nndoc-rfc822-forward-generate-head (article)
+  (nndoc-rfc822-forward-generate-article article 'head))
+
 (defun nndoc-mime-parts-type-p ()
   (let ((case-fold-search t)
 	(limit (search-forward "\n\n" nil t)))
@@ -998,4 +1023,5 @@
 
 (provide 'nndoc)
 
+;;; arch-tag: f5c2970e-0387-47ac-a0b3-6cc317dffabe
 ;;; nndoc.el ends here
Index: gnus/lisp/nndraft.el
diff -u gnus/lisp/nndraft.el:7.1 gnus/lisp/nndraft.el:7.3
--- gnus/lisp/nndraft.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/nndraft.el	Thu Mar  3 19:00:15 2005
@@ -196,8 +196,8 @@
 			'nnmh-request-group
 			(list group server dont-check)))
 
-(deffoo nndraft-request-move-article (article group server
-					      accept-form &optional last)
+(deffoo nndraft-request-move-article (article group server accept-form 
+				      &optional last move-is-internal)
   (nndraft-possibly-change-group group)
   (let ((buf (get-buffer-create " *nndraft move*"))
 	result)
@@ -307,4 +307,5 @@
 
 (provide 'nndraft)
 
+;;; arch-tag: 3ce26ca0-41cb-48b1-8703-4dad35e188aa
 ;;; nndraft.el ends here
Index: gnus/lisp/nneething.el
diff -u gnus/lisp/nneething.el:7.1 gnus/lisp/nneething.el:7.4
--- gnus/lisp/nneething.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/nneething.el	Wed Mar 16 22:22:35 2005
@@ -37,7 +37,8 @@
 
 (nnoo-declare nneething)
 
-(defvoo nneething-map-file-directory "~/.nneething/"
+(defvoo nneething-map-file-directory
+  (nnheader-concat gnus-directory ".nneething/")
   "Where nneething stores the map files.")
 
 (defvoo nneething-map-file ".nneething"
@@ -422,9 +423,10 @@
     (if (numberp article)
 	(if (setq fname (cadr (assq article nneething-map)))
 	    (expand-file-name fname dir)
-	  (mm-make-temp-file (expand-file-name "nneething" dir)))
+	  (make-temp-name (expand-file-name "nneething" dir)))
       (expand-file-name article dir))))
 
 (provide 'nneething)
 
+;;; arch-tag: 1277f386-88f2-4459-bb24-f3f45962a6c5
 ;;; nneething.el ends here
Index: gnus/lisp/nnfolder.el
diff -u gnus/lisp/nnfolder.el:7.4 gnus/lisp/nnfolder.el:7.9
--- gnus/lisp/nnfolder.el:7.4	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/nnfolder.el	Thu Mar  3 19:00:15 2005
@@ -1,5 +1,5 @@
 ;;; nnfolder.el --- mail folder access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS)
@@ -370,10 +370,11 @@
 (deffoo nnfolder-request-create-group (group &optional server args)
   (nnfolder-possibly-change-group nil server)
   (nnmail-activate 'nnfolder)
-  (when group
-    (unless (assoc group nnfolder-group-alist)
-      (push (list group (cons 1 0)) nnfolder-group-alist)
-      (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
+  (when (and group
+	     (not (assoc group nnfolder-group-alist)))
+    (push (list group (cons 1 0)) nnfolder-group-alist)
+    (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
+    (save-current-buffer
       (nnfolder-read-folder group)))
   t)
 
@@ -466,8 +467,8 @@
       (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
       (gnus-sorted-difference articles (nreverse deleted-articles)))))
 
-(deffoo nnfolder-request-move-article (article group server
-					       accept-form &optional last)
+(deffoo nnfolder-request-move-article (article group server accept-form 
+					       &optional last move-is-internal)
   (save-excursion
     (let ((buf (get-buffer-create " *nnfolder move*"))
 	  result)
@@ -872,7 +873,7 @@
 	 (buffer (set-buffer
 		  (let ((nnheader-file-coding-system
 			 nnfolder-file-coding-system))
-		    (nnheader-find-file-noselect file)))))
+		    (nnheader-find-file-noselect file t)))))
     (mm-enable-multibyte) ;; Use multibyte buffer for future copying.
     (if (equal (cadr (assoc group nnfolder-scantime-alist))
 	       (nth 5 (file-attributes file)))
@@ -1027,9 +1028,7 @@
       (when (not (message-mail-file-mbox-p file))
 	(ignore-errors
 	  (delete-file file)))))
-  (let ((files (directory-files nnfolder-directory))
-	file)
-    (while (setq file (pop files))
+    (dolist (file (directory-files nnfolder-directory))
       (when (and (not (backup-file-name-p file))
 		 (message-mail-file-mbox-p
 		  (nnheader-concat nnfolder-directory file)))
@@ -1044,7 +1043,7 @@
 	  (nnfolder-possibly-change-folder file)
 	  (nnfolder-possibly-change-group file)
 	  (nnfolder-close-group file))))
-    (nnheader-message 5 "")))
+    (nnheader-message 5 ""))
 
 (defun nnfolder-group-pathname (group)
   "Make file name for GROUP."
@@ -1272,4 +1271,5 @@
 
 (provide 'nnfolder)
 
+;;; arch-tag: a040d0f4-4f4e-445f-8972-839575c5f7e6
 ;;; nnfolder.el ends here
Index: gnus/lisp/nngateway.el
diff -u gnus/lisp/nngateway.el:7.1 gnus/lisp/nngateway.el:7.2
--- gnus/lisp/nngateway.el:7.1	Sun Jan  4 22:51:02 2004
+++ gnus/lisp/nngateway.el	Thu May 20 10:02:40 2004
@@ -91,4 +91,5 @@
 
 (provide 'nngateway)
 
+;;; arch-tag: f7ecb92e-b10c-43d5-9a9b-1314233341fc
 ;;; nngateway.el ends here
Index: gnus/lisp/nnheader.el
diff -u gnus/lisp/nnheader.el:7.4 gnus/lisp/nnheader.el:7.13
--- gnus/lisp/nnheader.el:7.4	Wed Jan  7 07:44:22 2004
+++ gnus/lisp/nnheader.el	Thu Feb 24 21:23:32 2005
@@ -1,7 +1,7 @@
 ;;; nnheader.el --- header access macros for Gnus and its backends
 
 ;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996,
-;;        1997, 1998, 2000, 2001, 2002, 2003
+;;        1997, 1998, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
@@ -58,7 +58,7 @@
   :group 'gnus-server
   :type 'boolean)
 
-(defvar nnheader-max-head-length 4096
+(defvar nnheader-max-head-length 8192
   "*Max length of the head of articles.
 
 Value is an integer, nil, or t.  nil means read in chunks of a file
@@ -74,7 +74,15 @@
 (defvar nnheader-read-timeout
   (if (string-match "windows-nt\\|os/2\\|emx\\|cygwin"
 		    (symbol-name system-type))
-      1.0				; why?
+      ;; http://thread.gmane.org/v9655t3pjo.fsf@marauder.physik.uni-ulm.de
+      ;;
+      ;; IIRC, values lower than 1.0 didn't/don't work on Windows/DOS.
+      ;;
+      ;; There should probably be a runtime test to determine the timing
+      ;; resolution, or a primitive to report it.  I don't know off-hand
+      ;; what's possible.  Perhaps better, maybe the Windows/DOS primitive
+      ;; could round up non-zero timeouts to a minimum of 1.0?
+      1.0
     0.1)
   "How long nntp should wait between checking for the end of output.
 Shorter values mean quicker response, but are more CPU intensive.")
@@ -216,12 +224,16 @@
 
 (defvar nnheader-fake-message-id 1)
 
-(defsubst nnheader-generate-fake-message-id ()
-  (concat "fake+none+" (int-to-string (incf nnheader-fake-message-id))))
+(defsubst nnheader-generate-fake-message-id (&optional number)
+  (if (numberp number)
+      (format "fake+none+%s+%d" gnus-newsgroup-name number)
+    (format "fake+none+%s+%s"
+	    gnus-newsgroup-name
+	    (int-to-string (incf nnheader-fake-message-id)))))
 
 (defsubst nnheader-fake-message-id-p (id)
   (save-match-data		       ; regular message-id's are <.*>
-    (string-match "\\`fake\\+none\\+[0-9]+\\'" id)))
+    (string-match "\\`fake\\+none\\+.*\\+[0-9]+\\'" id)))
 
 ;; Parsing headers and NOV lines.
 
@@ -283,7 +295,7 @@
 		(or (search-forward ">" (point-at-eol) t) (point)))
 	     ;; If there was no message-id, we just fake one to make
 	     ;; subsequent routines simpler.
-	     (nnheader-generate-fake-message-id)))
+	     (nnheader-generate-fake-message-id number)))
 	 ;; References.
 	 (progn
 	   (goto-char p)
@@ -381,20 +393,28 @@
 	       out)))
      out))
 
-(defmacro nnheader-nov-read-message-id ()
-  '(let ((id (nnheader-nov-field)))
+(defvar nnheader-uniquify-message-id nil)
+
+(defmacro nnheader-nov-read-message-id (&optional number)
+  `(let ((id (nnheader-nov-field)))
      (if (string-match "^<[^>]+>$" id)
-	 id
-       (nnheader-generate-fake-message-id))))
+	 ,(if nnheader-uniquify-message-id
+	      `(if (string-match "__[^@]+@" id)
+		   (concat (substring id 0 (match-beginning 0))
+			   (substring id (1- (match-end 0))))
+		 id)
+	    'id)
+       (nnheader-generate-fake-message-id ,number))))
 
 (defun nnheader-parse-nov ()
-  (let ((eol (point-at-eol)))
+  (let ((eol (point-at-eol))
+	(number (nnheader-nov-read-integer)))
     (vector
-     (nnheader-nov-read-integer)	; number
+     number				; number
      (nnheader-nov-field)		; subject
      (nnheader-nov-field)		; from
      (nnheader-nov-field)		; date
-     (nnheader-nov-read-message-id)	; id
+     (nnheader-nov-read-message-id number) ; id
      (nnheader-nov-field)		; refs
      (nnheader-nov-read-integer)	; chars
      (nnheader-nov-read-integer)	; lines
@@ -641,6 +661,14 @@
      (point-max)))
   (goto-char (point-min)))
 
+(defun nnheader-get-lines-and-char ()
+  "Return the number of lines and chars in the article body."
+  (goto-char (point-min))
+  (if (not (re-search-forward "\n\r?\n" nil t))
+      (list 0 0)
+    (list (count-lines (point) (point-max))
+	  (- (point-max) (point)))))
+
 (defun nnheader-remove-body ()
   "Remove the body from an article in this current buffer."
   (goto-char (point-min))
@@ -941,6 +969,8 @@
             (nnheader-insert-file-contents file)))))))
 
 (defun nnheader-find-file-noselect (&rest args)
+  "Open a file with some variables bound.
+See `find-file-noselect' for the arguments."
   (let ((format-alist nil)
 	(auto-mode-alist (mm-auto-mode-alist))
 	(default-major-mode 'fundamental-mode)
@@ -1022,4 +1052,5 @@
 
 (provide 'nnheader)
 
+;;; arch-tag: a9c4b7d9-52ae-4ec9-b196-dfd93124d202
 ;;; nnheader.el ends here
Index: gnus/lisp/nnheaderxm.el
diff -u gnus/lisp/nnheaderxm.el:7.2 gnus/lisp/nnheaderxm.el:7.4
--- gnus/lisp/nnheaderxm.el:7.2	Tue Jan  6 07:20:33 2004
+++ gnus/lisp/nnheaderxm.el	Wed Jan 26 09:54:34 2005
@@ -27,12 +27,12 @@
 
 ;;; Code:
 
-(require 'run-at-time)
+(require 'timer-funcs)
 
 (defalias 'nnheader-cancel-timer 'delete-itimer)
-(defalias 'nnheader-cancel-function-timers 'ignore)
 (defalias 'nnheader-string-as-multibyte 'identity)
 
 (provide 'nnheaderxm)
 
+;;; arch-tag: ee2b3387-d3ca-4de6-9b64-304d838706dd
 ;;; nnheaderxm.el ends here
Index: gnus/lisp/nnimap.el
diff -u gnus/lisp/nnimap.el:7.3 gnus/lisp/nnimap.el:7.24
--- gnus/lisp/nnimap.el:7.3	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/nnimap.el	Tue Apr 12 01:14:00 2005
@@ -1,5 +1,5 @@
 ;;; nnimap.el --- imap backend for Gnus
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <jas@pdc.kth.se>
@@ -211,6 +211,7 @@
 used (which currently is nil, unless you use a statistical
 spam.el test); if this variable is another non-nil value bodies
 will be downloaded."
+  :version "22.1"
   :group 'nnimap
   :type '(choice (const :tag "Let system decide" deault)
 		 boolean))
@@ -219,9 +220,10 @@
 
 (defcustom nnimap-close-asynchronous t
   "Close mailboxes asynchronously in `nnimap-close-group'.
-This means that errors cought by nnimap when closing the mailbox will
+This means that errors caught by nnimap when closing the mailbox will
 not prevent Gnus from updating the group status, which may be harmful.
 However, it increases speed."
+  :version "22.1"
   :type 'boolean
   :group 'nnimap)
 
@@ -230,6 +232,7 @@
 This increases the speed of closing mailboxes (quiting group) but may
 decrease the speed of selecting another mailbox later.  Re-selecting
 the same mailbox will be faster though."
+  :version "22.1"
   :type 'boolean
   :group 'nnimap)
 
@@ -242,6 +245,7 @@
 
 In summary, the default is O((1-p)*k+p*n) and changing it to nil makes
 it O(n).  If p is small, then the default is probably faster."
+  :version "22.1"
   :type 'boolean
   :group 'nnimap)
 
@@ -391,11 +395,13 @@
 					  (string :format "Login: %v"))
 				    (cons :format "%v"
 					  (const :format "" "password")
-					  (string :format "Password: %v")))))))
+					  (string :format "Password: %v"))))))
+  :group 'nnimap)
 
 (defcustom nnimap-prune-cache t
   "If non-nil, nnimap check whether articles still exist on server before using data stored in NOV cache."
-  :type 'boolean)
+  :type 'boolean
+  :group 'nnimap)
 
 (defvar nnimap-request-list-method 'imap-mailbox-list
   "Method to use to request a list of all folders from the server.
@@ -440,7 +446,11 @@
 		 (plist :key-type string :value-type string)))
 
 (defcustom nnimap-debug nil
-  "If non-nil, random debug spews are placed in *nnimap-debug* buffer."
+  "If non-nil, random debug spews are placed in *nnimap-debug* buffer.
+Note that username, passwords and other privacy sensitive
+information (such as e-mail) may be stored in the *nnimap-debug*
+buffer.  It is not written to disk, however.  Do not enable this
+variable unless you are comfortable with that."
   :group 'nnimap
   :type 'boolean)
 
@@ -469,6 +479,14 @@
   "Return buffer for SERVER, if nil use current server."
   (cadr (assoc (or server nnimap-current-server) nnimap-server-buffer-alist)))
 
+(defun nnimap-remove-server-from-buffer-alist (server list)
+  "Remove SERVER from LIST."
+  (let (l)
+    (dolist (e list)
+      (unless (equal server (car-safe e))
+	(push e l)))
+    l))
+
 (defun nnimap-possibly-change-server (server)
   "Return buffer for SERVER, changing the current server as a side-effect.
 If SERVER is nil, uses the current server."
@@ -587,7 +605,7 @@
        (with-temp-buffer
 	 (buffer-disable-undo)
 	 (insert headers)
-	 (let ((head (nnheader-parse-naked-head)))
+	 (let ((head (nnheader-parse-naked-head uid)))
 	   (mail-header-set-number head uid)
 	   (mail-header-set-chars head chars)
 	   (mail-header-set-lines head lines)
@@ -692,6 +710,8 @@
 			    (if (imap-capability 'IMAP4rev1)
 				(format "BODY.PEEK[HEADER.FIELDS %s])" headers)
 			      (format "RFC822.HEADER.LINES %s)" headers)))))
+      (with-current-buffer nntp-server-buffer
+	(sort-numeric-fields 1 (point-min) (point-max)))
       (and (numberp nnmail-large-newsgroup)
 	   (> nnimap-length nnmail-large-newsgroup)
 	   (nnheader-message 6 "nnimap: Retrieving headers...done")))))
@@ -753,19 +773,34 @@
 		(imap-capability 'IMAP4rev1 nnimap-server-buffer))
       (imap-close nnimap-server-buffer)
       (nnheader-report 'nnimap "Server %s is not IMAP4 compliant" server))
-    (let* ((list (gnus-parse-netrc nnimap-authinfo-file))
-	   (port (if nnimap-server-port
-		     (int-to-string nnimap-server-port)
-		   "imap"))
-	   (alist (or (gnus-netrc-machine list server port "imap")
-		      (gnus-netrc-machine list
-					  (or nnimap-server-address
-					      nnimap-address)
-					  port "imap")))
-	   (user (gnus-netrc-get alist "login"))
-	   (passwd (gnus-netrc-get alist "password")))
+    (let* ((list (progn (gnus-message 7 "Parsing authinfo file `%s'."
+				      nnimap-authinfo-file)
+			(netrc-parse nnimap-authinfo-file)))
+ 	   (port (if nnimap-server-port
+ 		     (int-to-string nnimap-server-port)
+ 		   "imap"))
+	   (user (netrc-machine-user-or-password 
+		  "login"
+		  list
+		  (list server
+			(or nnimap-server-address
+			    nnimap-address))
+		  (list port)
+		  (list "imap" "imaps")))
+	   (passwd (netrc-machine-user-or-password 
+		    "password"
+		    list
+		    (list server
+			  (or nnimap-server-address
+			      nnimap-address))
+		    (list port)
+		    (list "imap" "imaps"))))
       (if (imap-authenticate user passwd nnimap-server-buffer)
-	  (prog1
+	  (prog2
+	      (setq nnimap-server-buffer-alist
+		    (nnimap-remove-server-from-buffer-alist 
+		     server
+		     nnimap-server-buffer-alist))
 	      (push (list server nnimap-server-buffer)
 		    nnimap-server-buffer-alist)
 	    (imap-id nnimap-id nnimap-server-buffer)
@@ -795,7 +830,7 @@
     (or (and nnimap-server-buffer
 	     (imap-opened nnimap-server-buffer)
 	     (if (with-current-buffer nnimap-server-buffer
-		   (memq imap-state '(auth select examine)))
+		   (memq imap-state '(auth selected examine)))
 		 t
 	       (imap-close nnimap-server-buffer)
 	       (nnimap-open-connection server)))
@@ -822,7 +857,9 @@
       (setq nnimap-server-buffer nil
 	    nnimap-current-server nil
 	    nnimap-server-buffer-alist
-	    (delq server nnimap-server-buffer-alist)))
+	    (nnimap-remove-server-from-buffer-alist 
+	     server
+	     nnimap-server-buffer-alist)))
     (nnoo-close-server 'nnimap server)))
 
 (deffoo nnimap-request-close ()
@@ -840,6 +877,11 @@
     (nnoo-status-message 'nnimap server)))
 
 (defun nnimap-demule (string)
+  ;; BEWARE: we used to use string-as-multibyte here which is braindead
+  ;; because it will turn accidental emacs-mule-valid byte sequences
+  ;; into multibyte chars.  --Stef
+  ;; Reverted, braindead got 7.5 out of 10 on imdb, so it can't be
+  ;; that bad. --Simon
   (funcall (if (and (fboundp 'string-as-multibyte)
 		    (subrp (symbol-function 'string-as-multibyte)))
 	       'string-as-multibyte
@@ -848,7 +890,7 @@
 
 (defun nnimap-make-callback (article gnus-callback buffer)
   "Return a callback function."
-  `(lambda () 
+  `(lambda ()
      (nnimap-callback ,article ,gnus-callback ,buffer)))
 
 (defun nnimap-callback (article gnus-callback buffer)
@@ -898,8 +940,8 @@
 				   (imap-error-text nnimap-server-buffer))
 		(cons group article)))
 	  (add-hook 'imap-fetch-data-hook
-		    (nnimap-make-callback article 
-					  nnheader-callback-function 
+		    (nnimap-make-callback article
+					  nnheader-callback-function
 					  nntp-server-buffer))
 	  (imap-fetch-asynch article part nil nnimap-server-buffer)
 	  (cons group article))))))
@@ -952,7 +994,7 @@
   "Update the unseen count in `nnimap-mailbox-info'."
   (gnus-sethash
    (gnus-group-prefixed-name group server)
-   (let ((old (gnus-gethash-safe (gnus-group-prefixed-name group server) 
+   (let ((old (gnus-gethash-safe (gnus-group-prefixed-name group server)
 				 nnimap-mailbox-info)))
      (list (nth 0 old) (nth 1 old)
 	   (imap-mailbox-status group 'unseen nnimap-server-buffer)
@@ -1065,7 +1107,7 @@
 			     'asyncgroups
 			   'slowgroups)
 			 (list group (imap-mailbox-status-asynch
-				      group '(uidvalidity uidnext unseen) 
+				      group '(uidvalidity uidnext unseen)
 				      nnimap-server-buffer))))
 	  (dolist (asyncgroup asyncgroups)
 	    (let ((group (nth 0 asyncgroup))
@@ -1076,7 +1118,7 @@
 			      (nth 0 (gnus-gethash (gnus-group-prefixed-name
 						    group server)
 						   nnimap-mailbox-info))
-			      (imap-mailbox-get 'uidvalidity group 
+			      (imap-mailbox-get 'uidvalidity group
 						nnimap-server-buffer)))
 			(not (string=
 			      (nth 1 (gnus-gethash (gnus-group-prefixed-name
@@ -1332,7 +1374,7 @@
 			     (let (msgid)
 			       (and (setq msgid
 					  (nnmail-fetch-field "message-id"))
-				    (nnmail-cache-insert msgid 
+				    (nnmail-cache-insert msgid
 							 to-group
 							 (nnmail-fetch-field "subject"))))))
 			 ;; Add the group-art list to the history list.
@@ -1400,8 +1442,10 @@
 	(list (- ms 1) (+ (expt 2 16) ls))
       (list ms ls))))
 
+(eval-when-compile (require 'parse-time))
 (defun nnimap-date-days-ago (daysago)
   "Return date, in format \"3-Aug-1998\", for DAYSAGO days ago."
+  (require 'parse-time)
   (let* ((time (nnimap-time-substract (current-time) (days-to-time daysago)))
 	 (date (format-time-string
 		(format "%%d-%s-%%Y"
@@ -1440,12 +1484,12 @@
 			nnmail-expiry-wait)))
 	  (cond ((or force (eq days 'immediate))
 		 (let ((oldarts (imap-search
-				 (concat "UID " 
+				 (concat "UID "
 					 (imap-range-to-message-set artseq)))))
 		   (when oldarts
 		     (nnimap-expiry-target oldarts group server)
 		     (when (imap-message-flags-add
-			    (imap-range-to-message-set 
+			    (imap-range-to-message-set
 			     (gnus-compress-sequence oldarts)) "\\Deleted")
 		       (setq articles (gnus-set-difference
 				       articles oldarts))))))
@@ -1459,15 +1503,15 @@
 		   (when oldarts
 		     (nnimap-expiry-target oldarts group server)
 		     (when (imap-message-flags-add
-			    (imap-range-to-message-set 
+			    (imap-range-to-message-set
 			     (gnus-compress-sequence oldarts)) "\\Deleted")
-		       (setq articles (gnus-set-difference 
+		       (setq articles (gnus-set-difference
 				       articles oldarts)))))))))))
   ;; return articles not deleted
   articles)
 
-(deffoo nnimap-request-move-article (article group server
-					     accept-form &optional last)
+(deffoo nnimap-request-move-article (article group server accept-form 
+					     &optional last move-is-internal)
   (when (nnimap-possibly-change-server server)
     (save-excursion
       (let ((buf (get-buffer-create " *nnimap move*"))
@@ -1475,7 +1519,13 @@
 	    (nnimap-current-move-group group)
 	    (nnimap-current-move-server nnimap-current-server)
 	    result)
-	(and (nnimap-request-article article group server)
+	(gnus-message 10 "nnimap-request-move-article: this is an %s move"
+		      (if move-is-internal
+			  "internal"
+			"external"))
+	;; request the article only when the move is NOT internal
+	(and (or move-is-internal
+		 (nnimap-request-article article group server))
 	     (save-excursion
 	       (set-buffer buf)
 	       (buffer-disable-undo (current-buffer))
@@ -1705,4 +1755,5 @@
 
 (provide 'nnimap)
 
+;; arch-tag: 2b001f20-3ff9-4094-a0ad-46807c1ba70b
 ;;; nnimap.el ends here
Index: gnus/lisp/nnkiboze.el
diff -u gnus/lisp/nnkiboze.el:7.3 gnus/lisp/nnkiboze.el:7.4
--- gnus/lisp/nnkiboze.el:7.3	Sat Jan 10 05:37:13 2004
+++ gnus/lisp/nnkiboze.el	Thu May 20 10:02:40 2004
@@ -389,4 +389,5 @@
 
 (provide 'nnkiboze)
 
+;;; arch-tag: 66068271-bdc9-4801-bcde-779702e73a05
 ;;; nnkiboze.el ends here
Index: gnus/lisp/nnlistserv.el
diff -u gnus/lisp/nnlistserv.el:7.2 gnus/lisp/nnlistserv.el:7.4
--- gnus/lisp/nnlistserv.el:7.2	Tue Feb  3 17:55:53 2004
+++ gnus/lisp/nnlistserv.el	Mon Aug 30 20:13:58 2004
@@ -1,6 +1,6 @@
 ;;; nnlistserv.el --- retrieving articles via web mailing list archives
 
-;; Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news, mail
@@ -149,4 +149,5 @@
 
 (provide 'nnlistserv)
 
+;;; arch-tag: 7705176f-d332-4a5e-a520-d0d319445617
 ;;; nnlistserv.el ends here
Index: gnus/lisp/nnmail.el
diff -u gnus/lisp/nnmail.el:7.8 gnus/lisp/nnmail.el:7.16
--- gnus/lisp/nnmail.el:7.8	Thu Apr 15 08:42:23 2004
+++ gnus/lisp/nnmail.el	Sun Feb 13 05:44:41 2005
@@ -1,5 +1,5 @@
 ;;; nnmail.el --- mail support functions for the Gnus mail backends
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -118,6 +118,7 @@
 (defcustom nnmail-split-fancy-with-parent-ignore-groups nil
   "Regexp that matches group names to be ignored when applying `nnmail-split-fancy-with-parent'.
 This can also be a list of regexps."
+  :version "22.1"
   :group 'nnmail-split
   :type '(choice (const :tag "none" nil)
 		 (regexp :value ".*")
@@ -126,6 +127,7 @@
 (defcustom nnmail-cache-ignore-groups nil
   "Regexp that matches group names to be ignored when inserting message ids into the cache (`nnmail-cache-insert').
 This can also be a list of regexps."
+  :version "22.1"
   :group 'nnmail-split
   :type '(choice (const :tag "none" nil)
 		 (regexp :value ".*")
@@ -223,6 +225,7 @@
 articles containing the sting \"IMPORTANT\" in the Subject header will
 be expired to the group \"nnfolder:IMPORTANT.YYYY.MMM\"; and
 everything else will be expired to \"nnfolder:Archive-YYYY\"."
+  :version "22.1"
   :group 'nnmail-expire
   :type '(repeat (list (choice :tag "Match against"
 			       (string :tag "Header")
@@ -351,6 +354,7 @@
 
 (defcustom nnmail-spool-hook nil
   "*A hook called when a new article is spooled."
+  :version "22.1"
   :group 'nnmail
   :type 'hook)
 
@@ -365,14 +369,14 @@
 (define-widget 'nnmail-lazy 'default
   "Base widget for recursive datastructures.
 
-This is copy of the `lazy' widget in Emacs 21.4 provided for compatibility."
+This is copy of the `lazy' widget in Emacs 22.1 provided for compatibility."
   :format "%{%t%}: %v"
   :convert-widget 'widget-value-convert-widget
   :value-create (lambda (widget)
                   (let ((value (widget-get widget :value))
                         (type (widget-get widget :type)))
-                    (widget-put widget :children 
-                                (list (widget-create-child-value 
+                    (widget-put widget :children
+                                (list (widget-create-child-value
                                        widget (widget-convert type) value)))))
   :value-delete 'widget-children-value-delete
   :value-get (lambda (widget)
@@ -404,7 +408,7 @@
                       (list :tag "Function with fixed arguments (:)"
                             :value (:)
                             (const :format "" :value :)
-                            function 
+                            function
                             (editable-list :inline t (sexp :tag "Arg"))
                             )
                       (list :tag "Function with split arguments (!)"
@@ -412,11 +416,11 @@
                             (const :format "" !)
                             function
                             (editable-list :inline t nnmail-split-fancy))
-                      (list :tag "Field match" 
-                            (choice :tag "Field" 
+                      (list :tag "Field match"
+                            (choice :tag "Field"
                                     regexp symbol)
                             (choice :tag "Match"
-                                    regexp 
+                                    regexp
                                     (symbol :value mail))
                             (repeat :inline t
                                     :tag "Restrictions"
@@ -549,7 +553,7 @@
   :group 'nnmail
   :type '(repeat symbol))
 
-(defcustom nnmail-split-header-length-limit 512
+(defcustom nnmail-split-header-length-limit 2048
   "Header lines longer than this limit are excluded from the split function."
   :version "21.1"
   :group 'nnmail
@@ -557,11 +561,13 @@
 
 (defcustom nnmail-mail-splitting-charset nil
   "Default charset to be used when splitting incoming mail."
+  :version "22.1"
   :group 'nnmail
   :type 'symbol)
 
 (defcustom nnmail-mail-splitting-decodes nil
   "Whether the nnmail splitting functionality should MIME decode headers."
+  :version "22.1"
   :group 'nnmail
   :type 'boolean)
 
@@ -571,6 +577,15 @@
 by \"\\=\\<...\\>\".  If this variable is true, they are not implicitly\
  surrounded
 by anything."
+  :version "22.1"
+  :group 'nnmail
+  :type 'boolean)
+
+(defcustom nnmail-split-lowercase-expanded t
+  "Whether to lowercase expanded entries (i.e. \\N) when splitting mails.
+This avoids the creation of multiple groups when users send to an address
+using different case (i.e. mailing-list@domain vs Mailing-List@Domain)."
+  :version "22.1"
   :group 'nnmail
   :type 'boolean)
 
@@ -1464,7 +1479,10 @@
 	      (setq N 0)
 	    (setq N (- c ?0)))
 	  (when (match-beginning N)
-	    (push (buffer-substring (match-beginning N) (match-end N))
+	    (push (if nnmail-split-lowercase-expanded
+		      (downcase (buffer-substring (match-beginning N)
+						  (match-end N)))
+		    (buffer-substring (match-beginning N) (match-end N)))
 		  expanded))))
       (setq pos (1+ pos)))
     (if did-expand
@@ -1557,7 +1575,7 @@
   (when (stringp id)
     ;; this will handle cases like `B r' where the group is nil
     (let ((grp (or grp gnus-newsgroup-name "UNKNOWN")))
-      (run-hook-with-args 'nnmail-spool-hook 
+      (run-hook-with-args 'nnmail-spool-hook
 			  id grp subject sender))
     (when nnmail-treat-duplicates
       ;; Store some information about the group this message is written
@@ -1580,7 +1598,7 @@
 	      (unless (and regexp (string-match regexp grp))
 		(insert id "\t" grp "\n")))
 	  (insert id "\n"))))))
-  
+
 (defun nnmail-cache-primary-mail-backend ()
   (let ((be-list (cons gnus-select-method gnus-secondary-select-methods))
 	(be nil)
@@ -1951,14 +1969,12 @@
   (with-output-to-temp-buffer "*nnmail split history*"
     (with-current-buffer standard-output
       (fundamental-mode))		; for Emacs 20.4+
-    (let ((history nnmail-split-history)
-	  elem)
-      (while (setq elem (pop history))
+      (dolist (elem nnmail-split-history)
 	(princ (mapconcat (lambda (ga)
 			    (concat (car ga) ":" (int-to-string (cdr ga))))
 			  elem
 			  ", "))
-	(princ "\n")))))
+	(princ "\n"))))
 
 (defun nnmail-purge-split-history (group)
   "Remove all instances of GROUP from `nnmail-split-history'."
@@ -1991,4 +2007,5 @@
 
 (provide 'nnmail)
 
+;;; arch-tag: fe8f671a-50db-428a-bb5d-f00462f72ed7
 ;;; nnmail.el ends here
Index: gnus/lisp/nnmaildir.el
diff -u gnus/lisp/nnmaildir.el:7.3 gnus/lisp/nnmaildir.el:7.10
--- gnus/lisp/nnmaildir.el:7.3	Sun Jan 25 06:26:46 2004
+++ gnus/lisp/nnmaildir.el	Wed Mar 30 10:17:05 2005
@@ -41,6 +41,8 @@
 ;;   copying, restoring, etc.
 ;;
 ;; Todo:
+;; * When moving an article for expiry, copy all the marks except 'expire
+;;   from the original article.
 ;; * Add a hook for when moving messages from new/ to cur/, to support
 ;;   nnmail's duplicate detection.
 ;; * Improve generated Xrefs, so crossposts are detectable.
@@ -54,6 +56,7 @@
    (put 'nnmaildir--with-work-buffer 'lisp-indent-function 0)
    (put 'nnmaildir--with-nov-buffer  'lisp-indent-function 0)
    (put 'nnmaildir--with-move-buffer 'lisp-indent-function 0)
+   (put 'nnmaildir--condcase         'lisp-indent-function 2)
    )
 ]
 
@@ -302,9 +305,18 @@
       (setq pos (match-end 0))))
   string)
 
+(defmacro nnmaildir--condcase (errsym body &rest handler)
+  `(condition-case ,errsym
+       (let ((system-messages-locale "C")) ,body)
+     (error . ,handler)))
+
 (defun nnmaildir--emlink-p (err)
   (and (eq (car err) 'file-error)
-       (string= (caddr err) "too many links")))
+       (string= (downcase (caddr err)) "too many links")))
+
+(defun nnmaildir--enoent-p (err)
+  (and (eq (car err) 'file-error)
+       (string= (downcase (caddr err)) "no such file or directory")))
 
 (defun nnmaildir--eexist-p (err)
   (eq (car err) 'file-already-exists))
@@ -336,21 +348,20 @@
 	    ;; and failed.
 	    (signal 'error `("Corrupt internal nnmaildir data" ,path-open)))
 	(setq path-link (concat numdir (number-to-string number-link)))
-	(condition-case err
+	(nnmaildir--condcase err
 	    (progn
 	      (add-name-to-file path-open path-link)
 	      (throw 'return number-link))
-	  (error
-	   (cond
-	    ((nnmaildir--emlink-p err)
-	     (setq make-new-file t
-		   number-open number-link))
-	    ((nnmaildir--eexist-p err)
-	     (let ((attr (file-attributes path-link)))
-	       (if (/= (nth 10 attr) ino-open)
-		   (setq number-open number-link
-			 number-link 0))))
-	    (t (signal (car err) (cdr err))))))))))
+	  (cond
+	   ((nnmaildir--emlink-p err)
+	    (setq make-new-file t
+		  number-open number-link))
+	   ((nnmaildir--eexist-p err)
+	    (let ((attr (file-attributes path-link)))
+	      (if (/= (nth 10 attr) ino-open)
+		  (setq number-open number-link
+			number-link 0))))
+	   (t (signal (car err) (cdr err)))))))))
 
 (defun nnmaildir--update-nov (server group article)
   (let ((nnheader-file-coding-system 'binary)
@@ -1019,7 +1030,7 @@
 	(throw 'return nil))
       (when (save-match-data (string-match "[\0/\t]" gname))
 	(setf (nnmaildir--srv-error nnmaildir--cur-server)
-	      (concat "Illegal characters (null, tab, or /) in group name: "
+	      (concat "Invalid characters (null, tab, or /) in group name: "
 		      gname))
 	(throw 'return nil))
       (setq groups (nnmaildir--srv-groups nnmaildir--cur-server))
@@ -1064,7 +1075,7 @@
 	(throw 'return nil))
       (when (save-match-data (string-match "[\0/\t]" new-name))
 	(setf (nnmaildir--srv-error nnmaildir--cur-server)
-	      (concat "Illegal characters (null, tab, or /) in group name: "
+	      (concat "Invalid characters (null, tab, or /) in group name: "
 		      new-name))
 	(throw 'return nil))
       (if (string-equal gname new-name) (throw 'return t))
@@ -1294,7 +1305,7 @@
       t)))
 
 (defun nnmaildir-request-move-article (article gname server accept-form
-					       &optional last)
+					       &optional last move-is-internal)
   (let ((group (nnmaildir--prepare server gname))
 	pgname suffix result nnmaildir--file deactivate-mark)
     (catch 'return
@@ -1379,13 +1390,12 @@
 					  nnmaildir--cur-server)
 					"24-hour timer expired")
 				  (throw 'return nil))))
-      (condition-case nil
-	  (add-name-to-file nnmaildir--file tmpfile)
+      (condition-case nil (add-name-to-file nnmaildir--file tmpfile)
 	(error
 	 (write-region (point-min) (point-max) tmpfile nil 'no-message nil
 		       'excl)
 	 (unix-sync))) ;; no fsync :(
-      (cancel-timer 24h)
+      (nnheader-cancel-timer 24h)
       (condition-case err
 	  (add-name-to-file tmpfile curfile)
 	(error
@@ -1510,7 +1520,12 @@
 			(not (string-equal target pgname))) ;; Move it.
 	       (erase-buffer)
 	       (nnheader-insert-file-contents nnmaildir--file)
-	       (gnus-request-accept-article target nil nil 'no-encode))
+	       (let ((group-art (gnus-request-accept-article
+				 target nil nil 'no-encode)))
+		 (when (consp group-art)
+		   ;; Maybe also copy: dormant forward reply save tick
+		   ;; (gnus-add-mark? gnus-request-set-mark?)
+		   (gnus-group-mark-article-read target (cdr group-art)))))
 	     (if (equal target pgname)
 		 ;; Leave it here.
 		 (setq didnt (cons (nnmaildir--art-num article) didnt))
@@ -1540,22 +1555,19 @@
 	       (setq mdir (nnmaildir--subdir marksdir (symbol-name mark))
 		     permarkfile (concat mdir ":")
 		     mfile (concat mdir (nnmaildir--art-prefix article)))
-	       (condition-case err
-		   (add-name-to-file permarkfile mfile)
-		 (error
-		  (cond
-		   ((nnmaildir--eexist-p err))
-		   ((and (eq (car err) 'file-error)
-			 (string= (caddr err) "no such file or directory"))
-		    (nnmaildir--mkdir mdir)
-		    (nnmaildir--mkfile permarkfile)
-		    (add-name-to-file permarkfile mfile))
-		   ((nnmaildir--emlink-p err)
-		    (let ((permarkfilenew (concat permarkfile "{new}")))
-		      (nnmaildir--mkfile permarkfilenew)
-		      (rename-file permarkfilenew permarkfile 'replace)
-		      (add-name-to-file permarkfile mfile)))
-		   (t (signal (car err) (cdr err)))))))
+	       (nnmaildir--condcase err (add-name-to-file permarkfile mfile)
+		 (cond
+		  ((nnmaildir--eexist-p err))
+		  ((nnmaildir--enoent-p err)
+		   (nnmaildir--mkdir mdir)
+		   (nnmaildir--mkfile permarkfile)
+		   (add-name-to-file permarkfile mfile))
+		  ((nnmaildir--emlink-p err)
+		   (let ((permarkfilenew (concat permarkfile "{new}")))
+		     (nnmaildir--mkfile permarkfilenew)
+		     (rename-file permarkfilenew permarkfile 'replace)
+		     (add-name-to-file permarkfile mfile)))
+		  (t (signal (car err) (cdr err))))))
 	     todo-marks))
 	  set-action (lambda (article)
 		       (funcall add-action)
@@ -1668,4 +1680,5 @@
 ;; fill-column: 77
 ;; End:
 
+;;; arch-tag: 0c4e44cd-dfde-4040-888e-5597ec771849
 ;;; nnmaildir.el ends here
Index: gnus/lisp/nnmbox.el
diff -u gnus/lisp/nnmbox.el:7.1 gnus/lisp/nnmbox.el:7.3
--- gnus/lisp/nnmbox.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/nnmbox.el	Thu Mar  3 19:00:15 2005
@@ -284,7 +284,7 @@
       (nconc rest articles))))
 
 (deffoo nnmbox-request-move-article
-    (article group server accept-form &optional last)
+    (article group server accept-form &optional last move-is-internal)
   (let ((buf (get-buffer-create " *nnmbox move*"))
 	result)
     (and
@@ -695,4 +695,5 @@
 
 (provide 'nnmbox)
 
+;;; arch-tag: 611dd95f-be37-413a-b3ae-8b059ba93659
 ;;; nnmbox.el ends here
Index: gnus/lisp/nnmh.el
diff -u gnus/lisp/nnmh.el:7.2 gnus/lisp/nnmh.el:7.5
--- gnus/lisp/nnmh.el:7.2	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/nnmh.el	Thu Mar  3 19:00:15 2005
@@ -211,7 +211,6 @@
   (setq dir (expand-file-name dir))
   ;; Recurse down all directories.
   (let ((dirs (and (file-readable-p dir)
-		   (> (nth 1 (file-attributes (file-chase-links dir))) 2)
 		   (nnheader-directory-files dir t nil t)))
 	rdir)
     ;; Recurse down directories.
@@ -289,8 +288,8 @@
 (deffoo nnmh-close-group (group &optional server)
   t)
 
-(deffoo nnmh-request-move-article (article group server
-					   accept-form &optional last)
+(deffoo nnmh-request-move-article (article group server accept-form 
+					   &optional last move-is-internal)
   (let ((buf (get-buffer-create " *nnmh move*"))
 	result)
     (and
@@ -578,4 +577,5 @@
 
 (provide 'nnmh)
 
+;;; arch-tag: 36c12a98-3bad-44b3-9953-628078ef0e04
 ;;; nnmh.el ends here
Index: gnus/lisp/nnml.el
diff -u gnus/lisp/nnml.el:7.4 gnus/lisp/nnml.el:7.8
--- gnus/lisp/nnml.el:7.4	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/nnml.el	Thu Mar  3 19:00:16 2005
@@ -335,7 +335,7 @@
     (nconc rest articles)))
 
 (deffoo nnml-request-move-article
-    (article group server accept-form &optional last)
+    (article group server accept-form &optional last move-is-internal)
   (let ((buf (get-buffer-create " *nnml move*"))
 	result)
     (nnml-possibly-change-directory group server)
@@ -445,10 +445,8 @@
 	    nnml-current-directory t
 	    (concat nnheader-numerical-short-files
 		    "\\|" (regexp-quote nnml-nov-file-name) "$"
-		    "\\|" (regexp-quote nnml-marks-file-name) "$")))
-	  article)
-      (while articles
-	(setq article (pop articles))
+		    "\\|" (regexp-quote nnml-marks-file-name) "$"))))
+      (dolist (article articles)
 	(when (file-writable-p article)
 	  (nnheader-message 5 "Deleting article %s in %s..." article group)
 	  (funcall nnmail-delete-file-function article))))
@@ -473,12 +471,10 @@
       ;; We move the articles file by file instead of renaming
       ;; the directory -- there may be subgroups in this group.
       ;; One might be more clever, I guess.
-      (let ((files (nnheader-article-to-file-alist old-dir)))
-	(while files
-	  (rename-file
-	   (concat old-dir (cdar files))
-	   (concat new-dir (cdar files)))
-	  (pop files)))
+      (dolist (file (nnheader-article-to-file-alist old-dir))
+	(rename-file
+	 (concat old-dir (cdr file))
+	 (concat new-dir (cdr file))))
       ;; Move .overview file.
       (let ((overview (concat old-dir nnml-nov-file-name)))
 	(when (file-exists-p overview)
@@ -770,12 +766,10 @@
   (unless (member (file-truename dir) seen)
     (push (file-truename dir) seen)
     ;; We descend recursively
-    (let ((dirs (directory-files dir t nil t))
-	  dir)
-      (while (setq dir (pop dirs))
-	(when (and (not (string-match "^\\." (file-name-nondirectory dir)))
-		   (file-directory-p dir))
-	  (nnml-generate-nov-databases-1 dir seen))))
+    (dolist (dir (directory-files dir t nil t))
+      (when (and (not (string-match "^\\." (file-name-nondirectory dir)))
+		 (file-directory-p dir))
+	(nnml-generate-nov-databases-1 dir seen)))
     ;; Do this directory.
     (let ((files (sort (nnheader-article-to-file-alist dir)
 		       'car-less-than-car)))
@@ -802,9 +796,7 @@
     (push (list group
 		(cons (or (caar files) (1+ last))
 		      (max last
-			   (or (let ((f files))
-				 (while (cdr f) (setq f (cdr f)))
-				 (caar f))
+			   (or (caar (last files))
 			       0))))
 	  nnml-group-alist)))
 
@@ -1018,4 +1010,5 @@
 
 (provide 'nnml)
 
+;;; arch-tag: 52c97dc3-9735-45de-b439-9e4d23b52004
 ;;; nnml.el ends here
Index: gnus/lisp/nnnil.el
diff -u gnus/lisp/nnnil.el:7.2 gnus/lisp/nnnil.el:7.3
--- gnus/lisp/nnnil.el:7.2	Thu Feb 12 03:01:53 2004
+++ gnus/lisp/nnnil.el	Thu May 20 10:02:40 2004
@@ -77,3 +77,5 @@
   nil)
 
 (provide 'nnnil)
+
+;;; arch-tag: a982a1a3-bc5e-4fb1-a233-d7657a3e3257
Index: gnus/lisp/nnoo.el
diff -u gnus/lisp/nnoo.el:7.1 gnus/lisp/nnoo.el:7.2
--- gnus/lisp/nnoo.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/nnoo.el	Thu May 20 10:02:40 2004
@@ -320,4 +320,5 @@
 
 (provide 'nnoo)
 
+;;; arch-tag: 0196b5ed-6f34-4778-a455-73a971f837e7
 ;;; nnoo.el ends here
Index: gnus/lisp/nnrss.el
diff -u gnus/lisp/nnrss.el:7.11 gnus/lisp/nnrss.el:7.31
--- gnus/lisp/nnrss.el:7.11	Thu Apr 29 02:42:02 2004
+++ gnus/lisp/nnrss.el	Fri Apr 22 12:47:07 2005
@@ -1,5 +1,5 @@
 ;;; nnrss.el --- interfacing with RSS
-;; Copyright (C) 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Keywords: RSS
@@ -36,9 +36,11 @@
 (require 'time-date)
 (require 'rfc2231)
 (require 'mm-url)
+(require 'rfc2047)
+(require 'mml)
 (eval-when-compile
   (ignore-errors
-    (require 'xml)))
+   (require 'xml)))
 (eval '(require 'xml))
 
 (nnoo-declare nnrss)
@@ -78,11 +80,29 @@
 ENTRY is the record of the current headline.  GROUP is the group name.
 ARTICLE is the article number of the current headline.")
 
+(defvar nnrss-file-coding-system mm-universal-coding-system
+  "Coding system used when reading and writing files.")
+
+(defvar nnrss-compatible-encoding-alist '((iso-8859-1 . windows-1252))
+  "Alist of encodings and those supersets.
+The cdr of each element is used to decode data if it is available when
+the car is what the data specify as the encoding. Or, the car is used
+for decoding when the cdr that the data specify is not available.")
+
 (nnoo-define-basics nnrss)
 
 ;;; Interface functions
 
+(defsubst nnrss-format-string (string)
+  (gnus-replace-in-string string " *\n *" " "))
+
+(defun nnrss-decode-group-name (group)
+  (if (and group (mm-coding-system-p 'utf-8))
+      (setq group (mm-decode-coding-string group 'utf-8))
+    group))
+
 (deffoo nnrss-retrieve-headers (articles &optional group server fetch-old)
+  (setq group (nnrss-decode-group-name group))
   (nnrss-possibly-change-group group server)
   (let (e)
     (save-excursion
@@ -91,21 +111,26 @@
       (dolist (article articles)
 	(if (setq e (assq article nnrss-group-data))
 	    (insert (number-to-string (car e)) "\t" ;; number
-		    (if (nth 3 e)
-			(nnrss-format-string (nth 3 e)) "")
-		    "\t" ;; subject
-		    (if (nth 4 e)
-			(nnrss-format-string (nth 4 e))
-		      "(nobody)")
-		    "\t" ;;from
+		    ;; subject
+		    (or (nth 3 e) "")
+		    "\t"
+		    ;; from
+		    (or (nth 4 e) "(nobody)")
+		    "\t"
+		    ;; date
 		    (or (nth 5 e) "")
-		    "\t" ;; date
+		    "\t"
+		    ;; id
 		    (format "<%d@%s.nnrss>" (car e) group)
-		    "\t" ;; id
-		    "\t" ;; refs
-		    "-1" "\t" ;; chars
-		    "-1" "\t" ;; lines
-		    "" "\t" ;; Xref
+		    "\t"
+		    ;; refs
+		    "\t"
+		    ;; chars
+		    "-1" "\t"
+		    ;; lines
+		    "-1" "\t"
+		    ;; Xref
+		    "" "\t"
 		    (if (and (nth 6 e)
 			     (memq nnrss-description-field
 				   nnmail-extra-headers))
@@ -126,69 +151,110 @@
   'nov)
 
 (deffoo nnrss-request-group (group &optional server dont-check)
+  (setq group (nnrss-decode-group-name group))
+  (nnheader-message 6 "nnrss: Requesting %s..." group)
   (nnrss-possibly-change-group group server)
-  (if dont-check
-      t
-    (nnrss-check-group group server)
-    (nnheader-report 'nnrss "Opened group %s" group)
-    (nnheader-insert
-     "211 %d %d %d %s\n" nnrss-group-max nnrss-group-min nnrss-group-max
-     (prin1-to-string group)
-     t)))
+  (prog1
+      (if dont-check
+	  t
+	(nnrss-check-group group server)
+	(nnheader-report 'nnrss "Opened group %s" group)
+	(nnheader-insert
+	 "211 %d %d %d %s\n" nnrss-group-max nnrss-group-min nnrss-group-max
+	 (prin1-to-string group)
+	 t))
+    (nnheader-message 6 "nnrss: Requesting %s...done" group)))
 
 (deffoo nnrss-close-group (group &optional server)
   t)
 
 (deffoo nnrss-request-article (article &optional group server buffer)
+  (setq group (nnrss-decode-group-name group))
+  (when (stringp article)
+    (setq article (if (string-match "\\`<\\([0-9]+\\)@" article)
+		      (string-to-number (match-string 1 article))
+		    0)))
   (nnrss-possibly-change-group group server)
   (let ((e (assq article nnrss-group-data))
-	(boundary "=-=-=-=-=-=-=-=-=-")
 	(nntp-server-buffer (or buffer nntp-server-buffer))
 	post err)
     (when e
-      (catch 'error
-	(with-current-buffer nntp-server-buffer
-	  (erase-buffer)
-	  (goto-char (point-min))
-	  (insert "Mime-Version: 1.0\nContent-Type: multipart/alternative; boundary=\"" boundary "\"\n")
-	  (if group
-	      (insert "Newsgroups: " group "\n"))
-	  (if (nth 3 e)
-	      (insert "Subject: " (nnrss-format-string (nth 3 e)) "\n"))
-	  (if (nth 4 e)
-	      (insert "From: " (nnrss-format-string (nth 4 e)) "\n"))
-	  (if (nth 5 e)
-	      (insert "Date: " (nnrss-format-string (nth 5 e)) "\n"))
-	  (insert "Message-ID: " (format "<%d@%s.nnrss>" (car e) group) "\n")
-	  (insert "\n")
-	  (let ((text (if (nth 6 e)
-			  (nnrss-string-as-multibyte (nth 6 e))))
-		(link (if (nth 2 e)
-			  (nth 2 e))))
-	    (insert "\n\n--" boundary "\nContent-Type: text/plain\n\n")
-	    (let ((point (point)))
-	      (when text
-		(insert text)
-		(goto-char point)
-		(while (re-search-forward "\n" nil t)
-		  (replace-match " "))
-		(goto-char (point-max))
-		(insert "\n\n"))
-	      (when link
-		(insert link)))
-	    (insert "\n\n--" boundary "\nContent-Type: text/html\n\n")
-	    (let ((point (point)))
-	      (when text
-		(insert "<html><head></head><body>\n" text "\n</body></html>")
-		(goto-char point)
-		(while (re-search-forward "\n" nil t)
-		  (replace-match " "))
-		(goto-char (point-max))
-		(insert "\n\n"))
-	      (when link
-		(insert "<p><a href=\"" link "\">link</a></p>\n"))))
-	  (when nnrss-content-function
-	    (funcall nnrss-content-function e group article)))))
+      (with-current-buffer nntp-server-buffer
+	(erase-buffer)
+	(if group
+	    (insert "Newsgroups: " group "\n"))
+	(if (nth 3 e)
+	    (insert "Subject: " (nth 3 e) "\n"))
+	(if (nth 4 e)
+	    (insert "From: " (nth 4 e) "\n"))
+	(if (nth 5 e)
+	    (insert "Date: " (nnrss-format-string (nth 5 e)) "\n"))
+	(let ((header (buffer-string))
+	      (text (if (nth 6 e)
+			(mapconcat 'identity
+				   (delete "" (split-string (nth 6 e) "\n+"))
+				   " ")))
+	      (link (nth 2 e))
+	      (enclosure (nth 7 e))
+	      ;; Enable encoding of Newsgroups header in XEmacs.
+	      (default-enable-multibyte-characters t)
+	      (rfc2047-header-encoding-alist
+	       (if (mm-coding-system-p 'utf-8)
+		   (cons '("Newsgroups" . utf-8)
+			 rfc2047-header-encoding-alist)
+		 rfc2047-header-encoding-alist))
+	      rfc2047-encode-encoded-words body)
+	  (when (or text link enclosure)
+	    (insert "\n")
+	    (insert "<#multipart type=alternative>\n"
+		    "<#part type=\"text/plain\">\n")
+	    (setq body (point))
+	    (when text
+	      (insert text "\n")
+	      (when (or link enclosure)
+		(insert "\n")))
+	    (when link
+	      (insert link "\n"))
+	    (when enclosure
+	      (insert (car enclosure) " "
+		      (nth 2 enclosure) " "
+		      (nth 3 enclosure) "\n"))
+	    (setq body (buffer-substring body (point)))
+	    (insert "<#/part>\n"
+		    "<#part type=\"text/html\">\n"
+		    "<html><head></head><body>\n")
+	    (when text
+	      (insert text "\n"))
+	    (when link
+	      (insert "<p><a href=\"" link "\">link</a></p>\n"))
+	    (when enclosure
+	      (insert "<p><a href=\"" (car enclosure) "\">"
+		      (cadr enclosure) "</a> " (nth 2 enclosure)
+		      " " (nth 3 enclosure) "</p>\n"))
+	    (insert "</body></html>\n"
+		    "<#/part>\n"
+		    "<#/multipart>\n"))
+	  (condition-case nil
+	      (mml-to-mime)
+	    (error
+	     (erase-buffer)
+	     (insert header
+		     "Content-Type: text/plain; charset=gnus-decoded\n"
+		     "Content-Transfer-Encoding: 8bit\n\n"
+		     body)
+	     (nnheader-message
+	      3 "Warning - there might be invalid characters"))))
+	(goto-char (point-min))
+	(search-forward "\n\n")
+	(forward-line -1)
+	(insert (format "Message-ID: <%d@%s.nnrss>\n"
+			(car e)
+			(let ((rfc2047-encoding-type 'mime)
+			      rfc2047-encode-max-chars)
+			  (rfc2047-encode-string
+			   (gnus-replace-in-string group "[\t\n ]+" "_")))))
+	(when nnrss-content-function
+	  (funcall nnrss-content-function e group article))))
     (cond
      (err
       (nnheader-report 'nnrss err))
@@ -211,6 +277,7 @@
 
 (deffoo nnrss-request-expire-articles
     (articles group &optional server force)
+  (setq group (nnrss-decode-group-name group))
   (nnrss-possibly-change-group group server)
   (let (e days not-expirable changed)
     (dolist (art articles)
@@ -228,12 +295,18 @@
     not-expirable))
 
 (deffoo nnrss-request-delete-group (group &optional force server)
+  (setq group (nnrss-decode-group-name group))
   (nnrss-possibly-change-group group server)
+  (let (elem)
+    ;; There may be two or more entries in `nnrss-group-alist' since
+    ;; this function didn't delete them formerly.
+    (while (setq elem (assoc group nnrss-group-alist))
+      (setq nnrss-group-alist (delq elem nnrss-group-alist))))
   (setq nnrss-server-data
 	(delq (assoc group nnrss-server-data) nnrss-server-data))
   (nnrss-save-server-data server)
   (ignore-errors
-    (delete-file (nnrss-make-filename group server)))
+   (delete-file (nnrss-make-filename group server)))
   t)
 
 (deffoo nnrss-request-list-newsgroups (&optional server)
@@ -250,34 +323,67 @@
 
 ;;; Internal functions
 (eval-when-compile (defun xml-rpc-method-call (&rest args)))
+
+(defun nnrss-get-encoding ()
+  "Return an encoding attribute specified in the current xml contents.
+If `nnrss-compatible-encoding-alist' specifies the compatible encoding,
+it is used instead.  If the xml contents doesn't specify the encoding,
+return `utf-8' which is the default encoding for xml if it is available,
+otherwise return nil."
+  (goto-char (point-min))
+  (if (re-search-forward
+       "<\\?[^>]*encoding=\\(?:\"\\([^\">]+\\)\"\\|'\\([^'>]+\\)'\\)"
+       nil t)
+      (let ((encoding (intern (downcase (or (match-string 1)
+					    (match-string 2))))))
+	(or
+	 (mm-coding-system-p (cdr (assq encoding
+					nnrss-compatible-encoding-alist)))
+	 (mm-coding-system-p encoding)
+	 (mm-coding-system-p (car (rassq encoding
+					 nnrss-compatible-encoding-alist)))))
+    (mm-coding-system-p 'utf-8)))
+
 (defun nnrss-fetch (url &optional local)
   "Fetch URL and put it in a the expected Lisp structure."
-  (with-temp-buffer
-  ;some CVS versions of url.el need this to close the connection quickly
-    (let* (xmlform htmlform)
+  (mm-with-unibyte-buffer
+    ;;some CVS versions of url.el need this to close the connection quickly
+    (let (cs xmlform htmlform)
       ;; bit o' work necessary for w3 pre-cvs and post-cvs
       (if local
 	  (let ((coding-system-for-read 'binary))
 	    (insert-file-contents url))
-	(mm-url-insert url))
+	;; FIXME: shouldn't binding `coding-system-for-read' be moved
+	;; to `mm-url-insert'?
+	(let ((coding-system-for-read 'binary))
+	  (mm-url-insert url)))
+      (nnheader-remove-cr-followed-by-lf)
+      ;; Decode text according to the encoding attribute.
+      (when (setq cs (nnrss-get-encoding))
+	(mm-decode-coding-region (point-min) (point-max) cs)
+	(mm-enable-multibyte))
+      (goto-char (point-min))
 
-;; Because xml-parse-region can't deal with anything that isn't
-;; xml and w3-parse-buffer can't deal with some xml, we have to
-;; parse with xml-parse-region first and, if that fails, parse
-;; with w3-parse-buffer.  Yuck.  Eventually, someone should find out
-;; why w3-parse-buffer fails to parse some well-formed xml and
-;; fix it.
-
-    (condition-case err
-	(setq xmlform (xml-parse-region (point-min) (point-max)))
-      (error (if (fboundp 'w3-parse-buffer)
-		 (setq htmlform (caddar (w3-parse-buffer
-					 (current-buffer))))
-	       (message "nnrss: Not valid XML and w3 parse not available (%s)"
-			url))))
-    (if htmlform
-	htmlform
-      xmlform))))
+      ;; Because xml-parse-region can't deal with anything that isn't
+      ;; xml and w3-parse-buffer can't deal with some xml, we have to
+      ;; parse with xml-parse-region first and, if that fails, parse
+      ;; with w3-parse-buffer.  Yuck.  Eventually, someone should find out
+      ;; why w3-parse-buffer fails to parse some well-formed xml and
+      ;; fix it.
+
+      (condition-case err1
+	  (setq xmlform (xml-parse-region (point-min) (point-max)))
+	(error
+	 (condition-case err2
+	     (setq htmlform (caddar (w3-parse-buffer
+				     (current-buffer))))
+	   (error
+	    (message "\
+nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
+		     url err1 err2)))))
+      (if htmlform
+	  htmlform
+	xmlform))))
 
 (defun nnrss-possibly-change-group (&optional group server)
   (when (and server
@@ -290,9 +396,8 @@
 (defvar nnrss-extra-categories '(nnrss-snarf-moreover-categories))
 
 (defun nnrss-generate-active ()
-  (if (y-or-n-p "Fetch extra categories? ")
-      (dolist (func nnrss-extra-categories)
-	(funcall func)))
+  (when (y-or-n-p "Fetch extra categories? ")
+    (mapc 'funcall nnrss-extra-categories))
   (save-excursion
     (set-buffer nntp-server-buffer)
     (erase-buffer)
@@ -308,14 +413,23 @@
   (setq nnrss-server-data nil)
   (let ((file (nnrss-make-filename "nnrss" server)))
     (when (file-exists-p file)
-      (let ((coding-system-for-read 'binary))
-	(load file nil nil t)))))
+      ;; In Emacs 21.3 and earlier, `load' doesn't support non-ASCII
+      ;; file names.  So, we use `insert-file-contents' instead.
+      (mm-with-multibyte-buffer
+	(let ((coding-system-for-read nnrss-file-coding-system)
+	      (file-name-coding-system nnmail-pathname-coding-system))
+	  (insert-file-contents file)
+	  (eval-region (point-min) (point-max)))))))
 
 (defun nnrss-save-server-data (server)
   (gnus-make-directory nnrss-directory)
-  (let ((coding-system-for-write 'binary))
+  (let ((coding-system-for-write nnrss-file-coding-system)
+	(file-name-coding-system nnmail-pathname-coding-system))
     (with-temp-file (nnrss-make-filename "nnrss" server)
+      (insert (format ";; -*- coding: %s; -*-\n"
+		      nnrss-file-coding-system))
       (gnus-prin1 `(setq nnrss-group-alist ',nnrss-group-alist))
+      (insert "\n")
       (gnus-prin1 `(setq nnrss-server-data ',nnrss-server-data)))))
 
 (defun nnrss-read-group-data (group server)
@@ -328,10 +442,15 @@
     (setq nnrss-group-min (+ nnrss-group-max 1)))
   (let ((file (nnrss-make-filename group server)))
     (when (file-exists-p file)
-      (let ((coding-system-for-read 'binary))
-	(load file nil t t))
+      ;; In Emacs 21.3 and earlier, `load' doesn't support non-ASCII
+      ;; file names.  So, we use `insert-file-contents' instead.
+      (mm-with-multibyte-buffer
+	(let ((coding-system-for-read nnrss-file-coding-system)
+	      (file-name-coding-system nnmail-pathname-coding-system))
+	  (insert-file-contents file)
+	  (eval-region (point-min) (point-max))))
       (dolist (e nnrss-group-data)
-	(puthash (or (nth 2 e) (nth 3 e)) t nnrss-group-hashtb)
+	(puthash (or (nth 2 e) (nth 6 e)) t nnrss-group-hashtb)
 	(when (and (car e) (> nnrss-group-min (car e)))
 	  (setq nnrss-group-min (car e)))
 	(when (and (car e) (< nnrss-group-max (car e)))
@@ -339,8 +458,11 @@
 
 (defun nnrss-save-group-data (group server)
   (gnus-make-directory nnrss-directory)
-  (let ((coding-system-for-write 'binary))
+  (let ((coding-system-for-write nnrss-file-coding-system)
+	(file-name-coding-system nnmail-pathname-coding-system))
     (with-temp-file (nnrss-make-filename group server)
+      (insert (format ";; -*- coding: %s; -*-\n"
+		      nnrss-file-coding-system))
       (gnus-prin1 `(setq nnrss-group-data ',nnrss-group-data)))))
 
 (defun nnrss-make-filename (name server)
@@ -372,24 +494,41 @@
   (mm-with-unibyte-current-buffer
     (mm-url-insert url)))
 
-(defun nnrss-decode-entities-unibyte-string (string)
+(defun nnrss-decode-entities-string (string)
   (if string
-      (mm-with-unibyte-buffer
+      (mm-with-multibyte-buffer
 	(insert string)
 	(mm-url-decode-entities-nbsp)
 	(buffer-string))))
 
 (defalias 'nnrss-insert 'nnrss-insert-w3)
 
-(if (featurep 'xemacs)
-    (defalias 'nnrss-string-as-multibyte 'identity)
-  (defalias 'nnrss-string-as-multibyte 'string-as-multibyte))
+(defun nnrss-mime-encode-string (string)
+  (mm-with-multibyte-buffer
+    (insert string)
+    (mm-url-decode-entities-nbsp)
+    (goto-char (point-min))
+    (while (re-search-forward "[\t\n ]+" nil t)
+      (replace-match " "))
+    (goto-char (point-min))
+    (skip-chars-forward " ")
+    (delete-region (point-min) (point))
+    (goto-char (point-max))
+    (skip-chars-forward " ")
+    (delete-region (point) (point-max))
+    (let ((rfc2047-encoding-type 'mime)
+	  rfc2047-encode-max-chars)
+      (rfc2047-encode-region (point-min) (point-max)))
+    (goto-char (point-min))
+    (while (search-forward "\n" nil t)
+      (delete-backward-char 1))
+    (buffer-string)))
 
 ;;; Snarf functions
 
 (defun nnrss-check-group (group server)
-  (let (file xml subject url extra changed author
-	     date rss-ns rdf-ns content-ns dc-ns)
+  (let (file xml subject url extra changed author date
+	     enclosure rss-ns rdf-ns content-ns dc-ns)
     (if (and nnrss-use-local
 	     (file-exists-p (setq file (expand-file-name
 					(nnrss-translate-file-chars
@@ -400,11 +539,11 @@
 		    (second (assoc group nnrss-group-alist))))
       (unless url
 	(setq url
-             (cdr
-              (assoc 'href
-                     (nnrss-discover-feed
-                      (read-string
-                       (format "URL to search for %s: " group) "http://")))))
+	      (cdr
+	       (assoc 'href
+		      (nnrss-discover-feed
+		       (read-string
+			(format "URL to search for %s: " group) "http://")))))
 	(let ((pair (assoc group nnrss-server-data)))
 	  (if pair
 	      (setcdr (cdr pair) (list url))
@@ -421,13 +560,15 @@
     (dolist (item (nreverse (nnrss-find-el (intern (concat rss-ns "item")) xml)))
       (when (and (listp item)
 		 (string= (concat rss-ns "item") (car item))
-		 (if (setq url (nnrss-decode-entities-unibyte-string
+		 (if (setq url (nnrss-decode-entities-string
 				(nnrss-node-text rss-ns 'link (cddr item))))
 		     (not (gethash url nnrss-group-hashtb))
-		   (setq subject (nnrss-node-text rss-ns 'title item))
-		   (not (gethash subject nnrss-group-hashtb))))
-	(setq subject (or subject (nnrss-node-text rss-ns 'title item)))
-	(setq extra (or (nnrss-node-text content-ns 'encoded item)
+		   (setq extra (or (nnrss-node-text content-ns 'encoded item)
+				   (nnrss-node-text rss-ns 'description item)))
+		   (not (gethash extra nnrss-group-hashtb))))
+	(setq subject (nnrss-node-text rss-ns 'title item))
+	(setq extra (or extra
+			(nnrss-node-text content-ns 'encoded item)
 			(nnrss-node-text rss-ns 'description item)))
 	(setq author (or (nnrss-node-text rss-ns 'author item)
 			 (nnrss-node-text dc-ns 'creator item)
@@ -435,19 +576,41 @@
 	(setq date (or (nnrss-node-text dc-ns 'date item)
 		       (nnrss-node-text rss-ns 'pubDate item)
 		       (message-make-date)))
+	(when (setq enclosure (cadr (assq (intern (concat rss-ns "enclosure")) item)))
+	  (let ((url (cdr (assq 'url enclosure)))
+		(len (cdr (assq 'length enclosure)))
+		(type (cdr (assq 'type enclosure)))
+		(name))
+	    (setq len
+		  (if (and len (integerp (setq len (string-to-number len))))
+		      ;; actually already in `ls-lisp-format-file-size' but
+		      ;; probably not worth to require it for one function
+		      (do ((size (/ len 1.0) (/ size 1024.0))
+			   (post-fixes (list "" "k" "M" "G" "T" "P" "E")
+				       (cdr post-fixes)))
+			  ((< size 1024)
+			   (format "%.1f%s" size (car post-fixes))))
+		    "0"))
+	    (setq url (or url ""))
+	    (setq name (if (string-match "/\\([^/]*\\)$" url)
+			   (match-string 1 url)
+			 "file"))
+	    (setq type (or type ""))
+	    (setq enclosure (list url name len type))))
 	(push
 	 (list
 	  (incf nnrss-group-max)
 	  (current-time)
 	  url
-	  (and subject (nnrss-decode-entities-unibyte-string subject))
-	  (and author (nnrss-decode-entities-unibyte-string author))
+	  (and subject (nnrss-mime-encode-string subject))
+	  (and author (nnrss-mime-encode-string author))
 	  date
-	  (and extra (nnrss-decode-entities-unibyte-string extra)))
+	  (and extra (nnrss-decode-entities-string extra))
+	  enclosure)
 	 nnrss-group-data)
-	(puthash (or url subject) t nnrss-group-hashtb)
+	(puthash (or url extra) t nnrss-group-hashtb)
 	(setq changed t))
-      	(setq subject nil))
+      (setq extra nil))
     (when changed
       (nnrss-save-group-data group server)
       (let ((pair (assoc group nnrss-server-data)))
@@ -462,12 +625,12 @@
   (interactive "fImport file: ")
   (mapcar
    (lambda (node) (gnus-group-make-rss-group
-                   (cdr (assq 'xmlUrl (cadr node)))))
+		   (cdr (assq 'xmlUrl (cadr node)))))
    (nnrss-find-el 'outline
-                  (progn
-                    (find-file opml-file)
-                    (xml-parse-region (point-min)
-                                      (point-max))))))
+		  (progn
+		    (find-file opml-file)
+		    (xml-parse-region (point-min)
+				      (point-max))))))
 
 (defun nnrss-opml-export ()
   "OPML subscription export.
@@ -475,26 +638,22 @@
   (interactive)
   (with-current-buffer (get-buffer-create "*OPML Export*")
     (mm-set-buffer-file-coding-system 'utf-8)
-    (insert (concat
-	     "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
-	     "<!-- OPML generated by Emacs Gnus' nnrss.el -->\n"
-	     "<opml version=\"1.1\">\n"
-	     "  <head>\n"
-	     "    <title>mySubscriptions</title>\n"
-	     "    <dateCreated>" (format-time-string "%a, %d %b %Y %T %z")
-	     "</dateCreated>\n"
-	     "    <ownerEmail>" user-mail-address "</ownerEmail>\n"
-	     "    <ownerName>" (user-full-name) "</ownerName>\n"
-	     "  </head>\n"
-	     "  <body>\n"))
-    (mapc (lambda (sub)
-	    (insert (concat
-		     "    <outline text=\"" (car sub) "\" xmlUrl=\""
-		     (cadr sub) "\"/>\n")))
-	  nnrss-group-alist)
-    (insert (concat
-	     "  </body>\n"
-           "</opml>\n")))
+    (insert "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
+	    "<!-- OPML generated by Emacs Gnus' nnrss.el -->\n"
+	    "<opml version=\"1.1\">\n"
+	    "  <head>\n"
+	    "    <title>mySubscriptions</title>\n"
+	    "    <dateCreated>" (format-time-string "%a, %d %b %Y %T %z")
+	    "</dateCreated>\n"
+	    "    <ownerEmail>" user-mail-address "</ownerEmail>\n"
+	    "    <ownerName>" (user-full-name) "</ownerName>\n"
+	    "  </head>\n"
+	    "  <body>\n")
+    (dolist (sub nnrss-group-alist)
+      (insert "    <outline text=\"" (car sub)
+	      "\" xmlUrl=\"" (cadr sub) "\"/>\n"))
+    (insert "  </body>\n"
+	    "</opml>\n"))
   (pop-to-buffer "*OPML Export*")
   (when (fboundp 'sgml-mode)
     (sgml-mode)))
@@ -545,17 +704,17 @@
     (if changed
 	(nnrss-save-server-data ""))))
 
-(defun nnrss-format-string (string)
-  (gnus-replace-in-string (nnrss-string-as-multibyte string) " *\n *" " "))
-
 (defun nnrss-node-text (namespace local-name element)
   (let* ((node (assq (intern (concat namespace (symbol-name local-name)))
 		     element))
 	 (text (if (and node (listp node))
 		   (nnrss-node-just-text node)
 		 node))
-	 (cleaned-text (if text (gnus-replace-in-string
-				 text "^[\000-\037\177]+\\|^ +\\| +$" ""))))
+	 (cleaned-text (if text
+			   (gnus-replace-in-string
+			    (gnus-replace-in-string
+			     text "^[\000-\037\177]+\\|^ +\\| +$" "")
+			    "\r\n" "\n"))))
     (if (string-equal "" cleaned-text)
 	nil
       cleaned-text)))
@@ -568,24 +727,27 @@
 (defun nnrss-find-el (tag data &optional found-list)
   "Find the all matching elements in the data.
 Careful with this on large documents!"
-  (when (listp data)
-    (mapc (lambda (bit)
-	    (when (car-safe bit)
-	      (when (equal tag (car bit))
-		(setq found-list
-		      (append found-list
-			      (list bit))))
-	      (if (and (listp (car-safe (caddr bit)))
-		       (not (stringp (caddr bit))))
-		  (setq found-list
-			(append found-list
-				(nnrss-find-el
-				 tag (caddr bit))))
-		(setq found-list
-		      (append found-list
-			      (nnrss-find-el
-			       tag (cddr bit)))))))
-	  data))
+  (when (consp data)
+    (dolist (bit data)
+      (when (car-safe bit)
+	(when (equal tag (car bit))
+	  ;; Old xml.el may return a list of string.
+	  (when (and (consp (caddr bit))
+		     (stringp (caaddr bit)))
+	    (setcar (cddr bit) (caaddr bit)))
+	  (setq found-list
+		(append found-list
+			(list bit))))
+	(if (and (consp (car-safe (caddr bit)))
+		 (not (stringp (caddr bit))))
+	    (setq found-list
+		  (append found-list
+			  (nnrss-find-el
+			   tag (caddr bit))))
+	  (setq found-list
+		(append found-list
+			(nnrss-find-el
+			 tag (cddr bit))))))))
   found-list)
 
 (defun nnrss-rsslink-p (el)
@@ -611,12 +773,11 @@
 	    (cdr (assoc 'href (cadr ahref))))
 	  (nnrss-find-el 'a data)))
 
-(defmacro nnrss-match-macro (base-uri item
-					   onsite-list offsite-list)
+(defmacro nnrss-match-macro (base-uri item onsite-list offsite-list)
   `(cond ((or (string-match (concat "^" ,base-uri) ,item)
-	       (not (string-match "://" ,item)))
-	   (setq ,onsite-list (append ,onsite-list (list ,item))))
-	  (t (setq ,offsite-list (append ,offsite-list (list ,item))))))
+	      (not (string-match "://" ,item)))
+	  (setq ,onsite-list (append ,onsite-list (list ,item))))
+	 (t (setq ,offsite-list (append ,offsite-list (list ,item))))))
 
 (defun nnrss-order-hrefs (base-uri hrefs)
   "Given a list of hrefs, sort them using the following priorities:
@@ -632,27 +793,26 @@
 	rss-onsite-in   rdf-onsite-in   xml-onsite-in
 	rss-offsite-end rdf-offsite-end xml-offsite-end
 	rss-offsite-in rdf-offsite-in xml-offsite-in)
-    (mapc (lambda (href)
-	    (if (not (null href))
-		(cond ((string-match "\\.rss$" href)
-		       (nnrss-match-macro
-			base-uri href rss-onsite-end rss-offsite-end))
-		      ((string-match "\\.rdf$" href)
-		       (nnrss-match-macro
-			base-uri href rdf-onsite-end rdf-offsite-end))
-		      ((string-match "\\.xml$" href)
-		       (nnrss-match-macro
-			base-uri href xml-onsite-end xml-offsite-end))
-		      ((string-match "rss" href)
-		       (nnrss-match-macro
-			base-uri href rss-onsite-in rss-offsite-in))
-		      ((string-match "rdf" href)
-		       (nnrss-match-macro
-			base-uri href rdf-onsite-in rdf-offsite-in))
-		      ((string-match "xml" href)
-		       (nnrss-match-macro
-			base-uri href xml-onsite-in xml-offsite-in)))))
-	  hrefs)
+    (dolist (href hrefs)
+      (cond ((null href))
+	    ((string-match "\\.rss$" href)
+	     (nnrss-match-macro
+	      base-uri href rss-onsite-end rss-offsite-end))
+	    ((string-match "\\.rdf$" href)
+	     (nnrss-match-macro
+	      base-uri href rdf-onsite-end rdf-offsite-end))
+	    ((string-match "\\.xml$" href)
+	     (nnrss-match-macro
+	      base-uri href xml-onsite-end xml-offsite-end))
+	    ((string-match "rss" href)
+	     (nnrss-match-macro
+	      base-uri href rss-onsite-in rss-offsite-in))
+	    ((string-match "rdf" href)
+	     (nnrss-match-macro
+	      base-uri href rdf-onsite-in rdf-offsite-in))
+	    ((string-match "xml" href)
+	     (nnrss-match-macro
+	      base-uri href xml-onsite-in xml-offsite-in))))
     (append
      rss-onsite-end  rdf-onsite-end  xml-onsite-end
      rss-onsite-in   rdf-onsite-in   xml-onsite-in
@@ -689,17 +849,17 @@
 		 (hrefs (nnrss-order-hrefs
 			 base-uri (nnrss-extract-hrefs parsed-page)))
 		 (rss-link nil))
-	  (while (and (eq rss-link nil) (not (eq hrefs nil)))
-	    (let ((href-data (nnrss-fetch (car hrefs))))
-	      (if (nnrss-rss-p href-data)
-		  (let* ((rss-ns (nnrss-get-namespace-prefix href-data "http://purl.org/rss/1.0/")))
-		    (setq rss-link (nnrss-rss-title-description
-				    rss-ns href-data (car hrefs))))
-		(setq hrefs (cdr hrefs)))))
-	  (if rss-link rss-link
+	    (while (and (eq rss-link nil) (not (eq hrefs nil)))
+	      (let ((href-data (nnrss-fetch (car hrefs))))
+		(if (nnrss-rss-p href-data)
+		    (let* ((rss-ns (nnrss-get-namespace-prefix href-data "http://purl.org/rss/1.0/")))
+		      (setq rss-link (nnrss-rss-title-description
+				      rss-ns href-data (car hrefs))))
+		  (setq hrefs (cdr hrefs)))))
+	    (if rss-link rss-link
 
 ;;    4. check syndic8
-	    (nnrss-find-rss-via-syndic8 url))))))))
+	      (nnrss-find-rss-via-syndic8 url))))))))
 
 (defun nnrss-find-rss-via-syndic8 (url)
   "Query syndic8 for the rss feeds it has for URL."
@@ -786,3 +946,4 @@
 
 ;;; nnrss.el ends here
 
+;;; arch-tag: 12910c07-0cdf-44fb-8d2c-416ded64c267
Index: gnus/lisp/nnslashdot.el
diff -u gnus/lisp/nnslashdot.el:7.1 gnus/lisp/nnslashdot.el:7.4
--- gnus/lisp/nnslashdot.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/nnslashdot.el	Sat Oct  2 00:33:01 2004
@@ -1,5 +1,6 @@
 ;;; nnslashdot.el --- interfacing with Slashdot
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
@@ -253,8 +254,7 @@
 	    (when (numberp article)
 	      (if (= article 1)
 		  (progn
-		    (re-search-forward
-		     "Posted by")
+		    (search-forward "Posted by")
 		    (search-forward "<BR>")
 		    (setq contents
 			  (buffer-substring
@@ -468,11 +468,9 @@
 	(insert-file-contents file)
 	(goto-char (point-min))
 	(setq nnslashdot-groups (read (current-buffer))))
-      (if (and nnslashdot-groups (< (length (car nnslashdot-groups)) 5))
-	  (let ((groups nnslashdot-groups))
-	    (while groups
-	      (nnslashdot-make-tuple (car groups) 5)
-	      (setq groups (cdr groups))))))))
+      (when (and nnslashdot-groups (< (length (car nnslashdot-groups)) 5))
+	(dolist (group nnslashdot-groups)
+	  (nnslashdot-make-tuple group 5))))))
 
 (defun nnslashdot-write-groups ()
   (with-temp-file (expand-file-name "groups" nnslashdot-directory)
@@ -514,4 +512,5 @@
 
 (provide 'nnslashdot)
 
+;;; arch-tag: aa73df7a-f7e6-4eef-bdea-5ce2f8c691b3
 ;;; nnslashdot.el ends here
Index: gnus/lisp/nnsoup.el
diff -u gnus/lisp/nnsoup.el:7.1 gnus/lisp/nnsoup.el:7.4
--- gnus/lisp/nnsoup.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/nnsoup.el	Tue Oct  5 22:35:15 2004
@@ -369,9 +369,7 @@
 	    entry e min max)
 	(while (setq e (cdr (setq entry (pop alist))))
 	  (setq min (caaar e))
-	  (while (cdr e)
-	    (setq e (cdr e)))
-	  (setq max (cdar (car e)))
+	  (setq max (cdar (car (last e))))
 	  (setcdr entry (cons (cons min max) (cdr entry)))))
       (setq nnsoup-group-alist-touched t))
     nnsoup-group-alist))
@@ -556,9 +554,8 @@
 (defun nnsoup-unpack-packets ()
   "Unpack all packets in `nnsoup-packet-directory'."
   (let ((packets (directory-files
-		  nnsoup-packet-directory t nnsoup-packet-regexp))
-	packet)
-    (while (setq packet (pop packets))
+		  nnsoup-packet-directory t nnsoup-packet-regexp)))
+    (dolist (packet packets)
       (nnheader-message 5 "nnsoup: unpacking %s..." packet)
       (if (not (gnus-soup-unpack-packet
 		nnsoup-tmp-directory nnsoup-unpacker packet))
@@ -757,20 +754,18 @@
 				 (string-to-int (match-string 1 f2)))))))
 	active group lines ident elem min)
     (set-buffer (get-buffer-create " *nnsoup work*"))
-    (while files
-      (nnheader-message 5 "Doing %s..." (car files))
+    (dolist (file files)
+      (nnheader-message 5 "Doing %s..." file)
       (erase-buffer)
-      (nnheader-insert-file-contents (car files))
+      (nnheader-insert-file-contents file)
       (goto-char (point-min))
       (if (not (re-search-forward "^[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t *\\(Xref: \\)? *[^ ]* \\([^ ]+\\):[0-9]" nil t))
 	  (setq group "unknown")
 	(setq group (match-string 2)))
       (setq lines (count-lines (point-min) (point-max)))
       (setq ident (progn (string-match
-			  "/\\([0-9]+\\)\\." (car files))
-			 (substring
-			  (car files) (match-beginning 1)
-			  (match-end 1))))
+			  "/\\([0-9]+\\)\\." file)
+			 (match-string 1 file)))
       (if (not (setq elem (assoc group active)))
 	  (push (list group (cons 1 lines)
 		      (list (cons 1 lines)
@@ -781,8 +776,7 @@
 		(list (cons (1+ (setq min (cdadr elem)))
 			    (+ min lines))
 		      (vector ident group "ucm" "" lines))))
-	(setcdr (cadr elem) (+ min lines)))
-      (setq files (cdr files)))
+	(setcdr (cadr elem) (+ min lines))))
     (nnheader-message 5 "")
     (setq nnsoup-group-alist active)
     (nnsoup-write-active-file t)))
@@ -799,9 +793,9 @@
 			       nnsoup-group-alist)))
 	 (regexp "\\.MSG$\\|\\.IDX$")
 	 (files (directory-files nnsoup-directory nil regexp))
-	 non-files file)
+	 non-files)
     ;; Find all files that aren't known by nnsoup.
-    (while (setq file (pop files))
+    (dolist (file files)
       (string-match regexp file)
       (unless (member (substring file 0 (match-beginning 0)) known)
 	(push file non-files)))
@@ -814,4 +808,5 @@
 
 (provide 'nnsoup)
 
+;;; arch-tag: b0451389-5703-4450-9425-f66f6b38c828
 ;;; nnsoup.el ends here
Index: gnus/lisp/nnspool.el
diff -u gnus/lisp/nnspool.el:7.2 gnus/lisp/nnspool.el:7.6
--- gnus/lisp/nnspool.el:7.2	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/nnspool.el	Tue Oct 26 14:47:59 2004
@@ -44,7 +44,10 @@
   "Switches for nnspool-request-post to pass to `inews' for posting news.
 If you are using Cnews, you probably should set this variable to nil.")
 
-(defvoo nnspool-spool-directory (file-name-as-directory news-path)
+(defvoo nnspool-spool-directory
+    (file-name-as-directory (if (boundp 'news-directory)
+				(symbol-value 'news-directory)
+			      news-path))
   "Local news spool directory.")
 
 (defvoo nnspool-nov-directory (concat nnspool-spool-directory "over.view/")
@@ -248,8 +251,7 @@
 	(if dir
 	    (nnheader-insert
 	     "211 %d %d %d %s\n" (length dir) (car dir)
-	     (progn (while (cdr dir) (setq dir (cdr dir))) (car dir))
-	     group)
+	     (car (last dir)) group)
 	  (nnheader-report 'nnspool "Empty group %s" group)
 	  (nnheader-insert "211 0 0 0 %s\n" group))))))
 
@@ -308,9 +310,8 @@
 			    groups)
 		      (zerop (forward-line -1))))
 	  (erase-buffer)
-	  (while groups
-	    (insert (car groups) " 0 0 y\n")
-	    (setq groups (cdr groups))))
+	  (dolist (group groups)
+	    (insert group " 0 0 y\n")))
 	t)
     nil))
 
@@ -397,8 +398,7 @@
 				(<= last (car arts)))
 		      (pop arts))
 		    ;; The articles in `arts' are missing from the buffer.
-		    (while arts
-		      (nnspool-insert-nov-head (pop arts)))
+		    (mapc 'nnspool-insert-nov-head arts)
 		    t))))))))))
 
 (defun nnspool-insert-nov-head (article)
@@ -418,8 +418,7 @@
 
 (defun nnspool-sift-nov-with-sed (articles file)
   (let ((first (car articles))
-	(last (progn (while (cdr articles) (setq articles (cdr articles)))
-		     (car articles))))
+	(last (car (last articles))))
     (call-process "awk" nil t nil
 		  (format "BEGIN {firstmsg=%d; lastmsg=%d;}\n $1 >= firstmsg && $1 <= lastmsg {print;}"
 			  (1- first) (1+ last))
@@ -428,16 +427,12 @@
 ;; Fixed by fdc@cliwe.ping.de (Frank D. Cringle).
 ;; Find out what group an article identified by a Message-ID is in.
 (defun nnspool-find-id (id)
-  (save-excursion
-    (set-buffer (get-buffer-create " *nnspool work*"))
-    (erase-buffer)
+  (with-temp-buffer
     (ignore-errors
       (call-process "grep" nil t nil (regexp-quote id) nnspool-history-file))
     (goto-char (point-min))
-    (prog1
-	(when (looking-at "<[^>]+>[ \t]+[-0-9~]+[ \t]+\\([^ /\t\n]+\\)/\\([0-9]+\\)[ \t\n]")
-	  (cons (match-string 1) (string-to-int (match-string 2))))
-      (kill-buffer (current-buffer)))))
+    (when (looking-at "<[^>]+>[ \t]+[-0-9~]+[ \t]+\\([^ /\t\n]+\\)/\\([0-9]+\\)[ \t\n]")
+      (cons (match-string 1) (string-to-int (match-string 2))))))
 
 (defun nnspool-find-file (file)
   "Insert FILE in server buffer safely."
@@ -464,4 +459,5 @@
 
 (provide 'nnspool)
 
+;;; arch-tag: bdac8d27-2934-4eee-bad0-49e6b90c0d05
 ;;; nnspool.el ends here
Index: gnus/lisp/nntp.el
diff -u gnus/lisp/nntp.el:7.7 gnus/lisp/nntp.el:7.22
--- gnus/lisp/nntp.el:7.7	Mon Apr 12 11:04:25 2004
+++ gnus/lisp/nntp.el	Wed Feb  2 12:38:35 2005
@@ -29,11 +29,16 @@
 (require 'nnheader)
 (require 'nnoo)
 (require 'gnus-util)
+(require 'gnus)
 
 (nnoo-declare nntp)
 
 (eval-when-compile (require 'cl))
 
+(defgroup nntp nil
+  "NNTP access for Gnus."
+  :group 'gnus)
+
 (defvoo nntp-address nil
   "Address of the physical nntp server.")
 
@@ -189,8 +194,24 @@
 (defvoo nntp-coding-system-for-write 'binary
   "*Coding system to write to NNTP.")
 
+;; Marks
+(defvoo nntp-marks-is-evil nil
+  "*If non-nil, Gnus will never generate and use marks file for nntp groups.
+See `nnml-marks-is-evil' for more information.")
+
+(defvoo nntp-marks-file-name ".marks")
+(defvoo nntp-marks nil)
+(defvar nntp-marks-modtime (gnus-make-hashtable))
+
+(defcustom nntp-marks-directory
+  (nnheader-concat gnus-directory "marks/")
+  "*The directory where marks for nntp groups will be stored."
+  :group 'gnus
+  :type 'directory)
+
 (defcustom nntp-authinfo-file "~/.authinfo"
   ".netrc-like file that holds nntp authinfo passwords."
+  :group 'nntp
   :type
   '(choice file
 	   (repeat :tag "Entries"
@@ -1009,6 +1030,54 @@
 (deffoo nntp-asynchronous-p ()
   t)
 
+(deffoo nntp-request-set-mark (group actions &optional server)
+  (unless nntp-marks-is-evil
+    (nntp-possibly-create-directory group server)
+    (nntp-open-marks group server)
+    (dolist (action actions)
+      (let ((range (nth 0 action))
+	    (what  (nth 1 action))
+	    (marks (nth 2 action)))
+	(assert (or (eq what 'add) (eq what 'del)) nil
+		"Unknown request-set-mark action: %s" what)
+	(dolist (mark marks)
+	  (setq nntp-marks (gnus-update-alist-soft
+			    mark
+			    (funcall (if (eq what 'add) 'gnus-range-add
+				       'gnus-remove-from-range)
+				     (cdr (assoc mark nntp-marks)) range)
+			    nntp-marks)))))
+    (nntp-save-marks group server))
+  nil)
+
+(deffoo nntp-request-update-info (group info &optional server)
+  (unless nntp-marks-is-evil
+    (nntp-possibly-create-directory group server)
+    (when (nntp-marks-changed-p group server)
+      (nnheader-message 8 "Updating marks for %s..." group)
+      (nntp-open-marks group server)
+      ;; Update info using `nntp-marks'.
+      (mapc (lambda (pred)
+	      (unless (memq (cdr pred) gnus-article-unpropagated-mark-lists)
+		(gnus-info-set-marks
+		 info
+		 (gnus-update-alist-soft
+		  (cdr pred)
+		  (cdr (assq (cdr pred) nntp-marks))
+		  (gnus-info-marks info))
+		 t)))
+	    gnus-article-mark-lists)
+      (let ((seen (cdr (assq 'read nntp-marks))))
+	(gnus-info-set-read info
+			    (if (and (integerp (car seen))
+				     (null (cdr seen)))
+				(list (cons (car seen) (car seen)))
+			      seen)))
+      (nnheader-message 8 "Updating marks for %s...done" group)))
+  nil)
+
+
+
 ;;; Hooky functions.
 
 (defun nntp-send-mode-reader ()
@@ -1026,11 +1095,11 @@
 
 If SEND-IF-FORCE, only send authinfo to the server if the
 .authinfo file has the FORCE token."
-  (let* ((list (gnus-parse-netrc nntp-authinfo-file))
-	 (alist (gnus-netrc-machine list nntp-address "nntp"))
-	 (force (gnus-netrc-get alist "force"))
-	 (user (or (gnus-netrc-get alist "login") nntp-authinfo-user))
-	 (passwd (gnus-netrc-get alist "password")))
+  (let* ((list (netrc-parse nntp-authinfo-file))
+	 (alist (netrc-machine list nntp-address "nntp"))
+	 (force (netrc-get alist "force"))
+	 (user (or (netrc-get alist "login") nntp-authinfo-user))
+	 (passwd (netrc-get alist "password")))
     (when (or (not send-if-force)
 	      force)
       (unless user
@@ -1183,12 +1252,9 @@
   "Find out what the name of the server we have connected to is."
   ;; Wait for the status string to arrive.
   (setq nntp-server-type (buffer-string))
-  (let ((alist nntp-server-action-alist)
-	(case-fold-search t)
-	entry)
+  (let ((case-fold-search t))
     ;; Run server-specific commands.
-    (while alist
-      (setq entry (pop alist))
+    (dolist (entry nntp-server-action-alist)
       (when (string-match (car entry) nntp-server-type)
 	(if (and (listp (cadr entry))
 		 (not (eq 'lambda (caadr entry))))
@@ -1906,6 +1972,82 @@
 	(delete-region (point) (point-max)))
       proc)))
 
+;; Marks handling
+
+(defun nntp-marks-directory (server)
+  (expand-file-name server nntp-marks-directory))
+
+(defun nntp-possibly-create-directory (group server)
+  (let ((dir (nnmail-group-pathname
+	      group (nntp-marks-directory server))))
+    (unless (file-exists-p dir)
+      (make-directory (directory-file-name dir) t)
+      (nnheader-message 5 "Creating nntp marks directory %s" dir))))
+
+(autoload 'time-less-p "time-date")
+
+(defun nntp-marks-changed-p (group server)
+  (let ((file (expand-file-name
+	       nntp-marks-file-name
+	       (nnmail-group-pathname
+		group (nntp-marks-directory server)))))
+    (if (null (gnus-gethash file nntp-marks-modtime))
+	t ;; never looked at marks file, assume it has changed
+      (time-less-p (gnus-gethash file nntp-marks-modtime)
+		   (nth 5 (file-attributes file))))))
+
+(defun nntp-save-marks (group server)
+  (let ((file-name-coding-system nnmail-pathname-coding-system)
+	(file (expand-file-name
+	       nntp-marks-file-name 
+	       (nnmail-group-pathname
+		group (nntp-marks-directory server)))))
+    (condition-case err
+	(progn
+	  (nntp-possibly-create-directory group server)
+	  (with-temp-file file
+	    (erase-buffer)
+	    (gnus-prin1 nntp-marks)
+	    (insert "\n"))
+	  (gnus-sethash file
+			(nth 5 (file-attributes file))
+			nntp-marks-modtime))
+      (error (or (gnus-yes-or-no-p
+		  (format "Could not write to %s (%s).  Continue? " file err))
+		 (error "Cannot write to %s (%s)" file err))))))
+
+(defun nntp-open-marks (group server)
+  (let ((file (expand-file-name
+	       nntp-marks-file-name
+	       (nnmail-group-pathname
+		group (nntp-marks-directory server)))))
+    (if (file-exists-p file)
+	(condition-case err
+	    (with-temp-buffer
+	      (gnus-sethash file (nth 5 (file-attributes file))
+			    nntp-marks-modtime)
+	      (nnheader-insert-file-contents file)
+	      (setq nntp-marks (read (current-buffer)))
+	      (dolist (el gnus-article-unpropagated-mark-lists)
+		(setq nntp-marks (gnus-remassoc el nntp-marks))))
+	  (error (or (gnus-yes-or-no-p
+		      (format "Error reading nntp marks file %s (%s).  Continuing will use marks from .newsrc.eld.  Continue? " file err))
+		     (error "Cannot read nntp marks file %s (%s)" file err))))
+      ;; User didn't have a .marks file.  Probably first time
+      ;; user of the .marks stuff.  Bootstrap it from .newsrc.eld.
+      (let ((info (gnus-get-info
+		   (gnus-group-prefixed-name
+		    group
+		    (gnus-server-to-method (format "nntp:%s" server))))))
+	(nnheader-message 7 "Bootstrapping marks for %s..." group)
+	(setq nntp-marks (gnus-info-marks info))
+	(push (cons 'read (gnus-info-read info)) nntp-marks)
+	(dolist (el gnus-article-unpropagated-mark-lists)
+	  (setq nntp-marks (gnus-remassoc el nntp-marks)))
+	(nntp-save-marks group server)
+	(nnheader-message 7 "Bootstrapping marks for %s...done" group)))))
+
 (provide 'nntp)
 
+;;; arch-tag: 8655466a-b1b5-4929-9c45-7b1b2e767271
 ;;; nntp.el ends here
Index: gnus/lisp/nnultimate.el
diff -u gnus/lisp/nnultimate.el:7.1 gnus/lisp/nnultimate.el:7.3
--- gnus/lisp/nnultimate.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/nnultimate.el	Tue Apr  5 00:23:53 2005
@@ -39,6 +39,7 @@
 (require 'mm-util)
 (require 'mm-url)
 (require 'nnweb)
+(require 'parse-time)
 (autoload 'w3-parse-buffer "w3-parse")
 
 (nnoo-declare nnultimate)
@@ -476,4 +477,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;;; arch-tag: ab6bfc45-8fe1-4647-9c78-41050eb152b8
 ;;; nnultimate.el ends here
Index: gnus/lisp/nnvirtual.el
diff -u gnus/lisp/nnvirtual.el:7.4 gnus/lisp/nnvirtual.el:7.6
--- gnus/lisp/nnvirtual.el:7.4	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/nnvirtual.el	Sat Oct  2 00:33:01 2004
@@ -383,14 +383,11 @@
 
 (defun nnvirtual-convert-headers ()
   "Convert HEAD headers into NOV headers."
-  (save-excursion
-    (set-buffer nntp-server-buffer)
+  (with-current-buffer nntp-server-buffer
     (let* ((dependencies (make-vector 100 0))
-	   (headers (gnus-get-newsgroup-headers dependencies))
-	   header)
+	   (headers (gnus-get-newsgroup-headers dependencies)))
       (erase-buffer)
-      (while (setq header (pop headers))
-	(nnheader-insert-nov header)))))
+      (mapc 'nnheader-insert-nov headers))))
 
 
 (defun nnvirtual-update-xref-header (group article prefix system-name)
@@ -464,7 +461,7 @@
 				   (nnvirtual-partition-sequence (cdr ml)))))
 			 (gnus-info-marks (gnus-get-info
 					   (nnvirtual-current-group))))))
-	  mark type groups carticles info entry)
+	  type groups info)
 
       ;; Ok, atomically move all of the (un)read info, clear any old
       ;; marks, and move all of the current marks.  This way if someone
@@ -473,13 +470,12 @@
 	;; move (un)read
 	;; bind for workaround guns-update-read-articles
 	(let ((gnus-newsgroup-active nil))
-	  (while (setq entry (pop unreads))
+	  (dolist (entry unreads)
 	    (gnus-update-read-articles (car entry) (cdr entry))))
 
 	;; clear all existing marks on the component groups
-	(setq groups nnvirtual-component-groups)
-	(while groups
-	  (when (and (setq info (gnus-get-info (pop groups)))
+	(dolist (group nnvirtual-component-groups)
+	  (when (and (setq info (gnus-get-info group))
 		     (gnus-info-marks info))
 	    (gnus-info-set-marks
 	     info
@@ -490,18 +486,17 @@
 	;; Ok, currently type-marks is an assq list with keys of a mark type,
 	;; with data of an assq list with keys of component group names
 	;; and the articles which correspond to that key/group pair.
-	(while (setq mark (pop type-marks))
+	(dolist (mark type-marks)
 	  (setq type (car mark))
 	  (setq groups (cdr mark))
-	  (while (setq carticles (pop groups))
+	  (dolist (carticles groups)
 	    (gnus-add-marked-articles (car carticles) type (cdr carticles)
 				      nil t))))
 
       ;; possibly update the display, it is really slow
       (when update-p
-	(setq groups nnvirtual-component-groups)
-	(while groups
-	  (gnus-group-update-group (pop groups) t))))))
+	(dolist (group nnvirtual-component-groups)
+	  (gnus-group-update-group group t))))))
 
 
 (defun nnvirtual-current-group ()
@@ -783,10 +778,9 @@
 
     ;; Remove any empty marks lists, and store.
     (setq nnvirtual-mapping-marks nil)
-    (while marks
-      (if (cdr (car marks))
-	  (push (car marks) nnvirtual-mapping-marks))
-      (setq marks (cdr marks)))
+    (dolist (mark marks)
+      (when (cdr mark)
+	(push mark nnvirtual-mapping-marks)))
 
     ;; We need to convert the unreads to reads.  We compress the
     ;; sequence as we go, otherwise it could be huge.
@@ -817,4 +811,5 @@
 
 (provide 'nnvirtual)
 
+;;; arch-tag: ca8c8ad9-1bd8-4b0f-9722-90dc645a45f5
 ;;; nnvirtual.el ends here
Index: gnus/lisp/nnwarchive.el
diff -u gnus/lisp/nnwarchive.el:7.1 gnus/lisp/nnwarchive.el:7.2
--- gnus/lisp/nnwarchive.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/nnwarchive.el	Thu May 20 10:02:41 2004
@@ -723,4 +723,5 @@
 
 (provide 'nnwarchive)
 
+;;; arch-tag: 1ab7a15c-777a-40e0-95c0-0c41b3963578
 ;;; nnwarchive.el ends here
Index: gnus/lisp/nnweb.el
diff -u gnus/lisp/nnweb.el:7.2 gnus/lisp/nnweb.el:7.6
--- gnus/lisp/nnweb.el:7.2	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/nnweb.el	Sat Mar  5 01:36:57 2005
@@ -1,5 +1,5 @@
 ;;; nnweb.el --- retrieving articles via web search engines
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -54,11 +54,12 @@
 (defvar nnweb-type-definition
   '((google
      (article . ignore)
-     (id . "http://groups.google.com/groups?selm=%s&output=gplain")
+     (id . "http://groups.google.de/groups?selm=%s&output=gplain")
      (reference . identity)
      (map . nnweb-google-create-mapping)
      (search . nnweb-google-search)
-     (address . "http://groups.google.com/groups")
+     (address . "http://groups.google.de/groups")
+     (base    . "http://groups.google.de")
      (identifier . nnweb-google-identity))
     (dejanews ;; alias of google
      (article . ignore)
@@ -67,6 +68,7 @@
      (map . nnweb-google-create-mapping)
      (search . nnweb-google-search)
      (address . "http://groups.google.com/groups")
+     (base    . "http://groups.google.com")
      (identifier . nnweb-google-identity))
     (gmane
      (article . nnweb-gmane-wash-article)
@@ -349,7 +351,7 @@
 	    "a href=/groups\\(\\?[^ \">]*selm=\\([^ &\">]+\\)\\)" nil t)
       (setq mid (match-string 2)
 	    url (format
-		 "http://groups.google.com/groups?selm=%s&output=gplain" mid))
+		 (nnweb-definition 'id) mid))
       (narrow-to-region (search-forward ">" nil t)
 			(search-forward "</a>" nil t))
       (mm-url-remove-markup)
@@ -420,7 +422,7 @@
 		    (>= i nnweb-max-hits))
 		(setq more nil)
 	      ;; Yup, there are more articles
-	      (setq more (concat "http://groups.google.com" (match-string 1)))
+	      (setq more (concat (nnweb-definition 'base) (match-string 1)))
 	    (when more
 	      (erase-buffer)
 	      (mm-url-insert more))))
@@ -435,9 +437,9 @@
     "?"
     (mm-url-encode-www-form-urlencoded
      `(("q" . ,search)
-       ("num". "100")
+       ("num" . "100")
        ("hq" . "")
-       ("hl" . "")
+       ("hl" . "en")
        ("lr" . "")
        ("safe" . "off")
        ("sites" . "groups")))))
@@ -489,7 +491,7 @@
 (defun nnweb-gmane-wash-article ()
   (let ((case-fold-search t))
     (goto-char (point-min))
-    (re-search-forward "<!--X-Head-of-Message-->" nil t)
+    (search-forward "<!--X-Head-of-Message-->" nil t)
     (delete-region (point-min) (point))
     (goto-char (point-min))
     (while (looking-at "^<li><em>\\([^ ]+\\)</em>.*</li>")
@@ -587,4 +589,5 @@
 
 (provide 'nnweb)
 
+;;; arch-tag: f59307eb-c90f-479f-b7d2-dbd8bf51b697
 ;;; nnweb.el ends here
Index: gnus/lisp/nnwfm.el
diff -u gnus/lisp/nnwfm.el:7.1 gnus/lisp/nnwfm.el:7.2
--- gnus/lisp/nnwfm.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/nnwfm.el	Thu May 20 10:02:41 2004
@@ -428,4 +428,5 @@
 ;; coding: iso-8859-1
 ;; End:
 
+;;; arch-tag: d813966a-4211-4557-ad11-d1ac2bc86536
 ;;; nnwfm.el ends here
Index: gnus/lisp/ntlm.el
diff -u gnus/lisp/ntlm.el:7.3 gnus/lisp/ntlm.el:7.4
--- gnus/lisp/ntlm.el:7.3	Mon Jan  5 05:52:23 2004
+++ gnus/lisp/ntlm.el	Thu May 20 10:02:41 2004
@@ -533,4 +533,5 @@
 
 (provide 'ntlm)
 
+;;; arch-tag: 348ace18-f8e2-4176-8fe9-d9ab4e96f296
 ;;; ntlm.el ends here
Index: gnus/lisp/parse-time.el
diff -u gnus/lisp/parse-time.el:7.1 gnus/lisp/parse-time.el:7.2
--- gnus/lisp/parse-time.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/parse-time.el	Thu May 20 10:02:41 2004
@@ -211,4 +211,5 @@
 
 (provide 'parse-time)
 
+;;; arch-tag: 07066094-45a8-4c68-b307-86195e2c1103
 ;;; parse-time.el ends here
Index: gnus/lisp/password.el
diff -u gnus/lisp/password.el:7.4 gnus/lisp/password.el:7.8
--- gnus/lisp/password.el:7.4	Thu Mar  4 07:30:18 2004
+++ gnus/lisp/password.el	Thu Jan 27 00:03:12 2005
@@ -35,7 +35,14 @@
 ;;
 ;; (password-cache-add "test" "foo")
 ;;  => nil
-;;
+
+;; Note the previous two can be replaced with:
+;; (password-read-and-add "Password? " "test")
+;; ;; Minibuffer prompt for password.
+;; => "foo"
+;; ;; "foo" is now cached with key "test"
+
+
 ;; (password-read "Password? " "test")
 ;; ;; No minibuffer prompt
 ;;  => "foo"
@@ -53,7 +60,7 @@
 ;;; Code:
 
 (when (featurep 'xemacs)
-  (require 'run-at-time))
+  (require 'timer-funcs))
 
 (eval-when-compile
   (require 'cl))
@@ -83,6 +90,15 @@
 	   (symbol-value (intern-soft key password-data)))
       (read-passwd prompt)))
 
+(defun password-read-and-add (prompt &optional key)
+  "Read password, for use with KEY, from user, or from cache if wanted.
+Then store the password in the cache.  Uses `password-read' and
+`password-cache-add'."
+  (let ((password (password-read prompt key)))
+    (when (and password key)
+      (password-cache-add key password))
+    password))
+
 (defun password-cache-remove (key)
   "Remove password indexed by KEY from password cache.
 This is typically run be a timer setup from `password-cache-add',
@@ -99,13 +115,14 @@
   "Add password to cache.
 The password is removed by a timer after `password-cache-expiry'
 seconds."
-  (set (intern key password-data) password)
-  (when password-cache-expiry
+  (when (and password-cache-expiry (null (intern-soft key password-data)))
     (run-at-time password-cache-expiry nil
 		 #'password-cache-remove
 		 key))
+  (set (intern key password-data) password)
   nil)
 
 (provide 'password)
 
+;;; arch-tag: ab160494-16c8-4c68-a4a1-73eebf6686e5
 ;;; password.el ends here
Index: gnus/lisp/pgg-def.el
diff -u gnus/lisp/pgg-def.el:7.2 gnus/lisp/pgg-def.el:7.6
--- gnus/lisp/pgg-def.el:7.2	Thu Jan 15 18:30:46 2004
+++ gnus/lisp/pgg-def.el	Sun Feb 13 05:44:42 2005
@@ -27,7 +27,8 @@
 
 (defgroup pgg ()
   "Glue for the various PGP implementations."
-  :group 'mime)
+  :group 'mime
+  :version "22.1")
 
 (defcustom pgg-default-scheme 'gpg
   "Default PGP scheme."
@@ -48,6 +49,7 @@
 
 (defcustom pgg-query-keyserver nil
   "Whether PGG queries keyservers for missing keys when verifying messages."
+  :version "22.1"
   :group 'pgg
   :type 'boolean)
 
@@ -85,4 +87,5 @@
 
 (provide 'pgg-def)
 
+;;; arch-tag: c425f3ab-ed75-4055-bb46-431a418c94b7
 ;;; pgg-def.el ends here
Index: gnus/lisp/pgg-gpg.el
diff -u gnus/lisp/pgg-gpg.el:7.2 gnus/lisp/pgg-gpg.el:7.3
--- gnus/lisp/pgg-gpg.el:7.2	Thu Jan  8 14:00:31 2004
+++ gnus/lisp/pgg-gpg.el	Thu May 20 10:02:41 2004
@@ -270,4 +270,5 @@
 
 (provide 'pgg-gpg)
 
+;;; arch-tag: 2aa5d5d8-93a0-4865-9312-33e29830e000
 ;;; pgg-gpg.el ends here
Index: gnus/lisp/pgg-parse.el
diff -u gnus/lisp/pgg-parse.el:7.2 gnus/lisp/pgg-parse.el:7.3
--- gnus/lisp/pgg-parse.el:7.2	Thu Jan 15 18:30:46 2004
+++ gnus/lisp/pgg-parse.el	Thu May 20 10:02:41 2004
@@ -510,4 +510,5 @@
 
 (provide 'pgg-parse)
 
+;;; arch-tag: 16c2eb82-1313-4a7c-a70f-420709b5b43e
 ;;; pgg-parse.el ends here
Index: gnus/lisp/pgg-pgp.el
diff -u gnus/lisp/pgg-pgp.el:7.1 gnus/lisp/pgg-pgp.el:7.4
--- gnus/lisp/pgg-pgp.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/pgg-pgp.el	Fri Jan 21 20:42:14 2005
@@ -148,14 +148,16 @@
 (defun pgg-pgp-decrypt-region (start end)
   "Decrypt the current region between START and END."
   (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id))
+	 (key (pgg-pgp-lookup-key pgg-pgp-user-id 'encrypt))
 	 (passphrase
 	  (pgg-read-passphrase
-	   (format "PGP passphrase for %s: " pgg-pgp-user-id)
-	   (pgg-pgp-lookup-key pgg-pgp-user-id 'encrypt)))
+	   (format "PGP passphrase for %s: " pgg-pgp-user-id) key))
 	 (args
 	  '("+verbose=1" "+batchmode" "+language=us" "-f")))
     (pgg-pgp-process-region start end passphrase pgg-pgp-program args)
-    (pgg-process-when-success nil)))
+    (pgg-process-when-success
+      (if pgg-cache-passphrase
+	  (pgg-add-passphrase-cache key passphrase)))))
 
 (defun pgg-pgp-sign-region (start end &optional clearsign)
   "Make detached signature from text between START and END."
@@ -194,9 +196,11 @@
 		jka-compr-compression-info-list jam-zcat-filename-list)
 	    (write-region start end orig-file)))
       (set-default-file-modes orig-mode))
-    (when (stringp signature)
-      (copy-file signature (setq signature (concat orig-file ".asc")))
-      (setq args (append args (list signature orig-file))))
+    (if (stringp signature)
+	(progn
+	  (copy-file signature (setq signature (concat orig-file ".asc")))
+	  (setq args (append args (list signature orig-file))))
+      (setq args (append args (list orig-file))))
     (pgg-pgp-process-region (point)(point) nil pgg-pgp-program args)
     (delete-file orig-file)
     (if signature (delete-file signature))
@@ -236,4 +240,5 @@
 
 (provide 'pgg-pgp)
 
+;;; arch-tag: 076b7801-37b2-49a6-97c3-218fdecde33c
 ;;; pgg-pgp.el ends here
Index: gnus/lisp/pgg-pgp5.el
diff -u gnus/lisp/pgg-pgp5.el:7.1 gnus/lisp/pgg-pgp5.el:7.3
--- gnus/lisp/pgg-pgp5.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/pgg-pgp5.el	Wed Jul 28 09:56:02 2004
@@ -1,6 +1,6 @@
 ;;; pgg-pgp5.el --- PGP 5.* support for PGG.
 
-;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 ;; Created: 1999/11/02
@@ -142,7 +142,7 @@
 		 (buffer-substring (match-end 0)(progn (end-of-line)(point)))))
 	 2)))))
 
-(defun pgg-pgp5-encrypt-region (start end recipients)
+(defun pgg-pgp5-encrypt-region (start end recipients &optional sign)
   "Encrypt the current region between START and END."
   (let* ((pgg-pgp5-user-id (or pgg-pgp5-user-id pgg-default-user-id))
 	 (args
@@ -245,4 +245,5 @@
 
 (provide 'pgg-pgp5)
 
+;;; arch-tag: 3dbd1073-6b3a-466c-9f55-5c587ffa6d7b
 ;;; pgg-pgp5.el ends here
Index: gnus/lisp/pgg.el
diff -u gnus/lisp/pgg.el:7.2 gnus/lisp/pgg.el:7.3
--- gnus/lisp/pgg.el:7.2	Mon Jan  5 00:42:24 2004
+++ gnus/lisp/pgg.el	Thu May 20 10:02:41 2004
@@ -376,4 +376,5 @@
 
 (provide 'pgg)
 
+;;; arch-tag: 9cc705dd-1e6a-4c90-8dce-c3561f9a2cf4
 ;;; pgg.el ends here
Index: gnus/lisp/pop3.el
diff -u gnus/lisp/pop3.el:7.3 gnus/lisp/pop3.el:7.12
--- gnus/lisp/pop3.el:7.3	Thu Feb  5 03:42:25 2004
+++ gnus/lisp/pop3.el	Sun Feb 13 05:44:40 2005
@@ -1,6 +1,6 @@
 ;;; pop3.el --- Post Office Protocol (RFC 1460) interface
 
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Richard L. Pieri <ratinox@peorth.gweep.net>
@@ -36,24 +36,64 @@
 ;;; Code:
 
 (require 'mail-utils)
-(require 'nnheader)
 
-(defvar pop3-maildrop (or (user-login-name) (getenv "LOGNAME") (getenv "USER") nil)
-  "*POP3 maildrop.")
-(defvar pop3-mailhost (or (getenv "MAILHOST") nil)
-  "*POP3 mailhost.")
-(defvar pop3-port 110
-  "*POP3 port.")
+(defgroup pop3 nil
+  "Post Office Protocol"
+  :group 'mail
+  :group 'mail-source)
+
+(defcustom pop3-maildrop (or (user-login-name)
+			     (getenv "LOGNAME")
+			     (getenv "USER"))
+  "*POP3 maildrop."
+  :version "22.1" ;; Oort Gnus
+  :type 'string
+  :group 'pop3)
+
+(defcustom pop3-mailhost (or (getenv "MAILHOST") ;; nil -> mismatch
+			     "pop3")
+  "*POP3 mailhost."
+  :version "22.1" ;; Oort Gnus
+  :type 'string
+  :group 'pop3)
+
+(defcustom pop3-port 110
+  "*POP3 port."
+  :version "22.1" ;; Oort Gnus
+  :type 'number
+  :group 'pop3)
+
+(defcustom pop3-password-required t
+  "*Non-nil if a password is required when connecting to POP server."
+  :version "22.1" ;; Oort Gnus
+  :type 'boolean
+  :group 'pop3)
 
-(defvar pop3-password-required t
-  "*Non-nil if a password is required when connecting to POP server.")
+;; Should this be customizable?
 (defvar pop3-password nil
   "*Password to use when connecting to POP server.")
 
-(defvar pop3-authentication-scheme 'pass
+(defcustom pop3-authentication-scheme 'pass
   "*POP3 authentication scheme.
 Defaults to 'pass, for the standard USER/PASS authentication.  Other valid
-values are 'apop.")
+values are 'apop."
+  :version "22.1" ;; Oort Gnus
+  :type '(choice (const :tag "USER/PASS" pass)
+		 (const :tag "APOP" apop))
+  :group 'pop3)
+
+(defcustom pop3-leave-mail-on-server nil
+  "*Non-nil if the mail is to be left on the POP server after fetching.
+
+If `pop3-leave-mail-on-server' is non-nil the mail is to be left
+on the POP server after fetching.  Note that POP servers maintain
+no state information between sessions, so what the client
+believes is there and what is actually there may not match up.
+If they do not, then the whole thing can fall apart and leave you
+with a corrupt mailbox."
+  :version "22.1" ;; Oort Gnus
+  :type 'boolean
+  :group 'pop3)
 
 (defvar pop3-timestamp nil
   "Timestamp returned when initially connected to the POP server.
@@ -62,6 +102,32 @@
 (defvar pop3-read-point nil)
 (defvar pop3-debug nil)
 
+;; Borrowed from nnheader-accept-process-output in nnheader.el.
+(defvar pop3-read-timeout
+  (if (string-match "windows-nt\\|os/2\\|emx\\|cygwin"
+		    (symbol-name system-type))
+      ;; http://thread.gmane.org/v9655t3pjo.fsf@marauder.physik.uni-ulm.de
+      ;;
+      ;; IIRC, values lower than 1.0 didn't/don't work on Windows/DOS.
+      ;;
+      ;; There should probably be a runtime test to determine the timing
+      ;; resolution, or a primitive to report it.  I don't know off-hand
+      ;; what's possible.  Perhaps better, maybe the Windows/DOS primitive
+      ;; could round up non-zero timeouts to a minimum of 1.0?
+      1.0
+    0.1)
+  "How long pop3 should wait between checking for the end of output.
+Shorter values mean quicker response, but are more CPU intensive.")
+
+;; Borrowed from nnheader-accept-process-output in nnheader.el.
+(defun pop3-accept-process-output (process)
+  (accept-process-output
+   process
+   (truncate pop3-read-timeout)
+   (truncate (* (- pop3-read-timeout
+		   (truncate pop3-read-timeout))
+		1000))))
+
 (defun pop3-movemail (&optional crashbox)
   "Transfer contents of a maildrop to the specified CRASHBOX."
   (or crashbox (setq crashbox (expand-file-name "~/.crashbox")))
@@ -69,8 +135,7 @@
 	 (crashbuf (get-buffer-create " *pop3-retr*"))
 	 (n 1)
 	 message-count
-	 (pop3-password pop3-password)
-	 )
+	 (pop3-password pop3-password))
     ;; for debugging only
     (if pop3-debug (switch-to-buffer (process-buffer process)))
     ;; query for password
@@ -98,7 +163,8 @@
 	      (goto-char (point-min))
 	      (forward-line 50)
 	      (delete-region (point-min) (point))))
-	  (pop3-dele process n)
+          (unless pop3-leave-mail-on-server
+            (pop3-dele process n))
 	  (setq n (+ 1 n))
 	  (if pop3-debug (sit-for 1) (sit-for 0.1))
 	  )
@@ -111,8 +177,7 @@
   "Return the number of messages in the maildrop."
   (let* ((process (pop3-open-server pop3-mailhost pop3-port))
 	 message-count
-	 (pop3-password pop3-password)
-	 )
+	 (pop3-password pop3-password))
     ;; for debugging only
     (if pop3-debug (switch-to-buffer (process-buffer process)))
     ;; query for password
@@ -156,15 +221,14 @@
     (insert output)))
 
 (defun pop3-send-command (process command)
-    (set-buffer (process-buffer process))
-    (goto-char (point-max))
-;;    (if (= (aref command 0) ?P)
-;;	(insert "PASS <omitted>\r\n")
-;;      (insert command "\r\n"))
-    (setq pop3-read-point (point))
-    (goto-char (point-max))
-    (process-send-string process (concat command "\r\n"))
-    )
+  (set-buffer (process-buffer process))
+  (goto-char (point-max))
+  ;; (if (= (aref command 0) ?P)
+  ;;     (insert "PASS <omitted>\r\n")
+  ;;   (insert command "\r\n"))
+  (setq pop3-read-point (point))
+  (goto-char (point-max))
+  (process-send-string process (concat command "\r\n")))
 
 (defun pop3-read-response (process &optional return)
   "Read the response from the server.
@@ -176,7 +240,7 @@
       (goto-char pop3-read-point)
       (while (and (memq (process-status process) '(open run))
 		  (not (search-forward "\r\n" nil t)))
-	(nnheader-accept-process-output process)
+	(pop3-accept-process-output process)
 	(goto-char pop3-read-point))
       (setq match-end (point))
       (goto-char pop3-read-point)
@@ -334,29 +398,16 @@
     (save-excursion
       (set-buffer (process-buffer process))
       (while (not (re-search-forward "^\\.\r\n" nil t))
-	;; Fixme: Shouldn't depend on nnheader.
-	(nnheader-accept-process-output process)
-	;; bill@att.com ... to save wear and tear on the heap
-	;; uncommented because the condensed version below is a problem for
-	;; some.
-	(if (> (buffer-size)  20000) (sleep-for 1))
-	(if (> (buffer-size)  50000) (sleep-for 1))
-	(if (> (buffer-size) 100000) (sleep-for 1))
-	(if (> (buffer-size) 200000) (sleep-for 1))
-	(if (> (buffer-size) 500000) (sleep-for 1))
-	;; bill@att.com
-	;; condensed into:
-	;; (sometimes causes problems for really large messages.)
-;	(if (> (buffer-size) 20000) (sleep-for (/ (buffer-size) 20000)))
+	(pop3-accept-process-output process)
 	(goto-char start))
       (setq pop3-read-point (point-marker))
-;; this code does not seem to work for some POP servers...
-;; and I cannot figure out why not.
-;      (goto-char (match-beginning 0))
-;      (backward-char 2)
-;      (if (not (looking-at "\r\n"))
-;	  (insert "\r\n"))
-;      (re-search-forward "\\.\r\n")
+      ;; this code does not seem to work for some POP servers...
+      ;; and I cannot figure out why not.
+      ;;      (goto-char (match-beginning 0))
+      ;;      (backward-char 2)
+      ;;      (if (not (looking-at "\r\n"))
+      ;;	  (insert "\r\n"))
+      ;;      (re-search-forward "\\.\r\n")
       (goto-char (match-beginning 0))
       (setq end (point-marker))
       (pop3-clean-region start end)
@@ -486,4 +537,5 @@
 
 (provide 'pop3)
 
+;;; arch-tag: 2facc142-1d74-498e-82af-4659b64cac12
 ;;; pop3.el ends here
Index: gnus/lisp/qp.el
diff -u gnus/lisp/qp.el:7.1 gnus/lisp/qp.el:7.4
--- gnus/lisp/qp.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/qp.el	Mon Apr 18 02:44:59 2005
@@ -1,6 +1,7 @@
 ;;; qp.el --- Quoted-Printable functions
 
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
+;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: mail, extensions
@@ -100,20 +101,15 @@
 If `mm-use-ultra-safe-encoding' is set, fold lines unconditionally and
 encode lines starting with \"From\"."
   (interactive "r")
-  (save-excursion
-    (goto-char from)
-    (if (fboundp 'string-to-multibyte)	; Emacs 22
-	(if (re-search-forward (string-to-multibyte "[^\x0-\x7f\x80-\xff]")
-			       to t)
-	    ;; Fixme: This is somewhat misleading.
-	    (error "Multibyte character in QP encoding region"))
-      (if (re-search-forward (mm-string-as-multibyte "[^\0-\377]") to t)
-	  (error "Multibyte character in QP encoding region"))))
   (unless class
     ;; Avoid using 8bit characters. = is \075.
     ;; Equivalent to "^\000-\007\013\015-\037\200-\377="
     (setq class "\010-\012\014\040-\074\076-\177"))
   (save-excursion
+    (goto-char from)
+    (if (re-search-forward (mm-string-to-multibyte "[^\x0-\x7f\x80-\xff]")
+			   to t)
+	(error "Multibyte character in QP encoding region"))
     (save-restriction
       (narrow-to-region from to)
       ;; Encode all the non-ascii and control characters.
@@ -168,4 +164,5 @@
 
 (provide 'qp)
 
+;;; arch-tag: db89e52a-e4a1-4b69-926f-f434f04216ba
 ;;; qp.el ends here
Index: gnus/lisp/rfc1843.el
diff -u gnus/lisp/rfc1843.el:7.1 gnus/lisp/rfc1843.el:7.2
--- gnus/lisp/rfc1843.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/rfc1843.el	Thu May 20 10:02:41 2004
@@ -181,4 +181,5 @@
 
 (provide 'rfc1843)
 
+;;; arch-tag: 5149c301-a6ca-4731-9c9d-ba616e2cb687
 ;;; rfc1843.el ends here
Index: gnus/lisp/rfc2045.el
diff -u gnus/lisp/rfc2045.el:7.1 gnus/lisp/rfc2045.el:7.2
--- gnus/lisp/rfc2045.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/rfc2045.el	Thu May 20 10:02:41 2004
@@ -40,4 +40,5 @@
 
 (provide 'rfc2045)
 
+;;; arch-tag: 9ca54127-97bc-432c-b6e2-8c59cadba306
 ;;; rfc2045.el ends here
Index: gnus/lisp/rfc2047.el
diff -u gnus/lisp/rfc2047.el:7.11 gnus/lisp/rfc2047.el:7.39
--- gnus/lisp/rfc2047.el:7.11	Wed Apr  7 21:41:45 2004
+++ gnus/lisp/rfc2047.el	Sat Feb 19 12:41:33 2005
@@ -1,5 +1,7 @@
 ;;; rfc2047.el --- functions for encoding and decoding rfc2047 messages
-;; Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005
+;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;	MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -33,6 +35,7 @@
 
 (require 'qp)
 (require 'mm-util)
+(require 'ietf-drums)
 ;; Fixme: Avoid this (used for mail-parse-charset) mm dependence on gnus.
 (require 'mail-prsvr)
 (require 'base64)
@@ -42,7 +45,7 @@
   '(("Newsgroups" . nil)
     ("Followup-To" . nil)
     ("Message-ID" . nil)
-    ("\\(Resent-\\)?\\(From\\|Cc\\|To\\|Bcc\\|Reply-To\\|Sender\
+    ("\\(Resent-\\)?\\(From\\|Cc\\|To\\|Bcc\\|\\(In-\\)?Reply-To\\|Sender\
 \\|Mail-Followup-To\\|Mail-Copies-To\\|Approved\\)" . address-mime)
     (t . mime))
   "*Header/encoding method alist.
@@ -87,12 +90,15 @@
 Valid encodings are nil, `Q' and `B'.  These indicate binary (no) encoding,
 quoted-printable and base64 respectively.")
 
-(defvar rfc2047-encoding-function-alist
-  '((Q . rfc2047-q-encode-region)
-    (B . rfc2047-b-encode-region)
-    (nil . ignore))
+(defvar rfc2047-encode-function-alist
+  '((Q . rfc2047-q-encode-string)
+    (B . rfc2047-b-encode-string)
+    (nil . identity))
   "Alist of RFC2047 encodings to encoding functions.")
 
+(defvar rfc2047-encode-encoded-words t
+  "Whether encoded words should be encoded again.")
+
 ;;;
 ;;; Functions for encoding RFC2047 messages
 ;;;
@@ -134,7 +140,7 @@
     (save-restriction
       (rfc2047-narrow-to-field)
       (re-search-forward ":[ \t\n]*" nil t)
-      (buffer-substring (point) (point-max)))))
+      (buffer-substring-no-properties (point) (point-max)))))
 
 (defvar rfc2047-encoding-type 'address-mime
   "The type of encoding done by `rfc2047-encode-region'.
@@ -154,24 +160,25 @@
 	  (rfc2047-narrow-to-field)
 	  (if (not (rfc2047-encodable-p))
 	      (prog1
-		(if (and (eq (mm-body-7-or-8) '8bit)
-			 (mm-multibyte-p)
-			 (mm-coding-system-p
-			  (car message-posting-charset)))
-		    ;; 8 bit must be decoded.
-		    (mm-encode-coding-region
-		     (point-min) (point-max)
-		     (mm-charset-to-coding-system
-		      (car message-posting-charset))))
+		  (if (and (eq (mm-body-7-or-8) '8bit)
+			   (mm-multibyte-p)
+			   (mm-coding-system-p
+			    (car message-posting-charset)))
+		      ;; 8 bit must be decoded.
+		      (mm-encode-coding-region
+		       (point-min) (point-max)
+		       (mm-charset-to-coding-system
+			(car message-posting-charset))))
 		;; No encoding necessary, but folding is nice
-		(rfc2047-fold-region
-		 (save-excursion
-		   (goto-char (point-min))
-		   (skip-chars-forward "^:")
-		   (when (looking-at ": ")
-		     (forward-char 2))
-		   (point))
-		 (point-max)))
+		(when nil
+		  (rfc2047-fold-region
+		   (save-excursion
+		     (goto-char (point-min))
+		     (skip-chars-forward "^:")
+		     (when (looking-at ": ")
+		       (forward-char 2))
+		     (point))
+		   (point-max))))
 	    ;; We found something that may perhaps be encoded.
 	    (setq method nil
 		  alist rfc2047-header-encoding-alist)
@@ -181,7 +188,6 @@
 			(eq (car elem) t))
 		(setq alist nil
 		      method (cdr elem))))
-	    (goto-char (point-min))
 	    (re-search-forward "^[^:]+: *" nil t)
 	    (cond
 	     ((eq method 'address-mime)
@@ -235,8 +241,13 @@
   (require 'message)			; for message-posting-charset
   (let ((charsets
 	 (mm-find-mime-charset-region (point-min) (point-max))))
-    (and charsets
-	 (not (equal charsets (list (car message-posting-charset)))))))
+    (goto-char (point-min))
+    (or (and rfc2047-encode-encoded-words
+	     (prog1
+		 (search-forward "=?" nil t)
+	       (goto-char (point-min))))
+	(and charsets
+	     (not (equal charsets (list (car message-posting-charset))))))))
 
 ;; Use this syntax table when parsing into regions that may need
 ;; encoding.  Double quotes are string delimiters, backslash is
@@ -260,8 +271,8 @@
 			      table))))
     (modify-syntax-entry ?\\ "\\" table)
     (modify-syntax-entry ?\" "\"" table)
-    (modify-syntax-entry ?\( "." table)
-    (modify-syntax-entry ?\) "." table)
+    (modify-syntax-entry ?\( "(" table)
+    (modify-syntax-entry ?\) ")" table)
     (modify-syntax-entry ?\< "." table)
     (modify-syntax-entry ?\> "." table)
     (modify-syntax-entry ?\[ "." table)
@@ -278,183 +289,341 @@
 Dynamically bind `rfc2047-encoding-type' to change that."
   (save-restriction
     (narrow-to-region b e)
-    (if (eq 'mime rfc2047-encoding-type)
-	;; Simple case.  Treat as single word after any initial ASCII
-	;; part and before any tailing ASCII part.  The leading ASCII
-	;; is relevant for instance in Subject headers with `Re:' for
-	;; interoperability with non-MIME clients, and we might as
-	;; well avoid the tail too.
-	(progn
-	  (goto-char (point-min))
-	  ;; Does it need encoding?
-	  (skip-chars-forward "\000-\177")
-	  (unless (eobp)
-	    (skip-chars-backward "^ \n") ; beginning of space-delimited word
-	    (rfc2047-encode (point) (progn
-				      (goto-char e)
-				      (skip-chars-backward "\000-\177")
-				      (skip-chars-forward "^ \n")
-				      ;; end of space-delimited word
-				      (point)))))
-      ;; `address-mime' case -- take care of quoted words, comments.
-      (with-syntax-table rfc2047-syntax-table
-	(let ((start)			; start of current token
-	      end			; end of current token
-	      ;; Whether there's an encoded word before the current
-	      ;; token, either immediately or separated by space.
-	      last-encoded)
+    (let ((encodable-regexp (if rfc2047-encode-encoded-words
+				"[^\000-\177]+\\|=\\?"
+			      "[^\000-\177]+"))
+	  start				; start of current token
+	  end begin csyntax
+	  ;; Whether there's an encoded word before the current token,
+	  ;; either immediately or separated by space.
+	  last-encoded
+	  (orig-text (buffer-substring-no-properties b e)))
+      (if (eq 'mime rfc2047-encoding-type)
+	  ;; Simple case.  Continuous words in which all those contain
+	  ;; non-ASCII characters are encoded collectively.  Encoding
+	  ;; ASCII words, including `Re:' used in Subject headers, is
+	  ;; avoided for interoperability with non-MIME clients and
+	  ;; for making it easy to find keywords.
+	  (progn
+	    (goto-char (point-min))
+	    (while (progn (skip-chars-forward " \t\n")
+			  (not (eobp)))
+	      (setq start (point))
+	      (while (and (looking-at "[ \t\n]*\\([^ \t\n]+\\)")
+			  (progn
+			    (setq end (match-end 0))
+			    (re-search-forward encodable-regexp end t)))
+		(goto-char end))
+	      (if (> (point) start)
+		  (rfc2047-encode start (point))
+		(goto-char end))))
+	;; `address-mime' case -- take care of quoted words, comments.
+	(with-syntax-table rfc2047-syntax-table
 	  (goto-char (point-min))
-	  (condition-case nil		; in case of unbalanced quotes
+	  (condition-case err		; in case of unbalanced quotes
 	      ;; Look for rfc2822-style: sequences of atoms, quoted
 	      ;; strings, specials, whitespace.  (Specials mustn't be
 	      ;; encoded.)
 	      (while (not (eobp))
-		(setq start (point))
 		;; Skip whitespace.
-		(unless (= 0 (skip-chars-forward " \t\n"))
-		  (setq start (point)))
+		(skip-chars-forward " \t\n")
+		(setq start (point))
 		(cond
 		 ((not (char-after)))	; eob
 		 ;; else token start
-		 ((eq ?\" (char-syntax (char-after)))
+		 ((eq ?\" (setq csyntax (char-syntax (char-after))))
 		  ;; Quoted word.
 		  (forward-sexp)
 		  (setq end (point))
 		  ;; Does it need encoding?
 		  (goto-char start)
-		  (skip-chars-forward "\000-\177" end)
-		  (if (= end (point))
-		      (setq last-encoded  nil)
-		    ;; It needs encoding.  Strip the quotes first,
-		    ;; since encoded words can't occur in quotes.
-		    (goto-char end)
-		    (delete-backward-char 1)
-		    (goto-char start)
-		    (delete-char 1)
-		    (when last-encoded
-		      ;; There was a preceding quoted word.  We need
-		      ;; to include any separating whitespace in this
-		      ;; word to avoid it getting lost.
-		      (skip-chars-backward " \t")
-		      ;; A space is needed between the encoded words.
-		      (insert ? )
-		      (setq start (point)
-			    end (1+ end)))
-		    ;; Adjust the end position for the deleted quotes.
-		    (rfc2047-encode start (- end 2))
-		    (setq last-encoded t))) ; record that it was encoded
-		 ((eq ?. (char-syntax (char-after)))
+		  (if (re-search-forward encodable-regexp end 'move)
+		      ;; It needs encoding.  Strip the quotes first,
+		      ;; since encoded words can't occur in quotes.
+		      (progn
+			(goto-char end)
+			(delete-backward-char 1)
+			(goto-char start)
+			(delete-char 1)
+			(when last-encoded
+			  ;; There was a preceding quoted word.  We need
+			  ;; to include any separating whitespace in this
+			  ;; word to avoid it getting lost.
+			  (skip-chars-backward " \t")
+			  ;; A space is needed between the encoded words.
+			  (insert ? )
+			  (setq start (point)
+				end (1+ end)))
+			;; Adjust the end position for the deleted quotes.
+			(rfc2047-encode start (- end 2))
+			(setq last-encoded t)) ; record that it was encoded
+		    (setq last-encoded  nil)))
+		 ((eq ?. csyntax)
 		  ;; Skip other delimiters, but record that they've
 		  ;; potentially separated quoted words.
 		  (forward-char)
 		  (setq last-encoded nil))
+		 ((eq ?\) csyntax)
+		  (error "Unbalanced parentheses"))
+		 ((eq ?\( csyntax)
+		  ;; Look for the end of parentheses.
+		  (forward-list)
+		  ;; Encode text as an unstructured field.
+		  (let ((rfc2047-encoding-type 'mime))
+		    (rfc2047-encode-region (1+ start) (1- (point))))
+		  (skip-chars-forward ")"))
 		 (t		    ; normal token/whitespace sequence
 		  ;; Find the end.
-		  (forward-word 1)
-		  (skip-chars-backward " \t")
+		  ;; Skip one ASCII word, or encode continuous words
+		  ;; in which all those contain non-ASCII characters.
+		  (setq end nil)
+		  (while (not (or end (eobp)))
+		    (when (looking-at "[\000-\177]+")
+		      (setq begin (point)
+			    end (match-end 0))
+		      (when (progn
+			      (while (and (or (re-search-forward
+					       "[ \t\n]\\|\\Sw" end 'move)
+					      (setq end nil))
+					  (eq ?\\ (char-syntax (char-before))))
+				;; Skip backslash-quoted characters.
+				(forward-char))
+			      end)
+			(setq end (match-beginning 0))
+			(if rfc2047-encode-encoded-words
+			    (progn
+			      (goto-char begin)
+			      (when (search-forward "=?" end 'move)
+				(goto-char (match-beginning 0))
+				(setq end nil)))
+			  (goto-char end))))
+		    ;; Where the value nil of `end' means there may be
+		    ;; text to have to be encoded following the point.
+		    ;; Otherwise, the point reached to the end of ASCII
+		    ;; words separated by whitespace or a special char.
+		    (unless end
+		      (when (looking-at encodable-regexp)
+			(goto-char (setq begin (match-end 0)))
+			(while (and (looking-at "[ \t\n]+\\([^ \t\n]+\\)")
+				    (setq end (match-end 0))
+				    (progn
+				      (while (re-search-forward
+					      encodable-regexp end t))
+				      (< begin (point)))
+				    (goto-char begin)
+				    (or (not (re-search-forward "\\Sw" end t))
+					(progn
+					  (goto-char (match-beginning 0))
+					  nil)))
+			  (goto-char end))
+			(when (looking-at "[^ \t\n]+")
+			  (setq end (match-end 0))
+			  (if (re-search-forward "\\Sw+" end t)
+			      ;; There are special characters better
+			      ;; to be encoded so that MTAs may parse
+			      ;; them safely.
+			      (cond ((= end (point)))
+				    ((looking-at (concat "\\sw*\\("
+							 encodable-regexp
+							 "\\)"))
+				     (setq end nil))
+				    (t
+				     (goto-char (1- (match-end 0)))
+				     (unless (= (point) (match-beginning 0))
+				       ;; Separate encodable text and
+				       ;; delimiter.
+				       (insert " "))))
+			    (goto-char end)
+			    (skip-chars-forward " \t\n")
+			    (if (and (looking-at "[^ \t\n]+")
+				     (string-match encodable-regexp
+						   (match-string 0)))
+				(setq end nil)
+			      (goto-char end)))))))
+		  (skip-chars-backward " \t\n")
 		  (setq end (point))
-		  ;; Deal with encoding and leading space as for
-		  ;; quoted words.
 		  (goto-char start)
-		  (skip-chars-forward "\000-\177" end)
-		  (if (= end (point))
-		      (setq last-encoded  nil)
-		    (when last-encoded
-		      (goto-char start)
-		      (skip-chars-backward " \t")
-		      (insert ? )
-		      (setq start (point)
-			    end (1+ end)))
-		    (rfc2047-encode start end)
-		    (setq last-encoded t)))))
+		  (if (re-search-forward encodable-regexp end 'move)
+		      (progn
+			(unless (memq (char-before start) '(nil ?\t ? ))
+			  (if (progn
+				(goto-char start)
+				(skip-chars-backward "^ \t\n")
+				(and (looking-at "\\Sw+")
+				     (= (match-end 0) start)))
+			      ;; Also encode bogus delimiters.
+			      (setq start (point))
+			    ;; Separate encodable text and delimiter.
+			    (goto-char start)
+			    (insert " ")
+			    (setq start (1+ start)
+				  end (1+ end))))
+			(rfc2047-encode start end)
+			(setq last-encoded t))
+		    (setq last-encoded nil)))))
 	    (error
-	     (error "Invalid data for rfc2047 encoding: %s"
-		    (buffer-substring b e)))))))
-    (rfc2047-fold-region b (point))))
+	     (if (or debug-on-quit debug-on-error)
+		 (signal (car err) (cdr err))
+	       (error "Invalid data for rfc2047 encoding: %s"
+		      (mm-replace-in-string orig-text "[ \t\n]+" " "))))))))
+    (rfc2047-fold-region b (point))
+    (goto-char (point-max))))
 
 (defun rfc2047-encode-string (string)
   "Encode words in STRING.
 By default, the string is treated as containing addresses (see
 `rfc2047-encoding-type')."
-  (with-temp-buffer
+  (mm-with-multibyte-buffer
     (insert string)
     (rfc2047-encode-region (point-min) (point-max))
     (buffer-string)))
 
+(defvar rfc2047-encode-max-chars 76
+  "Maximum characters of each header line that contain encoded-words.
+If it is nil, encoded-words will not be folded.  Too small value may
+cause an error.  Don't change this for no particular reason.")
+
+(defun rfc2047-encode-1 (column string cs encoder start crest tail
+				&optional eword)
+  "Subroutine used by `rfc2047-encode'."
+  (cond ((string-equal string "")
+	 (or eword ""))
+	((not rfc2047-encode-max-chars)
+	 (concat start
+		 (funcall encoder (if cs
+				      (mm-encode-coding-string string cs)
+				    string))
+		 "?="))
+	((>= column rfc2047-encode-max-chars)
+	 (when eword
+	   (cond ((string-match "\n[ \t]+\\'" eword)
+		  ;; Reomove a superfluous empty line.
+		  (setq eword (substring eword 0 (match-beginning 0))))
+		 ((string-match "(+\\'" eword)
+		  ;; Break the line before the open parenthesis.
+		  (setq crest (concat crest (match-string 0 eword))
+			eword (substring eword 0 (match-beginning 0))))))
+	 (rfc2047-encode-1 (length crest) string cs encoder start " " tail
+			   (concat eword "\n" crest)))
+	(t
+	 (let ((index 0)
+	       (limit (1- (length string)))
+	       (prev "")
+	       next len)
+	   (while (and prev
+		       (<= index limit))
+	     (setq next (concat start
+				(funcall encoder
+					 (if cs
+					     (mm-encode-coding-string
+					      (substring string 0 (1+ index))
+					      cs)
+					   (substring string 0 (1+ index))))
+				"?=")
+		   len (+ column (length next)))
+	     (if (> len rfc2047-encode-max-chars)
+		 (setq next prev
+		       prev nil)
+	       (if (or (< index limit)
+		       (<= (+ len (or (string-match "\n" tail)
+				      (length tail)))
+			   rfc2047-encode-max-chars))
+		   (setq prev next
+			 index (1+ index))
+		 (if (string-match "\\`)+" tail)
+		     ;; Break the line after the close parenthesis.
+		     (setq tail (concat (substring tail 0 (match-end 0))
+					"\n "
+					(substring tail (match-end 0)))
+			   prev next
+			   index (1+ index))
+		   (setq next prev
+			 prev nil)))))
+	   (if (> index limit)
+	       (concat eword next tail)
+	     (if (= 0 index)
+		 (if (and eword
+			  (string-match "(+\\'" eword))
+		     (setq crest (concat crest (match-string 0 eword))
+			   eword (substring eword 0 (match-beginning 0)))
+		   (setq eword (concat eword next)))
+	       (setq crest " "
+		     eword (concat eword next)))
+	     (when (string-match "\n[ \t]+\\'" eword)
+	       ;; Reomove a superfluous empty line.
+	       (setq eword (substring eword 0 (match-beginning 0))))
+	     (rfc2047-encode-1 (length crest) (substring string index)
+			       cs encoder start " " tail
+			       (concat eword "\n" crest)))))))
+
 (defun rfc2047-encode (b e)
   "Encode the word(s) in the region B to E.
-By default, the region is treated as containing addresses (see
-`rfc2047-encoding-type')."
-  (let* ((mime-charset (mm-find-mime-charset-region b e))
-	 (cs (if (> (length mime-charset) 1)
-		 ;; Fixme: Instead of this, try to break region into
-		 ;; parts that can be encoded separately.
-		 (error "Can't rfc2047-encode `%s'"
-			(buffer-substring b e))
-	       (setq mime-charset (car mime-charset))
-	       (mm-charset-to-coding-system mime-charset)))
-	 ;; Fixme: Better, calculate the number of non-ASCII
-	 ;; characters, at least for 8-bit charsets.
-	 (encoding (or (cdr (assq mime-charset
+Point moves to the end of the region."
+  (let ((mime-charset (or (mm-find-mime-charset-region b e) (list 'us-ascii)))
+	cs encoding tail crest eword)
+    (cond ((> (length mime-charset) 1)
+	   (error "Can't rfc2047-encode `%s'"
+		  (buffer-substring-no-properties b e)))
+	  ((= (length mime-charset) 1)
+	   (setq mime-charset (car mime-charset)
+		 cs (mm-charset-to-coding-system mime-charset))
+	   (unless (and (mm-multibyte-p)
+			(mm-coding-system-p cs))
+	     (setq cs nil))
+	   (save-restriction
+	     (narrow-to-region b e)
+	     (setq encoding
+		   (or (cdr (assq mime-charset
 				  rfc2047-charset-encoding-alist))
 		       ;; For the charsets that don't have a preferred
 		       ;; encoding, choose the one that's shorter.
-		       (save-restriction
-			 (narrow-to-region b e)
-			 (if (eq (rfc2047-qp-or-base64) 'base64)
-			     'B
-			   'Q))))
-	 (start (concat
-		 "=?" (downcase (symbol-name mime-charset)) "?"
-		 (downcase (symbol-name encoding)) "?"))
-	 (factor (case mime-charset
-		   ((iso-8859-5 iso-8859-7 iso-8859-8 koi8-r) 1)
-		   ((big5 gb2312 euc-kr) 2)
-		   (utf-8 4)
-		   (t 8)))
-	 (pre (- b (save-restriction
-		     (widen)
-		     (point-at-bol))))
-	 ;; encoded-words must not be longer than 75 characters,
-	 ;; including charset, encoding etc.  This leaves us with
-	 ;; 75 - (length start) - 2 - 2 characters.  The last 2 is for
-	 ;; possible base64 padding.  In the worst case (iso-2022-*)
-	 ;; each character expands to 8 bytes which is expanded by a
-	 ;; factor of 4/3 by base64 encoding.
-	 (length (floor (- 75 (length start) 4) (* factor (/ 4.0 3.0))))
-	 ;; Limit line length to 76 characters.
-	 (length1 (max 1 (floor (- 76 (length start) 4 pre)
-				(* factor (/ 4.0 3.0)))))
-	 (first t))
-    (if mime-charset
-	(save-restriction
-	  (narrow-to-region b e)
-	  (when (eq encoding 'B)
-	    ;; break into lines before encoding
-	    (goto-char (point-min))
-	    (while (not (eobp))
-	      (if first
-		  (progn
-		    (goto-char (min (point-max) (+ length1 (point))))
-		    (setq first nil))
-		(goto-char (min (point-max) (+ length (point)))))
-	      (unless (eobp)
-		(insert ?\n)))
-	    (setq first t))
-	  (if (and (mm-multibyte-p)
-		   (mm-coding-system-p cs))
-	      (mm-encode-coding-region (point-min) (point-max) cs))
-	  (funcall (cdr (assq encoding rfc2047-encoding-function-alist))
-		   (point-min) (point-max))
-	  (goto-char (point-min))
-	  (while (not (eobp))
-	    (unless first
-	      (insert ? ))
-	    (setq first nil)
-	    (insert start)
-	    (end-of-line)
-	    (insert "?=")
-	    (forward-line 1))))))
+		       (if (eq (rfc2047-qp-or-base64) 'base64)
+			   'B
+			 'Q)))
+	     (widen)
+	     (goto-char e)
+	     (skip-chars-forward "^ \t\n")
+	     ;; `tail' may contain a close parenthesis.
+	     (setq tail (buffer-substring-no-properties e (point)))
+	     (goto-char b)
+	     (setq b (point-marker)
+		   e (set-marker (make-marker) e))
+	     (rfc2047-fold-region (point-at-bol) b)
+	     (goto-char b)
+	     (skip-chars-backward "^ \t\n")
+	     (unless (= 0 (skip-chars-backward " \t"))
+	       ;; `crest' may contain whitespace and an open parenthesis.
+	       (setq crest (buffer-substring-no-properties (point) b)))
+	     (setq eword (rfc2047-encode-1
+			  (- b (point-at-bol))
+			  (mm-replace-in-string
+			   (buffer-substring-no-properties b e)
+			   "\n\\([ \t]?\\)" "\\1")
+			  cs
+			  (or (cdr (assq encoding
+					 rfc2047-encode-function-alist))
+			      'identity)
+			  (concat "=?" (downcase (symbol-name mime-charset))
+				  "?" (upcase (symbol-name encoding)) "?")
+			  (or crest " ")
+			  tail))
+	     (delete-region (if (eq (aref eword 0) ?\n)
+				(if (bolp)
+				    ;; The line was folded before encoding.
+				    (1- (point))
+				  (point))
+			      (goto-char b))
+			    (+ e (length tail)))
+	     ;; `eword' contains `crest' and `tail'.
+	     (insert eword)
+	     (set-marker b nil)
+	     (set-marker e nil)
+	     (unless (or (/= 0 (length tail))
+			 (eobp)
+			 (looking-at "[ \t\n)]"))
+	       (insert " "))))
+	  (t
+	   (goto-char e)))))
 
 (defun rfc2047-fold-field ()
   "Fold the current header field."
@@ -480,6 +649,7 @@
 	  (goto-char (or break qword-break))
 	  (setq break nil
 		qword-break nil)
+	  (skip-chars-backward " \t")
 	  (if (looking-at "[ \t]")
 	      (insert ?\n)
 	    (insert "\n "))
@@ -501,10 +671,8 @@
 	  (forward-char 1))
 	 ((memq (char-after) '(?  ?\t))
 	  (skip-chars-forward " \t")
-	  (if first
-	      ;; Don't break just after the header name.
-	      (setq first nil)
-	    (setq break (1- (point)))))
+	  (unless first ;; Don't break just after the header name.
+	    (setq break (point))))
 	 ((not break)
 	  (if (not (looking-at "=\\?[^=]"))
 	      (if (eq (char-after) ?=)
@@ -515,15 +683,17 @@
 	      (setq qword-break (point)))
 	    (skip-chars-forward "^ \t\n\r")))
 	 (t
-	  (skip-chars-forward "^ \t\n\r"))))
+	  (skip-chars-forward "^ \t\n\r")))
+	(setq first nil))
       (when (and (or break qword-break)
 		 (> (- (point) bol) 76))
 	(goto-char (or break qword-break))
 	(setq break nil
 	      qword-break nil)
-	  (if (looking-at "[ \t]")
-	      (insert ?\n)
-	    (insert "\n "))
+	(if (or (> 0 (skip-chars-backward " \t"))
+		(looking-at "[ \t]"))
+	    (insert ?\n)
+	  (insert "\n "))
 	(setq bol (1- (point)))
 	;; Don't break before the first non-LWSP characters.
 	(skip-chars-forward " \t")
@@ -558,48 +728,48 @@
 	(setq eol (point-at-eol))
 	(forward-line 1)))))
 
-(defun rfc2047-b-encode-region (b e)
-  "Base64-encode the header contained in region B to E."
-  (save-restriction
-    (narrow-to-region (goto-char b) e)
-    (while (not (eobp))
-      (base64-encode-region (point) (progn (end-of-line) (point)) t)
-      (if (and (bolp) (eolp))
-	  (delete-backward-char 1))
-      (forward-line))))
+(defun rfc2047-b-encode-string (string)
+  "Base64-encode the header contained in STRING."
+  (base64-encode-string string t))
+
+(defun rfc2047-q-encode-string (string)
+  "Quoted-printable-encode the header in STRING."
+  (mm-with-unibyte-buffer
+    (insert string)
+    (quoted-printable-encode-region
+     (point-min) (point-max) nil
+     ;; = (\075), _ (\137), ? (\077) are used in the encoded word.
+     ;; Avoid using 8bit characters.
+     ;; This list excludes `especials' (see the RFC2047 syntax),
+     ;; meaning that some characters in non-structured fields will
+     ;; get encoded when they con't need to be.  The following is
+     ;; what it used to be.
+     ;;;  ;; Equivalent to "^\000-\007\011\013\015-\037\200-\377=_?"
+     ;;;  "\010\012\014\040-\074\076\100-\136\140-\177")
+     "-\b\n\f !#-'*+0-9A-Z\\^`-~\d")
+    (subst-char-in-region (point-min) (point-max) ?  ?_)
+    (buffer-string)))
 
-(defun rfc2047-q-encode-region (b e)
-  "Quoted-printable-encode the header in region B to E."
-  (save-excursion
-    (save-restriction
-      (narrow-to-region (goto-char b) e)
-      (let ((bol (save-restriction
-		   (widen)
-		   (point-at-bol))))
-	(quoted-printable-encode-region
-	 b e nil
-	 ;; = (\075), _ (\137), ? (\077) are used in the encoded word.
-	 ;; Avoid using 8bit characters.
-	 ;; This list excludes `especials' (see the RFC2047 syntax),
-	 ;; meaning that some characters in non-structured fields will
-	 ;; get encoded when they con't need to be.  The following is
-	 ;; what it used to be.
-;;;  	 ;; Equivalent to "^\000-\007\011\013\015-\037\200-\377=_?"
-;;;  	 "\010\012\014\040-\074\076\100-\136\140-\177")
-	 "-\b\n\f !#-'*+0-9A-Z\\^`-~\d")
-	(subst-char-in-region (point-min) (point-max) ?  ?_)
-	;; The size of QP encapsulation is about 20, so set limit to
-	;; 56=76-20.
-	(unless (< (- (point-max) (point-min)) 56)
-	  ;; Don't break if it could fit in one line.
-	  ;; Let rfc2047-encode-region break it later.
-	  (goto-char (1+ (point-min)))
-	  (while (and (not (bobp)) (not (eobp)))
-	    (goto-char (min (point-max) (+ 56 bol)))
-	    (search-backward "=" (- (point) 2) t)
-	    (unless (or (bobp) (eobp))
-	      (insert ?\n)
-	      (setq bol (point)))))))))
+(defun rfc2047-encode-parameter (param value)
+  "Return and PARAM=VALUE string encoded in the RFC2047-like style.
+This is a replacement for the `rfc2231-encode-string' function.
+
+When attaching files as MIME parts, we should use the RFC2231 encoding
+to specify the file names containing non-ASCII characters.  However,
+many mail softwares don't support it in practice and recipients won't
+be able to extract files with correct names.  Instead, the RFC2047-like
+encoding is acceptable generally.  This function provides the very
+RFC2047-like encoding, resigning to such a regrettable trend.  To use
+it, put the following line in your ~/.gnus.el file:
+
+\(defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter)
+"
+  (let* ((rfc2047-encoding-type 'mime)
+	 (rfc2047-encode-max-chars nil)
+	 (string (rfc2047-encode-string value)))
+    (if (string-match (concat "[" ietf-drums-tspecials "]") string)
+	(format "%s=%S" param string)
+      (concat param "=" string))))
 
 ;;;
 ;;; Functions for decoding RFC2047 messages
@@ -610,6 +780,9 @@
     "=\\?\\([^][\000-\040()<>@,\;:*\\\"/?.=]+\\)\\(?:\\*[^?]+\\)?\
 \\?\\(B\\|Q\\)\\?\\([!->@-~ ]*\\)\\?="))
 
+(defvar rfc2047-quote-decoded-words-containing-tspecials nil
+  "If non-nil, quote decoded words containing special characters.")
+
 ;; Fixme: This should decode in place, not cons intermediate strings.
 ;; Also check whether it needs to worry about delimiting fields like
 ;; encoding.
@@ -644,14 +817,66 @@
 	  (insert (rfc2047-parse-and-decode
 		   (prog1
 		       (match-string 0)
-		     (delete-region (match-beginning 0) (match-end 0)))))
-	  ;; Remove newlines between decoded words, though such things
-	  ;; essentially must not be there.
+		     (delete-region e (match-end 0)))))
+	  (while (looking-at rfc2047-encoded-word-regexp)
+	    (insert (rfc2047-parse-and-decode
+		     (prog1
+			 (match-string 0)
+		       (delete-region (point) (match-end 0))))))
 	  (save-restriction
 	    (narrow-to-region e (point))
 	    (goto-char e)
+	    ;; Remove newlines between decoded words, though such
+	    ;; things essentially must not be there.
 	    (while (re-search-forward "[\n\r]+" nil t)
 	      (replace-match " "))
+	    ;; Quote decoded words if there are special characters
+	    ;; which might violate RFC2822.
+	    (when (and rfc2047-quote-decoded-words-containing-tspecials
+		       (let ((regexp (car (rassq
+					   'address-mime
+					   rfc2047-header-encoding-alist))))
+			 (when regexp
+			   (save-restriction
+			     (widen)
+			     (beginning-of-line)
+			     (while (and (memq (char-after) '(?  ?\t))
+					 (zerop (forward-line -1))))
+			     (looking-at regexp)))))
+	      (let (quoted)
+		(goto-char e)
+		(skip-chars-forward " \t")
+		(setq start (point))
+		(setq quoted (eq (char-after) ?\"))
+		(goto-char (point-max))
+		(skip-chars-backward " \t")
+		(if (setq quoted (and quoted
+				      (> (point) (1+ start))
+				      (eq (char-before) ?\")))
+		    (progn
+		      (backward-char)
+		      (setq start (1+ start)
+			    end (point-marker)))
+		  (setq end (point-marker)))
+		(goto-char start)
+		(while (search-forward "\"" end t)
+		  (when (prog2
+			    (backward-char)
+			    (zerop (% (skip-chars-backward "\\\\") 2))
+			  (goto-char (match-beginning 0)))
+		    (insert "\\"))
+		  (forward-char))
+		(when (and (not quoted)
+			   (progn
+			     (goto-char start)
+			     (re-search-forward
+			      (concat "[" ietf-drums-tspecials "]")
+			      end t)))
+		  (goto-char start)
+		  (insert "\"")
+		  (goto-char end)
+		  (insert "\""))
+		(set-marker end nil)))
 	    (goto-char (point-max)))
 	  (when (and (mm-multibyte-p)
 		     mail-parse-charset
@@ -750,9 +975,8 @@
 	     (memq 'gnus-unknown mail-parse-ignored-charsets))
 	(setq cs (mm-charset-to-coding-system mail-parse-charset)))
     (when cs
-      (when (and (eq cs 'ascii)
-		 mail-parse-charset)
-	(setq cs mail-parse-charset))
+      (when (eq cs 'ascii)
+	(setq cs (or mail-parse-charset 'raw-text)))
       (mm-decode-coding-string
        (cond
 	((char-equal ?B encoding)
@@ -766,4 +990,5 @@
 
 (provide 'rfc2047)
 
+;;; arch-tag: a07fe3d4-22b5-4c4a-bd89-b1f82d5d36f6
 ;;; rfc2047.el ends here
Index: gnus/lisp/rfc2104.el
diff -u gnus/lisp/rfc2104.el:7.1 gnus/lisp/rfc2104.el:7.2
--- gnus/lisp/rfc2104.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/rfc2104.el	Thu May 20 10:02:41 2004
@@ -114,4 +114,5 @@
 
 (provide 'rfc2104)
 
+;;; arch-tag: cf671d5c-a45f-4a09-815e-704e59e43950
 ;;; rfc2104.el ends here
Index: gnus/lisp/rfc2231.el
diff -u gnus/lisp/rfc2231.el:7.1 gnus/lisp/rfc2231.el:7.4
--- gnus/lisp/rfc2231.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/rfc2231.el	Tue Dec 21 10:37:26 2004
@@ -1,6 +1,7 @@
 ;;; rfc2231.el --- Functions for decoding rfc2231 headers
 
-;; Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004
+;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
@@ -56,6 +57,8 @@
 			(mail-header-remove-comments string)))
       (let ((table (copy-syntax-table ietf-drums-syntax-table)))
 	(modify-syntax-entry ?\' "w" table)
+	(modify-syntax-entry ?* " " table)
+	(modify-syntax-entry ?\; " " table)
 	(modify-syntax-entry ?= " " table)
 	;; The following isn't valid, but one should be liberal
 	;; in what one receives.
@@ -85,7 +88,6 @@
 			 (point) (progn (forward-sexp 1) (point))))))
 	      (error "Invalid header: %s" string))
 	    (setq c (char-after))
-	    (setq encoded nil)
 	    (when (eq c ?*)
 	      (forward-char 1)
 	      (setq c (char-after))
@@ -123,16 +125,22 @@
 			   (point) (progn (forward-sexp) (point)))))
 	     (t
 	      (error "Invalid header: %s" string)))
-	    (when encoded
-	      (setq value (rfc2231-decode-encoded-string value)))
 	    (if number
 		(setq prev-attribute attribute
 		      prev-value (concat prev-value value))
-	      (push (cons attribute value) parameters))))
+	      (push (cons attribute
+			  (if encoded
+			      (rfc2231-decode-encoded-string value)
+			    value))
+		    parameters))))
 
 	;; Take care of any final continuations.
 	(when prev-attribute
-	  (push (cons prev-attribute prev-value) parameters))
+	  (push (cons prev-attribute
+		      (if encoded
+			  (rfc2231-decode-encoded-string prev-value)
+			prev-value))
+		parameters))
 
 	(when type
 	  `(,type ,@(nreverse parameters)))))))
@@ -221,4 +229,5 @@
 
 (provide 'rfc2231)
 
+;;; arch-tag: c3ab751d-d108-406a-b301-68882ad8cd63
 ;;; rfc2231.el ends here
Index: gnus/lisp/run-at-time.el
diff -u gnus/lisp/run-at-time.el:7.4 gnus/lisp/run-at-time.el:removed
--- gnus/lisp/run-at-time.el:7.4	Fri Jan 16 13:13:38 2004
+++ gnus/lisp/run-at-time.el	Sun May  1 19:05:03 2005
@@ -1,96 +0,0 @@
-;;; run-at-time.el --- A non-buggy version of the run-at-time function
-
-;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
-
-;; Author: Katsumi Yamaoka  <yamaoka@jpl.org>
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; XEmacs has a buggy version of run-at-time.  This file defines a
-;; non-buggy version of the same.
-
-(defalias
-  'run-at-time
-  (if (condition-case nil
-	  (progn
-	    (unless (or itimer-process itimer-timer)
-	      (itimer-driver-start))
-	    ;; Check whether there is a bug to which the difference of
-	    ;; the present time and the time when the itimer driver was
-	    ;; woken up is subtracted from the initial itimer value.
-	    (let* ((inhibit-quit t)
-		   (ctime (current-time))
-		   (itimer-timer-last-wakeup
-		    (prog1
-			ctime
-		      (setcar ctime (1- (car ctime)))))
-		   (itimer-list nil)
-		   (itimer (start-itimer "run-at-time" 'ignore 5)))
-	      (sleep-for 0.1) ;; Accept the timeout interrupt.
-	      (prog1
-		  (> (itimer-value itimer) 0)
-		(delete-itimer itimer))))
-	(error nil))
-      (lambda (time repeat function &rest args)
-	"Function emulating the function of the same name of Emacs.
-TIME should be nil meaning now, or a number of seconds from now.
-Return an itimer object which can be used in either `delete-itimer'
-or `cancel-timer'."
-	(apply #'start-itimer "run-at-time"
-	       function (if time (max time 1e-9) 1e-9)
-	       repeat nil t args))
-    (lambda (time repeat function &rest args)
-      "Function emulating the function of the same name of Emacs.
-It works correctly for TIME even if there is a bug in the XEmacs core.
-TIME should be nil meaning now, or a number of seconds from now.
-Return an itimer object which can be used in either `delete-itimer'
-or `cancel-timer'."
-      (let ((itimers (list nil)))
-	(setcar
-	 itimers
-	 (apply #'start-itimer "fixed-run-at-time"
-		(lambda (itimers repeat function &rest args)
-		  (let ((itimer (car itimers)))
-		    (if repeat
-			(progn
-			  (set-itimer-function
-			   itimer
-			   (lambda (itimer repeat function &rest args)
-			     (set-itimer-restart itimer repeat)
-			     (set-itimer-function itimer function)
-			     (set-itimer-function-arguments itimer args)
-			     (apply function args)))
-			  (set-itimer-function-arguments
-			   itimer
-			   (append (list itimer repeat function) args)))
-		      (set-itimer-function
-		       itimer
-		       (lambda (itimer function &rest args)
-			 (delete-itimer itimer)
-			 (apply function args)))
-		      (set-itimer-function-arguments
-		       itimer
-		       (append (list itimer function) args)))))
-		1e-9 (if time (max time 1e-9) 1e-9)
-		nil t itimers repeat function args))))))
-
-(provide 'run-at-time)
-
-;;; run-at-time.el ends here
Index: gnus/lisp/sasl-cram.el
diff -u gnus/lisp/sasl-cram.el:7.1 gnus/lisp/sasl-cram.el:7.2
--- gnus/lisp/sasl-cram.el:7.1	Mon Jan  5 00:09:08 2004
+++ gnus/lisp/sasl-cram.el	Thu May 20 10:02:41 2004
@@ -48,4 +48,5 @@
 
 (provide 'sasl-cram)
 
+;;; arch-tag: 46cb281b-975a-4fe0-a39f-3018691b1b05
 ;;; sasl-cram.el ends here
Index: gnus/lisp/sasl-digest.el
diff -u gnus/lisp/sasl-digest.el:7.1 gnus/lisp/sasl-digest.el:7.2
--- gnus/lisp/sasl-digest.el:7.1	Mon Jan  5 00:09:08 2004
+++ gnus/lisp/sasl-digest.el	Thu May 20 10:02:41 2004
@@ -153,4 +153,5 @@
 
 (provide 'sasl-digest)
 
+;;; arch-tag: 786e02ed-1bc4-4b3c-bf34-96c27e31084d
 ;;; sasl-digest.el ends here
Index: gnus/lisp/sasl-ntlm.el
diff -u gnus/lisp/sasl-ntlm.el:7.1 gnus/lisp/sasl-ntlm.el:7.2
--- gnus/lisp/sasl-ntlm.el:7.1	Mon Jan  5 02:09:05 2004
+++ gnus/lisp/sasl-ntlm.el	Thu May 20 10:02:41 2004
@@ -62,4 +62,5 @@
 
 (provide 'sasl-ntlm)
 
+;;; arch-tag: 1d9164c1-1df0-418f-b7ab-360157fd05dc
 ;;; sasl-ntlm.el ends here
Index: gnus/lisp/sasl.el
diff -u gnus/lisp/sasl.el:7.1 gnus/lisp/sasl.el:7.2
--- gnus/lisp/sasl.el:7.1	Mon Jan  5 00:09:08 2004
+++ gnus/lisp/sasl.el	Thu May 20 10:02:41 2004
@@ -269,4 +269,5 @@
 
 (provide 'sasl)
 
+;;; arch-tag: 8b3326fa-4978-4fda-93e2-cb2c6255f887
 ;;; sasl.el ends here
Index: gnus/lisp/score-mode.el
diff -u gnus/lisp/score-mode.el:7.1 gnus/lisp/score-mode.el:7.3
--- gnus/lisp/score-mode.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/score-mode.el	Tue Aug 24 08:54:33 2004
@@ -1,6 +1,6 @@
 ;;; score-mode.el --- mode for editing Gnus score files
 
-;; Copyright (C) 1996, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001, 2004 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news, mail
@@ -28,6 +28,7 @@
 
 (eval-when-compile (require 'cl))
 (require 'mm-util)			; for mm-universal-coding-system
+(require 'gnus-util)			; for gnus-pp
 
 (defvar gnus-score-mode-hook nil
   "*Hook run in score mode buffers.")
@@ -94,7 +95,7 @@
   (let ((form (read (current-buffer))))
     (erase-buffer)
     (let ((emacs-lisp-mode-syntax-table score-mode-syntax-table))
-      (pp form (current-buffer))))
+      (gnus-pp form)))
   (goto-char (point-min)))
 
 (defun gnus-score-edit-exit ()
@@ -113,4 +114,5 @@
 
 (provide 'score-mode)
 
+;;; arch-tag: a74a416b-2505-4ad4-bc4e-a418c96b8845
 ;;; score-mode.el ends here
Index: gnus/lisp/sha1-el.el
diff -u gnus/lisp/sha1-el.el:7.5 gnus/lisp/sha1-el.el:removed
--- gnus/lisp/sha1-el.el:7.5	Fri Mar  5 11:37:26 2004
+++ gnus/lisp/sha1-el.el	Sun May  1 19:05:03 2005
@@ -1,440 +0,0 @@
-;;; sha1-el.el --- SHA1 Secure Hash Algorithm in Emacs-Lisp
-
-;; Copyright (C) 1999, 2001, 2003, 2004 Free Software Foundation, Inc.
-
-;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
-;; Keywords: SHA1, FIPS 180-1
-
-;; This file is part of FLIM (Faithful Library about Internet Message).
-
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; This program is implemented from the definition of SHA-1 in FIPS PUB
-;; 180-1 (Federal Information Processing Standards Publication 180-1),
-;; "Announcing the Standard for SECURE HASH STANDARD".
-;; <URL:http://www.itl.nist.gov/div897/pubs/fip180-1.htm>
-;; (EXCEPTION; two optimizations taken from GnuPG/cipher/sha1.c)
-;;
-;; Test cases from FIPS PUB 180-1.
-;;
-;; (sha1 "abc")
-;; => a9993e364706816aba3e25717850c26c9cd0d89d
-;;
-;; (sha1 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")
-;; => 84983e441c3bd26ebaae4aa1f95129e5e54670f1
-;;
-;; (sha1 (make-string 1000000 ?a))
-;; => 34aa973cd4c4daa4f61eeb2bdbad27316534016f
-;;
-;; BUGS:
-;;  * It is assumed that length of input string is less than 2^29 bytes.
-;;  * It is caller's responsibility to make string (or region) unibyte.
-;;
-;; TODO:
-;;  * Rewrite from scratch!
-;;    This version is much faster than Keiichi Suzuki's another sha1.el,
-;;    but it is too dirty.
-
-;;; Code:
-
-(require 'hex-util)
-
-;;;
-;;; external SHA1 function.
-;;;
-
-(defgroup sha1 nil
-  "Elisp interface for SHA1 hash computation."
-  :group 'extensions)
-
-(defcustom sha1-maximum-internal-length 500
-  "*Maximum length of message to use Lisp version of SHA1 function.
-If message is longer than this, `sha1-program' is used instead.
-
-If this variable is set to 0, use external program only.
-If this variable is set to nil, use internal function only."
-  :type 'integer
-  :group 'sha1)
-
-(defcustom sha1-program '("sha1sum")
-  "*Name of program to compute SHA1.
-It must be a string \(program name\) or list of strings \(name and its args\)."
-  :type '(repeat string)
-  :group 'sha1)
-
-(defcustom sha1-use-external (condition-case ()
-				 (executable-find (car sha1-program))
-			       (error))
-  "*Use external SHA1 program.
-If this variable is set to nil, use internal function only."
-  :type 'boolean
-  :group 'sha1)
-
-(defun sha1-string-external (string &optional binary)
-  (let (prog args digest default-enable-multibyte-characters)
-    (if (consp sha1-program)
-	(setq prog (car sha1-program)
-	      args (cdr sha1-program))
-      (setq prog sha1-program
-	    args nil))
-    (with-temp-buffer
-      (insert string)
-      (apply (function call-process-region)
-	     (point-min)(point-max)
-	     prog t t nil args)
-      ;; SHA1 is 40 bytes long in hexadecimal form.
-      (setq digest (buffer-substring (point-min)(+ (point-min) 40))))
-    (if binary
-	(decode-hex-string digest)
-      digest)))
-
-(defun sha1-region-external (beg end &optional binary)
-  (sha1-string-external (buffer-substring-no-properties beg end) binary))
-
-;;;
-;;; internal SHA1 function.
-;;;
-
-(eval-when-compile
-  ;; optional second arg of string-to-number is new in v20.
-  (defconst sha1-K0-high 23170)		; (string-to-number "5A82" 16)
-  (defconst sha1-K0-low  31129)		; (string-to-number "7999" 16)
-  (defconst sha1-K1-high 28377)		; (string-to-number "6ED9" 16)
-  (defconst sha1-K1-low  60321)		; (string-to-number "EBA1" 16)
-  (defconst sha1-K2-high 36635)		; (string-to-number "8F1B" 16)
-  (defconst sha1-K2-low  48348)		; (string-to-number "BCDC" 16)
-  (defconst sha1-K3-high 51810)		; (string-to-number "CA62" 16)
-  (defconst sha1-K3-low  49622)		; (string-to-number "C1D6" 16)
-
-;;; original definition of sha1-F0.
-;;; (defmacro sha1-F0 (B C D)
-;;;   (` (logior (logand (, B) (, C))
-;;; 	     (logand (lognot (, B)) (, D)))))
-;;; a little optimization from GnuPG/cipher/sha1.c.
-  (defmacro sha1-F0 (B C D)
-    (` (logxor (, D) (logand (, B) (logxor (, C) (, D))))))
-  (defmacro sha1-F1 (B C D)
-    (` (logxor (, B) (, C) (, D))))
-;;; original definition of sha1-F2.
-;;; (defmacro sha1-F2 (B C D)
-;;;   (` (logior (logand (, B) (, C))
-;;; 	     (logand (, B) (, D))
-;;; 	     (logand (, C) (, D)))))
-;;; a little optimization from GnuPG/cipher/sha1.c.
-  (defmacro sha1-F2 (B C D)
-    (` (logior (logand (, B) (, C))
-	       (logand (, D) (logior (, B) (, C))))))
-  (defmacro sha1-F3 (B C D)
-    (` (logxor (, B) (, C) (, D))))
-
-  (defmacro sha1-S1  (W-high W-low)
-    (` (let ((W-high (, W-high))
-	     (W-low  (, W-low)))
-	 (setq S1W-high (+ (% (* W-high 2) 65536)
-			   (/ W-low (, (/ 65536 2)))))
-	 (setq S1W-low (+ (/ W-high (, (/ 65536 2)))
-			  (% (* W-low 2) 65536))))))
-  (defmacro sha1-S5  (A-high A-low)
-    (` (progn
-	 (setq S5A-high (+ (% (* (, A-high) 32) 65536)
-			   (/ (, A-low) (, (/ 65536 32)))))
-	 (setq S5A-low  (+ (/ (, A-high) (, (/ 65536 32)))
-			   (% (* (, A-low) 32) 65536))))))
-  (defmacro sha1-S30 (B-high B-low)
-    (` (progn
-	 (setq S30B-high (+ (/ (, B-high) 4)
-			    (* (% (, B-low) 4) (, (/ 65536 4)))))
-	 (setq S30B-low  (+ (/ (, B-low) 4)
-			    (* (% (, B-high) 4) (, (/ 65536 4))))))))
-
-  (defmacro sha1-OP (round)
-    (` (progn
-	 (sha1-S5 sha1-A-high sha1-A-low)
-	 (sha1-S30 sha1-B-high sha1-B-low)
-	 (setq sha1-A-low (+ ((, (intern (format "sha1-F%d" round)))
-			      sha1-B-low sha1-C-low sha1-D-low)
-			     sha1-E-low
-			     (, (symbol-value
-				 (intern (format "sha1-K%d-low" round))))
-			     (aref block-low idx)
-			     (progn
-			       (setq sha1-E-low sha1-D-low)
-			       (setq sha1-D-low sha1-C-low)
-			       (setq sha1-C-low S30B-low)
-			       (setq sha1-B-low sha1-A-low)
-			       S5A-low)))
-	 (setq carry (/ sha1-A-low 65536))
-	 (setq sha1-A-low (% sha1-A-low 65536))
-	 (setq sha1-A-high (% (+ ((, (intern (format "sha1-F%d" round)))
-				  sha1-B-high sha1-C-high sha1-D-high)
-				 sha1-E-high
-				 (, (symbol-value
-				     (intern (format "sha1-K%d-high" round))))
-				 (aref block-high idx)
-				 (progn
-				   (setq sha1-E-high sha1-D-high)
-				   (setq sha1-D-high sha1-C-high)
-				   (setq sha1-C-high S30B-high)
-				   (setq sha1-B-high sha1-A-high)
-				   S5A-high)
-				 carry)
-			      65536)))))
-
-  (defmacro sha1-add-to-H (H X)
-    (` (progn
-	 (setq (, (intern (format "sha1-%s-low" H)))
-	       (+ (, (intern (format "sha1-%s-low" H)))
-		  (, (intern (format "sha1-%s-low" X)))))
-	 (setq carry (/ (, (intern (format "sha1-%s-low" H))) 65536))
-	 (setq (, (intern (format "sha1-%s-low" H)))
-	       (% (, (intern (format "sha1-%s-low" H))) 65536))
-	 (setq (, (intern (format "sha1-%s-high" H)))
-	       (% (+ (, (intern (format "sha1-%s-high" H)))
-		     (, (intern (format "sha1-%s-high" X)))
-		     carry)
-		  65536)))))
-  )
-
-;;; buffers (H0 H1 H2 H3 H4).
-(defvar sha1-H0-high)
-(defvar sha1-H0-low)
-(defvar sha1-H1-high)
-(defvar sha1-H1-low)
-(defvar sha1-H2-high)
-(defvar sha1-H2-low)
-(defvar sha1-H3-high)
-(defvar sha1-H3-low)
-(defvar sha1-H4-high)
-(defvar sha1-H4-low)
-
-(defun sha1-block (block-high block-low)
-  (let (;; step (c) --- initialize buffers (A B C D E).
-	(sha1-A-high sha1-H0-high) (sha1-A-low sha1-H0-low)
-	(sha1-B-high sha1-H1-high) (sha1-B-low sha1-H1-low)
-	(sha1-C-high sha1-H2-high) (sha1-C-low sha1-H2-low)
-	(sha1-D-high sha1-H3-high) (sha1-D-low sha1-H3-low)
-	(sha1-E-high sha1-H4-high) (sha1-E-low sha1-H4-low)
-	(idx 16))
-    ;; step (b).
-    (let (;; temporary variables used in sha1-S1 macro.
-	  S1W-high S1W-low)
-      (while (< idx 80)
-	(sha1-S1 (logxor (aref block-high (- idx 3))
-			 (aref block-high (- idx 8))
-			 (aref block-high (- idx 14))
-			 (aref block-high (- idx 16)))
-		 (logxor (aref block-low  (- idx 3))
-			 (aref block-low  (- idx 8))
-			 (aref block-low  (- idx 14))
-			 (aref block-low  (- idx 16))))
-	(aset block-high idx S1W-high)
-	(aset block-low  idx S1W-low)
-	(setq idx (1+ idx))))
-    ;; step (d).
-    (setq idx 0)
-    (let (;; temporary variables used in sha1-OP macro.
-	  S5A-high S5A-low S30B-high S30B-low carry)
-      (while (< idx 20) (sha1-OP 0) (setq idx (1+ idx)))
-      (while (< idx 40) (sha1-OP 1) (setq idx (1+ idx)))
-      (while (< idx 60) (sha1-OP 2) (setq idx (1+ idx)))
-      (while (< idx 80) (sha1-OP 3) (setq idx (1+ idx))))
-    ;; step (e).
-    (let (;; temporary variables used in sha1-add-to-H macro.
-	  carry)
-      (sha1-add-to-H H0 A)
-      (sha1-add-to-H H1 B)
-      (sha1-add-to-H H2 C)
-      (sha1-add-to-H H3 D)
-      (sha1-add-to-H H4 E))))
-
-(defun sha1-binary (string)
-  "Return the SHA1 of STRING in binary form."
-  (let (;; prepare buffers for a block. byte-length of block is 64.
-	;; input block is split into two vectors.
-	;;
-	;; input block: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ...
-	;; block-high:  +-0-+       +-1-+       +-2-+       +-3-+
-	;; block-low:         +-0-+       +-1-+       +-2-+       +-3-+
-	;;
-	;; length of each vector is 80, and elements of each vector are
-	;; 16bit integers.  elements 0x10-0x4F of each vector are
-	;; assigned later in `sha1-block'.
-	(block-high (eval-when-compile (make-vector 80 nil)))
-	(block-low  (eval-when-compile (make-vector 80 nil))))
-    (unwind-protect
-	(let* (;; byte-length of input string.
-	       (len (length string))
-	       (lim (* (/ len 64) 64))
-	       (rem (% len 4))
-	       (idx 0)(pos 0))
-	  ;; initialize buffers (H0 H1 H2 H3 H4).
-	  (setq sha1-H0-high 26437	; (string-to-number "6745" 16)
-		sha1-H0-low  8961	; (string-to-number "2301" 16)
-		sha1-H1-high 61389	; (string-to-number "EFCD" 16)
-		sha1-H1-low  43913	; (string-to-number "AB89" 16)
-		sha1-H2-high 39098	; (string-to-number "98BA" 16)
-		sha1-H2-low  56574	; (string-to-number "DCFE" 16)
-		sha1-H3-high 4146	; (string-to-number "1032" 16)
-		sha1-H3-low  21622	; (string-to-number "5476" 16)
-		sha1-H4-high 50130	; (string-to-number "C3D2" 16)
-		sha1-H4-low  57840)	; (string-to-number "E1F0" 16)
-	  ;; loop for each 64 bytes block.
-	  (while (< pos lim)
-	    ;; step (a).
-	    (setq idx 0)
-	    (while (< idx 16)
-	      (aset block-high idx (+ (* (aref string pos) 256)
-				      (aref string (1+ pos))))
-	      (setq pos (+ pos 2))
-	      (aset block-low  idx (+ (* (aref string pos) 256)
-				      (aref string (1+ pos))))
-	      (setq pos (+ pos 2))
-	      (setq idx (1+ idx)))
-	    (sha1-block block-high block-low))
-	  ;; last block.
-	  (if (prog1
-		  (< (- len lim) 56)
-		(setq lim (- len rem))
-		(setq idx 0)
-		(while (< pos lim)
-		  (aset block-high idx (+ (* (aref string pos) 256)
-					  (aref string (1+ pos))))
-		  (setq pos (+ pos 2))
-		  (aset block-low  idx (+ (* (aref string pos) 256)
-					  (aref string (1+ pos))))
-		  (setq pos (+ pos 2))
-		  (setq idx (1+ idx)))
-		;; this is the last (at most) 32bit word.
-		(cond
-		 ((= rem 3)
-		  (aset block-high idx (+ (* (aref string pos) 256)
-					  (aref string (1+ pos))))
-		  (setq pos (+ pos 2))
-		  (aset block-low  idx (+ (* (aref string pos) 256)
-					  128)))
-		 ((= rem 2)
-		  (aset block-high idx (+ (* (aref string pos) 256)
-					  (aref string (1+ pos))))
-		  (aset block-low  idx 32768))
-		 ((= rem 1)
-		  (aset block-high idx (+ (* (aref string pos) 256)
-					  128))
-		  (aset block-low  idx 0))
-		 (t ;; (= rem 0)
-		  (aset block-high idx 32768)
-		  (aset block-low  idx 0)))
-		(setq idx (1+ idx))
-		(while (< idx 16)
-		  (aset block-high idx 0)
-		  (aset block-low  idx 0)
-		  (setq idx (1+ idx))))
-	      ;; last block has enough room to write the length of string.
-	      (progn
-		;; write bit length of string to last 4 bytes of the block.
-		(aset block-low  15 (* (% len 8192) 8))
-		(setq len (/ len 8192))
-		(aset block-high 15 (% len 65536))
-		;; XXX: It is not practical to compute SHA1 of
-		;;      such a huge message on emacs.
-		;; (setq len (/ len 65536))	; for 64bit emacs.
-		;; (aset block-low  14 (% len 65536))
-		;; (aset block-high 14 (/ len 65536))
-		(sha1-block block-high block-low))
-	    ;; need one more block.
-	    (sha1-block block-high block-low)
-	    (fillarray block-high 0)
-	    (fillarray block-low  0)
-	    ;; write bit length of string to last 4 bytes of the block.
-	    (aset block-low  15 (* (% len 8192) 8))
-	    (setq len (/ len 8192))
-	    (aset block-high 15 (% len 65536))
-	    ;; XXX: It is not practical to compute SHA1 of
-	    ;;      such a huge message on emacs.
-	    ;; (setq len (/ len 65536))		; for 64bit emacs.
-	    ;; (aset block-low  14 (% len 65536))
-	    ;; (aset block-high 14 (/ len 65536))
-	    (sha1-block block-high block-low))
-	  ;; make output string (in binary form).
-	  (let ((result (make-string 20 0)))
-	    (aset result  0 (/ sha1-H0-high 256))
-	    (aset result  1 (% sha1-H0-high 256))
-	    (aset result  2 (/ sha1-H0-low  256))
-	    (aset result  3 (% sha1-H0-low  256))
-	    (aset result  4 (/ sha1-H1-high 256))
-	    (aset result  5 (% sha1-H1-high 256))
-	    (aset result  6 (/ sha1-H1-low  256))
-	    (aset result  7 (% sha1-H1-low  256))
-	    (aset result  8 (/ sha1-H2-high 256))
-	    (aset result  9 (% sha1-H2-high 256))
-	    (aset result 10 (/ sha1-H2-low  256))
-	    (aset result 11 (% sha1-H2-low  256))
-	    (aset result 12 (/ sha1-H3-high 256))
-	    (aset result 13 (% sha1-H3-high 256))
-	    (aset result 14 (/ sha1-H3-low  256))
-	    (aset result 15 (% sha1-H3-low  256))
-	    (aset result 16 (/ sha1-H4-high 256))
-	    (aset result 17 (% sha1-H4-high 256))
-	    (aset result 18 (/ sha1-H4-low  256))
-	    (aset result 19 (% sha1-H4-low  256))
-	    result))
-      ;; do not leave a copy of input string.
-      (fillarray block-high nil)
-      (fillarray block-low  nil))))
-
-(defun sha1-string-internal (string &optional binary)
-  (if binary
-      (sha1-binary string)
-    (encode-hex-string (sha1-binary string))))
-
-(defun sha1-region-internal (beg end &optional binary)
-  (sha1-string-internal (buffer-substring-no-properties beg end) binary))
-
-;;;
-;;; application interface.
-;;;
-
-(defun sha1-region (beg end &optional binary)
-  (if (and sha1-use-external
-	   sha1-maximum-internal-length
-	   (> (abs (- end beg)) sha1-maximum-internal-length))
-      (sha1-region-external beg end binary)
-    (sha1-region-internal beg end binary)))
-
-(defun sha1-string (string &optional binary)
-  (if (and sha1-use-external
-	   sha1-maximum-internal-length
-	   (> (length string) sha1-maximum-internal-length))
-      (sha1-string-external string binary)
-    (sha1-string-internal string binary)))
-
-;;;###autoload
-(defun sha1 (object &optional beg end binary)
-  "Return the SHA1 (Secure Hash Algorithm) of an object.
-OBJECT is either a string or a buffer.
-Optional arguments BEG and END denote buffer positions for computing the
-hash of a portion of OBJECT.
-If BINARY is non-nil, return a string in binary form."
-  (if (stringp object)
-      (sha1-string object binary)
-    (save-excursion
-      (set-buffer object)
-      (sha1-region (or beg (point-min)) (or end (point-max)) binary))))
-
-(provide 'sha1-el)
-
-;;; sha1-el.el ends here
Index: gnus/lisp/sha1.el
diff -u /dev/null gnus/lisp/sha1.el:7.4
--- /dev/null	Sun May  1 19:05:03 2005
+++ gnus/lisp/sha1.el	Sun Feb 13 05:44:40 2005
@@ -0,0 +1,442 @@
+;;; sha1.el --- SHA1 Secure Hash Algorithm in Emacs-Lisp
+
+;; Copyright (C) 1999, 2001, 2003, 2004 Free Software Foundation, Inc.
+
+;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
+;; Keywords: SHA1, FIPS 180-1
+
+;; This file is part of FLIM (Faithful Library about Internet Message).
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; see the file COPYING.  If not, write to
+;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; This program is implemented from the definition of SHA-1 in FIPS PUB
+;; 180-1 (Federal Information Processing Standards Publication 180-1),
+;; "Announcing the Standard for SECURE HASH STANDARD".
+;; <URL:http://www.itl.nist.gov/div897/pubs/fip180-1.htm>
+;; (EXCEPTION; two optimizations taken from GnuPG/cipher/sha1.c)
+;;
+;; Test cases from FIPS PUB 180-1.
+;;
+;; (sha1 "abc")
+;; => a9993e364706816aba3e25717850c26c9cd0d89d
+;;
+;; (sha1 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")
+;; => 84983e441c3bd26ebaae4aa1f95129e5e54670f1
+;;
+;; (sha1 (make-string 1000000 ?a))
+;; => 34aa973cd4c4daa4f61eeb2bdbad27316534016f
+;;
+;; BUGS:
+;;  * It is assumed that length of input string is less than 2^29 bytes.
+;;  * It is caller's responsibility to make string (or region) unibyte.
+;;
+;; TODO:
+;;  * Rewrite from scratch!
+;;    This version is much faster than Keiichi Suzuki's another sha1.el,
+;;    but it is too dirty.
+
+;;; Code:
+
+(require 'hex-util)
+
+;;;
+;;; external SHA1 function.
+;;;
+
+(defgroup sha1 nil
+  "Elisp interface for SHA1 hash computation."
+  :version "22.1"
+  :group 'extensions)
+
+(defcustom sha1-maximum-internal-length 500
+  "*Maximum length of message to use Lisp version of SHA1 function.
+If message is longer than this, `sha1-program' is used instead.
+
+If this variable is set to 0, use external program only.
+If this variable is set to nil, use internal function only."
+  :type 'integer
+  :group 'sha1)
+
+(defcustom sha1-program '("sha1sum")
+  "*Name of program to compute SHA1.
+It must be a string \(program name\) or list of strings \(name and its args\)."
+  :type '(repeat string)
+  :group 'sha1)
+
+(defcustom sha1-use-external (condition-case ()
+				 (executable-find (car sha1-program))
+			       (error))
+  "*Use external SHA1 program.
+If this variable is set to nil, use internal function only."
+  :type 'boolean
+  :group 'sha1)
+
+(defun sha1-string-external (string &optional binary)
+  (let (prog args digest default-enable-multibyte-characters)
+    (if (consp sha1-program)
+	(setq prog (car sha1-program)
+	      args (cdr sha1-program))
+      (setq prog sha1-program
+	    args nil))
+    (with-temp-buffer
+      (insert string)
+      (apply (function call-process-region)
+	     (point-min)(point-max)
+	     prog t t nil args)
+      ;; SHA1 is 40 bytes long in hexadecimal form.
+      (setq digest (buffer-substring (point-min)(+ (point-min) 40))))
+    (if binary
+	(decode-hex-string digest)
+      digest)))
+
+(defun sha1-region-external (beg end &optional binary)
+  (sha1-string-external (buffer-substring-no-properties beg end) binary))
+
+;;;
+;;; internal SHA1 function.
+;;;
+
+(eval-when-compile
+  ;; optional second arg of string-to-number is new in v20.
+  (defconst sha1-K0-high 23170)		; (string-to-number "5A82" 16)
+  (defconst sha1-K0-low  31129)		; (string-to-number "7999" 16)
+  (defconst sha1-K1-high 28377)		; (string-to-number "6ED9" 16)
+  (defconst sha1-K1-low  60321)		; (string-to-number "EBA1" 16)
+  (defconst sha1-K2-high 36635)		; (string-to-number "8F1B" 16)
+  (defconst sha1-K2-low  48348)		; (string-to-number "BCDC" 16)
+  (defconst sha1-K3-high 51810)		; (string-to-number "CA62" 16)
+  (defconst sha1-K3-low  49622)		; (string-to-number "C1D6" 16)
+
+;;; original definition of sha1-F0.
+;;; (defmacro sha1-F0 (B C D)
+;;;   (` (logior (logand (, B) (, C))
+;;; 	     (logand (lognot (, B)) (, D)))))
+;;; a little optimization from GnuPG/cipher/sha1.c.
+  (defmacro sha1-F0 (B C D)
+    (` (logxor (, D) (logand (, B) (logxor (, C) (, D))))))
+  (defmacro sha1-F1 (B C D)
+    (` (logxor (, B) (, C) (, D))))
+;;; original definition of sha1-F2.
+;;; (defmacro sha1-F2 (B C D)
+;;;   (` (logior (logand (, B) (, C))
+;;; 	     (logand (, B) (, D))
+;;; 	     (logand (, C) (, D)))))
+;;; a little optimization from GnuPG/cipher/sha1.c.
+  (defmacro sha1-F2 (B C D)
+    (` (logior (logand (, B) (, C))
+	       (logand (, D) (logior (, B) (, C))))))
+  (defmacro sha1-F3 (B C D)
+    (` (logxor (, B) (, C) (, D))))
+
+  (defmacro sha1-S1  (W-high W-low)
+    (` (let ((W-high (, W-high))
+	     (W-low  (, W-low)))
+	 (setq S1W-high (+ (% (* W-high 2) 65536)
+			   (/ W-low (, (/ 65536 2)))))
+	 (setq S1W-low (+ (/ W-high (, (/ 65536 2)))
+			  (% (* W-low 2) 65536))))))
+  (defmacro sha1-S5  (A-high A-low)
+    (` (progn
+	 (setq S5A-high (+ (% (* (, A-high) 32) 65536)
+			   (/ (, A-low) (, (/ 65536 32)))))
+	 (setq S5A-low  (+ (/ (, A-high) (, (/ 65536 32)))
+			   (% (* (, A-low) 32) 65536))))))
+  (defmacro sha1-S30 (B-high B-low)
+    (` (progn
+	 (setq S30B-high (+ (/ (, B-high) 4)
+			    (* (% (, B-low) 4) (, (/ 65536 4)))))
+	 (setq S30B-low  (+ (/ (, B-low) 4)
+			    (* (% (, B-high) 4) (, (/ 65536 4))))))))
+
+  (defmacro sha1-OP (round)
+    (` (progn
+	 (sha1-S5 sha1-A-high sha1-A-low)
+	 (sha1-S30 sha1-B-high sha1-B-low)
+	 (setq sha1-A-low (+ ((, (intern (format "sha1-F%d" round)))
+			      sha1-B-low sha1-C-low sha1-D-low)
+			     sha1-E-low
+			     (, (symbol-value
+				 (intern (format "sha1-K%d-low" round))))
+			     (aref block-low idx)
+			     (progn
+			       (setq sha1-E-low sha1-D-low)
+			       (setq sha1-D-low sha1-C-low)
+			       (setq sha1-C-low S30B-low)
+			       (setq sha1-B-low sha1-A-low)
+			       S5A-low)))
+	 (setq carry (/ sha1-A-low 65536))
+	 (setq sha1-A-low (% sha1-A-low 65536))
+	 (setq sha1-A-high (% (+ ((, (intern (format "sha1-F%d" round)))
+				  sha1-B-high sha1-C-high sha1-D-high)
+				 sha1-E-high
+				 (, (symbol-value
+				     (intern (format "sha1-K%d-high" round))))
+				 (aref block-high idx)
+				 (progn
+				   (setq sha1-E-high sha1-D-high)
+				   (setq sha1-D-high sha1-C-high)
+				   (setq sha1-C-high S30B-high)
+				   (setq sha1-B-high sha1-A-high)
+				   S5A-high)
+				 carry)
+			      65536)))))
+
+  (defmacro sha1-add-to-H (H X)
+    (` (progn
+	 (setq (, (intern (format "sha1-%s-low" H)))
+	       (+ (, (intern (format "sha1-%s-low" H)))
+		  (, (intern (format "sha1-%s-low" X)))))
+	 (setq carry (/ (, (intern (format "sha1-%s-low" H))) 65536))
+	 (setq (, (intern (format "sha1-%s-low" H)))
+	       (% (, (intern (format "sha1-%s-low" H))) 65536))
+	 (setq (, (intern (format "sha1-%s-high" H)))
+	       (% (+ (, (intern (format "sha1-%s-high" H)))
+		     (, (intern (format "sha1-%s-high" X)))
+		     carry)
+		  65536)))))
+  )
+
+;;; buffers (H0 H1 H2 H3 H4).
+(defvar sha1-H0-high)
+(defvar sha1-H0-low)
+(defvar sha1-H1-high)
+(defvar sha1-H1-low)
+(defvar sha1-H2-high)
+(defvar sha1-H2-low)
+(defvar sha1-H3-high)
+(defvar sha1-H3-low)
+(defvar sha1-H4-high)
+(defvar sha1-H4-low)
+
+(defun sha1-block (block-high block-low)
+  (let (;; step (c) --- initialize buffers (A B C D E).
+	(sha1-A-high sha1-H0-high) (sha1-A-low sha1-H0-low)
+	(sha1-B-high sha1-H1-high) (sha1-B-low sha1-H1-low)
+	(sha1-C-high sha1-H2-high) (sha1-C-low sha1-H2-low)
+	(sha1-D-high sha1-H3-high) (sha1-D-low sha1-H3-low)
+	(sha1-E-high sha1-H4-high) (sha1-E-low sha1-H4-low)
+	(idx 16))
+    ;; step (b).
+    (let (;; temporary variables used in sha1-S1 macro.
+	  S1W-high S1W-low)
+      (while (< idx 80)
+	(sha1-S1 (logxor (aref block-high (- idx 3))
+			 (aref block-high (- idx 8))
+			 (aref block-high (- idx 14))
+			 (aref block-high (- idx 16)))
+		 (logxor (aref block-low  (- idx 3))
+			 (aref block-low  (- idx 8))
+			 (aref block-low  (- idx 14))
+			 (aref block-low  (- idx 16))))
+	(aset block-high idx S1W-high)
+	(aset block-low  idx S1W-low)
+	(setq idx (1+ idx))))
+    ;; step (d).
+    (setq idx 0)
+    (let (;; temporary variables used in sha1-OP macro.
+	  S5A-high S5A-low S30B-high S30B-low carry)
+      (while (< idx 20) (sha1-OP 0) (setq idx (1+ idx)))
+      (while (< idx 40) (sha1-OP 1) (setq idx (1+ idx)))
+      (while (< idx 60) (sha1-OP 2) (setq idx (1+ idx)))
+      (while (< idx 80) (sha1-OP 3) (setq idx (1+ idx))))
+    ;; step (e).
+    (let (;; temporary variables used in sha1-add-to-H macro.
+	  carry)
+      (sha1-add-to-H H0 A)
+      (sha1-add-to-H H1 B)
+      (sha1-add-to-H H2 C)
+      (sha1-add-to-H H3 D)
+      (sha1-add-to-H H4 E))))
+
+(defun sha1-binary (string)
+  "Return the SHA1 of STRING in binary form."
+  (let (;; prepare buffers for a block. byte-length of block is 64.
+	;; input block is split into two vectors.
+	;;
+	;; input block: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ...
+	;; block-high:  +-0-+       +-1-+       +-2-+       +-3-+
+	;; block-low:         +-0-+       +-1-+       +-2-+       +-3-+
+	;;
+	;; length of each vector is 80, and elements of each vector are
+	;; 16bit integers.  elements 0x10-0x4F of each vector are
+	;; assigned later in `sha1-block'.
+	(block-high (eval-when-compile (make-vector 80 nil)))
+	(block-low  (eval-when-compile (make-vector 80 nil))))
+    (unwind-protect
+	(let* (;; byte-length of input string.
+	       (len (length string))
+	       (lim (* (/ len 64) 64))
+	       (rem (% len 4))
+	       (idx 0)(pos 0))
+	  ;; initialize buffers (H0 H1 H2 H3 H4).
+	  (setq sha1-H0-high 26437	; (string-to-number "6745" 16)
+		sha1-H0-low  8961	; (string-to-number "2301" 16)
+		sha1-H1-high 61389	; (string-to-number "EFCD" 16)
+		sha1-H1-low  43913	; (string-to-number "AB89" 16)
+		sha1-H2-high 39098	; (string-to-number "98BA" 16)
+		sha1-H2-low  56574	; (string-to-number "DCFE" 16)
+		sha1-H3-high 4146	; (string-to-number "1032" 16)
+		sha1-H3-low  21622	; (string-to-number "5476" 16)
+		sha1-H4-high 50130	; (string-to-number "C3D2" 16)
+		sha1-H4-low  57840)	; (string-to-number "E1F0" 16)
+	  ;; loop for each 64 bytes block.
+	  (while (< pos lim)
+	    ;; step (a).
+	    (setq idx 0)
+	    (while (< idx 16)
+	      (aset block-high idx (+ (* (aref string pos) 256)
+				      (aref string (1+ pos))))
+	      (setq pos (+ pos 2))
+	      (aset block-low  idx (+ (* (aref string pos) 256)
+				      (aref string (1+ pos))))
+	      (setq pos (+ pos 2))
+	      (setq idx (1+ idx)))
+	    (sha1-block block-high block-low))
+	  ;; last block.
+	  (if (prog1
+		  (< (- len lim) 56)
+		(setq lim (- len rem))
+		(setq idx 0)
+		(while (< pos lim)
+		  (aset block-high idx (+ (* (aref string pos) 256)
+					  (aref string (1+ pos))))
+		  (setq pos (+ pos 2))
+		  (aset block-low  idx (+ (* (aref string pos) 256)
+					  (aref string (1+ pos))))
+		  (setq pos (+ pos 2))
+		  (setq idx (1+ idx)))
+		;; this is the last (at most) 32bit word.
+		(cond
+		 ((= rem 3)
+		  (aset block-high idx (+ (* (aref string pos) 256)
+					  (aref string (1+ pos))))
+		  (setq pos (+ pos 2))
+		  (aset block-low  idx (+ (* (aref string pos) 256)
+					  128)))
+		 ((= rem 2)
+		  (aset block-high idx (+ (* (aref string pos) 256)
+					  (aref string (1+ pos))))
+		  (aset block-low  idx 32768))
+		 ((= rem 1)
+		  (aset block-high idx (+ (* (aref string pos) 256)
+					  128))
+		  (aset block-low  idx 0))
+		 (t ;; (= rem 0)
+		  (aset block-high idx 32768)
+		  (aset block-low  idx 0)))
+		(setq idx (1+ idx))
+		(while (< idx 16)
+		  (aset block-high idx 0)
+		  (aset block-low  idx 0)
+		  (setq idx (1+ idx))))
+	      ;; last block has enough room to write the length of string.
+	      (progn
+		;; write bit length of string to last 4 bytes of the block.
+		(aset block-low  15 (* (% len 8192) 8))
+		(setq len (/ len 8192))
+		(aset block-high 15 (% len 65536))
+		;; XXX: It is not practical to compute SHA1 of
+		;;      such a huge message on emacs.
+		;; (setq len (/ len 65536))	; for 64bit emacs.
+		;; (aset block-low  14 (% len 65536))
+		;; (aset block-high 14 (/ len 65536))
+		(sha1-block block-high block-low))
+	    ;; need one more block.
+	    (sha1-block block-high block-low)
+	    (fillarray block-high 0)
+	    (fillarray block-low  0)
+	    ;; write bit length of string to last 4 bytes of the block.
+	    (aset block-low  15 (* (% len 8192) 8))
+	    (setq len (/ len 8192))
+	    (aset block-high 15 (% len 65536))
+	    ;; XXX: It is not practical to compute SHA1 of
+	    ;;      such a huge message on emacs.
+	    ;; (setq len (/ len 65536))		; for 64bit emacs.
+	    ;; (aset block-low  14 (% len 65536))
+	    ;; (aset block-high 14 (/ len 65536))
+	    (sha1-block block-high block-low))
+	  ;; make output string (in binary form).
+	  (let ((result (make-string 20 0)))
+	    (aset result  0 (/ sha1-H0-high 256))
+	    (aset result  1 (% sha1-H0-high 256))
+	    (aset result  2 (/ sha1-H0-low  256))
+	    (aset result  3 (% sha1-H0-low  256))
+	    (aset result  4 (/ sha1-H1-high 256))
+	    (aset result  5 (% sha1-H1-high 256))
+	    (aset result  6 (/ sha1-H1-low  256))
+	    (aset result  7 (% sha1-H1-low  256))
+	    (aset result  8 (/ sha1-H2-high 256))
+	    (aset result  9 (% sha1-H2-high 256))
+	    (aset result 10 (/ sha1-H2-low  256))
+	    (aset result 11 (% sha1-H2-low  256))
+	    (aset result 12 (/ sha1-H3-high 256))
+	    (aset result 13 (% sha1-H3-high 256))
+	    (aset result 14 (/ sha1-H3-low  256))
+	    (aset result 15 (% sha1-H3-low  256))
+	    (aset result 16 (/ sha1-H4-high 256))
+	    (aset result 17 (% sha1-H4-high 256))
+	    (aset result 18 (/ sha1-H4-low  256))
+	    (aset result 19 (% sha1-H4-low  256))
+	    result))
+      ;; do not leave a copy of input string.
+      (fillarray block-high nil)
+      (fillarray block-low  nil))))
+
+(defun sha1-string-internal (string &optional binary)
+  (if binary
+      (sha1-binary string)
+    (encode-hex-string (sha1-binary string))))
+
+(defun sha1-region-internal (beg end &optional binary)
+  (sha1-string-internal (buffer-substring-no-properties beg end) binary))
+
+;;;
+;;; application interface.
+;;;
+
+(defun sha1-region (beg end &optional binary)
+  (if (and sha1-use-external
+	   sha1-maximum-internal-length
+	   (> (abs (- end beg)) sha1-maximum-internal-length))
+      (sha1-region-external beg end binary)
+    (sha1-region-internal beg end binary)))
+
+(defun sha1-string (string &optional binary)
+  (if (and sha1-use-external
+	   sha1-maximum-internal-length
+	   (> (length string) sha1-maximum-internal-length))
+      (sha1-string-external string binary)
+    (sha1-string-internal string binary)))
+
+;;;###autoload
+(defun sha1 (object &optional beg end binary)
+  "Return the SHA1 (Secure Hash Algorithm) of an object.
+OBJECT is either a string or a buffer.
+Optional arguments BEG and END denote buffer positions for computing the
+hash of a portion of OBJECT.
+If BINARY is non-nil, return a string in binary form."
+  (if (stringp object)
+      (sha1-string object binary)
+    (save-excursion
+      (set-buffer object)
+      (sha1-region (or beg (point-min)) (or end (point-max)) binary))))
+
+(provide 'sha1)
+
+;;; arch-tag: c0f9abd0-ffc1-4557-aac6-ece7f2d4c901
+;;; sha1.el ends here
Index: gnus/lisp/sieve-manage.el
diff -u gnus/lisp/sieve-manage.el:7.4 gnus/lisp/sieve-manage.el:7.5
--- gnus/lisp/sieve-manage.el:7.4	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/sieve-manage.el	Thu May 20 10:02:41 2004
@@ -684,4 +684,5 @@
 
 (provide 'sieve-manage)
 
+;;; arch-tag: 321c4640-1371-4495-9baf-8ccb71dd5bd1
 ;; sieve-manage.el ends here
Index: gnus/lisp/sieve-mode.el
diff -u gnus/lisp/sieve-mode.el:7.2 gnus/lisp/sieve-mode.el:7.3
--- gnus/lisp/sieve-mode.el:7.2	Thu Mar  4 07:30:18 2004
+++ gnus/lisp/sieve-mode.el	Thu May 20 10:02:41 2004
@@ -200,4 +200,5 @@
 
 (provide 'sieve-mode)
 
+;;; arch-tag: 3b8ab76d-065d-4c52-b1e8-ab2ec21f2ace
 ;; sieve-mode.el ends here
Index: gnus/lisp/sieve.el
diff -u gnus/lisp/sieve.el:7.2 gnus/lisp/sieve.el:7.6
--- gnus/lisp/sieve.el:7.2	Tue Feb  3 17:55:53 2004
+++ gnus/lisp/sieve.el	Sun Feb 13 05:44:40 2005
@@ -1,5 +1,5 @@
 ;;; sieve.el --- Utilities to manage sieve scripts
-;; Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org>
 
@@ -65,6 +65,7 @@
 
 (defgroup sieve nil
   "Manage sieve scripts."
+  :version "22.1"
   :group 'tools)
 
 (defcustom sieve-new-script "<new script>"
@@ -143,7 +144,7 @@
   (setq mode-name "SIEVE")
   (buffer-disable-undo (current-buffer))
   (setq truncate-lines t)
-  (easy-menu-add-item nil nil sieve-manage-mode-menu))
+  (easy-menu-add sieve-manage-mode-menu sieve-manage-mode-map))
 
 (put 'sieve-manage-mode 'mode-class 'special)
 
@@ -380,4 +381,5 @@
 
 (provide 'sieve)
 
+;;; arch-tag: 7f6a6d94-94e1-4654-ab9a-aee21b9b8a94
 ;; sieve.el ends here
Index: gnus/lisp/smiley.el
diff -u gnus/lisp/smiley.el:7.1 gnus/lisp/smiley.el:7.5
--- gnus/lisp/smiley.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/smiley.el	Sat Feb 19 06:08:50 2005
@@ -44,7 +44,7 @@
   :group 'gnus-visual)
 
 ;; Maybe this should go.
-(defcustom smiley-data-directory (nnheader-find-etc-directory "smilies")
+(defcustom smiley-data-directory (nnheader-find-etc-directory "images/smilies")
   "*Location of the smiley faces files."
   :type 'directory
   :group 'smiley)
@@ -78,6 +78,7 @@
       (push "xpm" types))
     types)
   "*List of suffixes on picon file names to try."
+  :version "22.1"
   :type '(repeat string)
   :group 'smiley)
 
@@ -167,4 +168,5 @@
 
 (provide 'smiley)
 
+;;; arch-tag: 5beb161b-4321-40af-8ac9-876afb8ee818
 ;;; smiley.el ends here
Index: gnus/lisp/smime-ldap.el
diff -u /dev/null gnus/lisp/smime-ldap.el:7.3
--- /dev/null	Sun May  1 19:05:03 2005
+++ gnus/lisp/smime-ldap.el	Tue Feb 15 02:58:42 2005
@@ -0,0 +1,208 @@
+;;; smime-ldap.el --- client interface to LDAP for Emacs
+
+;; Copyright (C) 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
+
+;; Author: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
+;; Maintainer: Arne J,Ax(Brgensen <arne@arnested.dk>
+;; Created: February 2005
+;; Keywords: comm
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; This file has a slightly changed implementation of Emacs 21.3's
+;; ldap-search and ldap-search-internal from ldap.el. The changes are
+;; made to achieve compatibility with OpenLDAP v2 and to make it
+;; possible to retrieve LDAP attributes that are tagged ie ";binary".
+
+;; When Gnus drops support for Emacs 21.x this file can be removed and
+;; smime.el changed to
+
+;;   - (require 'smime-ldap)   =>   (require 'ldap)
+;;   - (smime-ldap-search ...) =>   (ldap-search ...)
+
+;; If we are running in Emacs 22 or newer it just uses the build-in
+;; version of ldap-search.
+
+;;; Code:
+
+(require 'ldap)
+
+(defun smime-ldap-search (filter &optional host attributes attrsonly withdn)
+  "Perform an LDAP search.
+FILTER is the search filter in RFC1558 syntax.
+HOST is the LDAP host on which to perform the search.
+ATTRIBUTES are the specific attributes to retrieve, nil means
+retrieve all.
+ATTRSONLY, if non-nil, retrieves the attributes only, without
+the associated values.
+If WITHDN is non-nil, each entry in the result will be prepended with
+its distinguished name WITHDN.
+Additional search parameters can be specified through
+`ldap-host-parameters-alist', which see."
+  (interactive "sFilter:")
+  (if (>= emacs-major-version 22)
+      (ldap-search filter host attributes attrsonly)
+    (or host
+	(setq host ldap-default-host)
+	(error "No LDAP host specified"))
+    (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+	  result)
+      (setq result (smime-ldap-search-internal
+		    (append host-plist
+			    (list 'host host
+				  'filter filter
+				  'attributes attributes
+				  'attrsonly attrsonly
+				  'withdn withdn))))
+      (if ldap-ignore-attribute-codings
+	  result
+	(mapcar (function
+		 (lambda (record)
+		   (mapcar 'ldap-decode-attribute record)))
+		result)))))
+
+(defun smime-ldap-search-internal (search-plist)
+  "Perform a search on a LDAP server.
+SEARCH-PLIST is a property list describing the search request.
+Valid keys in that list are:
+`host' is a string naming one or more (blank-separated) LDAP servers to
+to try to connect to.  Each host name may optionally be of the form HOST:PORT.
+`filter' is a filter string for the search as described in RFC 1558.
+`attributes' is a list of strings indicating which attributes to retrieve
+for each matching entry. If nil, return all available attributes.
+`attrsonly', if non-nil, indicates that only attributes are retrieved,
+not their associated values.
+`base' is the base for the search as described in RFC 1779.
+`scope' is one of the three symbols `sub', `base' or `one'.
+`binddn' is the distinguished name of the user to bind as (in RFC 1779 syntax).
+`passwd' is the password to use for simple authentication.
+`deref' is one of the symbols `never', `always', `search' or `find'.
+`timelimit' is the timeout limit for the connection in seconds.
+`sizelimit' is the maximum number of matches to return.
+`withdn' if non-nil each entry in the result will be prepended with
+its distinguished name DN.
+The function returns a list of matching entries.  Each entry is itself
+an alist of attribute/value pairs."
+  (let ((buf (get-buffer-create " *ldap-search*"))
+	(bufval (get-buffer-create " *ldap-value*"))
+	(host (or (plist-get search-plist 'host)
+		  ldap-default-host))
+	(filter (plist-get search-plist 'filter))
+	(attributes (plist-get search-plist 'attributes))
+	(attrsonly (plist-get search-plist 'attrsonly))
+	(base (or (plist-get search-plist 'base)
+		  ldap-default-base))
+	(scope (plist-get search-plist 'scope))
+	(binddn (plist-get search-plist 'binddn))
+	(passwd (plist-get search-plist 'passwd))
+	(deref (plist-get search-plist 'deref))
+	(timelimit (plist-get search-plist 'timelimit))
+	(sizelimit (plist-get search-plist 'sizelimit))
+	(withdn (plist-get search-plist 'withdn))
+	(numres 0)
+	arglist dn name value record result)
+    (if (or (null filter)
+	    (equal "" filter))
+	(error "No search filter"))
+    (setq filter (cons filter attributes))
+    (save-excursion
+      (set-buffer buf)
+      (erase-buffer)
+      (if (and host
+	       (not (equal "" host)))
+	  (setq arglist (nconc arglist (list (format "-h%s" host)))))
+      (if (and attrsonly
+	       (not (equal "" attrsonly)))
+	  (setq arglist (nconc arglist (list "-A"))))
+      (if (and base
+	       (not (equal "" base)))
+	  (setq arglist (nconc arglist (list (format "-b%s" base)))))
+      (if (and scope
+	       (not (equal "" scope)))
+	  (setq arglist (nconc arglist (list (format "-s%s" scope)))))
+      (if (and binddn
+	       (not (equal "" binddn)))
+	  (setq arglist (nconc arglist (list (format "-D%s" binddn)))))
+      (if (and passwd
+	       (not (equal "" passwd)))
+	  (setq arglist (nconc arglist (list (format "-w%s" passwd)))))
+      (if (and deref
+	       (not (equal "" deref)))
+	  (setq arglist (nconc arglist (list (format "-a%s" deref)))))
+      (if (and timelimit
+	       (not (equal "" timelimit)))
+	  (setq arglist (nconc arglist (list (format "-l%s" timelimit)))))
+      (if (and sizelimit
+	       (not (equal "" sizelimit)))
+	  (setq arglist (nconc arglist (list (format "-z%s" sizelimit)))))
+      (eval `(call-process ldap-ldapsearch-prog
+			   nil
+			   buf
+			   nil
+			   ,@arglist
+			   "-tt"		; Write values to temp files
+			   "-x"
+			   "-LL"
+			   ;			   ,@ldap-ldapsearch-args
+			   ,@filter))
+      (insert "\n")
+      (goto-char (point-min))
+
+      (while (re-search-forward "[\t\n\f]+ " nil t)
+	(replace-match "" nil nil))
+      (goto-char (point-min))
+
+      (if (looking-at "usage")
+	  (error "Incorrect ldapsearch invocation")
+	(message "Parsing results... ")
+	(while (progn
+		 (skip-chars-forward " \t\n")
+		 (not (eobp)))
+	  (setq dn (buffer-substring (point) (save-excursion
+					       (end-of-line)
+					       (point))))
+	  (forward-line 1)
+	  (while (looking-at (concat "^\\(\\w*\\)\\(;\\w*\\)?[=:\t ]+"
+				     "\\(<[\t ]*file://\\)?\\(.*\\)$"))
+	    (setq name (match-string 1)
+		  value (match-string 4))
+	    (save-excursion
+	      (set-buffer bufval)
+	      (erase-buffer)
+	      (insert-file-contents-literally value)
+	      (delete-file value)
+	      (setq value (buffer-substring (point-min) (point-max))))
+	    (setq record (cons (list name value)
+			       record))
+	    (forward-line 1))
+	  (setq result (cons (if withdn
+				 (cons dn (nreverse record))
+			       (nreverse record)) result))
+	  (setq record nil)
+	  (skip-chars-forward " \t\n")
+	  (message "Parsing results... %d" numres)
+	  (1+ numres))
+	(message "Parsing results... done")
+	(nreverse result)))))
+
+(provide 'smime-ldap)
+
+;; arch-tag: 87e6bc44-21fc-4e9b-a89b-f55f031f78f8
+;;; smime-ldap.el ends here
Index: gnus/lisp/smime.el
diff -u gnus/lisp/smime.el:7.3 gnus/lisp/smime.el:7.10
--- gnus/lisp/smime.el:7.3	Mon Jan  5 21:50:13 2004
+++ gnus/lisp/smime.el	Thu Mar 31 22:09:53 2005
@@ -1,5 +1,5 @@
 ;;; smime.el --- S/MIME support library
-;; Copyright (c) 2000, 2001, 2003 Free Software Foundation, Inc.
+;; Copyright (c) 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org>
 ;; Keywords: SMIME X.509 PEM OpenSSL
@@ -26,7 +26,7 @@
 ;; This library perform S/MIME operations from within Emacs.
 ;;
 ;; Functions for fetching certificates from public repositories are
-;; provided, currently only from DNS.  LDAP support (via EUDC) is planned.
+;; provided, currently from DNS and LDAP.
 ;;
 ;; It uses OpenSSL (tested with version 0.9.5a and 0.9.6) for signing,
 ;; encryption and decryption.
@@ -115,10 +115,13 @@
 ;; 2000-06-05  initial version, committed to Gnus CVS contrib/
 ;; 2000-10-28  retrieve certificates via DNS CERT RRs
 ;; 2001-10-14  posted to gnu.emacs.sources
+;; 2005-02-13  retrieve certificates via LDAP
 
 ;;; Code:
 
 (require 'dig)
+(require 'smime-ldap)
+(require 'password)
 (eval-when-compile (require 'cl))
 
 (defgroup smime nil
@@ -150,6 +153,7 @@
 (defcustom smime-CA-file nil
   "*Files containing certificates for CAs you trust.
 File should contain certificates in PEM format."
+  :version "22.1"
   :type '(choice (const :tag "none" nil)
 		 file)
   :group 'smime)
@@ -177,6 +181,7 @@
 
 (defcustom smime-encrypt-cipher "-des3"
   "*Cipher algorithm used for encryption."
+  :version "22.1"
   :type '(choice (const :tag "Triple DES" "-des3")
 		 (const :tag "DES"  "-des")
 		 (const :tag "RC2 40 bits" "-rc2-40")
@@ -208,10 +213,19 @@
 (defcustom smime-dns-server nil
   "*DNS server to query certificates from.
 If nil, use system defaults."
+  :version "22.1"
   :type '(choice (const :tag "System defaults")
 		 string)
   :group 'smime)
 
+(defcustom smime-ldap-host-list nil
+  "A list of LDAP hosts with S/MIME user certificates.
+If needed search base, binddn, passwd, etc. for the LDAP host
+must be set in `ldap-host-parameters-alist'."
+  :type '(repeat (string :tag "Host name"))
+  :version "23.0" ;; No Gnus
+  :group 'smime)
+
 (defvar smime-details-buffer "*OpenSSL output*")
 
 ;; Use mm-util?
@@ -228,11 +242,13 @@
 
 ;; Password dialog function
 
-(defun smime-ask-passphrase ()
-  "Asks the passphrase to unlock the secret key."
+(defun smime-ask-passphrase (&optional cache-key)
+  "Asks the passphrase to unlock the secret key.
+If `cache-key' and `password-cache' is non-nil then cache the
+password under `cache-key'."
   (let ((passphrase
-	 (read-passwd
-	  "Passphrase for secret key (RET for no passphrase): ")))
+	 (password-read-and-add
+	  "Passphrase for secret key (RET for no passphrase): " cache-key)))
     (if (string= passphrase "")
 	nil
       passphrase)))
@@ -264,11 +280,11 @@
 included, KEYFILE may be the file containing the PEM encoded private
 key and certificate itself."
   (smime-new-details-buffer)
-  (let ((keyfile (or (car-safe keyfile) keyfile))
-	(certfiles (and (cdr-safe keyfile) (cadr keyfile)))
-	(buffer (generate-new-buffer (generate-new-buffer-name " *smime*")))
-	(passphrase (smime-ask-passphrase))
-	(tmpfile (smime-make-temp-file "smime")))
+  (let* ((certfiles (and (cdr-safe keyfile) (cadr keyfile)))
+	 (keyfile (or (car-safe keyfile) keyfile))
+	 (buffer (generate-new-buffer (generate-new-buffer-name " *smime*")))
+	 (passphrase (smime-ask-passphrase (expand-file-name keyfile)))
+	 (tmpfile (smime-make-temp-file "smime")))
     (if passphrase
 	(setenv "GNUS_SMIME_PASSPHRASE" passphrase))
     (prog1
@@ -329,16 +345,17 @@
 KEYFILE should contain a PEM encoded key and certificate."
   (interactive)
   (with-current-buffer (or buffer (current-buffer))
-    (smime-sign-region
-     (point-min) (point-max)
-     (if keyfile
-	 keyfile
-       (smime-get-key-with-certs-by-email
-	(completing-read
-	 (concat "Sign using which key? "
-		 (if smime-keys (concat "(default " (caar smime-keys) ") ")
-		   ""))
-	 smime-keys nil nil (car-safe (car-safe smime-keys))))))))
+    (unless (smime-sign-region
+	     (point-min) (point-max)
+	     (if keyfile
+		 keyfile
+	       (smime-get-key-with-certs-by-email
+		(completing-read
+		 (concat "Sign using which key? "
+			 (if smime-keys (concat "(default " (caar smime-keys) ") ")
+			   ""))
+		 smime-keys nil nil (car-safe (car-safe smime-keys))))))
+      (error "Signing failed"))))
 
 (defun smime-encrypt-buffer (&optional certfiles buffer)
   "S/MIME encrypt BUFFER for recipients specified in CERTFILES.
@@ -347,11 +364,12 @@
 nil."
   (interactive)
   (with-current-buffer (or buffer (current-buffer))
-    (smime-encrypt-region
-     (point-min) (point-max)
-     (or certfiles
-	 (list (read-file-name "Recipient's S/MIME certificate: "
-			       smime-certificate-directory nil))))))
+    (unless (smime-encrypt-region
+	     (point-min) (point-max)
+	     (or certfiles
+		 (list (read-file-name "Recipient's S/MIME certificate: "
+				       smime-certificate-directory nil))))
+      (error "Encryption failed"))))
 
 ;; Verify+decrypt region
 
@@ -399,7 +417,7 @@
 in the buffer specified by `smime-details-buffer'."
   (smime-new-details-buffer)
   (let ((buffer (generate-new-buffer (generate-new-buffer-name " *smime*")))
-	CAs (passphrase (smime-ask-passphrase))
+	CAs (passphrase (smime-ask-passphrase (expand-file-name keyfile)))
 	(tmpfile (smime-make-temp-file "smime")))
     (if passphrase
 	(setenv "GNUS_SMIME_PASSPHRASE" passphrase))
@@ -532,6 +550,7 @@
     mailaddr))
 
 (defun smime-cert-by-dns (mail)
+  "Find certificate via DNS for address MAIL."
   (let* ((dig-dns-server smime-dns-server)
 	 (digbuf (dig-invoke (smime-mail-to-domain mail) "cert" nil nil "+vc"))
 	 (retbuf (generate-new-buffer (format "*certificate for %s*" mail)))
@@ -552,6 +571,35 @@
       (kill-buffer digbuf)
       retbuf))
 
+(defun smime-cert-by-ldap-1 (mail host)
+  "Get cetificate for MAIL from the ldap server at HOST."
+  (let ((ldapresult (smime-ldap-search (concat "mail=" mail)
+				       host '("userCertificate") nil))
+	(retbuf (generate-new-buffer (format "*certificate for %s*" mail)))
+	cert)
+    (if (> (length ldapresult) 1)
+	(with-current-buffer retbuf
+	  (setq cert (base64-encode-string (nth 1 (car (nth 1 ldapresult))) t))
+	  (insert "-----BEGIN CERTIFICATE-----\n")
+	  (let ((i 0) (len (length cert)))
+	    (while (> (- len 64) i)
+	      (insert (substring cert i (+ i 64)) "\n")
+	      (setq i (+ i 64)))
+	    (insert (substring cert i len) "\n"))
+	  (insert "-----END CERTIFICATE-----\n"))
+      (kill-buffer retbuf)
+      (setq retbuf nil))
+    retbuf))
+
+(defun smime-cert-by-ldap (mail)
+  "Find certificate via LDAP for address MAIL."
+  (if smime-ldap-host-list
+      (catch 'certbuf
+	(dolist (host smime-ldap-host-list)
+	  (let ((retbuf (smime-cert-by-ldap-1 mail host)))
+	    (when retbuf
+	      (throw 'certbuf retbuf)))))))
+
 ;; User interface.
 
 (defvar smime-buffer "*SMIME*")
@@ -633,4 +681,5 @@
 
 (provide 'smime)
 
+;;; arch-tag: e3f9b938-5085-4510-8a11-6625269c9a9e
 ;;; smime.el ends here
Index: gnus/lisp/spam-report.el
diff -u gnus/lisp/spam-report.el:7.7 gnus/lisp/spam-report.el:7.15
--- gnus/lisp/spam-report.el:7.7	Thu Feb 26 00:53:49 2004
+++ gnus/lisp/spam-report.el	Fri Nov 26 04:07:29 2004
@@ -43,7 +43,7 @@
 or the gnus-group-spam-exit-processor-report-gmane group/topic parameter
 instead."
   :type '(radio (const nil)
-		(regexp :format "%t: %v\n" :size 0 :value "^nntp\+.*:gmane\."))
+		(regexp :value "^nntp\+.*:gmane\."))
   :group 'spam-report)
 
 (defcustom spam-report-gmane-spam-header
@@ -79,24 +79,59 @@
   :type 'file
   :group 'spam-report)
 
+(defcustom spam-report-resend-to nil
+  "Email address that spam articles are resent to when reporting.
+If not set, the user will be prompted to enter a value which will be
+saved for future use."
+  :type 'string
+  :group 'spam-report)
+
 (defvar spam-report-url-ping-temp-agent-function nil
   "Internal variable for `spam-report-agentize' and `spam-report-deagentize'.
 This variable will store the value of `spam-report-url-ping-function' from
 before `spam-report-agentize' was run, so that `spam-report-deagentize' can
 undo that change.")
 
+(defun spam-report-resend (articles &optional ham)
+  "Report an article as spam by resending via email.
+Reports is as ham when HAM is set."
+  (dolist (article articles)
+    (gnus-message 6 
+		  "Reporting %s article %d to <%s>..."
+		  (if ham "ham" "spam")
+		  article spam-report-resend-to)
+    (unless spam-report-resend-to
+      (customize-set-variable 
+       spam-report-resend-to
+       (read-from-minibuffer "email address to resend SPAM/HAM to? ")))
+    ;; This is ganked from the `gnus-summary-resend-message' function.
+    ;; It involves rendering the SPAM, which is undesirable, but there does
+    ;; not seem to be a nicer way to achieve this.
+    ;; select this particular article
+    (gnus-summary-select-article nil nil nil article)
+    ;; resend it to the destination address
+    (save-excursion
+      (set-buffer gnus-original-article-buffer)
+      (message-resend spam-report-resend-to))))
+
+(defun spam-report-resend-ham (articles)
+  "Report an article as ham by resending via email."
+  (spam-report-resend articles t))
+
 (defun spam-report-gmane (&rest articles)
-  "Report an article as spam through Gmane"
+  "Report an article as spam through Gmane."
+  (interactive (gnus-summary-work-articles current-prefix-arg))
   (dolist (article articles)
     (when (and gnus-newsgroup-name
 	       (or (null spam-report-gmane-regex)
 		   (string-match spam-report-gmane-regex gnus-newsgroup-name)))
       (gnus-message 6 "Reporting spam article %d to spam.gmane.org..." article)
       (if spam-report-gmane-use-article-number
-	  (spam-report-url-ping "spam.gmane.org"
-				(format "/%s:%d"
-					(gnus-group-real-name gnus-newsgroup-name)
-					article))
+	  (spam-report-url-ping 
+	   "spam.gmane.org"
+	   (format "/%s:%d"
+		   (gnus-group-real-name gnus-newsgroup-name)
+		   article))
 	(with-current-buffer nntp-server-buffer
 	  (gnus-request-head article gnus-newsgroup-name)
 	  (goto-char (point-min))
@@ -109,6 +144,7 @@
 	    (gnus-message 3 "Could not find X-Report-Spam in article %d..."
 			  article)))))))
 
+
 (defun spam-report-url-ping (host report)
   "Ping a host through HTTP, addressing a specific GET resource using
 the function specified by `spam-report-url-ping-function'."
@@ -240,4 +276,5 @@
 
 (provide 'spam-report)
 
+;;; arch-tag: f6683295-ec89-4ab5-8803-8cc842293022
 ;;; spam-report.el ends here.
Index: gnus/lisp/spam-stat.el
diff -u gnus/lisp/spam-stat.el:7.15 gnus/lisp/spam-stat.el:7.22
--- gnus/lisp/spam-stat.el:7.15	Sun Apr 25 20:01:33 2004
+++ gnus/lisp/spam-stat.el	Wed Apr  6 21:04:20 2005
@@ -129,6 +129,7 @@
 Use the functions to build a dictionary of words and their statistical
 distribution in spam and non-spam mails.  Then use a function to determine
 whether a buffer contains spam or not."
+  :version "22.1"
   :group 'gnus)
 
 (defcustom spam-stat-file "~/.spam-stat.el"
@@ -167,7 +168,7 @@
   :type 'string
   :group 'spam-stat)
 
-(defcustom spam-stat-split-fancy-spam-threshhold 0.9
+(defcustom spam-stat-split-fancy-spam-threshold 0.9
   "Spam score threshold in spam-stat-split-fancy."
   :type 'number
   :group 'spam-stat)
@@ -177,13 +178,36 @@
   :type 'hook
   :group 'spam-stat)
 
+(defcustom spam-stat-score-buffer-user-functions nil
+  "List of additional scoring functions.
+Called  one by one on the buffer. 
+
+If all of these functions return non-nil answers, these numerical
+answers are added to the computed spam stat score on the buffer.  If
+you defun such functions, make sure they don't return the buffer in a
+narrowed state or such: use, for example, `save-excursion'.  Each of
+your functions is also passed the initial spam-stat score which might
+aid in your scoring.
+
+Also be careful when defining such functions.  If they take a long
+time, they will slow down your mail splitting.  Thus, if the buffer is
+large, don't forget to use smaller regions, by wrapping your work in,
+say, `with-spam-stat-max-buffer-size'."
+  :type '(repeat sexp)
+  :group 'spam-stat)
+
 (defcustom spam-stat-process-directory-age 90
   "Max. age of files to be processed in directory, in days.
 When using `spam-stat-process-spam-directory' or
 `spam-stat-process-non-spam-directory', only files that have
 been touched in this many days will be considered.  Without
 this filter, re-training spam-stat with several thousand messages
-will start to take a very long time.")
+will start to take a very long time."
+  :type 'number
+  :group 'spam-stat)
+
+(defvar spam-stat-last-saved-at nil
+  "Time stamp of last change of spam-stat-file on this run")
 
 (defvar spam-stat-syntax-table
   (let ((table (copy-syntax-table text-mode-syntax-table)))
@@ -242,6 +266,9 @@
 (defvar spam-stat-nbad 0
   "The number of bad mails in the dictionary.")
 
+(defvar spam-stat-error-holder nil
+  "A holder for condition-case errors while scoring buffers.")
+
 (defsubst spam-stat-good (entry)
   "Return the number of times this word belongs to good mails."
   (aref entry 0))
@@ -383,7 +410,7 @@
 ;; Saving and Loading
 
 (defun spam-stat-save (&optional force)
-  "Save the `spam-stat' hash table as Lisp file.
+  "Save the `spam-stat' hash table as lisp file.
 With a prefix argument save unconditionally."
   (interactive "P")
   (when (or force spam-stat-dirty)
@@ -400,14 +427,25 @@
 				  (spam-stat-bad entry))))
 		   spam-stat)
 	  (insert ")))"))))
-	(setq spam-stat-dirty nil)))
+    (message "Saved %s."  spam-stat-file)
+    (setq spam-stat-dirty nil
+          spam-stat-last-saved-at (nth 5 (file-attributes spam-stat-file)))))
 
 (defun spam-stat-load ()
   "Read the `spam-stat' hash table from disk."
   ;; TODO: maybe we should warn the user if spam-stat-dirty is t?
   (let ((coding-system-for-read spam-stat-coding-system))
-    (load-file spam-stat-file))
-  (setq spam-stat-dirty nil))
+    (cond (spam-stat-dirty (message "Spam stat not loaded: spam-stat-dirty t"))
+          ((or (not (boundp 'spam-stat-last-saved-at))
+               (null spam-stat-last-saved-at)
+               (not (equal spam-stat-last-saved-at
+                           (nth 5 (file-attributes spam-stat-file)))))
+           (progn 
+             (load-file spam-stat-file)
+             (setq spam-stat-dirty nil
+                   spam-stat-last-saved-at 
+                   (nth 5 (file-attributes spam-stat-file)))))
+          (t (message "Spam stat file not loaded: no change in disk..")))))
 
 (defun spam-stat-to-hash-table (entries)
   "Turn list ENTRIES into a hash table and store as `spam-stat'.
@@ -461,29 +499,51 @@
     result))
 
 (defun spam-stat-score-buffer ()
-  "Return a score describing the spam-probability for this buffer."
+  "Return a score describing the spam-probability for this buffer.
+Add user supplied modifications if supplied."
+  (interactive) ; helps in debugging. 
   (setq spam-stat-score-data (spam-stat-buffer-words-with-scores))
   (let* ((probs (mapcar 'cadr spam-stat-score-data))
-	 (prod (apply #'* probs)))
-    (/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x))
-				       probs))))))
+	 (prod (apply #'* probs))
+	 (score0 
+	  (/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x))
+					     probs)))))
+	 (score1s
+	  (condition-case
+	      spam-stat-error-holder
+	      (spam-stat-score-buffer-user score0)
+	    (error nil)))
+	 (ans
+	  (if score1s (+ score0 score1s) score0)))
+    (when (interactive-p) 
+      (message "%S" ans))
+    ans))
+
+(defun spam-stat-score-buffer-user (&rest args)
+  (let* ((scores
+	  (mapcar 
+	   (lambda (fn) 
+	     (apply fn args))
+	   spam-stat-score-buffer-user-functions)))
+    (if (memq nil scores) nil 
+      (apply #'+ scores))))
 
 (defun spam-stat-split-fancy ()
   "Return the name of the spam group if the current mail is spam.
 Use this function on `nnmail-split-fancy'.  If you are interested in
 the raw data used for the last run of `spam-stat-score-buffer',
 check the variable `spam-stat-score-data'."
-  (condition-case var
+  (condition-case spam-stat-error-holder
       (progn
 	(set-buffer spam-stat-buffer)
 	(goto-char (point-min))
-	(when (> (spam-stat-score-buffer) spam-stat-split-fancy-spam-threshhold)
+	(when (> (spam-stat-score-buffer) spam-stat-split-fancy-spam-threshold)
 	  (when (boundp 'nnmail-split-trace)
 	    (mapc (lambda (entry)
 		    (push entry nnmail-split-trace))
 		  spam-stat-score-data))
 	  spam-stat-split-fancy-spam-group))
-    (error (message "Error in spam-stat-split-fancy: %S" var)
+    (error (message "Error in spam-stat-split-fancy: %S" spam-stat-error-holder)
 	   nil)))
 
 ;; Testing
@@ -605,6 +665,9 @@
   (remove-hook 'gnus-select-article-hook
 	       'spam-stat-store-gnus-article-buffer))
 
+(add-hook 'spam-stat-unload-hook 'spam-stat-unload-hook)
+
 (provide 'spam-stat)
 
+;;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554
 ;;; spam-stat.el ends here
Index: gnus/lisp/spam-wash.el
diff -u gnus/lisp/spam-wash.el:1.1 gnus/lisp/spam-wash.el:1.2
--- gnus/lisp/spam-wash.el:1.1	Thu Feb 26 23:23:20 2004
+++ gnus/lisp/spam-wash.el	Thu May 20 10:02:41 2004
@@ -71,4 +71,5 @@
 
 (provide 'spam-wash)
 
+;;; arch-tag: 3c7f94a7-c96d-4c77-bb59-950df12bc85f
 ;;; spam-wash.el ends here
Index: gnus/lisp/spam.el
diff -u gnus/lisp/spam.el:7.34 gnus/lisp/spam.el:7.68
--- gnus/lisp/spam.el:7.34	Fri Apr 30 19:55:59 2004
+++ gnus/lisp/spam.el	Sun Feb 13 05:44:41 2005
@@ -32,12 +32,14 @@
 
 ;;; Several TODO items are marked as such
 
-;; TODO: spam scores, detection of spam in newsgroups, cross-server splitting,
-;; remote processing, training through files
+;; TODO: cross-server splitting, remote processing, training through files
 
 ;;; Code:
 
+;;{{{ compilation directives and autoloads/requires
+
 (eval-when-compile (require 'cl))
+(eval-when-compile (require 'spam-report))
 
 (require 'gnus-sum)
 
@@ -55,7 +57,8 @@
 
 ;; autoload spam-report
 (eval-and-compile
-  (autoload 'spam-report-gmane "spam-report"))
+  (autoload 'spam-report-gmane "spam-report")
+  (autoload 'spam-report-resend "spam-report"))
 
 ;; autoload gnus-registry
 (eval-and-compile
@@ -68,26 +71,36 @@
 (eval-and-compile
   (autoload 'query-dns "dns"))
 
-;;; Main parameters.
+;;}}}
+
+;;{{{ Main parameters.
+(defvar spam-backends nil
+  "List of spam.el backends with all the pertinent data.
+Populated by spam-install-backend-super.")
 
 (defgroup spam nil
-  "Spam configuration.")
+  "Spam configuration."
+  :version "22.1")
+
+(defcustom spam-summary-exit-behavior 'default
+  "Exit behavior at the time of summary exit.
+Note that setting the spam-use-move or spam-use-copy backends on
+a group through group/topic parameters overrides this mechanism."
+  :type '(choice (const 'default :tag 
+			"Move spam out of all groups.  Move ham out of spam groups.")
+		 (const 'move-all :tag 
+			"Move spam out of all groups.  Move ham out of all groups.")
+		 (const 'move-none :tag 
+			"Never move spam or ham out of any groups."))
+  :group 'spam)
 
 (defcustom spam-directory (nnheader-concat gnus-directory "spam/")
   "Directory for spam whitelists and blacklists."
   :type 'directory
   :group 'spam)
 
-(defcustom spam-move-spam-nonspam-groups-only t
-  "Whether spam should be moved in non-spam groups only.
-When t, only ham and unclassified groups will have their spam moved
-to the spam-process-destination.  When nil, spam will also be moved from
-spam groups."
-  :type 'boolean
-  :group 'spam)
-
-(defcustom spam-process-ham-in-nonham-groups nil
-  "Whether ham should be processed in non-ham groups."
+(defcustom spam-mark-new-messages-in-spam-group-as-spam t
+  "Whether new messages in a spam group should get the spam-mark."
   :type 'boolean
   :group 'spam)
 
@@ -108,11 +121,6 @@
   :type 'boolean
   :group 'spam)
 
-(defcustom spam-process-ham-in-spam-groups nil
-  "Whether ham should be processed in spam groups."
-  :type 'boolean
-  :group 'spam)
-
 (defcustom spam-mark-only-unseen-as-spam t
   "Whether only unseen articles should be marked as spam in spam groups.
 When nil, all unread articles in a spam group are marked as
@@ -275,6 +283,11 @@
   :type 'boolean
   :group 'spam)
 
+(defcustom spam-use-crm114 nil
+  "Whether the CRM114 Mailfilter should be used by `spam-split'."
+  :type 'boolean
+  :group 'spam)
+
 (defcustom spam-install-hooks (or
 			       spam-use-dig
 			       spam-use-gmane-xref
@@ -295,7 +308,8 @@
 			       spam-use-BBDB-exclusive
 			       spam-use-ifile
 			       spam-use-stat
-			       spam-use-spamoracle)
+			       spam-use-spamoracle
+			       spam-use-crm114)
   "Whether the spam hooks should be installed.
 Default to t if one of the spam-use-* variables is set."
   :group 'spam
@@ -333,11 +347,22 @@
 (defcustom spam-blackhole-good-server-regex nil
   "String matching IP addresses that should not be checked in the blackholes.
 Only meaningful if you enable `spam-use-blackholes'."
-  :type '(radio (const nil)
-		(regexp :format "%t: %v\n" :size 0))
+  :type '(radio (const nil) regexp)
   :group 'spam)
 
-(defcustom spam-face 'gnus-splash-face
+(defface spam-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.")
+
+(defcustom spam-face 'spam-face
   "Face for spam-marked articles."
   :type 'face
   :group 'spam)
@@ -366,6 +391,14 @@
   :type '(repeat (regexp :tag "Regular expression to match ham body"))
   :group 'spam)
 
+(defcustom spam-summary-score-preferred-header nil
+  "Preferred header to use for spam-summary-score."
+  :type '(choice :tag "Header name"
+	  (symbol :tag "SpamAssassin etc" X-Spam-Status)
+	  (symbol :tag "Bogofilter"       X-Bogosity)
+	  (const  :tag "No preference, take best guess." nil))
+  :group 'spam)
+
 (defgroup spam-ifile nil
   "Spam ifile configuration."
   :group 'spam)
@@ -411,6 +444,8 @@
 		 (const :tag "Bogofilter is not installed"))
   :group 'spam-bogofilter)
 
+(defvar spam-bogofilter-valid 'unknown "Is the bogofilter version valid?")
+
 (defcustom spam-bogofilter-header "X-Bogosity"
   "The header that Bogofilter inserts in messages."
   :type 'string
@@ -576,6 +611,53 @@
   :type 'string
   :group 'spam-spamassassin)
 
+(defgroup spam-crm114 nil
+  "Spam CRM114 Mailfilter configuration."
+  :group 'spam)
+
+(defcustom spam-crm114-program (executable-find "mailfilter.crm")
+  "File path of the CRM114 Mailfilter executable program."
+  :type '(choice (file :tag "Location of CRM114 Mailfilter")
+	 (const :tag "CRM114 Mailfilter is not installed"))
+  :group 'spam-crm114)
+
+(defcustom spam-crm114-header "X-CRM114-Status"
+  "The header that CRM114 Mailfilter inserts in messages."
+  :type 'string
+  :group 'spam-crm114)
+
+(defcustom spam-crm114-spam-switch "--learnspam"
+  "The switch that CRM114 Mailfilter uses to register spam messages."
+  :type 'string
+  :group 'spam-crm114)
+
+(defcustom spam-crm114-ham-switch "--learnnonspam"
+  "The switch that CRM114 Mailfilter uses to register ham messages."
+  :type 'string
+  :group 'spam-crm114)
+
+(defcustom spam-crm114-spam-strong-switch "--UNKNOWN"
+  "The switch that CRM114 Mailfilter uses to unregister ham messages."
+  :type 'string
+  :group 'spam-crm114)
+
+(defcustom spam-crm114-ham-strong-switch "--UNKNOWN"
+  "The switch that CRM114 Mailfilter uses to unregister spam messages."
+  :type 'string
+  :group 'spam-crm114)
+
+(defcustom spam-crm114-positive-spam-header "^SPAM"
+  "The regex on `spam-crm114-header' for positive spam identification."
+  :type 'regexp
+  :group 'spam-crm114)
+
+(defcustom spam-crm114-database-directory nil
+  "Directory path of the CRM114 Mailfilter databases."
+  :type '(choice (directory
+	  :tag "Location of the CRM114 Mailfilter database directory")
+	 (const :tag "Use the default"))
+  :group 'spam-crm114)
+
 ;;; Key bindings for spam control.
 
 (gnus-define-keys gnus-summary-mode-map
@@ -593,11 +675,8 @@
 		     :test 'equal)
   "Cache of spam detection entries.")
 
-(defvar spam-old-ham-articles nil
-  "List of old ham articles, generated when a group is entered.")
-
-(defvar spam-old-spam-articles nil
-  "List of old spam articles, generated when a group is entered.")
+(defvar spam-old-articles nil
+  "List of old ham and spam articles, generated when a group is entered.")
 
 (defvar spam-split-disabled nil
   "If non-nil, `spam-split' is disabled, and always returns nil.")
@@ -607,7 +686,17 @@
 `spam-split' will set this to nil or a spam-use-XYZ check if it
 finds ham or spam.")
 
-;; convenience functions
+;; internal variables for backends
+;; TODO: find a way to create these on the fly in spam-install-backend-super
+(defvar spam-use-copy nil)
+(defvar spam-use-move nil)
+(defvar spam-use-gmane nil)
+(defvar spam-use-resend nil)
+
+;;}}}
+
+;;{{{ convenience functions
+
 (defun spam-clear-cache (symbol)
   "Clear the spam-caches entry for a check."
   (remhash symbol spam-caches))
@@ -616,6 +705,20 @@
   "Logical A xor B."
   (and (or a b) (not (and a b))))
 
+(defun spam-set-difference (list1 list2)
+  "Return a set difference of LIST1 and LIST2.  
+When either list is nil, the other is returned."
+  (if (and list1 list2)
+      ;; we have two non-nil lists
+      (progn
+	(dolist (item (append list1 list2))
+	  (when (and (memq item list1) (memq item list2))
+	    (setq list1 (delq item list1))
+	    (setq list2 (delq item list2))))
+	(append list1 list2))
+    ;; if either of the lists was nil, return the other one
+    (if list1 list1 list2)))
+
 (defun spam-group-ham-mark-p (group mark &optional spam)
   "Checks if MARK is considered a ham mark in GROUP."
   (when (stringp group)
@@ -645,7 +748,7 @@
 
 (defun spam-group-spam-contents-p (group)
   "Is GROUP a spam group?"
-  (if (stringp group)
+  (if (and (stringp group) (< 0 (length group)))
       (or (member group spam-junk-mailgroups)
 	  (memq 'gnus-group-spam-classification-spam
 		(gnus-parameter-spam-contents group)))
@@ -658,97 +761,382 @@
 	    (gnus-parameter-spam-contents group))
     nil))
 
-(defvar spam-list-of-processors
-  '((gnus-group-spam-exit-processor-report-gmane spam spam-use-gmane)
-    (gnus-group-spam-exit-processor-bogofilter   spam spam-use-bogofilter)
-    (gnus-group-spam-exit-processor-bsfilter	 spam spam-use-bsfilter)
-    (gnus-group-spam-exit-processor-blacklist    spam spam-use-blacklist)
-    (gnus-group-spam-exit-processor-ifile        spam spam-use-ifile)
-    (gnus-group-spam-exit-processor-stat         spam spam-use-stat)
-    (gnus-group-spam-exit-processor-spamoracle   spam spam-use-spamoracle)
-    (gnus-group-spam-exit-processor-spamassassin spam spam-use-spamassassin)
-    (gnus-group-ham-exit-processor-ifile         ham spam-use-ifile)
-    (gnus-group-ham-exit-processor-bogofilter    ham spam-use-bogofilter)
-    (gnus-group-ham-exit-processor-bsfilter      ham spam-use-bsfilter)
-    (gnus-group-ham-exit-processor-stat          ham spam-use-stat)
-    (gnus-group-ham-exit-processor-whitelist     ham spam-use-whitelist)
-    (gnus-group-ham-exit-processor-BBDB          ham spam-use-BBDB)
-    (gnus-group-ham-exit-processor-copy          ham spam-use-ham-copy)
-    (gnus-group-ham-exit-processor-spamassassin  ham spam-use-spamassassin)
-    (gnus-group-ham-exit-processor-spamoracle    ham spam-use-spamoracle))
-  "The `spam-list-of-processors' list.
-This list contains pairs associating a ham/spam exit processor
-variable with a classification and a spam-use-* variable.")
-
-(defun spam-group-processor-p (group processor)
-  (if (and (stringp group)
-	   (symbolp processor))
-      (or (member processor (nth 0 (gnus-parameter-spam-process group)))
-	  (spam-group-processor-multiple-p
-	   group
-	   (cdr-safe (assoc processor spam-list-of-processors))))
-    nil))
-
-(defun spam-group-processor-multiple-p (group processor-info)
-  (let* ((classification (nth 0 processor-info))
-	 (check (nth 1 processor-info))
-	 (parameters (nth 0 (gnus-parameter-spam-process group)))
-	 found)
-    (dolist (parameter parameters)
-      (when (and (null found)
-		 (listp parameter)
-		 (eq classification (nth 0 parameter))
-		 (eq check (nth 1 parameter)))
-	(setq found t)))
-    found))
+(defun spam-classifications ()
+  "Return list of valid classifications"
+  '(spam ham))
 
-(defun spam-group-spam-processor-report-gmane-p (group)
-  (spam-group-processor-p group 'gnus-group-spam-exit-processor-report-gmane))
-
-(defun spam-group-spam-processor-bogofilter-p (group)
-  (spam-group-processor-p group 'gnus-group-spam-exit-processor-bogofilter))
-
-(defun spam-group-spam-processor-blacklist-p (group)
-  (spam-group-processor-p group 'gnus-group-spam-exit-processor-blacklist))
-
-(defun spam-group-spam-processor-ifile-p (group)
-  (spam-group-processor-p group 'gnus-group-spam-exit-processor-ifile))
-
-(defun spam-group-ham-processor-ifile-p (group)
-  (spam-group-processor-p group 'gnus-group-ham-exit-processor-ifile))
-
-(defun spam-group-spam-processor-spamoracle-p (group)
-  (spam-group-processor-p group 'gnus-group-spam-exit-processor-spamoracle))
+(defun spam-classification-valid-p (classification)
+  "Is CLASSIFICATION a valid spam/ham classification?"
+  (memq classification (spam-classifications)))
 
-(defun spam-group-ham-processor-bogofilter-p (group)
-  (spam-group-processor-p group 'gnus-group-ham-exit-processor-bogofilter))
+(defun spam-backend-properties ()
+  "Return list of valid classifications."
+  '(statistical mover check hrf srf huf suf))
+
+(defun spam-backend-property-valid-p (property)
+  "Is PROPERTY a valid backend property?"
+  (memq property (spam-backend-properties)))
+
+(defun spam-backend-function-type-valid-p (type)
+  (or (eq type 'registration)
+      (eq type 'unregistration)))
 
-(defun spam-group-spam-processor-stat-p (group)
-  (spam-group-processor-p group 'gnus-group-spam-exit-processor-stat))
+(defun spam-process-type-valid-p (process-type)
+  (or (eq process-type 'incoming)
+      (eq process-type 'process)))
 
-(defun spam-group-ham-processor-stat-p (group)
-  (spam-group-processor-p group 'gnus-group-ham-exit-processor-stat))
+(defun spam-list-articles (articles classification)
+  (let ((mark-check (if (eq classification 'spam)
+			'spam-group-spam-mark-p
+		      'spam-group-ham-mark-p))
+	alist mark-cache-yes mark-cache-no)
+    (dolist (article articles)
+      (let ((mark (gnus-summary-article-mark article)))
+	(unless (or (memq mark mark-cache-yes)
+		    (memq mark mark-cache-no))
+	  (if (funcall mark-check
+		       gnus-newsgroup-name
+		       mark)
+	      (push mark mark-cache-yes)
+	    (push mark mark-cache-no)))
+	(when (memq mark mark-cache-yes)
+	  (push article alist))))
+    alist))
 
-(defun spam-group-ham-processor-whitelist-p (group)
-  (spam-group-processor-p group 'gnus-group-ham-exit-processor-whitelist))
+;;}}}
 
-(defun spam-group-ham-processor-BBDB-p (group)
-  (spam-group-processor-p group 'gnus-group-ham-exit-processor-BBDB))
+;;{{{ backend installation functions and procedures
 
-(defun spam-group-ham-processor-copy-p (group)
-  (spam-group-processor-p group 'gnus-group-ham-exit-processor-copy))
+(defun spam-install-backend-super (backend &rest properties)
+  "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."
+
+  (setq spam-backends (add-to-list 'spam-backends backend))
+  (while properties
+    (let ((property (pop properties))
+	  (value (pop properties)))
+      (if (spam-backend-property-valid-p property)
+	  (put backend property value)
+	(gnus-error 
+	 5 
+	 "spam-install-backend-super got an invalid property %s"
+	 property)))))
 
-(defun spam-group-ham-processor-spamoracle-p (group)
-  (spam-group-processor-p group 'gnus-group-ham-exit-processor-spamoracle))
+(defun spam-backend-list (&optional type)
+  "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."
+  (let (list)
+    (dolist (backend spam-backends)
+      (when (or
+	     (null type)		;either no type was requested
+	     ;; or the type is 'mover and the backend is a mover
+	     (and
+	      (eq type 'mover)
+	      (spam-backend-mover-p backend))
+	     ;; or the type is 'non-mover and the backend is not a mover
+	     (and
+	      (eq type 'non-mover)
+	      (not (spam-backend-mover-p backend))))
+	(push backend list)))
+      list))
+
+(defun spam-backend-check (backend)
+  "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."
+  (get backend 'check))
+
+(defun spam-backend-valid-p (backend)
+  "Is BACKEND valid?"
+  (member backend (spam-backend-list)))
+
+(defun spam-backend-info (backend)
+  "Return information about BACKEND."
+  (if (spam-backend-valid-p backend)
+      (let (info)
+	(setq info (format "Backend %s has the following properties:\n"
+			   backend))
+	(dolist (property (spam-backend-properties))
+	  (setq info (format "%s%s=%s\n" 
+			     info
+			     property
+			     (get backend property))))
+	info)
+    (gnus-error 5 "spam-backend-info was asked about an invalid backend %s"
+		backend)))
+
+(defun spam-backend-function (backend classification type)
+  "Get the BACKEND function for CLASSIFICATION and TYPE.
+TYPE is 'registration or 'unregistration.
+CLASSIFICATION is 'ham or 'spam."
+  (if (and
+       (spam-classification-valid-p classification)
+       (spam-backend-function-type-valid-p type))
+      (let ((retrieval 
+	     (intern 
+	      (format "spam-backend-%s-%s-function"
+		      classification
+		      type))))
+	(funcall retrieval backend))
+    (gnus-error 
+     5
+     "%s was passed invalid backend %s, classification %s, or type %s"
+     "spam-backend-function"
+     backend
+     classification
+     type)))
+
+(defun spam-backend-article-list-property (classification 
+					   &optional unregister)
+  "Property name of article list with CLASSIFICATION and UNREGISTER."
+  (let* ((r (if unregister "unregister" "register"))
+	 (prop (format "%s-%s" classification r)))
+    prop))
+
+(defun spam-backend-get-article-todo-list (backend 
+					   classification 
+					   &optional unregister)
+  "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."
+  (get
+   backend 
+   (intern (spam-backend-article-list-property classification unregister))))
+
+(defun spam-backend-put-article-todo-list (backend classification list &optional unregister)
+  "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."
+  (put
+   backend
+   (intern (spam-backend-article-list-property classification unregister))
+   list))
+
+(defun spam-backend-ham-registration-function (backend)
+  "Get the ham registration function for BACKEND."
+  (get backend 'hrf))
+
+(defun spam-backend-spam-registration-function (backend)
+  "Get the spam registration function for BACKEND."
+  (get backend 'srf))
+
+(defun spam-backend-ham-unregistration-function (backend)
+  "Get the ham unregistration function for BACKEND."
+  (get backend 'huf))
+
+(defun spam-backend-spam-unregistration-function (backend)
+  "Get the spam unregistration function for BACKEND."
+  (get backend 'suf))
+
+(defun spam-backend-statistical-p (backend)
+  "Is BACKEND statistical?"
+  (get backend 'statistical))
+
+(defun spam-backend-mover-p (backend)
+  "Is BACKEND a mover?"
+  (get backend 'mover))
+
+(defun spam-install-backend-alias (backend alias)
+  "Add ALIAS to an existing BACKEND.
+The previous backend settings for ALIAS are erased."
+
+  ;; install alias with no properties at first
+  (spam-install-backend-super alias)
+  
+  (dolist (property (spam-backend-properties))
+    (put alias property (get backend property))))
+
+(defun spam-install-checkonly-backend (backend check)
+  "Install a BACKEND than can only CHECK for spam."
+  (spam-install-backend-super backend 'check check))
+
+(defun spam-install-mover-backend (backend hrf srf huf suf)
+  "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."
+  (spam-install-backend-super 
+   backend 
+   'hrf hrf 'srf srf 'huf huf 'suf suf 'mover t))
+
+(defun spam-install-nocheck-backend (backend hrf srf huf suf)
+  "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)."
+  (spam-install-backend-super 
+   backend
+   'hrf hrf 'srf srf 'huf huf 'suf suf))
+
+(defun spam-install-backend (backend check hrf srf huf suf)
+  "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)."
+  (spam-install-backend-super 
+   backend
+   'check check 'hrf hrf 'srf srf 'huf huf 'suf suf))
+
+(defun spam-install-statistical-backend (backend check hrf srf huf suf)
+  "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)."
+  (spam-install-backend-super 
+   backend
+   'check check 'statistical t 'hrf hrf 'srf srf 'huf huf 'suf suf))
+
+(defun spam-install-statistical-checkonly-backend (backend check)
+  "Install a statistical BACKEND than can only CHECK for spam."
+  (spam-install-backend-super 
+   backend
+   'check check 'statistical t))
+
+;;}}}
+
+;;{{{ backend installations
+(spam-install-checkonly-backend 'spam-use-blackholes
+				'spam-check-blackholes)
+
+(spam-install-checkonly-backend 'spam-use-hashcash
+				'spam-check-hashcash)
+
+(spam-install-checkonly-backend 'spam-use-spamassassin-headers
+				'spam-check-spamassassin-headers)
+
+(spam-install-checkonly-backend 'spam-use-bogofilter-headers
+				'spam-check-bogofilter-headers)
+
+(spam-install-checkonly-backend 'spam-use-bsfilter-headers
+				'spam-check-bsfilter-headers)
+
+(spam-install-checkonly-backend 'spam-use-gmane-xref
+				'spam-check-gmane-xref)
+
+(spam-install-checkonly-backend 'spam-use-regex-headers
+				'spam-check-regex-headers)
+
+(spam-install-statistical-checkonly-backend 'spam-use-regex-body
+					    'spam-check-regex-body)
+
+;; TODO: NOTE: spam-use-ham-copy is now obsolete, use (ham spam-use-copy) instead
+(spam-install-mover-backend 'spam-use-move
+			    'spam-move-ham-routine
+			    'spam-move-spam-routine
+			    nil
+			    nil)
+
+(spam-install-nocheck-backend 'spam-use-copy
+			      'spam-copy-ham-routine
+			      'spam-copy-spam-routine
+			      nil
+			      nil)
+
+(spam-install-nocheck-backend 'spam-use-gmane
+			      nil
+			      'spam-report-gmane-register-routine
+			      ;; does Gmane support unregistration?
+			      nil
+			      nil)
+
+(spam-install-nocheck-backend 'spam-use-resend
+			      'spam-report-resend-register-ham-routine
+			      'spam-report-resend-register-routine
+			      nil
+			      nil)
+
+(spam-install-backend 'spam-use-BBDB	 
+		      'spam-check-BBDB
+		      'spam-BBDB-register-routine
+		      nil
+		      'spam-BBDB-unregister-routine
+		      nil)
+
+(spam-install-backend-alias 'spam-use-BBDB 'spam-use-BBDB-exclusive)
+
+(spam-install-backend 'spam-use-blacklist
+		      'spam-check-blacklist
+		      nil
+		      'spam-blacklist-register-routine
+		      nil
+		      'spam-blacklist-unregister-routine)
+
+(spam-install-backend 'spam-use-whitelist
+		      'spam-check-whitelist
+		      'spam-whitelist-register-routine
+		      nil
+		      'spam-whitelist-unregister-routine
+		      nil)
+
+(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-install-statistical-backend 'spam-use-spamoracle
+				  'spam-check-spamoracle
+				  'spam-spamoracle-learn-ham
+				  'spam-spamoracle-learn-spam
+				  'spam-spamoracle-unlearn-ham
+				  'spam-spamoracle-unlearn-spam)
+
+(spam-install-statistical-backend '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-install-statistical-backend '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-install-statistical-backend '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-install-statistical-backend '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-install-statistical-backend 'spam-use-crm114
+				  'spam-check-crm114
+				  'spam-crm114-register-ham-routine
+				  'spam-crm114-register-spam-routine
+				  ;; does CRM114 Mailfilter support unregistration?
+				  nil
+				  nil)
 
-(defun spam-report-articles-gmane (n)
-  "Report the current message as spam.
-Respects the process/prefix convention."
-  (interactive "P")
-  (dolist (article (gnus-summary-work-articles n))
-    (gnus-summary-remove-process-mark article)
-    (spam-report-gmane article)))
+;;}}}
 
+;;{{{ scoring and summary formatting
 (defun spam-necessary-extra-headers ()
   "Return the extra headers spam.el thinks are necessary."
   (let (list)
@@ -756,11 +1144,14 @@
 	      spam-use-spamassassin-headers
 	      spam-use-regex-headers)
       (push 'X-Spam-Status list))
+    (when spam-use-bogofilter
+      (push 'X-Bogosity list))
     list))
 
 (defun spam-user-format-function-S (headers)
   (when headers
-    (spam-summary-score headers)))
+    (format "%3.2f"
+	    (spam-summary-score headers spam-summary-score-preferred-header))))
 
 (defun spam-article-sort-by-spam-status (h1 h2)
   "Sort articles by score."
@@ -774,13 +1165,23 @@
     result))
 
 (defun spam-extra-header-to-number (header headers)
-  "Transform an extra header to a number."
+  "Transform an extra HEADER to a number, using list of HEADERS.
+Note this has to be fast."
   (if (gnus-extra-header header headers)
       (cond
        ((eq header 'X-Spam-Status)
 	(string-to-number (gnus-replace-in-string
 			   (gnus-extra-header header headers)
 			   ".*hits=" "")))
+       ;; for CRM checking, it's probably faster to just do the string match
+       ((and spam-use-crm114 (string-match "( pR: \\([0-9.-]+\\)" header))
+	(match-string 1 header))
+       ((eq header 'X-Bogosity)
+	(string-to-number (gnus-replace-in-string
+			   (gnus-replace-in-string
+			    (gnus-extra-header header headers)
+			    ".*spamicity=" "")
+			   ",.*" "")))
        (t nil))
     nil))
 
@@ -807,15 +1208,118 @@
     (spam-spamassassin-score recheck))
    ((or spam-use-bsfilter spam-use-bsfilter-headers)
     (spam-bsfilter-score recheck))
+   (spam-use-crm114
+    (spam-crm114-score))
    (t (spam-bogofilter-score recheck))))
+;;}}}
+
+;;{{{ set up widening, processor checks
+
+;;; set up IMAP widening if it's necessary
+(defun spam-setup-widening ()
+  (when (spam-widening-needed-p)
+    (setq nnimap-split-download-body-default t)))
 
-;;; Summary entry and exit processing.
+(defun spam-widening-needed-p (&optional force-symbols)
+  (let (found)
+    (dolist (backend (spam-backend-list))
+      (when (and (spam-backend-statistical-p backend)
+		 (or (symbol-value backend) 
+		     (memq backend force-symbols)))
+	(setq found backend)))
+    found))
+
+(defvar spam-list-of-processors
+  ;; note the nil processors are not defined in gnus.el
+  '((gnus-group-spam-exit-processor-bogofilter   spam spam-use-bogofilter)
+    (gnus-group-spam-exit-processor-bsfilter	 spam spam-use-bsfilter)
+    (gnus-group-spam-exit-processor-blacklist    spam spam-use-blacklist)
+    (gnus-group-spam-exit-processor-ifile        spam spam-use-ifile)
+    (gnus-group-spam-exit-processor-stat         spam spam-use-stat)
+    (gnus-group-spam-exit-processor-spamoracle   spam spam-use-spamoracle)
+    (gnus-group-spam-exit-processor-spamassassin spam spam-use-spamassassin)
+    (gnus-group-ham-exit-processor-ifile         ham spam-use-ifile)
+    (gnus-group-ham-exit-processor-bogofilter    ham spam-use-bogofilter)
+    (gnus-group-ham-exit-processor-bsfilter      ham spam-use-bsfilter)
+    (gnus-group-ham-exit-processor-stat          ham spam-use-stat)
+    (gnus-group-ham-exit-processor-whitelist     ham spam-use-whitelist)
+    (gnus-group-ham-exit-processor-BBDB          ham spam-use-BBDB)
+    (gnus-group-ham-exit-processor-copy          ham spam-use-ham-copy)
+    (gnus-group-ham-exit-processor-spamassassin  ham spam-use-spamassassin)
+    (gnus-group-ham-exit-processor-spamoracle    ham spam-use-spamoracle))
+  "The OBSOLETE `spam-list-of-processors' list.
+This list contains pairs associating the obsolete ham/spam exit
+processor variables with a classification and a spam-use-*
+variable.  When the processor variable is nil, just the
+classification and spam-use-* check variable are used.  This is
+superceded by the new spam backend code, so it's only consulted
+for backwards compatibility.")
+
+(defun spam-group-processor-p (group backend &optional classification)
+  "Checks if GROUP has a BACKEND with CLASSIFICATION registered.
+Also accepts the obsolete processors, which can be found in
+gnus.el and in spam-list-of-processors.  In the case of mover
+backends, checks the setting of spam-summary-exit-behavior in
+addition to the set values for the group."
+  (if (and (stringp group)
+	   (symbolp backend))
+      (let ((old-style (assq backend spam-list-of-processors))
+	    (parameters (nth 0 (gnus-parameter-spam-process group)))
+	    found)
+	(if old-style  ; old-style processor
+	    (spam-group-processor-p group (nth 2 old-style) (nth 1 old-style))
+	  ;; now search for the parameter
+	  (dolist (parameter parameters)
+	    (when (and (null found)
+		       (listp parameter)
+		       (eq classification (nth 0 parameter))
+		       (eq backend (nth 1 parameter)))
+	      (setq found t)))
+
+	  ;; now, if the parameter was not found, do the
+	  ;; spam-summary-exit-behavior-logic for mover backends
+	  (unless found
+	    (when (spam-backend-mover-p backend)
+	      (setq 
+	       found
+	       (cond
+		((eq spam-summary-exit-behavior 'move-all) t)
+		((eq spam-summary-exit-behavior 'move-none) nil)
+		((eq spam-summary-exit-behavior 'default)
+		 (or (eq classification 'spam) ;move spam out of all groups
+		     ;; move ham out of spam groups
+		     (and (eq classification 'ham)
+			  (spam-group-spam-contents-p group))))
+		(t (gnus-error 5 "Unknown spam-summary-exit-behavior: %s" 
+			       spam-summary-exit-behavior))))))
+
+	  found))
+    nil))
+
+;;}}}
+
+;;{{{ Summary entry and exit processing.
+
+(defun spam-mark-junk-as-spam-routine ()
+  ;; check the global list of group names spam-junk-mailgroups and the
+  ;; group parameters
+  (when (spam-group-spam-contents-p gnus-newsgroup-name)
+    (gnus-message 6 "Marking %s articles as spam"
+		  (if spam-mark-only-unseen-as-spam
+		      "unseen"
+		    "unread"))
+    (let ((articles (if spam-mark-only-unseen-as-spam
+			gnus-newsgroup-unseen
+		      gnus-newsgroup-unreads)))
+      (if spam-mark-new-messages-in-spam-group-as-spam
+	  (dolist (article articles)
+	    (gnus-summary-mark-article article gnus-spam-mark))
+	(gnus-message 9 "Did not mark new messages as spam.")))))
 
 (defun spam-summary-prepare ()
-  (setq spam-old-ham-articles
-	(spam-list-articles gnus-newsgroup-articles 'ham))
-  (setq spam-old-spam-articles
-	(spam-list-articles gnus-newsgroup-articles 'spam))
+  (setq spam-old-articles
+	(list (cons 'ham (spam-list-articles gnus-newsgroup-articles 'ham))
+	      (cons 'spam (spam-list-articles gnus-newsgroup-articles 'spam))))
   (spam-mark-junk-as-spam-routine))
 
 ;; The spam processors are invoked for any group, spam or ham or neither
@@ -823,157 +1327,78 @@
   (unless gnus-group-is-exiting-without-update-p
     (gnus-message 6 "Exiting summary buffer and applying spam rules")
 
+    ;; before we begin, remove any article limits
+;    (ignore-errors
+;      (gnus-summary-pop-limit t))
+
     ;; first of all, unregister any articles that are no longer ham or spam
     ;; we have to iterate over the processors, or else we'll be too slow
-    (dolist (classification '(spam ham))
-      (let* ((old-articles (if (eq classification 'spam)
-			       spam-old-spam-articles
-			     spam-old-ham-articles))
+    (dolist (classification (spam-classifications))
+      (let* ((old-articles (cdr-safe (assq classification spam-old-articles)))
 	     (new-articles (spam-list-articles
 			    gnus-newsgroup-articles
 			    classification))
 	     (changed-articles (spam-set-difference new-articles old-articles)))
 	;; now that we have the changed articles, we go through the processors
-	(dolist (processor-param spam-list-of-processors)
-	  (let ((processor (nth 0 processor-param))
-		(processor-classification (nth 1 processor-param))
-		(check (nth 2 processor-param))
-		unregister-list)
+	(dolist (backend (spam-backend-list))
+	  (let (unregister-list)
 	    (dolist (article changed-articles)
 	      (let ((id (spam-fetch-field-message-id-fast article)))
 		(when (spam-log-unregistration-needed-p
-		       id 'process classification check)
+		       id 'process classification backend)
 		  (push article unregister-list))))
 	    ;; call spam-register-routine with specific articles to unregister,
 	    ;; when there are articles to unregister and the check is enabled
-	    (when (and unregister-list (symbol-value check))
-	      (spam-register-routine 
-	       classification check t unregister-list))))))
-
-    ;; find all the spam processors applicable to this group
-    (dolist (processor-param spam-list-of-processors)
-      (let ((processor (nth 0 processor-param))
-	    (classification (nth 1 processor-param))
-	    (check (nth 2 processor-param)))
-	(when (and (eq 'spam classification)
-		   (spam-group-processor-p gnus-newsgroup-name processor))
-	  (spam-register-routine classification check))))
-
-    (unless (and spam-move-spam-nonspam-groups-only
-		 (spam-group-spam-contents-p gnus-newsgroup-name))
-      (gnus-message 6 "Marking spam as expired and moving it to %s"
-		    (gnus-parameter-spam-process-destination 
-		     gnus-newsgroup-name))
-      (spam-mark-spam-as-expired-and-move-routine
-       (gnus-parameter-spam-process-destination gnus-newsgroup-name)))
-
-    ;; now we redo spam-mark-spam-as-expired-and-move-routine to only
-    ;; expire spam, in case the above did not expire them
-    (gnus-message 6 "Marking spam as expired without moving it")
-    (spam-mark-spam-as-expired-and-move-routine nil)
-
-    (when (or (spam-group-ham-contents-p gnus-newsgroup-name)
-	      (and (spam-group-spam-contents-p gnus-newsgroup-name)
-		   spam-process-ham-in-spam-groups)
-	      spam-process-ham-in-nonham-groups)
-      ;; find all the ham processors applicable to this group
-      (dolist (processor-param spam-list-of-processors)
-	(let ((processor (nth 0 processor-param))
-	      (classification (nth 1 processor-param))
-	      (check (nth 2 processor-param)))
-	  (when (and (eq 'ham classification)
-		     (spam-group-processor-p gnus-newsgroup-name processor))
-	    (spam-register-routine classification check)))))
-
-    (when (spam-group-ham-processor-copy-p gnus-newsgroup-name)
-      (gnus-message 6 "Copying ham")
-      (spam-ham-copy-routine
-       (gnus-parameter-ham-process-destination gnus-newsgroup-name)))
-
-    ;; now move all ham articles out of spam groups
-    (when (spam-group-spam-contents-p gnus-newsgroup-name)
-      (gnus-message 6 "Moving ham messages from spam group")
-      (spam-ham-move-routine
-       (gnus-parameter-ham-process-destination gnus-newsgroup-name))))
+	    (when (and unregister-list (symbol-value backend))
+	      (spam-backend-put-article-todo-list backend 
+						  classification 
+						  unregister-list
+						  t))))))
+
+    ;; do the non-moving backends first, then the moving ones
+    (dolist (backend-type '(non-mover mover))
+      (dolist (classification (spam-classifications))
+	(dolist (backend (spam-backend-list backend-type))
+	  (when (spam-group-processor-p
+		 gnus-newsgroup-name
+		 backend
+		 classification)
+	    (spam-backend-put-article-todo-list backend 
+						classification
+						(spam-list-articles
+						 gnus-newsgroup-articles
+						 classification))))))
+
+    (spam-resolve-registrations-routine) ; do the registrations now
+
+    ;; we mark all the leftover spam articles as expired at the end
+    (dolist (article (spam-list-articles
+		      gnus-newsgroup-articles
+		      'spam))
+      (gnus-summary-mark-article article gnus-expirable-mark)))
+
+  (setq spam-old-articles nil))
+
+;;}}}
+
+;;{{{ spam-use-move and spam-use-copy backend support functions
+
+(defun spam-copy-or-move-routine (copy groups articles classification)
 
-  (setq spam-old-ham-articles nil)
-  (setq spam-old-spam-articles nil))
+  (when (and (car-safe groups) (listp (car-safe groups)))
+    (setq groups (pop groups)))
 
-(defun spam-set-difference (list1 list2)
-  "Return a set difference of LIST1 and LIST2.  
-When either list is nil, the other is returned."
-  (if (and list1 list2)
-      ;; we have two non-nil lists
-      (progn
-	(dolist (item (append list1 list2))
-	  (when (and (memq item list1) (memq item list2))
-	    (setq list1 (delq item list1))
-	    (setq list2 (delq item list2))))
-	(append list1 list2))
-    ;; if either of the lists was nil, return the other one
-    (if list1 list1 list2)))
+  (unless (listp groups)
+    (setq groups (list groups)))
 
-(defun spam-mark-junk-as-spam-routine ()
-  ;; check the global list of group names spam-junk-mailgroups and the
-  ;; group parameters
-  (when (spam-group-spam-contents-p gnus-newsgroup-name)
-    (gnus-message 6 "Marking %s articles as spam"
-		  (if spam-mark-only-unseen-as-spam
-		      "unseen"
-		    "unread"))
-    (let ((articles (if spam-mark-only-unseen-as-spam
-			gnus-newsgroup-unseen
-		      gnus-newsgroup-unreads)))
-      (dolist (article articles)
-	(gnus-summary-mark-article article gnus-spam-mark)))))
-
-(defun spam-mark-spam-as-expired-and-move-routine (&rest groups)
-  (if (and (car-safe groups) (listp (car-safe groups)))
-      (apply 'spam-mark-spam-as-expired-and-move-routine (car groups))
-    (gnus-summary-kill-process-mark)
-    (let ((articles gnus-newsgroup-articles)
-	  (backend-supports-deletions
-	   (gnus-check-backend-function
-	    'request-move-article gnus-newsgroup-name))
-	  article tomove deletep)
-      (dolist (article articles)
-	(when (eq (gnus-summary-article-mark article) gnus-spam-mark)
-	  (gnus-summary-mark-article article gnus-expirable-mark)
-	  (push article tomove)))
-
-      ;; now do the actual copies
-      (dolist (group groups)
-	(when (and tomove
-		   (stringp group))
-	  (dolist (article tomove)
-	    (gnus-summary-set-process-mark article))
-	  (when tomove
-	    (if (or (not backend-supports-deletions)
-		    (> (length groups) 1))
-		(progn
-		  (gnus-summary-copy-article nil group)
-		  (setq deletep t))
-	      (gnus-summary-move-article nil group)))))
-
-      ;; now delete the articles, if there was a copy done, and the
-      ;; backend allows it
-      (when (and deletep backend-supports-deletions)
-	(dolist (article tomove)
-	  (gnus-summary-set-process-mark article))
-	(when tomove
-	  (let ((gnus-novice-user nil))	; don't ask me if I'm sure
-	    (gnus-summary-delete-article nil))))
-
-      (gnus-summary-yank-process-mark))))
-
-(defun spam-ham-copy-or-move-routine (copy groups)
+    ;; remove the current process mark
   (gnus-summary-kill-process-mark)
-  (let ((todo (spam-list-articles gnus-newsgroup-articles 'ham))
-	(backend-supports-deletions
+
+  (let ((backend-supports-deletions
 	 (gnus-check-backend-function
 	  'request-move-article gnus-newsgroup-name))
 	(respool-method (gnus-find-method-for-group gnus-newsgroup-name))
-	article mark todo deletep respool)
+	article mark deletep respool)
 
     (when (member 'respool groups)
       (setq respool t)			; boolean for later
@@ -981,47 +1406,88 @@
 
     ;; now do the actual move
     (dolist (group groups)
-      (when (and todo (stringp group))
-	(dolist (article todo)
-	  (when spam-mark-ham-unread-before-move-from-spam-group
+      (when (and articles (stringp group))
+
+	;; first, mark the article with the process mark and, if needed,
+	;; the unread or expired mark (for ham and spam respectively)
+	(dolist (article articles)
+	  (when (and (eq classification 'ham)
+		     spam-mark-ham-unread-before-move-from-spam-group)
+	    (gnus-message 9 "Marking ham article %d unread before move"
+			  article)
 	    (gnus-summary-mark-article article gnus-unread-mark))
-	  (gnus-summary-set-process-mark article))
+	  (when (and (eq classification 'spam)
+		     (not copy))
+	    (gnus-message 9 "Marking spam article %d expirable before move"
+			  article)
+	    (gnus-summary-mark-article article gnus-expirable-mark))
+	  (gnus-summary-set-process-mark article)
+	    
+	  (if respool		   ; respooling is with a "fake" group
+	      (let ((spam-split-disabled
+		     (or spam-split-disabled
+			 (and (eq classification 'ham) 
+			      spam-disable-spam-split-during-ham-respool))))
+		(gnus-message 9 "Respooling article %d with method %s"
+			      article respool-method)
+		(gnus-summary-respool-article nil respool-method))
+	    (if (or (not backend-supports-deletions) ; else, we are not respooling
+		    (> (length groups) 1))
+		(progn		    ; if copying, copy and set deletep
+		  (gnus-message 9 "Copying article %d to group %s"
+				article group)
+		  (gnus-summary-copy-article nil group)
+		  (setq deletep t))
+	      (gnus-message 9 "Moving article %d to group %s"
+			    article group)
+	      (gnus-summary-move-article nil group)))))	; else move articles
+	
+      ;; now delete the articles, unless a) copy is t, and there was a copy done
+      ;;                                 b) a move was done to a single group
+      ;;                                 c) backend-supports-deletions is nil
+      (unless copy
+	(when (and deletep backend-supports-deletions)
+	  (dolist (article articles)
+	      (gnus-summary-set-process-mark article)
+	      (gnus-message 9 "Deleting article %d" article))
+	  (when articles
+	    (let ((gnus-novice-user nil)) ; don't ask me if I'm sure
+	      (gnus-summary-delete-article nil)))))
+	
+      (gnus-summary-yank-process-mark)
+      (length articles))))
+
+(defun spam-copy-spam-routine (articles)
+  (spam-copy-or-move-routine 
+   t 
+   (gnus-parameter-spam-process-destination gnus-newsgroup-name)
+   articles
+   'spam))
+
+(defun spam-move-spam-routine (articles)
+  (spam-copy-or-move-routine 
+   nil
+   (gnus-parameter-spam-process-destination gnus-newsgroup-name)
+   articles
+   'spam))
+
+(defun spam-copy-ham-routine (articles)
+  (spam-copy-or-move-routine 
+   t 
+   (gnus-parameter-ham-process-destination gnus-newsgroup-name)
+   articles
+   'ham))
+
+(defun spam-move-ham-routine (articles)
+  (spam-copy-or-move-routine 
+   nil
+   (gnus-parameter-ham-process-destination gnus-newsgroup-name)
+   articles
+   'ham))
 
-	(if respool			   ; respooling is with a "fake" group
-	    (let ((spam-split-disabled
-		   (or spam-split-disabled
-		       spam-disable-spam-split-during-ham-respool)))
-	      (gnus-summary-respool-article nil respool-method))
-	  (if (or (not backend-supports-deletions) ; else, we are not respooling
-		  (> (length groups) 1))
-	      (progn		    ; if copying, copy and set deletep
-		(gnus-summary-copy-article nil group)
-		(setq deletep t))
-	    (gnus-summary-move-article nil group))))) ; else move articles
-
-    ;; now delete the articles, unless a) copy is t, and there was a copy done
-    ;;                                 b) a move was done to a single group
-    ;;                                 c) backend-supports-deletions is nil
-    (unless copy
-      (when (and deletep backend-supports-deletions)
-	(dolist (article todo)
-	  (gnus-summary-set-process-mark article))
-	(when todo
-	  (let ((gnus-novice-user nil))	; don't ask me if I'm sure
-	    (gnus-summary-delete-article nil))))))
-
-  (gnus-summary-yank-process-mark))
-
-(defun spam-ham-copy-routine (&rest groups)
-  (if (and (car-safe groups) (listp (car-safe groups)))
-      (apply 'spam-ham-copy-routine (car groups))
-    (spam-ham-copy-or-move-routine t groups)))
-
-(defun spam-ham-move-routine (&rest groups)
-  (if (and (car-safe groups) (listp (car-safe groups)))
-      (apply 'spam-ham-move-routine (car groups))
-    (spam-ham-copy-or-move-routine nil groups)))
+;;}}}
 
+;;{{{ article and field retrieval code
 (defun spam-get-article-as-string (article)
   (when (numberp article)
     (with-temp-buffer
@@ -1043,12 +1509,17 @@
 ;;       nil)))
 
 (defun spam-fetch-field-fast (article field &optional prepared-data-header)
-  "Fetch a field quickly, using the internal gnus-data-list function"
+  "Fetch a FIELD for ARTICLE quickly, using the internal gnus-data-list 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)."
   (when (numberp article)
     (let* ((data-header (or prepared-data-header
 			    (spam-fetch-article-header article))))
       (if (arrayp data-header)
 	(cond
+	 ((equal field 'number)
+	  (mail-header-number data-header))
 	 ((equal field 'from)
 	  (mail-header-from data-header))
 	 ((equal field 'message-id)
@@ -1064,6 +1535,10 @@
 	 ((equal field 'extra)
 	  (mail-header-extra data-header))
 	 (t
+	  (gnus-error 
+	   5 
+	   "spam-fetch-field-fast: unknown field %s requested" 
+	   field)
 	  nil))
 	(gnus-message 6 "Article %d has a nil data header" article)))))
 
@@ -1080,7 +1555,8 @@
   (let ((dh (spam-fetch-article-header article)))
     (if dh
 	(concat
-	 (format 
+	 (format
+	  ;; 80-character limit makes for strange constructs
 	  (concat "From: %s\nSubject: %s\nMessage-ID: %s\n"
 		  "Date: %s\nReferences: %s\nXref: %s\n")
 	  (spam-fetch-field-fast article 'from dh)
@@ -1101,56 +1577,9 @@
     (set-buffer gnus-summary-buffer)
     (gnus-read-header article)
     (nth 3 (assq article gnus-newsgroup-data))))
+;;}}}
 
-
-;;;; Spam determination.
-
-(defvar spam-list-of-checks
-  '((spam-use-blacklist  	 	. 	spam-check-blacklist)
-    (spam-use-regex-headers  	 	. 	spam-check-regex-headers)
-    (spam-use-gmane-xref  	 	. 	spam-check-gmane-xref)
-    (spam-use-regex-body  	 	. 	spam-check-regex-body)
-    (spam-use-whitelist  	 	. 	spam-check-whitelist)
-    (spam-use-BBDB	 	 	. 	spam-check-BBDB)
-    (spam-use-BBDB-exclusive 	 	. 	spam-check-BBDB)
-    (spam-use-ifile	 	 	. 	spam-check-ifile)
-    (spam-use-spamoracle         	. 	spam-check-spamoracle)
-    (spam-use-stat	 	 	. 	spam-check-stat)
-    (spam-use-blackholes 	 	. 	spam-check-blackholes)
-    (spam-use-hashcash  	 	. 	spam-check-hashcash)
-    (spam-use-spamassassin-headers 	. 	spam-check-spamassassin-headers)
-    (spam-use-spamassassin 		. 	spam-check-spamassassin)
-    (spam-use-bogofilter-headers 	. 	spam-check-bogofilter-headers)
-    (spam-use-bogofilter 	 	. 	spam-check-bogofilter)
-    (spam-use-bsfilter-headers		.	spam-check-bsfilter-headers)
-    (spam-use-bsfilter			.	spam-check-bsfilter))
-  "The spam-list-of-checks list contains pairs associating a
-parameter variable with a spam checking function.  If the
-parameter variable is true, then the checking function is called,
-and its value decides what happens.  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.")
-
-(defvar spam-list-of-statistical-checks
-  '(spam-use-ifile
-    spam-use-regex-body
-    spam-use-stat
-    spam-use-bogofilter
-    spam-use-bsfilter
-    spam-use-blackholes
-    spam-use-spamassassin
-    spam-use-spamoracle)
-  "The spam-list-of-statistical-checks list contains all the mail
-splitters that need to have the full message body available.
-Note that you should fetch extra headers if you don't like this,
-e.g. fetch the 'Received' header for spam-use-blackholes.")
+;;{{{ Spam determination.
 
 (defun spam-split (&rest specific-checks)
   "Split this message into the `spam' group if it is spam.
@@ -1169,41 +1598,41 @@
 	  (setq spam-split-group-choice check)
 	  (setq specific-checks (delq check specific-checks))))
 
-      (let ((spam-split-group spam-split-group-choice))
+      (let ((spam-split-group spam-split-group-choice)
+	    (widening-needed-check (spam-widening-needed-p specific-checks)))
 	(save-excursion
 	  (save-restriction
-	    (dolist (check spam-list-of-statistical-checks)
-	      (when (and (symbolp check)
-			 (or (symbol-value check)
-			     (memq check specific-checks)))
-		(widen)
-		(gnus-message 8 "spam-split: widening the buffer (%s requires it)"
-			      (symbol-name check))
-		(return)))
-	    ;;   (progn (widen) (debug (buffer-string)))
-	    (let ((list-of-checks spam-list-of-checks)
+	    (when widening-needed-check
+	      (widen)
+	      (gnus-message 8 "spam-split: widening the buffer (%s requires it)"
+			    widening-needed-check))
+	    (let ((backends (spam-backend-list))
 		  decision)
-	      (while (and list-of-checks (not decision))
-		(let ((pair (pop list-of-checks)))
+	      (while (and backends (not decision))
+		(let* ((backend (pop backends))
+		       (check-function (spam-backend-check backend))
+		       (spam-split-group (if spam-split-symbolic-return
+					     'spam
+					   spam-split-group)))
 		  (when (or
 			 ;; either, given specific checks, this is one of them
-			 (and specific-checks (memq (car pair) specific-checks))
+			 (memq backend specific-checks)
 			 ;; or, given no specific checks, spam-use-CHECK is set
-			 (and (null specific-checks) (symbol-value (car pair))))
+			 (and (null specific-checks) (symbol-value backend)))
 		    (gnus-message 6 "spam-split: calling the %s function"
-				  (symbol-name (cdr pair)))
-		    (setq decision (funcall (cdr pair)))
+				  check-function)
+		    (setq decision (funcall check-function))
 		    ;; if we got a decision at all, save the current check
 		    (when decision
-		      (setq spam-split-last-successful-check (car pair)))
+		      (setq spam-split-last-successful-check backend))
 
 		    (when (eq decision 'spam)
 		      (unless spam-split-symbolic-return
 			(gnus-error
 			 5
 			 (format "spam-split got %s but %s is nil"
-				 (symbol-name decision)
-				 (symbol-name spam-split-symbolic-return))))))))
+				 decision
+				 spam-split-symbolic-return)))))))
 	      (if (eq decision t)
 		  (if spam-split-symbolic-return-positive 'ham nil)
 		decision))))))))
@@ -1221,9 +1650,9 @@
 		     gnus-newsgroup-unseen))
 	 article-cannot-be-faked)
 
-    (dolist (check spam-list-of-statistical-checks)
-      (when (and (symbolp check)
-		 (memq check methods))
+    
+    (dolist (backend methods)
+      (when (spam-backend-statistical-p backend)
 	(setq article-cannot-be-faked t)
 	(return)))
 
@@ -1232,165 +1661,132 @@
 
     (when (and autodetect
 	       (not (equal first-method 'none)))
-    (mapcar
-     (lambda (article)
-       (let ((id (spam-fetch-field-message-id-fast article))
-	     (subject (spam-fetch-field-subject-fast article))
-	     (sender (spam-fetch-field-from-fast article))
-	     registry-lookup)
-	 
-	 (unless id
-	   (gnus-message 6 "Article %d has no message ID!" article))
+      (mapcar
+       (lambda (article)
+	 (let ((id (spam-fetch-field-message-id-fast article))
+	       (subject (spam-fetch-field-subject-fast article))
+	       (sender (spam-fetch-field-from-fast article))
+	       registry-lookup)
+	   
+	   (unless id
+	     (gnus-message 6 "Article %d has no message ID!" article))
 	 
-	 (when (and id spam-log-to-registry)
-	   (setq registry-lookup (spam-log-registration-type id 'incoming))
-	   (when registry-lookup
-	     (gnus-message
-	      9
-	      "spam-find-spam: message %s was already registered incoming"
-	      id)))
-
-	 (let* ((spam-split-symbolic-return t)
-		(spam-split-symbolic-return-positive t)
-		(fake-headers (spam-generate-fake-headers article))
-		(split-return
-		 (or registry-lookup
-		     (with-temp-buffer
-		       (if article-cannot-be-faked
-			   (gnus-request-article-this-buffer
-			    article
-			    group)
-			 ;; else, we fake the article
-			 (when fake-headers (insert fake-headers)))
-		       (if (or (null first-method)
-			       (equal first-method 'default))
-			   (spam-split)
-			 (apply 'spam-split methods))))))
-	   (if (equal split-return 'spam)
-	       (gnus-summary-mark-article article gnus-spam-mark))
+	   (when (and id spam-log-to-registry)
+	     (setq registry-lookup (spam-log-registration-type id 'incoming))
+	     (when registry-lookup
+	       (gnus-message
+		9
+		"spam-find-spam: message %s was already registered incoming"
+		id)))
+
+	   (let* ((spam-split-symbolic-return t)
+		  (spam-split-symbolic-return-positive t)
+		  (fake-headers (spam-generate-fake-headers article))
+		  (split-return
+		   (or registry-lookup
+		       (with-temp-buffer
+			 (if article-cannot-be-faked
+			     (gnus-request-article-this-buffer
+			      article
+			      group)
+			   ;; else, we fake the article
+			   (when fake-headers (insert fake-headers)))
+			 (if (or (null first-method)
+				 (equal first-method 'default))
+			     (spam-split)
+			   (apply 'spam-split methods))))))
+	     (if (equal split-return 'spam)
+		 (gnus-summary-mark-article article gnus-spam-mark))
 	   
-	   (when (and id split-return spam-log-to-registry)
-	     (when (zerop (gnus-registry-group-count id))
-	       (gnus-registry-add-group
-		id group subject sender))
+	     (when (and id split-return spam-log-to-registry)
+	       (when (zerop (gnus-registry-group-count id))
+		 (gnus-registry-add-group
+		  id group subject sender))
 	       
-	     (unless registry-lookup
-	       (spam-log-processing-to-registry
-		id
-		'incoming
-		split-return
-		spam-split-last-successful-check
-		group))))))
-    articles))))
-
-(defvar spam-registration-functions
-  ;; first the ham register, second the spam register function
-  ;; third the ham unregister, fourth the spam unregister function
-  '((spam-use-blacklist  nil
-			 spam-blacklist-register-routine
-			 nil
-			 spam-blacklist-unregister-routine)
-    (spam-use-whitelist  spam-whitelist-register-routine
-			 nil
-			 spam-whitelist-unregister-routine
-			 nil)
-    (spam-use-ham-copy   nil
-			 nil
-			 nil
-			 nil)
-    (spam-use-BBDB	 spam-BBDB-register-routine
-			 nil
-			 spam-BBDB-unregister-routine
-			 nil)
-    (spam-use-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-spamoracle-learn-ham
-			 spam-spamoracle-learn-spam
-			 spam-spamoracle-unlearn-ham
-			 spam-spamoracle-unlearn-spam)
-    (spam-use-stat	 spam-stat-register-ham-routine
-			 spam-stat-register-spam-routine
-			 spam-stat-unregister-ham-routine
-			 spam-stat-unregister-spam-routine)
-    ;; note that spam-use-gmane is not a legitimate check
-    (spam-use-gmane      nil
-			 spam-report-gmane-register-routine
-			 ;; does Gmane support unregistration?
-			 nil
-			 nil)
-    (spam-use-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-bogofilter-register-ham-routine
-			 spam-bogofilter-register-spam-routine
-			 spam-bogofilter-unregister-ham-routine
-			 spam-bogofilter-unregister-spam-routine)
-    (spam-use-bsfilter	 spam-bsfilter-register-ham-routine
-			 spam-bsfilter-register-spam-routine
-			 spam-bsfilter-unregister-ham-routine
-			 spam-bsfilter-unregister-spam-routine))
-  "The spam-registration-functions list contains pairs
-associating a parameter variable with the ham and spam
-registration functions, and the ham and spam unregistration
-functions")
-
-(defun spam-classification-valid-p (classification)
-  (or  (eq classification 'spam)
-       (eq classification 'ham)))
-
-(defun spam-process-type-valid-p (process-type)
-  (or  (eq process-type 'incoming)
-       (eq process-type 'process)))
-
-(defun spam-registration-check-valid-p (check)
-  (assoc check spam-registration-functions))
-
-(defun spam-unregistration-check-valid-p (check)
-  (assoc check spam-registration-functions))
+	       (unless registry-lookup
+		 (spam-log-processing-to-registry
+		  id
+		  'incoming
+		  split-return
+		  spam-split-last-successful-check
+		  group))))))
+       articles))))
+
+;;}}}
+
+;;{{{ registration/unregistration functions
+
+(defun spam-resolve-registrations-routine ()
+  "Go through the backends and register or unregister articles as needed."
+  (dolist (backend-type '(non-mover mover))
+    (dolist (classification (spam-classifications))
+      (dolist (backend (spam-backend-list backend-type))
+	(let ((rlist (spam-backend-get-article-todo-list
+		      backend classification))
+	      (ulist (spam-backend-get-article-todo-list
+		      backend classification t))
+	      (delcount 0))
+
+	  ;; clear the old lists right away
+	  (spam-backend-put-article-todo-list backend 
+					      classification
+					      nil
+					      nil)
+	  (spam-backend-put-article-todo-list backend 
+					      classification
+					      nil
+					      t)
+
+	  ;; eliminate duplicates
+	  (dolist (article (copy-sequence ulist))
+	    (when (memq article rlist)
+	      (incf delcount)
+	      (setq rlist (delq article rlist))
+	      (setq ulist (delq article ulist))))
+	  
+	  (unless (zerop delcount)
+	    (gnus-message 
+	     9 
+	     "%d messages were saved the trouble of unregistering and then registering"
+	     delcount))
+	  
+	  ;; unregister articles
+	  (unless (zerop (length ulist))
+	    (let ((num (spam-unregister-routine classification backend ulist)))
+	      (when (> num 0)
+		(gnus-message 
+		 6
+		 "%d %s messages were unregistered by backend %s."
+		 num
+		 classification
+		 backend))))
+	    
+	    ;; register articles
+	    (unless (zerop (length rlist))
+	      (let ((num (spam-register-routine classification backend rlist)))
+		(when (> num 0)
+		  (gnus-message 
+		   6
+		   "%d %s messages were registered by backend %s."
+		   num
+		   classification
+		   backend)))))))))
 
-(defun spam-registration-function (classification check)
-  (let ((flist (cdr-safe (assoc check spam-registration-functions))))
-    (if (eq classification 'spam)
-	(nth 1 flist)
-      (nth 0 flist))))
-
-(defun spam-unregistration-function (classification check)
-  (let ((flist (cdr-safe (assoc check spam-registration-functions))))
-    (if (eq classification 'spam)
-	(nth 3 flist)
-      (nth 2 flist))))
-
-(defun spam-list-articles (articles classification)
-  (let ((mark-check (if (eq classification 'spam)
-			'spam-group-spam-mark-p
-		      'spam-group-ham-mark-p))
-	alist mark-cache-yes mark-cache-no)
-    (dolist (article articles)
-      (let ((mark (gnus-summary-article-mark article)))
-	(unless (or (memq mark mark-cache-yes)
-		    (memq mark mark-cache-no))
-	  (if (funcall mark-check
-		       gnus-newsgroup-name
-		       mark)
-	      (push mark mark-cache-yes)
-	    (push mark mark-cache-no)))
-	(when (memq mark mark-cache-yes)
-	  (push article alist))))
-    alist))
+(defun spam-unregister-routine (classification
+				backend 
+				specific-articles)
+  (spam-register-routine classification backend specific-articles t))
 
 (defun spam-register-routine (classification
-			      check
-			      &optional unregister
-			      specific-articles)
+			      backend 
+			      specific-articles
+			      &optional unregister)
   (when (and (spam-classification-valid-p classification)
-	     (spam-registration-check-valid-p check))
+	     (spam-backend-valid-p backend))
     (let* ((register-function
-	    (spam-registration-function classification check))
+	    (spam-backend-function backend classification 'registration))
 	   (unregister-function
-	    (spam-unregistration-function classification check))
+	    (spam-backend-function backend classification 'unregistration))
 	   (run-function (if unregister
 			     unregister-function
 			   register-function))
@@ -1406,41 +1802,45 @@
 			    gnus-newsgroup-articles
 			    classification)))
 	;; process them
-	(gnus-message 5 "%s %d %s articles as %s using backend %s"
-		      (if unregister "Unregistering" "Registering")
-		      (length articles)
-		      (if specific-articles "specific" "")
-		      (symbol-name classification)
-		      (symbol-name check))
-	(funcall run-function articles)
-	;; now log all the registrations (or undo them, depending on unregister)
-	(dolist (article articles)
-	  (funcall log-function
-		   (spam-fetch-field-message-id-fast article)
-		   'process
-		   classification
-		   check
-		   gnus-newsgroup-name))))))
+        (when (> (length articles) 0)
+	  (gnus-message 5 "%s %d %s articles as %s using backend %s"
+			(if unregister "Unregistering" "Registering")
+			(length articles)
+			(if specific-articles "specific" "")
+			classification
+			backend)
+	  (funcall run-function articles)
+	  ;; now log all the registrations (or undo them, depending on
+	  ;; unregister)
+	  (dolist (article articles)
+	    (funcall log-function
+		     (spam-fetch-field-message-id-fast article)
+		     'process
+		     classification
+		     backend
+		     gnus-newsgroup-name))))
+      ;; return the number of articles processed
+      (length articles))))
 
 ;;; log a ham- or spam-processor invocation to the registry
-(defun spam-log-processing-to-registry (id type classification check group)
+(defun spam-log-processing-to-registry (id type classification backend group)
   (when spam-log-to-registry
     (if (and (stringp id)
 	     (stringp group)
 	     (spam-process-type-valid-p type)
 	     (spam-classification-valid-p classification)
-	     (spam-registration-check-valid-p check))
+	     (spam-backend-valid-p backend))
 	(let ((cell-list (cdr-safe (gnus-registry-fetch-extra id type)))
-	      (cell (list classification check group)))
+	      (cell (list classification backend group)))
 	  (push cell cell-list)
 	  (gnus-registry-store-extra-entry
 	   id
 	   type
 	   cell-list))
 
-      (gnus-message 
-       5 
-       (format "%s call with bad ID, type, classification, spam-check, or group"
+      (gnus-error
+       7
+       (format "%s call with bad ID, type, classification, spam-backend, or group"
 	       "spam-log-processing-to-registry")))))
 
 ;;; check if a ham- or spam-processor registration has been done
@@ -1450,9 +1850,9 @@
 	     (spam-process-type-valid-p type))
 	(cdr-safe (gnus-registry-fetch-extra id type))
       (progn
-	(gnus-message
-	 5 
-	 (format "%s called with bad ID, type, classification, or spam-check"
+	(gnus-error
+	 7
+	 (format "%s called with bad ID, type, classification, or spam-backend"
 		 "spam-log-registered-p"))
 	nil))))
 
@@ -1474,87 +1874,80 @@
 
 
 ;;; check if a ham- or spam-processor registration needs to be undone
-(defun spam-log-unregistration-needed-p (id type classification check)
+(defun spam-log-unregistration-needed-p (id type classification backend)
   (when spam-log-to-registry
     (if (and (stringp id)
 	     (spam-process-type-valid-p type)
 	     (spam-classification-valid-p classification)
-	     (spam-registration-check-valid-p check))
+	     (spam-backend-valid-p backend))
 	(let ((cell-list (cdr-safe (gnus-registry-fetch-extra id type)))
 	      found)
 	  (dolist (cell cell-list)
 	    (unless found
 	      (when (and (eq classification (nth 0 cell))
-			 (eq check (nth 1 cell)))
+			 (eq backend (nth 1 cell)))
 		(setq found t))))
 	  found)
       (progn
-	(gnus-message
-	 5 
-	 (format "%s called with bad ID, type, classification, or spam-check"
+	(gnus-error
+	 7
+	 (format "%s called with bad ID, type, classification, or spam-backend"
 		 "spam-log-unregistration-needed-p"))
 	nil))))
 
 
 ;;; undo a ham- or spam-processor registration (the group is not used)
-(defun spam-log-undo-registration (id type classification check &optional group)
+(defun spam-log-undo-registration (id type classification backend &optional group)
   (when (and spam-log-to-registry
-	     (spam-log-unregistration-needed-p id type classification check))
+	     (spam-log-unregistration-needed-p id type classification backend))
     (if (and (stringp id)
 	     (spam-process-type-valid-p type)
 	     (spam-classification-valid-p classification)
-	     (spam-registration-check-valid-p check))
+	     (spam-backend-valid-p backend))
 	(let ((cell-list (cdr-safe (gnus-registry-fetch-extra id type)))
 	      new-cell-list found)
 	  (dolist (cell cell-list)
 	    (unless (and (eq classification (nth 0 cell))
-			 (eq check (nth 1 cell)))
+			 (eq backend (nth 1 cell)))
 	      (push cell new-cell-list)))
 	  (gnus-registry-store-extra-entry
 	   id
 	   type
 	   new-cell-list))
       (progn
-	(gnus-message 6 (format "%s call with bad ID, type, spam-check, or group"
-				"spam-log-undo-registration"))
+	(gnus-error 7 (format "%s call with bad ID, type, spam-backend, or group"
+			      "spam-log-undo-registration"))
 	nil))))
 
-;;; set up IMAP widening if it's necessary
-(defun spam-setup-widening ()
-  (dolist (check spam-list-of-statistical-checks)
-    (when (symbol-value check)
-      (setq nnimap-split-download-body-default t))))
+;;}}}
+
+;;{{{ backend functions
 
-
-;;;; Gmane xrefs
+;;{{{ Gmane xrefs
 (defun spam-check-gmane-xref ()
   (let ((header (or
 		 (message-fetch-field "Xref")
-		 (message-fetch-field "Newsgroups")))
-	(spam-split-group (if spam-split-symbolic-return
-			      'spam
-			    spam-split-group)))
+		 (message-fetch-field "Newsgroups"))))
     (when header			; return nil when no header
       (when (string-match spam-gmane-xref-spam-group
 			  header)
 	  spam-split-group))))
 
-
-;;;; Regex body
+;;}}}
+
+;;{{{ Regex body
 
 (defun spam-check-regex-body ()
   (let ((spam-regex-headers-ham spam-regex-body-ham)
 	(spam-regex-headers-spam spam-regex-body-spam))
     (spam-check-regex-headers t)))
 
-
-;;;; Regex headers
+;;}}}
+
+;;{{{ Regex headers
 
 (defun spam-check-regex-headers (&optional body)
   (let ((type (if body "body" "header"))
-	(spam-split-group (if spam-split-symbolic-return
-			      'spam
-			    spam-split-group))
 	ret found)
     (dolist (h-regex spam-regex-headers-ham)
       (unless found
@@ -1571,8 +1964,9 @@
 	  (setq ret spam-split-group))))
     ret))
 
-
-;;;; Blackholes.
+;;}}}
+
+;;{{{ Blackholes.
 
 (defun spam-reverse-ip-string (ip)
   (when (stringp ip)
@@ -1583,9 +1977,6 @@
 (defun spam-check-blackholes ()
   "Check the Received headers for blackholed relays."
   (let ((headers (message-fetch-field "received"))
-	(spam-split-group (if spam-split-symbolic-return
-			      'spam
-			    spam-split-group))
 	ips matches)
     (when headers
       (with-temp-buffer
@@ -1620,8 +2011,12 @@
 			  matches)))))))))
     (when matches
       spam-split-group)))
-
-;;;; Hashcash.
+;;}}}
+
+;;{{{ Hashcash.
+
+(eval-when-compile
+  (autoload 'mail-check-payment "hashcash"))
 
 (condition-case nil
     (progn
@@ -1631,105 +2026,106 @@
 	"Check the headers for hashcash payments."
 	(mail-check-payment)))	 ;mail-check-payment returns a boolean
 
-  (file-error (progn
-		(defalias 'mail-check-payment 'ignore)
-		(defalias 'spam-check-hashcash 'ignore))))
-
-;;;; BBDB
+  (file-error))
+;;}}}
+
+;;{{{ BBDB
 
 ;;; original idea for spam-check-BBDB from Alexander Kotelnikov
 ;;; <sacha@giotto.sj.ru>
 
 ;; all this is done inside a condition-case to trap errors
 
-(condition-case nil
-    (progn
-      (require 'bbdb)
-      (require 'bbdb-com)
+(eval-when-compile
+  (autoload 'bbdb-buffer "bbdb")
+  (autoload 'bbdb-create-internal "bbdb")
+  (autoload 'bbdb-search-simple "bbdb"))
 
-      ;; when the BBDB changes, we want to clear out our cache
-      (defun spam-clear-cache-BBDB (&rest immaterial)
-	(spam-clear-cache 'spam-use-BBDB))
-
-      (add-hook 'bbdb-change-hook 'spam-clear-cache-BBDB)
-
-      (defun spam-enter-ham-BBDB (addresses &optional remove)
-	"Enter an address into the BBDB; implies ham (non-spam) sender"
-	(dolist (from addresses)
-	  (when (stringp from)
-	    (let* ((parsed-address (gnus-extract-address-components from))
-		   (name (or (nth 0 parsed-address) "Ham Sender"))
-		   (remove-function (if remove
-					'bbdb-delete-record-internal
-				      'ignore))
-		   (net-address (nth 1 parsed-address))
-		   (record (and net-address
-				(bbdb-search-simple nil net-address))))
-	      (when net-address
-		(gnus-message 6 "%s address %s %s BBDB"
-			      (if remove "Deleting" "Adding")
-			      from
-			      (if remove "from" "to"))
-		(if record
-		    (funcall remove-function record)
-		  (bbdb-create-internal name nil net-address nil nil
-					"ham sender added by spam.el")))))))
+(eval-and-compile
+  (when (condition-case nil
+	    (progn
+	      (require 'bbdb)
+	      (require 'bbdb-com))
+	  (file-error
+	   ;; `bbdb-records' should not be bound as an autoload function
+	   ;; before loading bbdb because of `bbdb-hashtable-size'.
+	   (defalias 'bbdb-records 'ignore)
+	   (defalias 'spam-BBDB-register-routine 'ignore)
+	   (defalias 'spam-enter-ham-BBDB 'ignore)
+	   nil))
+
+    ;; when the BBDB changes, we want to clear out our cache
+    (defun spam-clear-cache-BBDB (&rest immaterial)
+      (spam-clear-cache 'spam-use-BBDB))
+
+    (add-hook 'bbdb-change-hook 'spam-clear-cache-BBDB)
+
+    (defun spam-enter-ham-BBDB (addresses &optional remove)
+      "Enter an address into the BBDB; implies ham (non-spam) sender"
+      (dolist (from addresses)
+	(when (stringp from)
+	  (let* ((parsed-address (gnus-extract-address-components from))
+		 (name (or (nth 0 parsed-address) "Ham Sender"))
+		 (remove-function (if remove
+				      'bbdb-delete-record-internal
+				    'ignore))
+		 (net-address (nth 1 parsed-address))
+		 (record (and net-address
+			      (bbdb-search-simple nil net-address))))
+	    (when net-address
+	      (gnus-message 6 "%s address %s %s BBDB"
+			    (if remove "Deleting" "Adding")
+			    from
+			    (if remove "from" "to"))
+	      (if record
+		  (funcall remove-function record)
+		(bbdb-create-internal name nil net-address nil nil
+				      "ham sender added by spam.el")))))))
 
-      (defun spam-BBDB-register-routine (articles &optional unregister)
-	(let (addresses)
-	  (dolist (article articles)
-	    (when (stringp (spam-fetch-field-from-fast article))
-	      (push (spam-fetch-field-from-fast article) addresses)))
-	  ;; now do the register/unregister action
-	  (spam-enter-ham-BBDB addresses unregister)))
-
-      (defun spam-BBDB-unregister-routine (articles)
-	(spam-BBDB-register-routine articles t))
-
-      (defun spam-check-BBDB ()
-	"Mail from people in the BBDB is classified as ham or non-spam"
-	(let ((who (message-fetch-field "from"))
-	      (spam-split-group (if spam-split-symbolic-return
-				    'spam
-				  spam-split-group))
-	      bbdb-cache bbdb-hashtable)
-	  (when spam-cache-lookups
-	    (setq bbdb-cache (gethash 'spam-use-BBDB spam-caches))
-	    (unless bbdb-cache
-	      (setq bbdb-cache
-		    ;; this is the expanded (bbdb-hashtable) macro
-		    ;; without the debugging support
-		    (with-current-buffer (bbdb-buffer)
-		      (save-excursion
-			(save-window-excursion
-			  (bbdb-records nil t)
-			  bbdb-hashtable))))
-	      (puthash 'spam-use-BBDB bbdb-cache spam-caches)))
-	  (when who
-	    (setq who (nth 1 (gnus-extract-address-components who)))
-	    (if
-		(if spam-cache-lookups
-		    (symbol-value
-		     (intern-soft who bbdb-cache))
-		  (bbdb-search-simple nil who))
-		t
-	      (if spam-use-BBDB-exclusive
-		  spam-split-group
-		nil))))))
-
-  (file-error (progn
-		(defalias 'bbdb-search-simple 'ignore)
-		(defalias 'bbdb-records 'ignore)
-		(defalias 'bbdb-buffer 'ignore)
-		(defalias 'spam-check-BBDB 'ignore)
-		(defalias 'spam-BBDB-register-routine 'ignore)
-		(defalias 'spam-enter-ham-BBDB 'ignore)
-		(defalias 'bbdb-create-internal 'ignore)
-		(defalias 'bbdb-delete-record-internal 'ignore)
-		(defalias 'bbdb-records 'ignore))))
+    (defun spam-BBDB-register-routine (articles &optional unregister)
+      (let (addresses)
+	(dolist (article articles)
+	  (when (stringp (spam-fetch-field-from-fast article))
+	    (push (spam-fetch-field-from-fast article) addresses)))
+	;; now do the register/unregister action
+	(spam-enter-ham-BBDB addresses unregister)))
+
+    (defun spam-BBDB-unregister-routine (articles)
+      (spam-BBDB-register-routine articles t))
+
+    (defun spam-check-BBDB ()
+      "Mail from people in the BBDB is classified as ham or non-spam"
+      (let ((who (message-fetch-field "from"))
+	    bbdb-cache bbdb-hashtable)
+	(when spam-cache-lookups
+	  (setq bbdb-cache (gethash 'spam-use-BBDB spam-caches))
+	  (unless bbdb-cache
+	    (setq bbdb-cache (make-vector 17 0)) ; a good starting hash value
+	    ;; this is based on the expanded (bbdb-hashtable) macro
+	    ;; without the debugging support
+	    (with-current-buffer (bbdb-buffer)
+	      (save-excursion
+		(save-window-excursion
+		  (bbdb-records nil t)
+		  (mapatoms 
+		   (lambda (symbol)
+		     (intern (downcase (symbol-name symbol)) bbdb-cache))
+		   bbdb-hashtable))))
+	    (puthash 'spam-use-BBDB bbdb-cache spam-caches)))
+	(when who
+	  (setq who (nth 1 (gnus-extract-address-components who)))
+	  (if
+	      (if spam-cache-lookups
+		  (intern-soft (downcase who) bbdb-cache)
+		(bbdb-search-simple nil who))
+	      t
+	    (if spam-use-BBDB-exclusive
+		spam-split-group
+	      nil)))))))
 
-
-;;;; ifile
+;;}}}
+
+;;{{{ ifile
 
 ;;; check the ifile backend; return nil if the mail was NOT classified
 ;;; as spam
@@ -1744,9 +2140,6 @@
 (defun spam-check-ifile ()
   "Check the ifile backend for the classification of this message."
   (let ((article-buffer-name (buffer-name))
-	(spam-split-group (if spam-split-symbolic-return
-			      'spam
-			    spam-split-group))
 	category return)
     (with-temp-buffer
       (let ((temp-buffer-name (buffer-name))
@@ -1799,73 +2192,68 @@
 (defun spam-ifile-unregister-ham-routine (articles)
   (spam-ifile-register-ham-routine articles t))
 
-
-;;;; spam-stat
+;;}}}
 
-(condition-case nil
-    (progn
-      (let ((spam-stat-install-hooks nil))
-	(require 'spam-stat))
+;;{{{ spam-stat
 
-      (defun spam-check-stat ()
-	"Check the spam-stat backend for the classification of this message"
-	(let ((spam-split-group (if spam-split-symbolic-return
-				    'spam
-				  spam-split-group))
-	      (spam-stat-split-fancy-spam-group spam-split-group) ; override
-	      (spam-stat-buffer (buffer-name)) ; stat the current buffer
-	      category return)
-	  (spam-stat-split-fancy)))
+(eval-when-compile
+  (autoload 'spam-stat-buffer-change-to-non-spam "spam-stat")
+  (autoload 'spam-stat-buffer-change-to-spam "spam-stat")
+  (autoload 'spam-stat-buffer-is-non-spam "spam-stat")
+  (autoload 'spam-stat-buffer-is-spam "spam-stat")
+  (autoload 'spam-stat-load "spam-stat")
+  (autoload 'spam-stat-save "spam-stat")
+  (autoload 'spam-stat-split-fancy "spam-stat"))
 
-      (defun spam-stat-register-spam-routine (articles &optional unregister)
-	(dolist (article articles)
-	  (let ((article-string (spam-get-article-as-string article)))
-	    (with-temp-buffer
-	      (insert article-string)
-	      (if unregister
-		  (spam-stat-buffer-change-to-non-spam)
+(eval-and-compile
+  (when (condition-case nil
+	    (let ((spam-stat-install-hooks nil))
+	      (require 'spam-stat))
+	  (file-error
+	   (defalias 'spam-stat-register-ham-routine 'ignore)
+	   (defalias 'spam-stat-register-spam-routine 'ignore)
+	   nil))
+
+    (defun spam-check-stat ()
+      "Check the spam-stat backend for the classification of this message"
+      (let ((spam-stat-split-fancy-spam-group spam-split-group) ; override
+	    (spam-stat-buffer (buffer-name)) ; stat the current buffer
+	    category return)
+	(spam-stat-split-fancy)))
+
+    (defun spam-stat-register-spam-routine (articles &optional unregister)
+      (dolist (article articles)
+	(let ((article-string (spam-get-article-as-string article)))
+	  (with-temp-buffer
+	    (insert article-string)
+	    (if unregister
+		(spam-stat-buffer-change-to-non-spam)
 	      (spam-stat-buffer-is-spam))))))
 
-      (defun spam-stat-unregister-spam-routine (articles)
-	(spam-stat-register-spam-routine articles t))
+    (defun spam-stat-unregister-spam-routine (articles)
+      (spam-stat-register-spam-routine articles t))
 
-      (defun spam-stat-register-ham-routine (articles &optional unregister)
-	(dolist (article articles)
-	  (let ((article-string (spam-get-article-as-string article)))
-	    (with-temp-buffer
-	      (insert article-string)
-	      (if unregister
-		  (spam-stat-buffer-change-to-spam)
+    (defun spam-stat-register-ham-routine (articles &optional unregister)
+      (dolist (article articles)
+	(let ((article-string (spam-get-article-as-string article)))
+	  (with-temp-buffer
+	    (insert article-string)
+	    (if unregister
+		(spam-stat-buffer-change-to-spam)
 	      (spam-stat-buffer-is-non-spam))))))
 
-      (defun spam-stat-unregister-ham-routine (articles)
-	(spam-stat-register-ham-routine articles t))
+    (defun spam-stat-unregister-ham-routine (articles)
+      (spam-stat-register-ham-routine articles t))
 
-      (defun spam-maybe-spam-stat-load ()
-	(when spam-use-stat (spam-stat-load)))
+    (defun spam-maybe-spam-stat-load ()
+      (when spam-use-stat (spam-stat-load)))
 
-      (defun spam-maybe-spam-stat-save ()
-	(when spam-use-stat (spam-stat-save))))
+    (defun spam-maybe-spam-stat-save ()
+      (when spam-use-stat (spam-stat-save)))))
 
-  (file-error (progn
-		(defalias 'spam-stat-load 'ignore)
-		(defalias 'spam-stat-save 'ignore)
-		(defalias 'spam-maybe-spam-stat-load 'ignore)
-		(defalias 'spam-maybe-spam-stat-save 'ignore)
-		(defalias 'spam-stat-register-ham-routine 'ignore)
-		(defalias 'spam-stat-unregister-ham-routine 'ignore)
-		(defalias 'spam-stat-register-spam-routine 'ignore)
-		(defalias 'spam-stat-unregister-spam-routine 'ignore)
-		(defalias 'spam-stat-buffer-is-spam 'ignore)
-		(defalias 'spam-stat-buffer-change-to-spam 'ignore)
-		(defalias 'spam-stat-buffer-is-non-spam 'ignore)
-		(defalias 'spam-stat-buffer-change-to-non-spam 'ignore)
-		(defalias 'spam-stat-split-fancy 'ignore)
-		(defalias 'spam-check-stat 'ignore))))
+;;}}}
 
-
-
-;;;; Blacklists and whitelists.
+;;{{{ Blacklists and whitelists.
 
 (defvar spam-whitelist-cache nil)
 (defvar spam-blacklist-cache nil)
@@ -1950,25 +2338,20 @@
 ;;; spam-split-group otherwise
 (defun spam-check-whitelist ()
   ;; FIXME!  Should it detect when file timestamps change?
-  (let ((spam-split-group (if spam-split-symbolic-return
-			      'spam
-			    spam-split-group)))
-    (unless spam-whitelist-cache
-      (setq spam-whitelist-cache (spam-parse-list spam-whitelist)))
-    (if (spam-from-listed-p 'spam-use-whitelist)
-	t
-      (if spam-use-whitelist-exclusive
-	  spam-split-group
-	nil))))
+  (unless spam-whitelist-cache
+    (setq spam-whitelist-cache (spam-parse-list spam-whitelist)))
+  (if (spam-from-listed-p 'spam-use-whitelist)
+      t
+    (if spam-use-whitelist-exclusive
+	spam-split-group
+      nil)))
 
 (defun spam-check-blacklist ()
   ;; FIXME!  Should it detect when file timestamps change?
-  (let ((spam-split-group (if spam-split-symbolic-return
-			      'spam
-			    spam-split-group)))
-    (unless spam-blacklist-cache
-      (setq spam-blacklist-cache (spam-parse-list spam-blacklist)))
-    (and (spam-from-listed-p 'spam-use-blacklist) spam-split-group)))
+  (unless spam-blacklist-cache
+    (setq spam-blacklist-cache (spam-parse-list spam-blacklist)))
+  (and (spam-from-listed-p 'spam-use-blacklist)
+       spam-split-group))
 
 (defun spam-parse-list (file)
   (when (file-readable-p file)
@@ -2041,19 +2424,30 @@
 (defun spam-whitelist-register-routine (articles &optional unregister)
   (spam-filelist-register-routine articles nil unregister))
 
-
-;;;; Spam-report glue
+;;}}}
+
+;;{{{ Spam-report glue (gmane and resend reporting)
 (defun spam-report-gmane-register-routine (articles)
   (when articles
     (apply 'spam-report-gmane articles)))
 
-
-;;;; Bogofilter
+(defun spam-report-resend-register-ham-routine (articles)
+  (spam-report-resend-register-routine articles t))
+
+(defun spam-report-resend-register-routine (articles &optional ham)
+  (let* ((resend-to-gp 
+	  (if ham
+	      (gnus-parameter-ham-resend-to gnus-newsgroup-name)
+	    (gnus-parameter-spam-resend-to gnus-newsgroup-name)))
+         (spam-report-resend-to (or (car-safe resend-to-gp)
+                                    spam-report-resend-to)))
+    (spam-report-resend articles ham)))
+
+;;}}}
+
+;;{{{ Bogofilter
 (defun spam-check-bogofilter-headers (&optional score)
-  (let ((header (message-fetch-field spam-bogofilter-header))
-	(spam-split-group (if spam-split-symbolic-return
-			      'spam
-			    spam-split-group)))
+  (let ((header (message-fetch-field spam-bogofilter-header)))
     (when header			; return nil when no header
       (if score				; scoring mode
 	  (if (string-match "spamicity=\\([0-9.]+\\)" header)
@@ -2078,46 +2472,59 @@
       (message "Spamicity score %s" score)
       (or score "0"))))
 
+(defun spam-verify-bogofilter ()
+  "Verify the Bogofilter version is sufficient."
+  (when (eq spam-bogofilter-valid 'unknown)
+    (setq spam-bogofilter-valid
+	  (not (string-match "^bogofilter version 0\\.\\([0-9]\\|1[01]\\)\\."
+			     (shell-command-to-string 
+			      (format "%s -V" spam-bogofilter-path))))))
+  spam-bogofilter-valid)
+  
 (defun spam-check-bogofilter (&optional score)
-  "Check the Bogofilter backend for the classification of this message"
-  (let ((article-buffer-name (buffer-name))
-	(db spam-bogofilter-database-directory)
+  "Check the Bogofilter backend for the classification of this message."
+  (if (spam-verify-bogofilter)
+      (let ((article-buffer-name (buffer-name))
+	    (db spam-bogofilter-database-directory)
+	    return)
+	(with-temp-buffer
+	  (let ((temp-buffer-name (buffer-name)))
+	    (save-excursion
+	      (set-buffer article-buffer-name)
+	      (apply 'call-process-region
+		     (point-min) (point-max)
+		     spam-bogofilter-path
+		     nil temp-buffer-name nil
+		     (if db `("-d" ,db "-v") `("-v"))))
+	    (setq return (spam-check-bogofilter-headers score))))
 	return)
-    (with-temp-buffer
-      (let ((temp-buffer-name (buffer-name)))
-	(save-excursion
-	  (set-buffer article-buffer-name)
-	  (apply 'call-process-region
-		 (point-min) (point-max)
-		 spam-bogofilter-path
-		 nil temp-buffer-name nil
-		 (if db `("-d" ,db "-v") `("-v"))))
-	(setq return (spam-check-bogofilter-headers score))))
-    return))
+    (gnus-error "`spam.el' doesnt support obsolete bogofilter versions")))
 
 (defun spam-bogofilter-register-with-bogofilter (articles
 						 spam
 						 &optional unregister)
   "Register an article, given as a string, as spam or non-spam."
-  (dolist (article articles)
-    (let ((article-string (spam-get-article-as-string article))
-	  (db spam-bogofilter-database-directory)
-	  (switch (if unregister
-		      (if spam
-			  spam-bogofilter-spam-strong-switch
-			spam-bogofilter-ham-strong-switch)
-		    (if spam
-			spam-bogofilter-spam-switch
-		      spam-bogofilter-ham-switch))))
-      (when (stringp article-string)
-	(with-temp-buffer
-	  (insert article-string)
-
-	  (apply 'call-process-region
-		 (point-min) (point-max)
-		 spam-bogofilter-path
-		 nil nil nil switch
-		 (if db `("-d" ,db "-v") `("-v"))))))))
+  (if (spam-verify-bogofilter)
+      (dolist (article articles)
+	(let ((article-string (spam-get-article-as-string article))
+	      (db spam-bogofilter-database-directory)
+	      (switch (if unregister
+			  (if spam
+			      spam-bogofilter-spam-strong-switch
+			    spam-bogofilter-ham-strong-switch)
+			(if spam
+			    spam-bogofilter-spam-switch
+			  spam-bogofilter-ham-switch))))
+	  (when (stringp article-string)
+	    (with-temp-buffer
+	      (insert article-string)
+	      
+	      (apply 'call-process-region
+		     (point-min) (point-max)
+		     spam-bogofilter-path
+		     nil nil nil switch
+		     (if db `("-d" ,db "-v") `("-v")))))))
+    (gnus-error "`spam.el' doesnt support obsolete bogofilter versions")))
 
 (defun spam-bogofilter-register-spam-routine (articles &optional unregister)
   (spam-bogofilter-register-with-bogofilter articles t unregister))
@@ -2132,14 +2539,12 @@
   (spam-bogofilter-register-ham-routine articles t))
 
 
-
-;;;; spamoracle
+;;}}}
+
+;;{{{ spamoracle
 (defun spam-check-spamoracle ()
   "Run spamoracle on an article to determine whether it's spam."
-  (let ((article-buffer-name (buffer-name))
-	(spam-split-group (if spam-split-symbolic-return
-			      'spam
-			    spam-split-group)))
+  (let ((article-buffer-name (buffer-name)))
     (with-temp-buffer
       (let ((temp-buffer-name (buffer-name)))
 	(save-excursion
@@ -2195,8 +2600,9 @@
 (defun spam-spamoracle-unlearn-spam (articles &optional unregister)
   (spam-spamoracle-learn-spam articles t))
 
-
-;;;; SpamAssassin
+;;}}}
+
+;;{{{ SpamAssassin
 ;;; based mostly on the bogofilter code
 (defun spam-check-spamassassin-headers (&optional score)
   "Check the SpamAssassin headers for the classification of this message."
@@ -2207,10 +2613,7 @@
 	      (match-string 1 header)
 	    "0")))
     ;; spam detection mode
-    (let ((header (message-fetch-field spam-spamassassin-spam-flag-header))
-	  (spam-split-group (if spam-split-symbolic-return
-				 'spam
-			       spam-split-group)))
+    (let ((header (message-fetch-field spam-spamassassin-spam-flag-header)))
 	  (when header			; return nil when no header
 	    (when (string-match spam-spamassassin-positive-spam-flag-header
 				header)
@@ -2286,17 +2689,15 @@
 (defun spam-spamassassin-unregister-ham-routine (articles)
   (spam-spamassassin-register-with-sa-learn articles nil t))
 
-
-;;;; Bsfilter
+;;}}}
+
+;;{{{ Bsfilter
 ;;; based mostly on the bogofilter code
 (defun spam-check-bsfilter-headers (&optional score)
   (if score
       (or (nnmail-fetch-field spam-bsfilter-probability-header)
 	  "0")
-    (let ((header (nnmail-fetch-field spam-bsfilter-header))
-	  (spam-split-group (if spam-split-symbolic-return
-				'spam
-			      spam-split-group)))
+    (let ((header (nnmail-fetch-field spam-bsfilter-header)))
       (when header ; return nil when no header
 	(when (string-match "YES" header)
 	  spam-split-group)))))
@@ -2373,8 +2774,92 @@
 (defun spam-bsfilter-unregister-ham-routine (articles)
   (spam-bsfilter-register-ham-routine articles t))
 
-
-;;;; Hooks
+;;}}}
+
+;;{{{ CRM114 Mailfilter
+(defun spam-check-crm114-headers (&optional score)
+  (let ((header (message-fetch-field spam-crm114-header)))
+    (when header			; return nil when no header
+      (if score				; scoring mode
+	  (if (string-match "( pR: \\([0-9.-]+\\)" header)
+	      (match-string 1 header)
+	    "0")
+	;; spam detection mode
+	(when (string-match spam-crm114-positive-spam-header
+			    header)
+	  spam-split-group)))))
+
+;; return something sensible if the score can't be determined
+(defun spam-crm114-score ()
+  "Get the CRM114 Mailfilter pR"
+  (interactive)
+  (save-window-excursion
+    (gnus-summary-show-article t)
+    (set-buffer gnus-article-buffer)
+    (let ((score (or (spam-check-crm114-headers t)
+		     (spam-check-crm114 t))))
+      (gnus-summary-show-article)
+      (message "pR: %s" score)
+      (or score "0"))))
+
+(defun spam-check-crm114 (&optional score)
+  "Check the CRM114 Mailfilter backend for the classification of this message"
+  (let ((article-buffer-name (buffer-name))
+	(db spam-crm114-database-directory)
+	return)
+    (with-temp-buffer
+      (let ((temp-buffer-name (buffer-name)))
+	(save-excursion
+	  (set-buffer article-buffer-name)
+	  (apply 'call-process-region
+		 (point-min) (point-max)
+		 spam-crm114-program
+		 nil temp-buffer-name nil
+                 (when db (list (concat "--fileprefix=" db)))))
+	(setq return (spam-check-crm114-headers score))))
+    return))
+
+(defun spam-crm114-register-with-crm114 (articles
+					 spam
+					 &optional unregister)
+  "Register an article, given as a string, as spam or non-spam."
+  (dolist (article articles)
+    (let ((article-string (spam-get-article-as-string article))
+	  (db spam-crm114-database-directory)
+	  (switch (if unregister
+		      (if spam
+			  spam-crm114-spam-strong-switch
+			spam-crm114-ham-strong-switch)
+		    (if spam
+			spam-crm114-spam-switch
+		      spam-crm114-ham-switch))))
+      (when (stringp article-string)
+	(with-temp-buffer
+	  (insert article-string)
+
+	  (apply 'call-process-region
+		 (point-min) (point-max)
+		 spam-crm114-program
+		 nil nil nil
+                 (when db (list switch (concat "--fileprefix=" db)))))))))
+
+(defun spam-crm114-register-spam-routine (articles &optional unregister)
+  (spam-crm114-register-with-crm114 articles t unregister))
+
+(defun spam-crm114-unregister-spam-routine (articles)
+  (spam-crm114-register-spam-routine articles t))
+
+(defun spam-crm114-register-ham-routine (articles &optional unregister)
+  (spam-crm114-register-with-crm114 articles nil unregister))
+
+(defun spam-crm114-unregister-ham-routine (articles)
+  (spam-crm114-register-ham-routine articles t))
+
+;;}}}
+
+;;}}}
+
+;;{{{ Hooks
 
 ;;;###autoload
 (defun spam-initialize (&rest symbols)
@@ -2416,9 +2901,13 @@
   (remove-hook 'gnus-get-new-news-hook 'spam-setup-widening)
   (remove-hook 'gnus-summary-prepare-hook 'spam-find-spam))
 
+(add-hook 'spam-unload-hook 'spam-unload-hook)
+
 (when spam-install-hooks
   (spam-initialize))
+;;}}}
 
 (provide 'spam)
 
+;;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f
 ;;; spam.el ends here
Index: gnus/lisp/starttls.el
diff -u gnus/lisp/starttls.el:7.1 gnus/lisp/starttls.el:7.6
--- gnus/lisp/starttls.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/starttls.el	Sun Feb 13 05:44:40 2005
@@ -1,10 +1,11 @@
 ;;; starttls.el --- STARTTLS functions
 
-;; Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
+;; Author: Simon Josefsson <simon@josefsson.org>
 ;; Created: 1999/11/20
-;; Keywords: TLS, SSL, OpenSSL, mail, news
+;; Keywords: TLS, SSL, OpenSSL, GNUTLS, mail, news
 
 ;; This file is part of GNU Emacs.
 
@@ -27,11 +28,93 @@
 
 ;; This module defines some utility functions for STARTTLS profiles.
 
-;; Get "starttls" from ftp://ftp.opaopa.org/pub/elisp/.
-
 ;; [RFC 2595] "Using TLS with IMAP, POP3 and ACAP"
 ;;	by Chris Newman <chris.newman@innosoft.com> (1999/06)
 
+;; This file now contain a combination of the two previous
+;; implementations both called "starttls.el".  The first one is Daiki
+;; Ueno's starttls.el which uses his own "starttls" command line tool,
+;; and the second one is Simon Josefsson's starttls.el which uses
+;; "gnutls-cli" from GNUTLS.
+;;
+;; If "starttls" is available, it is prefered by the code over
+;; "gnutls-cli", for backwards compatibility.  Use
+;; `starttls-use-gnutls' to toggle between implementations if you have
+;; both tools installed.  It is recommended to use GNUTLS, though, as
+;; it performs more verification of the certificates.
+
+;; The GNUTLS support require GNUTLS 0.9.90 (released 2003-10-08) or
+;; later, from <http://www.gnu.org/software/gnutls/>, or "starttls"
+;; from <ftp://ftp.opaopa.org/pub/elisp/>.
+
+;; Usage is similar to `open-network-stream'.  For example:
+;;
+;; (when (setq tmp (starttls-open-stream
+;;			"test" (current-buffer) "yxa.extundo.com" 25))
+;;   (accept-process-output tmp 15)
+;;   (process-send-string tmp "STARTTLS\n")
+;;   (accept-process-output tmp 15)
+;;   (message "STARTTLS output:\n%s" (starttls-negotiate tmp))
+;;   (process-send-string tmp "EHLO foo\n"))
+
+;; An example run yield the following output:
+;;
+;; 220 yxa.extundo.com ESMTP Sendmail 8.12.11/8.12.11/Debian-3; Wed, 26 May 2004 19:12:29 +0200; (No UCE/UBE) logging access from: c494102a.s-bi.bostream.se(OK)-c494102a.s-bi.bostream.se [217.215.27.65]
+;; 220 2.0.0 Ready to start TLS
+;; 250-yxa.extundo.com Hello c494102a.s-bi.bostream.se [217.215.27.65], pleased to meet you
+;; 250-ENHANCEDSTATUSCODES
+;; 250-PIPELINING
+;; 250-EXPN
+;; 250-VERB
+;; 250-8BITMIME
+;; 250-SIZE
+;; 250-DSN
+;; 250-ETRN
+;; 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
+;; 250-DELIVERBY
+;; 250 HELP
+;; nil
+;;
+;; With the message buffer containing:
+;;
+;; STARTTLS output:
+;; *** Starting TLS handshake
+;; - Server's trusted authorities:
+;;    [0]: C=SE,ST=Stockholm,L=Stockholm,O=YXA,OU=CA,CN=yxa.extundo.com,EMAIL=staff@yxa.extundo.com
+;; - Certificate type: X.509
+;;  - Got a certificate list of 2 certificates.
+;;
+;;  - Certificate[0] info:
+;;  # The hostname in the certificate matches 'yxa.extundo.com'.
+;;  # valid since: Wed May 26 12:16:00 CEST 2004
+;;  # expires at: Wed Jul 26 12:16:00 CEST 2023
+;;  # serial number: 04
+;;  # fingerprint: 7c 04 4b c1 fa 26 9b 5d 90 22 52 3c 65 3d 85 3a
+;;  # version: #1
+;;  # public key algorithm: RSA
+;;  #   Modulus: 1024 bits
+;;  # Subject's DN: C=SE,ST=Stockholm,L=Stockholm,O=YXA,OU=Mail server,CN=yxa.extundo.com,EMAIL=staff@yxa.extundo.com
+;;  # Issuer's DN: C=SE,ST=Stockholm,L=Stockholm,O=YXA,OU=CA,CN=yxa.extundo.com,EMAIL=staff@yxa.extundo.com
+;;
+;;  - Certificate[1] info:
+;;  # valid since: Sun May 23 11:35:00 CEST 2004
+;;  # expires at: Sun Jul 23 11:35:00 CEST 2023
+;;  # serial number: 00
+;;  # fingerprint: fc 76 d8 63 1a c9 0b 3b fa 40 fe ed 47 7a 58 ae
+;;  # version: #3
+;;  # public key algorithm: RSA
+;;  #   Modulus: 1024 bits
+;;  # Subject's DN: C=SE,ST=Stockholm,L=Stockholm,O=YXA,OU=CA,CN=yxa.extundo.com,EMAIL=staff@yxa.extundo.com
+;;  # Issuer's DN: C=SE,ST=Stockholm,L=Stockholm,O=YXA,OU=CA,CN=yxa.extundo.com,EMAIL=staff@yxa.extundo.com
+;;
+;; - Peer's certificate issuer is unknown
+;; - Peer's certificate is NOT trusted
+;; - Version: TLS 1.0
+;; - Key Exchange: RSA
+;; - Cipher: ARCFOUR 128
+;; - MAC: SHA
+;; - Compression: NULL
+
 ;;; Code:
 
 (defgroup starttls nil
@@ -39,18 +122,148 @@
   :version "21.1"
   :group 'mail)
 
+(defcustom starttls-gnutls-program "gnutls-cli"
+  "Name of GNUTLS command line tool.
+This program is used when GNUTLS is used, i.e. when
+`starttls-use-gnutls' is non-nil."
+  :version "22.1"
+  :type 'string
+  :group 'starttls)
+
 (defcustom starttls-program "starttls"
-  "The program to run in a subprocess to open an TLSv1 connection."
+  "The program to run in a subprocess to open an TLSv1 connection.
+This program is used when the `starttls' command is used,
+i.e. when `starttls-use-gnutls' is nil."
   :type 'string
   :group 'starttls)
 
+(defcustom starttls-use-gnutls (not (executable-find starttls-program))
+  "*Whether to use GNUTLS instead of the `starttls' command."
+  :version "22.1"
+  :type 'boolean
+  :group 'starttls)
+
 (defcustom starttls-extra-args nil
-  "Extra arguments to `starttls-program'."
+  "Extra arguments to `starttls-program'.
+This program is used when the `starttls' command is used,
+i.e. when `starttls-use-gnutls' is nil."
+  :type '(repeat string)
+  :group 'starttls)
+
+(defcustom starttls-extra-arguments nil
+  "Extra arguments to `starttls-program'.
+This program is used when GNUTLS is used, i.e. when
+`starttls-use-gnutls' is non-nil.
+
+For example, non-TLS compliant servers may require
+'(\"--protocols\" \"ssl3\").  Invoke \"gnutls-cli --help\" to
+find out which parameters are available."
+  :version "22.1"
   :type '(repeat string)
   :group 'starttls)
 
+(defcustom starttls-process-connection-type nil
+  "*Value for `process-connection-type' to use when starting STARTTLS process."
+  :version "22.1"
+  :type 'boolean
+  :group 'starttls)
+
+(defcustom starttls-connect "- Simple Client Mode:\n\n"
+  "*Regular expression indicating successful connection.
+The default is what GNUTLS's \"gnutls-cli\" outputs."
+  ;; GNUTLS cli.c:main() print this string when it is starting to run
+  ;; in the application read/write phase.  If the logic, or the string
+  ;; itself, is modified, this must be updated.
+  :version "22.1"
+  :type 'regexp
+  :group 'starttls)
+
+(defcustom starttls-failure "\\*\\*\\* Handshake has failed"
+  "*Regular expression indicating failed TLS handshake.
+The default is what GNUTLS's \"gnutls-cli\" outputs."
+  ;; GNUTLS cli.c:do_handshake() print this string on failure.  If the
+  ;; logic, or the string itself, is modified, this must be updated.
+  :version "22.1"
+  :type 'regexp
+  :group 'starttls)
+
+(defcustom starttls-success "- Compression: "
+  "*Regular expression indicating completed TLS handshakes.
+The default is what GNUTLS's \"gnutls-cli\" outputs."
+  ;; GNUTLS cli.c:do_handshake() calls, on success,
+  ;; common.c:print_info(), that unconditionally print this string
+  ;; last.  If that logic, or the string itself, is modified, this
+  ;; must be updated.
+  :version "22.1"
+  :type 'regexp
+  :group 'starttls)
+
+(defun starttls-negotiate-gnutls (process)
+  "Negotiate TLS on process opened by `open-starttls-stream'.
+This should typically only be done once.  It typically return a
+multi-line informational message with information about the
+handshake, or NIL on failure."
+  (let (buffer info old-max done-ok done-bad)
+    (if (null (setq buffer (process-buffer process)))
+	;; XXX How to remove/extract the TLS negotiation junk?
+	(signal-process (process-id process) 'SIGALRM)
+      (with-current-buffer buffer
+	(save-excursion
+	  (setq old-max (goto-char (point-max)))
+	  (signal-process (process-id process) 'SIGALRM)
+	  (while (and (processp process)
+		      (eq (process-status process) 'run)
+		      (save-excursion
+			(goto-char old-max)
+			(not (or (setq done-ok (re-search-forward
+						starttls-success nil t))
+				 (setq done-bad (re-search-forward
+						 starttls-failure nil t))))))
+	    (accept-process-output process 1 100)
+	    (sit-for 0.1))
+	  (setq info (buffer-substring-no-properties old-max (point-max)))
+	  (delete-region old-max (point-max))
+	  (if (or (and done-ok (not done-bad))
+		  ;; Prevent mitm that fake success msg after failure msg.
+		  (and done-ok done-bad (< done-ok done-bad)))
+	      info
+	    (message "STARTTLS negotiation failed: %s" info)
+	    nil))))))
+
 (defun starttls-negotiate (process)
-  (signal-process (process-id process) 'SIGALRM))
+  (if starttls-use-gnutls
+      (starttls-negotiate-gnutls process)
+    (signal-process (process-id process) 'SIGALRM)))
+
+(defun starttls-open-stream-gnutls (name buffer host service)
+  (message "Opening STARTTLS connection to `%s'..." host)
+  (let* (done
+	 (old-max (with-current-buffer buffer (point-max)))
+	 (process-connection-type starttls-process-connection-type)
+	 (process (apply #'start-process name buffer
+			 starttls-gnutls-program "-s" host
+			 "-p" (if (integerp service)
+				  (int-to-string service)
+				service)
+			 starttls-extra-arguments)))
+    (process-kill-without-query process)
+    (while (and (processp process)
+		(eq (process-status process) 'run)
+		(save-excursion
+		  (set-buffer buffer)
+		  (goto-char old-max)
+		  (not (setq done (re-search-forward
+				   starttls-connect nil t)))))
+      (accept-process-output process 0 100)
+      (sit-for 0.1))
+    (if done
+	(with-current-buffer buffer
+	  (delete-region old-max done))
+      (delete-process process)
+      (setq process nil))
+    (message "Opening STARTTLS connection to `%s'...%s"
+	     host (if done "done" "failed"))
+    process))
 
 (defun starttls-open-stream (name buffer host service)
   "Open a TLS connection for a service to a host.
@@ -66,14 +279,17 @@
 Third arg is name of the host to connect to, or its IP address.
 Fourth arg SERVICE is name of the service desired, or an integer
 specifying a port number to connect to."
-  (let* ((process-connection-type nil)
-	 (process (apply #'start-process
-			 name buffer starttls-program
-			 host (format "%s" service)
-			 starttls-extra-args)))
-    (process-kill-without-query process)
-    process))
+  (if starttls-use-gnutls
+      (starttls-open-stream-gnutls name buffer host service)
+    (let* ((process-connection-type starttls-process-connection-type)
+	   (process (apply #'start-process
+			   name buffer starttls-program
+			   host (format "%s" service)
+			   starttls-extra-args)))
+      (process-kill-without-query process)
+      process)))
 
 (provide 'starttls)
 
+;;; arch-tag: 648b3bd8-63bd-47f5-904c-7c819aea2297
 ;;; starttls.el ends here
Index: gnus/lisp/time-date.el
diff -u gnus/lisp/time-date.el:7.1 gnus/lisp/time-date.el:7.4
--- gnus/lisp/time-date.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/time-date.el	Sun Apr 10 06:00:39 2005
@@ -1,5 +1,6 @@
 ;;; time-date.el --- Date and time handling functions
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
+;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;	Masanobu Umeda <umerin@mse.kyutech.ac.jp>
@@ -24,9 +25,71 @@
 
 ;;; Commentary:
 
+;; Time values come in three formats.  The oldest format is a cons
+;; cell of the form (HIGH . LOW).  This format is obsolete, but still
+;; supported.  The two other formats are the lists (HIGH LOW) and
+;; (HIGH LOW MICRO).  The first two formats specify HIGH * 2^16 + LOW
+;; seconds; the third format specifies HIGH * 2^16 + LOW + MICRO /
+;; 1000000 seconds.  We should have 0 <= MICRO < 1000000 and 0 <= LOW
+;; < 2^16.  If the time value represents a point in time, then HIGH is
+;; nonnegative.  If the time value is a time difference, then HIGH can
+;; be negative as well.  The macro `with-decoded-time-value' and the
+;; function `encode-time-value' make it easier to deal with these
+;; three formats.  See `time-subtract' for an example of how to use
+;; them.
+
 ;;; Code:
 
-(require 'parse-time)
+(defmacro with-decoded-time-value (varlist &rest body)
+  "Decode a time value and bind it according to VARLIST, then eval BODY.
+
+The value of the last form in BODY is returned.
+
+Each element of the list VARLIST is a list of the form
+\(HIGH-SYMBOL LOW-SYMBOL MICRO-SYMBOL [TYPE-SYMBOL] TIME-VALUE).
+The time value TIME-VALUE is decoded and the result it bound to
+the symbols HIGH-SYMBOL, LOW-SYMBOL and MICRO-SYMBOL.
+
+The optional TYPE-SYMBOL is bound to the type of the time value.
+Type 0 is the cons cell (HIGH . LOW), type 1 is the list (HIGH
+LOW), and type 3 is the list (HIGH LOW MICRO)."
+  (declare (indent 1)
+	   (debug ((&rest (symbolp symbolp symbolp &or [symbolp form] form))
+		   body)))
+  (if varlist
+      (let* ((elt (pop varlist))
+	     (high (pop elt))
+	     (low (pop elt))
+	     (micro (pop elt))
+	     (type (unless (eq (length elt) 1)
+		     (pop elt)))
+	     (time-value (car elt))
+	     (gensym (make-symbol "time")))
+	`(let* ,(append `((,gensym ,time-value)
+			  (,high (pop ,gensym))
+			  ,low ,micro)
+			(when type `(,type)))
+	   (if (consp ,gensym)
+	       (progn
+		 (setq ,low (pop ,gensym))
+		 (if ,gensym
+		     ,(append `(setq ,micro (car ,gensym))
+			      (when type `(,type 2)))
+		   ,(append `(setq ,micro 0)
+			    (when type `(,type 1)))))
+	     ,(append `(setq ,low ,gensym ,micro 0)
+		      (when type `(,type 0))))
+	   (with-decoded-time-value ,varlist ,@body)))
+    `(progn ,@body)))
+
+(defun encode-time-value (high low micro type)
+  "Encode HIGH, LOW, and MICRO into a time value of type TYPE.
+Type 0 is the cons cell (HIGH . LOW), type 1 is the list (HIGH LOW),
+and type 3 is the list (HIGH LOW MICRO)."
+  (cond
+   ((eq type 0) (cons high low))
+   ((eq type 1) (list high low))
+   ((eq type 2) (list high low micro))))
 
 (autoload 'timezone-make-date-arpa-standard "timezone")
 
@@ -48,9 +111,10 @@
 (defun time-to-seconds (time)
   "Convert time value TIME to a floating point number.
 You can use `float-time' instead."
-  (+ (* (car time) 65536.0)
-     (cadr time)
-     (/ (or (nth 2 time) 0) 1000000.0)))
+  (with-decoded-time-value ((high low micro time))
+    (+ (* 1.0 high 65536)
+       low
+       (/ micro 1000000.0))))
 
 ;;;###autoload
 (defun seconds-to-time (seconds)
@@ -62,19 +126,22 @@
 ;;;###autoload
 (defun time-less-p (t1 t2)
   "Say whether time value T1 is less than time value T2."
-  (or (< (car t1) (car t2))
-      (and (= (car t1) (car t2))
-	   (< (nth 1 t1) (nth 1 t2)))))
+  (with-decoded-time-value ((high1 low1 micro1 t1)
+			    (high2 low2 micro2 t2))
+    (or (< high1 high2)
+	(and (= high1 high2)
+	     (or (< low1 low2)
+		 (and (= low1 low2)
+		      (< micro1 micro2)))))))
 
 ;;;###autoload
 (defun days-to-time (days)
   "Convert DAYS into a time value."
   (let* ((seconds (* 1.0 days 60 60 24))
-	 (rest (expt 2 16))
-	 (ms (condition-case nil (floor (/ seconds rest))
-	       (range-error (expt 2 16)))))
-    (list ms (condition-case nil (round (- seconds (* ms rest)))
-	       (range-error (expt 2 16))))))
+	 (high (condition-case nil (floor (/ seconds 65536))
+		 (range-error most-positive-fixnum))))
+    (list high (condition-case nil (floor (- seconds (* 1.0 high 65536)))
+		 (range-error 65535)))))
 
 ;;;###autoload
 (defun time-since (time)
@@ -83,11 +150,7 @@
   (when (stringp time)
     ;; Convert date strings to internal time.
     (setq time (date-to-time time)))
-  (let* ((current (current-time))
-	 (rest (when (< (nth 1 current) (nth 1 time))
-		 (expt 2 16))))
-    (list (- (+ (car current) (if rest -1 0)) (car time))
-	  (- (+ (or rest 0) (nth 1 current)) (nth 1 time)))))
+  (time-subtract (current-time) time))
 
 ;;;###autoload
 (defalias 'subtract-time 'time-subtract)
@@ -96,37 +159,36 @@
 (defun time-subtract (t1 t2)
   "Subtract two time values.
 Return the difference in the format of a time value."
-  (let ((borrow (< (cadr t1) (cadr t2))))
-    (list (- (car t1) (car t2) (if borrow 1 0))
-	  (- (+ (if borrow 65536 0) (cadr t1)) (cadr t2)))))
+  (with-decoded-time-value ((high low micro type t1)
+			    (high2 low2 micro2 type2 t2))
+    (setq high (- high high2)
+	  low (- low low2)
+	  micro (- micro micro2)
+	  type (max type type2))
+    (when (< micro 0)
+      (setq low (1- low)
+	    micro (+ micro 1000000)))
+    (when (< low 0)
+      (setq high (1- high)
+	    low (+ low 65536)))
+    (encode-time-value high low micro type)))
 
 ;;;###autoload
 (defun time-add (t1 t2)
   "Add two time values.  One should represent a time difference."
-  (let ((high (car t1))
-	(low (if (consp (cdr t1)) (nth 1 t1) (cdr t1)))
-	(micro (if (numberp (car-safe (cdr-safe (cdr t1))))
-		   (nth 2 t1)
-		 0))
-	(high2 (car t2))
-	(low2 (if (consp (cdr t2)) (nth 1 t2) (cdr t2)))
-	(micro2 (if (numberp (car-safe (cdr-safe (cdr t2))))
-		    (nth 2 t2)
-		  0)))
-    ;; Add
-    (setq micro (+ micro micro2))
-    (setq low (+ low low2))
-    (setq high (+ high high2))
-
-    ;; Normalize
-    ;; `/' rounds towards zero while `mod' returns a positive number,
-    ;; so we can't rely on (= a (+ (* 100 (/ a 100)) (mod a 100))).
-    (setq low (+ low (/ micro 1000000) (if (< micro 0) -1 0)))
-    (setq micro (mod micro 1000000))
-    (setq high (+ high (/ low 65536) (if (< low 0) -1 0)))
-    (setq low (logand low 65535))
-
-    (list high low micro)))
+  (with-decoded-time-value ((high low micro type t1)
+			    (high2 low2 micro2 type2 t2))
+    (setq high (+ high high2)
+	  low (+ low low2)
+	  micro (+ micro micro2)
+	  type (max type type2))
+    (when (>= micro 1000000)
+      (setq low (1+ low)
+	    micro (- micro 1000000)))
+    (when (>= low 65536)
+      (setq high (1+ high)
+	    low (- low 65536)))
+    (encode-time-value high low micro type)))
 
 ;;;###autoload
 (defun date-to-day (date)
@@ -179,7 +241,7 @@
 (defun time-to-number-of-days (time)
   "Return the number of days represented by TIME.
 The number of days will be returned as a floating point number."
-  (/ (+ (* 1.0 65536 (car time)) (cadr time)) (* 60 60 24)))
+  (/ (time-to-seconds time) (* 60 60 24)))
 
 ;;;###autoload
 (defun safe-date-to-time (date)
@@ -191,4 +253,5 @@
 
 (provide 'time-date)
 
+;;; arch-tag: addcf07b-b20a-465b-af72-550b8ac5190f
 ;;; time-date.el ends here
Index: gnus/lisp/tls.el
diff -u gnus/lisp/tls.el:7.1 gnus/lisp/tls.el:7.5
--- gnus/lisp/tls.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/tls.el	Sun Feb 13 05:44:40 2005
@@ -1,6 +1,6 @@
 ;;; tls.el --- TLS/SSL support via wrapper around GnuTLS
 
-;; Copyright (C) 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2003, 2004 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org>
 ;; Keywords: comm, tls, gnutls, ssl
@@ -67,15 +67,47 @@
 
 (defcustom tls-process-connection-type nil
   "*Value for `process-connection-type' to use when starting TLS process."
+  :version "22.1"
   :type 'boolean
   :group 'tls)
 
 (defcustom tls-success "- Handshake was completed"
   "*Regular expression indicating completed TLS handshakes.
 The default is what GNUTLS's \"gnutls-cli\" outputs."
+  :version "22.1"
   :type 'regexp
   :group 'tls)
 
+(defcustom tls-certtool-program (executable-find "certtool")
+  "Name of  GnuTLS certtool.
+Used by `tls-certificate-information'."
+  :version "22.1"
+  :type '(repeat string)
+  :group 'tls)
+
+(defun tls-certificate-information (der)
+  "Parse X.509 certificate in DER format into an assoc list."
+  (let ((certificate (concat "-----BEGIN CERTIFICATE-----\n"
+			     (base64-encode-string der)
+			     "\n-----END CERTIFICATE-----\n"))
+	(exit-code 0))
+    (with-current-buffer (get-buffer-create " *certtool*")
+      (erase-buffer)
+      (insert certificate)
+      (setq exit-code (condition-case ()
+			  (call-process-region (point-min) (point-max)
+					       tls-certtool-program
+					       t (list (current-buffer) nil) t
+					       "--certificate-info")
+			(error -1)))
+      (if (/= exit-code 0)
+	  nil
+	(let ((vals nil))
+	  (goto-char (point-min))
+	  (while (re-search-forward "^\\([^:]+\\): \\(.*\\)" nil t)
+	    (push (cons (match-string 1) (match-string 2)) vals))
+	  (nreverse vals))))))
+
 (defun open-tls-stream (name buffer host service)
   "Open a TLS connection for a service to a host.
 Returns a subprocess-object to represent the connection.
@@ -124,4 +156,5 @@
 
 (provide 'tls)
 
+;;; arch-tag: 5596d1c4-facc-4bc4-94a9-9863b928d7ac
 ;;; tls.el ends here
Index: gnus/lisp/utf7.el
diff -u gnus/lisp/utf7.el:7.1 gnus/lisp/utf7.el:7.3
--- gnus/lisp/utf7.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/utf7.el	Sun Feb 13 05:44:41 2005
@@ -59,7 +59,7 @@
 ;; $ echo "a+£"|iconv -f iso-8859-1 -t utf-7
 ;; a+-+AKM
 ;;
-;;  -- fx 
+;;  -- fx
 
 
 ;;; Code:
@@ -78,7 +78,7 @@
 (defconst utf7-utf-16-coding-system
   (cond ((mm-coding-system-p 'utf-16-be-no-signature) ; Mule-UCS
 	 'utf-16-be-no-signature)
-	((and (mm-coding-system-p 'utf-16-be) ; Emacs 21.4 (?), Emacs 22
+	((and (mm-coding-system-p 'utf-16-be) ; Emacs 22.1
 	      ;; Avoid versions with BOM.
 	      (= 2 (length (encode-coding-string "a" 'utf-16-be))))
 	 'utf-16-be)
@@ -224,4 +224,5 @@
 
 (provide 'utf7)
 
+;;; arch-tag: 96078b55-85c7-4161-aed2-932c24b282c7
 ;;; utf7.el ends here
Index: gnus/lisp/uudecode.el
diff -u gnus/lisp/uudecode.el:7.2 gnus/lisp/uudecode.el:7.5
--- gnus/lisp/uudecode.el:7.2	Thu Mar  4 07:30:18 2004
+++ gnus/lisp/uudecode.el	Sun Feb 13 05:44:41 2005
@@ -50,6 +50,7 @@
 (defcustom uudecode-use-external
   (executable-find uudecode-decoder-program)
   "*Use external uudecode program."
+  :version "22.1"
   :group 'gnus-extract
   :type 'boolean)
 
@@ -211,4 +212,5 @@
 
 (provide 'uudecode)
 
+;;; arch-tag: e1f09ed5-62b4-4677-9f13-4e81c4fe8ce3
 ;;; uudecode.el ends here
Index: gnus/lisp/webmail.el
diff -u gnus/lisp/webmail.el:7.1 gnus/lisp/webmail.el:7.3
--- gnus/lisp/webmail.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/webmail.el	Tue Aug 24 08:54:33 2004
@@ -1,5 +1,5 @@
 ;;; webmail.el --- interface of web mail
-;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Keywords: hotmail netaddress my-deja netscape
@@ -196,7 +196,7 @@
     (insert "\n---------------- A bug at " str " ------------------\n")
     (mapcar #'(lambda (sym)
 		(if (boundp sym)
-		    (pp `(setq ,sym ',(eval sym)) (current-buffer))))
+		    (gnus-pp `(setq ,sym ',(eval sym)))))
 	    '(webmail-type user))
     (insert "---------------- webmail buffer ------------------\n\n")
     (insert-buffer-substring webmail-buffer)
@@ -1149,4 +1149,5 @@
 
 (provide 'webmail)
 
+;;; arch-tag: f75a4558-a8f6-46ec-b1c3-7a6434b3dd71
 ;;; webmail.el ends here
Index: gnus/lisp/yenc.el
diff -u gnus/lisp/yenc.el:7.1 gnus/lisp/yenc.el:7.2
--- gnus/lisp/yenc.el:7.1	Sun Jan  4 22:51:03 2004
+++ gnus/lisp/yenc.el	Thu May 20 10:02:41 2004
@@ -117,4 +117,5 @@
 
 (provide 'yenc)
 
+;;; arch-tag: 74df17e8-6fa8-4071-9f7d-54d548d79d9a
 ;;; yenc.el ends here
Index: gnus/texi/ChangeLog
diff -u gnus/texi/ChangeLog:7.51 gnus/texi/ChangeLog:7.139
--- gnus/texi/ChangeLog:7.51	Mon Apr 19 03:14:55 2004
+++ gnus/texi/ChangeLog	Wed Mar 30 17:40:59 2005
@@ -1,3 +1,467 @@
+2005-03-30  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* Makefile.in (gnus-booklet.dvi, gnus-booklet.pdf): Simplify.
+	(gnus-faq-texi): Renamed from gnus-faq.texi to avoid unsolicited
+	download.
+
+2005-03-29  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* Makefile.in (gnus-booklet.dvi, gnus-booklet.pdf)
+	(gnus-refcard.dvi, gnus-refcard.pdf): New targets replacing
+	refcard.* and booklet.*.
+
+	* gnus-refcard.tex: Merged from refcard.tex and gnusref.tex.
+	Removed refcard.tex gnusref.tex booklet.tex bk-lt.tex bk-a4.tex.
+
+	* gnus-logo.eps: Renamed from gnuslogo-booklet.eps.
+	gnuslogo-refcard.eps: Removed.
+
+	* Makefile.in (gnus-faq.texi): Depend on xml2texi.*.  Fix sed
+	command.
+
+2005-03-23  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* Makefile.in (gnus-faq-full-update, gnus-faq-clean)
+	(gnus-faq.texi): New targets.
+	(distclean): Remove some gnus-faq.* files.
+
+	* xml2texi.sh: Mention requirements.
+
+	* xml2texi.scm (boilerplate): Add "Do not modify ...".
+
+	* gnus-faq.texi: Generated.
+
+2005-03-22  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-faq.texi: Generated from gnus-faq.xml using xml2texi.*.
+
+	* message.texi, gnus.texi: Update copyright.
+
+	* xml2texi.scm (+tag-for-gnus-faq-texi+): New variable.
+	(transform): Use it.  From Karl Pfl,Ad(Bsterer <sigurd@12move.de> with
+	minor modifications.
+	(boilerplate): Update copyright for the output file.
+
+2005-03-21  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* xml2texi.sh: Fix arch tag.
+
+2005-03-20  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* xml2texi.scm, xml2texi.sh: Added copyright.
+	(transform): Avoid redundant entries in @urefs.
+	(format-node): Don't insert optional arguments of @node.
+
+2005-03-20  Karl Pfl,Ad(Bsterer  <sigurd@12move.de>
+
+	* xml2texi.scm, xml2texi.sh: New files.  PLT Scheme program to
+	convert FAQ from xml to texi.
+
+2005-03-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (Slow/Expensive Connection): Don't abbreviate "very".
+
+2005-02-14  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-news.texi: Add.
+
+2005-02-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (Using MIME): gnus-mime-copy-part supports the charset
+	stuff; gnus-mime-inline-part does the automatic decompression.
+
+2005-02-08  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.texi (Spam ELisp Package Configuration Examples):
+	"training.ham" should be "training.spam"
+
+2005-02-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.texi (Mail Variables): Fix the default value for
+	message-send-mail-function.
+
+2005-02-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (Optional Back End Functions): nntp-request-update-info
+	always returns nil exceptionally.
+
+2005-01-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.texi: Some edits based on comments from David Abrahams.
+	Bump version numbers.
+
+2005-01-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (RSS): Fix the keystroke.
+
+2005-01-16  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.texi (Article Washing): Add libidn URL.  Suggested by
+	Michael Cook <michael@waxrat.com>.
+
+	* gnus-news.texi: Ditto.
+
+2005-01-16  Xavier Maillard <zedek@gnu-rox.org> (tiny change)
+
+	* gnus-faq.texi ([4.1]): Typo.
+
+2005-01-15  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus.texi (Topic Commands): Fix next/previous.
+
+2005-01-15  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.texi (Article Washing): Mention `W i'.
+
+	* gnus-news.texi: Mention De-IDNA washing.
+
+2005-01-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.texi (Reply): `message-reply-to-function' should return
+	a list.  Suggested by ARISAWA Akihiro <ari@mbf.ocn.co.jp>.
+
+2005-01-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* Makefile.in (.texi): Use LC_ALL instead of LANG.
+	(makeinfo): Ditto.
+
+2005-01-04  Jochen K,A|(Bpper  <jochen@fhi-berlin.mpg.de>
+
+	* gnus.texi (Group Parameters): Slight extension of sieve
+	parameter description.
+
+2005-01-03  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-news.texi: Mention change new behavior of
+	`gnus-decay-scores'.  Added some references.
+
+	* gnus.texi (Score Decays): `gnus-decay-scores' can be a regexp
+	matching score files as well.
+	(Picons): Describe `gnus-picon-style'.
+
+2005-01-02  Romain Francoise  <romain@orebokech.com>
+
+	* gnus-news.texi: Mention the new method used to hide headers.
+	Remove duplicate item about `/ r'.  Add missing @code.
+
+	* message.texi (Message Headers): Mention that headers are hidden
+	using narrowing, and how to expose them.
+	Update copyright.
+
+2005-01-02  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-news.texi: Add.
+
+2004-12-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-news.texi: Addition.
+
+	* gnus.texi (RSS): Addition.
+
+2004-12-24  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* Makefile.in (.texi): Set LANG=C to avoid NLS translations.
+	(makeinfo): Ditto.
+
+2004-12-08  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnusref.tex: Mention `gnus-summary-limit-to-recipient' and 
+	`gnus-summary-sort-by-recipient'.
+
+2004-12-08  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-faq.texi ([5.1]): Added missing bracket.
+
+	* message.texi (Various Message Variables): Mention that all mail
+	file variables are derived from `message-directory'.
+
+	* gnus.texi (Splitting Mail): Clarify bogus group.
+
+2004-12-07  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.texi (Filtering Spam Using The Spam ELisp Package)
+	(Spam ELisp Package Filtering of Incoming Mail)
+	(Spam ELisp Package Sorting and Score Display in Summary Buffer):
+	replace @code{spam.el} with @file{spam.el} where the file spam.el
+	is intended as the subject
+
+2004-12-06  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-news.texi: Mention `gnus-summary-limit-to-recipient' and 
+	`gnus-summary-sort-by-recipient'.
+
+	* gnus.texi (Filtering Spam Using The Spam ELisp Package): Index
+	`spam-initialize'.
+	(Limiting): Add `gnus-summary-limit-to-recipient'.
+	(Summary Sorting): Add `gnus-summary-sort-by-recipient'.
+
+2004-11-30  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.texi (Misc Article): Add, suggested by Reiner Steib
+	<reinersteib+gmane@imap.cc>.
+
+2004-11-26  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (Finding the News): Markup fix.
+
+2004-11-25  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (Finding the News): Add a note for NNTP marks.
+	Improved by Romain Francoise.
+
+2004-11-23  Romain Francoise  <romain@orebokech.com>
+
+	* gnus.texi (NNTP marks): New node.
+	(NNTP): Move NNTP marks variables to the new node.
+
+2004-11-21  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.texi, gnus-news.texi, pgg.texi, sasl.texi: backend -> back
+	end.
+
+	* gnus.texi (MIME Commands, Hashcash): Markup fix.
+
+2004-11-17  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.texi: replaced @file{spam.el} with @code{spam.el}
+	everywhere for consistency.
+	(Filtering Spam Using The Spam ELisp Package): admonish again.
+	(Spam ELisp Package Sequence of Events): this is Gnus, say so.
+	Say "regular expression" instead of "regex."  Admonish.  Pick
+	other words to sound better (s/so/thus/).
+	(Spam ELisp Package Filtering of Incoming Mail): mention
+	statistical filters.  Remove old TODO.
+	(Spam ELisp Package Sorting and Score Display in Summary Buffer):
+	new section on sorting and displaying the spam score
+	(BBDB Whitelists): mention spam-use-BBDB-exclusive is not a
+	backend but an alias to spam-use-BBDB
+	(Extending the Spam ELisp package): rewrite the example using the
+	new backend functionality.
+
+2004-11-16  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.texi (NNTP): Mention nntp-marks-is-evil and
+	nntp-marks-directory, from Romain Francoise
+	<romain@orebokech.com>.
+
+2004-11-14  Magnus Henoch  <mange@freemail.hu>
+
+	* gnus.texi (Hashcash): New default value of
+	hashcash-default-payment.
+
+2004-10-26  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.texi (Hashcash): Fix URL.  Add pref to spam section.
+	(Anti-spam Hashcash Payments): No need to load hashcash.el now.
+
+2004-10-15  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (New Features): Add 5.11.
+
+	* message.texi (Resending): Remove wrong default value.
+
+	* gnus.texi (Mail Source Specifiers): Describe possible problems
+	of `pop3-leave-mail-on-server'.  Add `pop3-movemail' and
+	`pop3-leave-mail-on-server' to the index.
+
+2004-10-15  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (Adaptive Scoring): Added gnus-adaptive-pretty-print.
+
+2004-10-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* message.texi (Canceling News): Add how to set a password.
+
+2004-10-10  Juri Linkov  <juri@jurta.org>
+
+	* gnus.texi (Top, Marking Articles): Join two menus in one node
+	because a node can have only one menu.
+
+2004-10-09  Juri Linkov  <juri@jurta.org>
+
+	* gnus.texi (Fancy Mail Splitting): Remove backslash in the
+	example of nnmail-split-fancy.
+
+2004-10-12  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-faq.texi ([5.9]): Improve code for reply-in-news.
+
+2004-10-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (X-Face): Revert 2004-02-17 change.
+	(Slow Machine): Ditto.
+
+2004-10-02  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.texi (documentencoding): Add, to avoid warnings.
+
+2004-09-30  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-news.texi: Add.
+
+	* message.texi (Mail Headers): Add.
+
+	* gnus.texi (Hashcash): Fix.
+
+2004-09-29  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-news.texi: Add.
+
+2004-09-29  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.texi (Hashcash): changed location of library, also mention
+	that payments can be verified and fix the name of the
+	hashcash-path variable
+
+2004-09-23  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-faq.texi ([5.12]): Use 5.10 instead of 5.10.0.
+
+2004-09-14  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.texi: Markup fixes.
+
+	* emacs-mime.texi (Display Customization): XEmacs -> Emacs.
+
+2004-09-11  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-news.texi: Mention text/dns.
+
+2004-09-03  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* texi2latex.el (latexi-translate-file): Support @copying and
+	@insertcopying.
+	(latexi-copying-text): New variable.
+	(latexi-copying): New function.
+	(latexi-insertcopying): New function.
+
+2004-09-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-news.texi: Fix typo in previous commit.
+
+	* gnus-news.el (gnus-news-makeinfo-switches): Add --no-validate to
+	allow unresolved references.
+
+	* gnus-news.texi: Use xref.  Add `gnus-picon-style'.
+
+	* Makefile.in (GNUS-NEWS): Depend on gnus-news.el.
+
+2004-09-02  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-news.texi: Comment out comment stuff.
+	Don't use xref's, GNUS-NEWS look wrong.
+	Add nntp marks stuff.
+	Add (copied from Oort Gnus GNUS-NEWS).
+
+	* Makefile.in (GNUS-NEWS): Move to "..".
+
+2004-09-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* infohack.el: Support @copying and @insertcopying for Emacs 21.3
+	and lesser and XEmacs.
+
+2004-08-31  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* emacs-mime.texi, gnus-faq.texi, gnus.texi, message.texi,
+	pgg.texi, sieve.texi: Use @copying and @insertcopying.
+
+2004-08-22  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (Mail Source Specifiers): Describe
+	`pop3-leave-mail-on-server'.
+
+2004-08-17  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.texi (IMAP): add comments about imaps synonym to imap in
+	netrc syntax
+
+2004-08-15  Simon Josefsson  <jas@extundo.com>
+
+	* gnus.texi (IMAP): Add example.  Suggested and partially written
+	by Steinar Bang <sb@dod.no>.
+
+2004-08-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (Posting Styles): Addition.
+
+2004-08-06  Simon Josefsson  <jas@extundo.com>
+
+	* gnus-news.el (gnus-news-header-disclaimer): Fix.
+
+	* gnus-news.texi: Add.
+
+2004-07-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* emacs-mime.texi (rfc2047): Update.
+
+2004-07-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (Splitting Mail): Add nnmail-split-lowercase-expanded.
+	(Fancy Mail Splitting): Ditto.
+
+2004-07-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* emacs-mime.texi (Encoding Customization): Addition.
+
+2004-06-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* emacs-mime.texi (Encoding Customization): Add a note to the
+	mm-content-transfer-encoding-defaults entry.
+
+2004-06-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* emacs-mime.texi (Encoding Customization): Fix
+	mm-coding-system-priorities entry.
+
+2004-06-28  Jesper Harder  <harder@ifa.au.dk>
+
+	* gnus.texi (Setting Process Marks): Fix `M P a' entry.
+
+2004-06-23  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus.texi (Article Highlighting): Add
+	gnus-cite-ignore-quoted-from.
+
+2004-06-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.texi (Various Message Variables): Add.
+
+2004-06-02  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (Mail Source Customization): Clarify
+	`mail-source-directory'.
+
+2004-05-28  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus-faq.texi: Untabify.
+	([6.3]): nnir.el is in contrib directory.  
+
+	* message.texi (News Headers): Clarify how a unique ID is created.
+
+	* gnus.texi (Splitting Mail): Mention gnus-group-find-new-groups.
+
+2004-05-19  Andre Srinivasan  <andre@e2open.com>
+
+	* gnus.texi (Group Parameters): Added more on hooks.  (Small
+	change.) 
+
+2004-05-19  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (Oort Gnus): Mention new behavior of `F' and `R' when
+	the region is active.
+	(Article Display): Add `gnus-picon-style'.
+
+2004-05-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* message.texi (Various Commands): Add.
+
+2004-05-10  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* gnus.texi (MIME Commands): Added
+	gnus-mime-display-multipart-as-mixed,
+	gnus-mime-display-multipart-alternative-as-mixed,
+	gnus-mime-display-multipart-related-as-mixed.
+
 2004-04-19  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus.texi (SpamAssassin backend): Add it to the detailmenu.
@@ -4321,3 +4785,5 @@
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; End:
+
+;;; arch-tag: b5708f36-be16-423b-bcca-f70f5fb4781a
Index: gnus/texi/Makefile.in
diff -u gnus/texi/Makefile.in:7.5 gnus/texi/Makefile.in:7.14
--- gnus/texi/Makefile.in:7.5	Thu Mar  4 01:32:09 2004
+++ gnus/texi/Makefile.in	Wed Mar 30 17:40:59 2005
@@ -19,6 +19,8 @@
 SHELL = /bin/sh
 PAPERTYPE=a4
 INFO_DEPS=gnus message emacs-mime sieve pgg sasl
+REFCARD=gnus-refcard
+LOGO=gnus-logo
 
 all: $(INFO_DEPS)
 
@@ -28,7 +30,7 @@
 
 .texi:
 	if test "x$(MAKEINFO)" != "xno" ; then \
-	  $(MAKEINFO) -I $(srcdir) --enable-encoding -o $* $<; \
+	  LC_ALL=C $(MAKEINFO) -I $(srcdir) --enable-encoding -o $* $<; \
 	else \
 	  rm -f $@; \
 	  $(EMACSINFO) $<; \
@@ -37,14 +39,14 @@
 # Files included in gnus.texi
 gnus.texi: gnus-faq.texi gnus-news.texi
 
-# FIXME: Target should be in parent directory.  A cvs commit script could
-# automatically create it.
-GNUS-NEWS:	gnus-news.texi
+# FIXME: A cvs commit script could automatically create it.
+GNUS-NEWS:	gnus-news.texi gnus-news.el
 	$(EMACSCOMP) -l $(srcdir)/gnus-news.el -f batch-gnus-news $< $@
+	mv $@ ../$@
 
-dvi: gnus.dvi message.dvi refcard.dvi emacs-mime.dvi sieve.dvi pgg.dvi sasl.dvi
+dvi: gnus.dvi message.dvi $(REFCARD).dvi emacs-mime.dvi sieve.dvi pgg.dvi sasl.dvi
 
-pdf: gnus.pdf message.pdf refcard.pdf emacs-mime.pdf sieve.pdf pgg.pdf sasl.pdf
+pdf: gnus.pdf message.pdf $(REFCARD).pdf emacs-mime.pdf sieve.pdf pgg.pdf sasl.pdf
 
 .texi.dvi :
 	sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi 
@@ -61,31 +63,53 @@
 	cp gnustmp.pdf $*.pdf
 	rm -f gnustmp.*
 
-refcard.dvi: refcard.tex gnuslogo-refcard.eps gnusref.tex
-	TEXINPUTS=$(srcdir):$$TEXINPUTS $(LATEX) refcard.tex
+$(LOGO).pdf:	$(LOGO).eps
+	epstopdf $< --outfile=$@
 
-refcard.pdf: refcard.tex gnuslogo-refcard.eps gnusref.tex
-	epstopdf $(srcdir)/gnuslogo-refcard.eps --outfile=gnuslogo-refcard.pdf
-	TEXINPUTS=$(srcdir):$$TEXINPUTS $(PDFLATEX) refcard.tex
+$(REFCARD).dvi: $(REFCARD).tex $(LOGO).eps
+	TEXINPUTS=$(srcdir):$$TEXINPUTS:: $(LATEX) $(REFCARD).tex
 
-booklet.dvi: booklet.tex gnuslogo-refcard.eps gnusref.tex
+$(REFCARD).pdf: $(REFCARD).tex $(LOGO).pdf
+	TEXINPUTS=$(srcdir):$$TEXINPUTS:: $(PDFLATEX) $(REFCARD).tex
+
+gnus-booklet.dvi: $(REFCARD).tex $(LOGO).eps
 	if [ "$(PAPERTYPE)" == a4 ]; then \
-		TEXINPUTS=$(srcdir):$$TEXINPUTS $(LATEX) bk-a4.tex && \
-		mv bk-a4.dvi booklet.dvi ;\
+	  TEXINPUTS=$(srcdir):$$TEXINPUTS:: \
+          $(LATEX) '\def\booklettrue{}\input{$(REFCARD)}' ;\
 	else \
-		TEXINPUTS=$(srcdir):$$TEXINPUTS $(LATEX) bk-lt.tex && \
-		mv bk-lt.dvi booklet.dvi;\
+	  TEXINPUTS=$(srcdir):$$TEXINPUTS:: \
+          $(LATEX) '\def\booklettrue{}\def\letterpapertrue{}\input{$(REFCARD)}' ;\
 	fi
+	mv $(REFCARD).dvi $@
 
-booklet.pdf: booklet.tex gnuslogo-refcard.eps gnusref.tex
-	epstopdf $(srcdir)/gnuslogo-booklet.eps --outfile=gnuslogo-booklet.pdf
+gnus-booklet.pdf: $(REFCARD).tex  $(LOGO).pdf
 	if [ "$(PAPERTYPE)" == a4 ]; then \
-		TEXINPUTS=$(srcdir):$$TEXINPUTS $(PDFLATEX) bk-a4.tex &&\
-		mv bk-a4.pdf booklet.pdf ;\
+	  TEXINPUTS=$(srcdir):$$TEXINPUTS:: \
+          $(PDFLATEX) '\def\booklettrue{}\input{$(REFCARD)}' ;\
 	else \
-		TEXINPUTS=$(srcdir):$$TEXINPUTS $(PDFLATEX) bk-lt.tex &&\
-		mv bk-lt.pdf booklet.pdf ;\
+	  TEXINPUTS=$(srcdir):$$TEXINPUTS:: \
+          $(PDFLATEX) '\def\booklettrue{}\def\letterpapertrue{}\input{$(REFCARD)}' ;\
 	fi
+	mv $(REFCARD).pdf $@ 
+
+gnus-faq-full-update:  gnus-faq-clean gnus-faq-texi
+
+gnus-faq.xml:
+	cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gnus \
+	  co -p gnus-faq/src/gnus-faq.xml > $@.tmp
+	head -n 1 $@.tmp | grep '^<.xml version' || \
+	  { echo "Update of $@ failed."; : rm $@.tmp; exit 1; }
+	mv $@.tmp $@
+
+gnus-faq-texi: gnus-faq.xml xml2texi.sh xml2texi.scm
+	./xml2texi.sh $< $@.tmp
+	@echo
+# FIXME: This should be done in xml2texi.scm or gnus-faq.xml should be
+# changed:
+	sed '/[$$]Id:.*[$$]/d' < $@.tmp > $@
+
+gnus-faq-clean:
+	rm -f gnus-faq.xml gnus-faq.*.tmp gnus-faq.texi
 
 clean:
 	rm -f *.[cgk]idx *.aux *.cp *.cps *.dvi *.dvi-x *.fn *.ky	\
@@ -96,8 +120,8 @@
 	thumbdta.tex xface.tex *.tpt gnus-manual-*.pdf gnus-manual-*.ps.gz
 
 makeinfo:
-	makeinfo --enable-encoding -o gnus gnus.texi
-	makeinfo --enable-encoding -o message message.texi
+	LC_ALL=C makeinfo --enable-encoding -o gnus gnus.texi
+	LC_ALL=C makeinfo --enable-encoding -o message message.texi
 
 texi2latex.elc: texi2latex.el
 	srcdir=$(srcdir)/../lisp $(EMACSCOMP) -l $(srcdir)/../lisp/dgnushack.el --eval '(byte-compile-file "$(srcdir)/texi2latex.el")'
@@ -187,6 +211,7 @@
 	rm -f message-[0-9]
 	rm -f $(INFO_DEPS)
 	rm -f gnusconfig.tex
+	rm -f gnus-faq.xml gnus-faq.*.tmp
 
 install: $(INFO_DEPS)
 	$(SHELL) $(top_srcdir)/mkinstalldirs $(infodir)
Index: gnus/texi/bk-a4.tex
diff -u gnus/texi/bk-a4.tex:7.1 gnus/texi/bk-a4.tex:removed
--- gnus/texi/bk-a4.tex:7.1	Sun Jan  4 22:42:01 2004
+++ gnus/texi/bk-a4.tex	Sun May  1 19:05:03 2005
@@ -1,20 +0,0 @@
-% Reference Booklet for (ding) Gnus, A4 format.
-% To be processed with latex 2e
-\documentclass{article}
-
-\usepackage{supertabular}
-
-\newlength{\logowidth} \setlength{\logowidth}{6.861in}
-\newlength{\logoheight} \setlength{\logoheight}{7.013in}
-
-\def\Guide{Card}\def\guide{card}
-\def\logoscale{0.25}
-
-\usepackage{epsfig}
-
-\textwidth 4.9in \textheight 7.35in \topmargin -1.0in
-\oddsidemargin -0.5in \evensidemargin -0.5in
-\begin{document}
-\small%\footnotesize
-\input{booklet}
-\end{document}
Index: gnus/texi/bk-lt.tex
diff -u gnus/texi/bk-lt.tex:7.1 gnus/texi/bk-lt.tex:removed
--- gnus/texi/bk-lt.tex:7.1	Sun Jan  4 22:42:01 2004
+++ gnus/texi/bk-lt.tex	Sun May  1 19:05:03 2005
@@ -1,20 +0,0 @@
-% Reference Booklet for (ding) Gnus, Letter format.
-% To be processed with latex 2e
-\documentclass{article}
-
-\usepackage{supertabular}
-
-\newlength{\logowidth} \setlength{\logowidth}{6.861in}
-\newlength{\logoheight} \setlength{\logoheight}{7.013in}
-
-\def\Guide{Card}\def\guide{card}
-\def\logoscale{0.25}
-
-\usepackage{epsfig}
-
-\textwidth 4.5in \textheight 7.5in \topmargin -1.0in
-\oddsidemargin -0.5in \evensidemargin -0.5in
-\begin{document}
-\small%\footnotesize
-\input{booklet}
-\end{document}
Index: gnus/texi/booklet.tex
diff -u gnus/texi/booklet.tex:7.1 gnus/texi/booklet.tex:removed
--- gnus/texi/booklet.tex:7.1	Sun Jan  4 22:42:01 2004
+++ gnus/texi/booklet.tex	Sun May  1 19:05:03 2005
@@ -1,172 +0,0 @@
-% include file for the Reference Booklet (16 pages).
-\def\Guide{Booklet}\def\guide{booklet}
-\def\logoscale{0.5}
-\def\sec{\section}
-\def\subsec{\subsection}
-\def\subsubsec{\subsubsection}
-\def\blankpage{\vspace*{\fill}\par
-%\centerline{(This page intentionally left blank.)}
-\par\vspace*{\fill}\pagebreak}
-
-\input{gnusref}
-
-\setcounter{page}{0}
-\thispagestyle{empty}
-\vspace*{\fill}
-\Title
-\vspace{0.4in}
-\Logo{booklet}
-\vspace*{\fill}
-\pagebreak
-
-% TODO: how does this work ?
-%\tableofcontents
-
-\Notes
-%
-\section*{Group-Mode}
-\GroupModeGeneral
-    \subsection*{Group Subscribedness-Levels}
-    \GroupLevels
-    \subsection*{List Groups}
-    \ListGroups
-    \subsection*{Create/Edit Foreign Groups}
-    \CreateEditGroups
-    \subsection*{Unsubscribe, Kill and Yank Groups}
-    \SubscribeKillYankGroups
-    \subsection*{Mark Groups}
-    \MarkGroups
-    \subsection*{Group-Unplugged}
-    \GroupUnplugged
-% topics in group-mode
-    \subsection*{Group Topics}
-    \GroupTopicsGeneral
-    \subsubsection*{Topic Sorting}
-    \TopicSorting
-\pagebreak
-% summary-mode
-\section*{Summary-Mode}
-\SummaryModeGeneral
-    \subsection*{Select Articles}
-    \SelectArticles
-%
-    \subsection*{Threading}
-    \Threading
-%
-    \subsection*{Limiting}
-    \Limiting
-    \subsection*{Sort the Summary-Buffer}
-    \SortSummary
-    \subsection*{Score (Value) Commands}
-    \Scoring
-% 
-    \subsection*{MIME operations from the Summary-Buffer}
-    \MIMESummary
-    \subsection*{Extract Series (Uudecode etc)}
-    \ExtractSeries
-    \subsection*{Output Articles}
-    \OutputArticles
-%
-    \subsection*{Post, Followup, Reply, Forward, Cancel}
-    \PostReplyetc
-    \subsection*{Message-Composition}
-    \MsgCompositionGeneral
-        \subsubsection*{Jumping in message-buffer}
-        \MsgCompositionMovementArticle
-        \subsubsection*{Attachments/MML}
-        \MsgCompositionMML
-% marking articles
-    \subsection*{Mark Articles}
-    \MarkArticlesGeneral
-        \subsubsection*{Mark Based on Score}
-        \MarkByScore
-        \subsubsection*{The Process Mark}
-        \ProcessMark
-        \subsubsection*{Mark Indication-Characters}
-        \MarkCharacters
-%
-    \subsection*{Summary-Unplugged}
-    \SummaryUnplugged
-    \subsection*{Mail-Group Commands}
-    \MailGroups
-    \subsection*{Draft-Group Commands}
-    \DraftGroup
-% exiting
-    \subsection*{Exit the Summary-Buffer}
-    \ExitSummary
-%
-%
-\section*{Article Mode (reading)}
-\ArticleModeGeneral
-    \subsection*{Wash the Article-Buffer}
-    \WashArticle
-    \subsubsection*{Blank Lines and Whitespace}
-    \BlankAndWhitespace
-    \subsubsection*{Picons, X-faces, Smileys}
-    \Picons
-    \subsubsection*{Time and Date}
-    \TimeAndDate
-    \subsection*{Hide/Highlight Parts of the Article}
-    \HideHighlightArticle
-    \subsection*{MIME operations from the Article-Buffer (reading)}
-    \MIMEArticleMode
-%
-%
-\section*{Server Mode}
-\ServerMode
-    \subsection*{Unplugged-Server}
-    \ServerUnplugged
-%
-%
-\section*{Browse Server Mode}
-\BrowseServer
-
-%\pagebreak
-\vspace*{\fill}
-\Copyright
-
-%% \pagebreak
-%% \Notes
-%% \GroupLevels
-%% \Marks
-%% \General
-%% \ServerMode
-%% \BrowseServer
-%% \ArticleMode
-%% \pagebreak
-
-%% \GroupMode
-%% \ListGroups     
-%% \CreateGroups   
-%% \SortGroups     
-%% \SOUP           
-%% \MarkGroups     
-%% \Unsubscribe    
-%% \GroupTopics    
-%% \SummaryMode    
-%% \SortSummary    
-%% \Article        
-%% \MailGroup      
-%% \Limit          
-%% \GotoArticle    
-%% \MarkArticles   
-%% \MarkScore      
-%% \ProcessMark    
-%% \OutputArticles 
-%% \Send           
-%% \Exit           
-%% \Thread         
-%% \Score          
-%% \Wash           
-%% \Hide           
-%% \Highlight      
-%% \Extract        
-%% \PickAndRead    
-
-%% %\pagebreak
-%% %\sec{Personal Notes}
-%% %\blankpage
-
-%% \thispagestyle{empty}
-%% \vspace*{\fill}
-%% \CopyRight
Index: gnus/texi/doclicense.texi
diff -u gnus/texi/doclicense.texi:7.1 gnus/texi/doclicense.texi:7.2
--- gnus/texi/doclicense.texi:7.1	Sun Jan  4 22:42:01 2004
+++ gnus/texi/doclicense.texi	Thu May 20 10:02:50 2004
@@ -366,3 +366,7 @@
 recommend releasing these examples in parallel under your choice of
 free software license, such as the GNU General Public License,
 to permit their use in free software.
+
+@ignore
+   arch-tag: 261f9376-a0f0-4e90-ba5b-06a297b6053d
+@end ignore
Index: gnus/texi/emacs-mime.texi
diff -u gnus/texi/emacs-mime.texi:7.10 gnus/texi/emacs-mime.texi:7.17
--- gnus/texi/emacs-mime.texi:7.10	Sat Apr 10 02:25:28 2004
+++ gnus/texi/emacs-mime.texi	Tue Sep 14 18:10:23 2004
@@ -5,23 +5,14 @@
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
-@dircategory Emacs
-@direntry
-* Emacs MIME: (emacs-mime).   The MIME de/composition library.
-@end direntry
-@documentencoding ISO-8859-1
-@iftex
-@finalout
-@end iftex
-@setchapternewpage odd
-
-@ifnottex
 
+@copying
 This file documents the Emacs MIME interface functionality.
 
-Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
           Free Software Foundation, Inc.
 
+@quotation
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 any later version published by the Free Software Foundation; with no
@@ -38,40 +29,26 @@
 Documentation License.  If you want to distribute this document
 separately from the collection, you can do so by adding a copy of the
 license to the document, as described in section 6 of the license.
-@end ifnottex
+@end quotation
+@end copying
 
-@tex
+@dircategory Emacs
+@direntry
+* Emacs MIME: (emacs-mime).   Emacs MIME de/composition library.
+@end direntry
+@iftex
+@finalout
+@end iftex
+@setchapternewpage odd
 
 @titlepage
 @title Emacs MIME Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
-
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1998, 1999, 2000, 2001, 2002, 2003 Free Software
-Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being none, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
+@insertcopying
 @end titlepage
-@page
-
-@end tex
 
 @node Top
 @top Emacs MIME
@@ -351,7 +328,7 @@
 
 @item mm-inline-large-images
 @vindex mm-inline-large-images
-When displaying inline images that are larger than the window, XEmacs
+When displaying inline images that are larger than the window, Emacs
 does not enable scrolling, which means that you cannot see the whole
 image.  To prevent this, the library tries to determine the image size
 before displaying it inline, and if it doesn't fit the window, the
@@ -837,12 +814,12 @@
 @vindex mm-coding-system-priorities
 Prioritize coding systems to use for outgoing messages.  The default
 is @code{nil}, which means to use the defaults in Emacs.  It is a list of
-coding system symbols (aliases of coding systems does not work, use
-@kbd{M-x describe-coding-system} to make sure you are not specifying
-an alias in this variable).  For example, if you have configured Emacs
+coding system symbols (aliases of coding systems are also allowed, use
+@kbd{M-x describe-coding-system} to make sure you are specifying correct
+coding system names).  For example, if you have configured Emacs
 to prefer UTF-8, but wish that outgoing messages should be sent in
 ISO-8859-1 if possible, you can set this variable to
-@code{(iso-latin-1)}.  You can override this setting on a per-message
+@code{(iso-8859-1)}.  You can override this setting on a per-message
 basis by using the @code{charset} @acronym{MML} tag (@pxref{MML Definition}).
 
 @item mm-content-transfer-encoding-defaults
@@ -852,8 +829,18 @@
 (digitally signed messages require 7bit encoding).  Besides the normal
 @acronym{MIME} encodings, @code{qp-or-base64} may be used to indicate that for
 each case the most efficient of quoted-printable and base64 should be
-used.  You can override this setting on a per-message basis by using
-the @code{encoding} @acronym{MML} tag (@pxref{MML Definition}).
+used.
+
+@code{qp-or-base64} has another effect.  It will fold long lines so that
+MIME parts may not be broken by MTA.  So do @code{quoted-printable} and
+@code{base64}.
+
+Note that it affects body encoding only when a part is a raw forwarded
+message (which will be made by @code{gnus-summary-mail-forward} with the
+arg 2 for example) or is neither the @samp{text/*} type nor the
+@samp{message/*} type.  Even though in those cases, you can override
+this setting on a per-message basis by using the @code{encoding}
+@acronym{MML} tag (@pxref{MML Definition}).
 
 @item mm-use-ultra-safe-encoding
 @vindex mm-use-ultra-safe-encoding
@@ -1326,11 +1313,6 @@
 The following variables are tweakable:
 
 @table @code
-@item rfc2047-default-charset
-@vindex rfc2047-default-charset
-Characters in this charset should not be decoded by this library.
-This defaults to @code{iso-8859-1}.
-
 @item rfc2047-header-encoding-alist
 @vindex rfc2047-header-encoding-alist
 This is an alist of header / encoding-type pairs.  Its main purpose is
@@ -1338,9 +1320,10 @@
 
 The keys can either be header regexps, or @code{t}.
 
-The values can be either @code{nil}, in which case the header(s) in
-question won't be encoded, or @code{mime}, which means that they will be
-encoded.
+The values can be @code{nil}, in which case the header(s) in question
+won't be encoded, @code{mime}, which means that they will be encoded, or
+@code{address-mime}, which means the header(s) will be encoded carefully
+assuming they contain addresses.
 
 @item rfc2047-charset-encoding-alist
 @vindex rfc2047-charset-encoding-alist
@@ -1348,22 +1331,20 @@
 Quoted-Printable-like encoding) and @code{B} (base64).  This alist
 specifies which charset should use which encoding.
 
-@item rfc2047-encoding-function-alist
-@vindex rfc2047-encoding-function-alist
+@item rfc2047-encode-function-alist
+@vindex rfc2047-encode-function-alist
 This is an alist of encoding / function pairs.  The encodings are
 @code{Q}, @code{B} and @code{nil}.
 
-@item rfc2047-q-encoding-alist
-@vindex rfc2047-q-encoding-alist
-The @code{Q} encoding isn't quite the same for all headers.  Some
-headers allow a narrower range of characters, and that is what this
-variable is for.  It's an alist of header regexps / allowable character
-ranges.
-
 @item rfc2047-encoded-word-regexp
 @vindex rfc2047-encoded-word-regexp
 When decoding words, this library looks for matches to this regexp.
 
+@item rfc2047-encode-encoded-words
+@vindex rfc2047-encode-encoded-words
+The boolean variable specifies whether encoded words
+(e.g. @samp{=?hello?=}) should be encoded again.
+
 @end table
 
 Those were the variables, and these are this functions:
@@ -1394,6 +1375,24 @@
 @findex rfc2047-decode-string
 Decode a string and return the results.
 
+@item rfc2047-encode-parameter
+@findex rfc2047-encode-parameter
+Encode a parameter in the RFC2047-like style.  This is a replacement for
+the @code{rfc2231-encode-string} function.  @xref{rfc2231}.
+
+When attaching files as @acronym{MIME} parts, we should use the RFC2231
+encoding to specify the file names containing non-@acronym{ASCII}
+characters.  However, many mail softwares don't support it in practice
+and recipients won't be able to extract files with correct names.
+Instead, the RFC2047-like encoding is acceptable generally.  This
+function provides the very RFC2047-like encoding, resigning to such a
+regrettable trend.  To use it, put the following line in your
+@file{~/.gnus.el} file:
+
+@lisp
+(defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter)
+@end lisp
+
 @end table
 
 
@@ -1796,3 +1795,7 @@
 @c mode: texinfo
 @c coding: iso-8859-1
 @c End:
+
+@ignore
+   arch-tag: c7ef2fd0-a91c-4e10-aa52-c1a2b11b1a8d
+@end ignore
Index: gnus/texi/gnus-faq.texi
diff -u gnus/texi/gnus-faq.texi:7.1 gnus/texi/gnus-faq.texi:7.9
--- gnus/texi/gnus-faq.texi:7.1	Sun Jan  4 22:42:01 2004
+++ gnus/texi/gnus-faq.texi	Thu Mar 24 10:14:36 2005
@@ -1,210 +1,203 @@
-@c Insert  "\input texinfo" at 1st line before texing this file alone.
-@c -*-texinfo-*-
-@c Copyright (C) 1995, 2001, 2003, 2004 Free Software Foundation, Inc.
+@c \input texinfo @c -*-texinfo-*-
+@c Uncomment 1st line before texing this file alone.
+@c %**start of header
+@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+@c
+@c Do not modify this file, it was generated from gnus-faq.xml, available from
+@c <URL:http://my.gnus.org/FAQ/>.
+@c
 @setfilename gnus-faq.info
-
-@c Frequently Asked Questions, FAQ - Introduction, Emacs for Heathens, Top
+@settitle Frequently Asked Questions
+@c %**end of header
+@c
 
 @node Frequently Asked Questions
-@comment  node-name,  next,  previous,  up
-
-@c @chapter Frequently Asked Questions
 @section Frequently Asked Questions
-@cindex FAQ
-@cindex Frequently Asked Questions
-
-@c - Uncomment @chapter, comment @section
-@c - run (texinfo-every-node-update)
-@c - revert it.
 
 @menu
-* FAQ - Introduction::                    About Gnus and this FAQ.
-* FAQ 1 - Installation::                  Installation of Gnus.
-* FAQ 2 - Startup / Group buffer::        Start up questions and the first
-                                          buffer Gnus shows you.
-* FAQ 3 - Getting messages::              Making Gnus read your mail and news.
-* FAQ 4 - Reading messages::              How to efficiently read messages.
-* FAQ 5 - Composing messages::            Composing mails or Usenet postings.
-* FAQ 6 - Old messages::                  Importing, archiving, searching
-                                          and deleting messages.
-* FAQ 7 - Gnus in a dial-up environment:: Reading mail and news while offline.
-* FAQ 8 - Getting help::                  When this FAQ isn't enough.
-* FAQ 9 - Tuning Gnus::                   How to make Gnus faster.
-* FAQ - Glossary::                        Terms used in the FAQ explained.
+* FAQ - Changes::                           
+* FAQ - Introduction::                       About Gnus and this FAQ.
+* FAQ 1 - Installation FAQ::                 Installation of Gnus.
+* FAQ 2 - Startup / Group buffer::           Start up questions and the
+                                             first buffer Gnus shows you.
+* FAQ 3 - Getting Messages::                 Making Gnus read your mail
+                                             and news.
+* FAQ 4 - Reading messages::                 How to efficiently read
+                                             messages.
+* FAQ 5 - Composing messages::               Composing mails or Usenet
+                                             postings.
+* FAQ 6 - Old messages::                     Importing, archiving,
+                                             searching and deleting messages.
+* FAQ 7 - Gnus in a dial-up environment::    Reading mail and news while
+                                             offline.
+* FAQ 8 - Getting help::                     When this FAQ isn't enough.
+* FAQ 9 - Tuning Gnus::                      How to make Gnus faster.
+* FAQ - Glossary::                           Terms used in the FAQ
+                                             explained.
 @end menu
 
-
 @subheading Abstract
 
- This is the new Gnus Frequently Asked Questions list.  If you have a
-Web browser, the official hypertext version is at
-@uref{http://my.gnus.org/FAQ/}, the Docbook source is available from
-@uref{http://sourceforge.net/projects/gnus/}.
- 
+This is the new Gnus Frequently Asked Questions list.
+If you have a Web browser, the official hypertext version is at
+@uref{http://my.gnus.org/FAQ/},
+the Docbook source is available from
+@uref{http://sourceforge.net/projects/gnus/, http://sourceforge.net}.
+
+Please submit features and suggestions to the 
+@email{faq-discuss@@my.gnus.org, FAQ discussion list}.
+The list is protected against junk mail with
+@uref{http://smarden.org/qconfirm/index.html, qconfirm}. As
+a subscriber, your submissions will automatically pass.  You can
+also subscribe to the list by sending a blank email to
+@email{faq-discuss-subscribe@@my.gnus.org, faq-discuss-subscribe@@my.gnus.org}
+and @uref{http://mail1.kens.com/cgi-bin/ezmlm-browse?command=monthbythread%26list=faq-discuss, browse
+the archive}.
 
- Please submit features and suggestions to the 
- @email{faq-discuss@@my.gnus.org,FAQ discussion list}.
- The list is protected against junk mail with
- @uref{http://smarden.org/qconfirm/index.html,qconfirm, qconfirm}. As
- a subscriber, your submissions will automatically pass. You can
- also subscribe to the list by sending a blank email to
- @email{faq-discuss-subscribe@@my.gnus.org}
- and
- @uref{http://mail1.kens.com/cgi-bin/ezmlm-browse?command=monthbythread%26list=faq-discuss,browse
- the archive, browse the archive}. 
- 
-@node FAQ - Introduction, FAQ 1 - Installation, Frequently Asked Questions, Frequently Asked Questions
-@comment  node-name,  next,  previous,  up
-@heading Introduction
+@node FAQ - Changes
+@subheading Changes
 
-This is the Gnus Frequently Asked Questions list.
 
-Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented
- as a part of Emacs. It's been around in some form for almost a decade
- now, and has been distributed as a standard part of Emacs for much of
- that time. Gnus 5 is the latest (and greatest) incarnation. The
- original version was called GNUS, and was written by Masanobu UMEDA.
- When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and
- decided to rewrite Gnus.
-
- Its biggest strength is the fact that it is extremely
- customizable. It is somewhat intimidating at first glance, but
- most of the complexity can be ignored until you're ready to take
- advantage of it. If you receive a reasonable volume of e-mail
- (you're on various mailing lists), or you would like to read
- high-volume mailing lists but cannot keep up with them, or read
- high volume newsgroups or are just bored, then Gnus is what you
- want.
-
- This FAQ was maintained by Justin Sheehy until March 2002. He
- would like to thank Steve Baur and Per Abrahamsen for doing a wonderful
- job with this FAQ before him. We would like to do the same - thanks,
- Justin!
- 
 
- If you have a Web browser, the official hypertext version is at:@*
- @uref{http://my.gnus.org/FAQ/}.
- This version is much nicer than the unofficial hypertext
- versions that are archived at Utrecht, Oxford, Smart Pages, Ohio
- State, and other FAQ archives. See the resources question below
- if you want information on obtaining it in another format.
- 
+@itemize @bullet
+
+@item
+Updated FAQ to reflect release of Gnus 5.10 and start of
+No Gnus development.
+@end itemize
 
- The information contained here was compiled with the assistance
- of the Gnus development mailing list, and any errors or
- misprints are the my.gnus.org team's fault, sorry.
+@node FAQ - Introduction
+@subheading Introduction
 
+This is the Gnus Frequently Asked Questions list.
 
-@ifnottex
-@node FAQ 1 - Installation, FAQ 2 - Startup / Group buffer, FAQ - Introduction, Frequently Asked Questions
-@end ifnottex
-@subsection Installation
+Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented
+as a part of Emacs. It's been around in some form for almost a decade
+now, and has been distributed as a standard part of Emacs for much of
+that time. Gnus 5 is the latest (and greatest) incarnation. The
+original version was called GNUS, and was written by Masanobu UMEDA.
+When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and
+decided to rewrite Gnus.
+
+Its biggest strength is the fact that it is extremely
+customizable. It is somewhat intimidating at first glance, but
+most of the complexity can be ignored until you're ready to take
+advantage of it. If you receive a reasonable volume of e-mail
+(you're on various mailing lists), or you would like to read
+high-volume mailing lists but cannot keep up with them, or read
+high volume newsgroups or are just bored, then Gnus is what you
+want.
+
+This FAQ was maintained by Justin Sheehy until March 2002. He
+would like to thank Steve Baur and Per Abrahamsen for doing a wonderful
+job with this FAQ before him. We would like to do the same - thanks,
+Justin!
+
+If you have a Web browser, the official hypertext version is at:
+@uref{http://my.gnus.org/FAQ/}.
+This version is much nicer than the unofficial hypertext
+versions that are archived at Utrecht, Oxford, Smart Pages, Ohio
+State, and other FAQ archives. See the resources question below
+if you want information on obtaining it in another format.
+
+The information contained here was compiled with the assistance
+of the Gnus development mailing list, and any errors or
+misprints are the my.gnus.org team's fault, sorry.
+
+@node FAQ 1 - Installation FAQ
+@subsection Installation FAQ
 
 @menu
-* [1.1]::   What is the latest version of Gnus?
-* [1.2]::   What's new in 5.10.0?
-* [1.3]::   Where and how to get Gnus?
-* [1.4]::   What to do with the tarball now? 
-* [1.5]::   Which version of Emacs do I need?
-* [1.6]::   How do I run Gnus on both Emacs and XEmacs?
+* [1.1]::    What is the latest version of Gnus?
+* [1.2]::    What's new in 5.10?
+* [1.3]::    Where and how to get Gnus?
+* [1.4]::    What to do with the tarball now?
+* [1.5]::    I sometimes read references to No Gnus and Oort Gnus, what
+             are those?
+* [1.6]::    Which version of Emacs do I need?
+* [1.7]::    How do I run Gnus on both Emacs and XEmacs?
 @end menu
 
-
-@ifnottex
-@node [1.1], [1.2], FAQ 1 - Installation, FAQ 1 - Installation
-@end ifnottex
-@subsubheading Question 1.1: 
+@node [1.1]
+@subsubheading Question 1.1
 
 What is the latest version of Gnus?
 
-Answer: 
-
- Jingle please: Gnus 5.10.0 is released, get it while it's
- hot! As well as the step in version number is rather
- small, Gnus 5.10 has tons of new features which you
- shouldn't miss, however if you are cautious, you might
- prefer to stay with 5.8.8 respectively 5.9 (they are
- basically the same) until some bugfix releases are out.
- 
-@ifnottex
-@node [1.2], [1.3], [1.1], FAQ 1 - Installation
-@end ifnottex
-@subsubheading Question 1.2: 
-
-What's new in 5.10.0?
-
-Answer: 
-
- First of all, you should have a look into the file
- GNUS-NEWS in the toplevel directory of the Gnus tarball,
- there the most important changes are listed. Here's a
- short list of the changes I find especially
- important/interesting:
- 
+@subsubheading Answer
 
- 
+Jingle please: Gnus 5.10 is released, get it while it's
+hot! As well as the step in version number is rather
+small, Gnus 5.10 has tons of new features which you
+shouldn't miss. The current release (5.10.6) should be at
+least as stable as the latest release of the 5.8 series.
+
+@node [1.2]
+@subsubheading Question 1.2
+
+What's new in 5.10?
+
+@subsubheading Answer
+
+First of all, you should have a look into the file
+GNUS-NEWS in the toplevel directory of the Gnus tarball,
+there the most important changes are listed. Here's a
+short list of the changes I find especially
+important/interesting:
 
-@itemize @bullet{}
+@itemize @bullet
 
 @item
- Major rewrite of the Gnus agent, Gnus agent is now
- active by default.
- 
+Major rewrite of the Gnus agent, Gnus agent is now
+active by default.
+
 @item
- Many new article washing functions for dealing with
- ugly formatted articles.
- 
+Many new article washing functions for dealing with
+ugly formatted articles.
+
 @item
- Anti Spam features.
- 
+Anti Spam features.
+
 @item
- message-utils now included in Gnus.
- 
+Message-utils now included in Gnus.
+
 @item
- New format specifiers for summary lines, e.g. %B for
- a complex trn-style thread tree.
- 
+New format specifiers for summary lines, e.g. %B for
+a complex trn-style thread tree.
 @end itemize
- 
-@ifnottex
-@node [1.3], [1.4], [1.2], FAQ 1 - Installation
-@end ifnottex
-@subsubheading Question 1.3: 
-
-Where and how to get Gnus?
 
-Answer: 
+@node [1.3]
+@subsubheading Question 1.3
 
- The latest released version of Gnus isn't included in
- Emacs 21 and until now it also isn't available through the
- package system of XEmacs 21.4, therefor you should get the
- Gnus tarball from
- @uref{http://www.gnus.org/dist/gnus.tar.gz}
- or via anonymous FTP from 
- @uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}.
- 
-@ifnottex
-@node [1.4], [1.5], [1.3], FAQ 1 - Installation
-@end ifnottex
-@subsubheading Question 1.4: 
+Where and how to get Gnus?
 
- What to do with the tarball now?
- 
+@subsubheading Answer
 
-Answer: 
-
- Untar it via @samp{tar xvzf gnus.tar.gz} and do the common 
- @samp{./configure; make; make install} circle.
- (under MS-Windows either get the Cygwin environment from
- @uref{http://www.cygwin.com}
- which allows you to do what's described above or unpack the
- tarball with some packer (e.g. Winace from
- @uref{http://www.winace.com})
- and use the batch-file make.bat included in the tarball to install
- Gnus. If you don't want to (or aren't allowed to) install Gnus
- system-wide, you can install it in your home directory and add the
- following lines to your ~/.xemacs/init.el or ~/.emacs:
- 
+The latest released version of Gnus isn't included in
+Emacs 21, therefor you should get the Gnus tarball from
+@uref{http://www.gnus.org/dist/gnus.tar.gz}
+or via anonymous FTP from 
+@uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}.
+If you use XEmacs instead of Emacs you can use XEmacs'
+package system instead.
+
+@node [1.4]
+@subsubheading Question 1.4
+
+What to do with the tarball now?
+
+@subsubheading Answer
+
+Untar it via @samp{tar xvzf gnus.tar.gz} and do the common 
+@samp{./configure; make; make install} circle.
+(under MS-Windows either get the Cygwin environment from
+@uref{http://www.cygwin.com}
+which allows you to do what's described above or unpack the
+tarball with some packer (e.g. Winace from
+@uref{http://www.winace.com})
+and use the batch-file make.bat included in the tarball to install
+Gnus.) If you don't want to (or aren't allowed to) install Gnus
+system-wide, you can install it in your home directory and add the
+following lines to your ~/.xemacs/init.el or ~/.emacs:
 
 @example
 (add-to-list 'load-path "/path/to/gnus/lisp")
@@ -212,436 +205,395 @@
     (add-to-list 'Info-directory-list "/path/to/gnus/texi/")
   (add-to-list 'Info-default-directory-list "/path/to/gnus/texi/"))
 @end example
-
 @noindent
- Make sure that you don't have any Gnus related stuff
- before this line, on MS Windows use something like
- "C:/path/to/lisp" (yes, "/").
- 
-@ifnottex
-@node [1.5], [1.6], [1.4], FAQ 1 - Installation
-@end ifnottex
-@subsubheading Question 1.5: 
+
+Make sure that you don't have any Gnus related stuff
+before this line, on MS Windows use something like
+"C:/path/to/lisp" (yes, "/").
+
+@node [1.5]
+@subsubheading Question 1.5
+
+I sometimes read references to No Gnus and Oort Gnus,
+what are those?
+
+@subsubheading Answer
+
+Oort Gnus was the name of the development version of
+Gnus, which became Gnus 5.10 in autumn 2003. No Gnus is
+the name of the current development version which will
+once become Gnus 5.12 or Gnus 6. (If you're wondering why
+not 5.11, the odd version numbers are normally used for
+the Gnus versions bundled with Emacs)
+
+@node [1.6]
+@subsubheading Question 1.6
 
 Which version of Emacs do I need?
 
-Answer: 
+@subsubheading Answer
 
- Gnus 5.10.0 requires an Emacs version that is greater
- than or equal to Emacs 20.7 or XEmacs 21.1.
- 
-@ifnottex
-@node [1.6],  , [1.5], FAQ 1 - Installation
-@end ifnottex
-@subsubheading Question 1.6: 
+Gnus 5.10 requires an Emacs version that is greater
+than or equal to Emacs 20.7 or XEmacs 21.1. The
+development versions of Gnus (aka No Gnus) require Emacs
+21 or XEmacs 21.4.
+
+@node [1.7]
+@subsubheading Question 1.7
 
 How do I run Gnus on both Emacs and XEmacs?
 
-Answer: 
+@subsubheading Answer
 
- You can't use the same copy of Gnus in both as the Lisp
- files are byte-compiled to a format which is different
- depending on which Emacs did the compilation. Get one copy
- of Gnus for Emacs and one for XEmacs.
- 
-@ifnottex
-@node FAQ 2 - Startup / Group buffer, FAQ 3 - Getting messages, FAQ 1 - Installation, Frequently Asked Questions
-@end ifnottex
+You can't use the same copy of Gnus in both as the Lisp
+files are byte-compiled to a format which is different
+depending on which Emacs did the compilation. Get one copy
+of Gnus for Emacs and one for XEmacs.
+
+@node FAQ 2 - Startup / Group buffer
 @subsection Startup / Group buffer
 
 @menu
-* [2.1]::   Every time I start Gnus I get a message
-            "Gnus auto-save file exists. Do you want to read it?", 
-            what does this mean and how to prevent it? 
-* [2.2]::   Gnus doesn't remember which groups I'm subscribed to, what's this? 
-* [2.3]::   How to change the format of the lines in Group buffer? 
-* [2.4]::   My group buffer becomes a bit crowded, is there a way to sort my
-            groups into categories so I can easier browse through them?
-* [2.5]::   How to manually sort the groups in Group buffer? How to sort the
-            groups in a topic? 
+* [2.1]::    Every time I start Gnus I get a message "Gnus auto-save
+             file exists. Do you want to read it?", what does this mean and
+             how to prevent it?
+* [2.2]::    Gnus doesn't remember which groups I'm subscribed to,
+             what's this?
+* [2.3]::    How to change the format of the lines in Group buffer?
+* [2.4]::    My group buffer becomes a bit crowded, is there a way to
+             sort my groups into categories so I can easier browse through
+             them?
+* [2.5]::    How to manually sort the groups in Group buffer? How to
+             sort the groups in a topic?
 @end menu
 
-@ifnottex
-@node [2.1], [2.2], FAQ 2 - Startup / Group buffer, FAQ 2 - Startup / Group buffer
-@end ifnottex
-@subsubheading Question 2.1: 
-
- Every time I start Gnus I get a message "Gnus auto-save
- file exists. Do you want to read it?", what does this mean
- and how to prevent it?
- 
+@node [2.1]
+@subsubheading Question 2.1
 
-Answer: 
+Every time I start Gnus I get a message "Gnus auto-save
+file exists. Do you want to read it?", what does this mean
+and how to prevent it?
 
- This message means that the last time you used Gnus, it
- wasn't properly exited and therefor couldn't write its
- informations to disk (e.g. which messages you read), you
- are now asked if you want to restore those informations
- from the auto-save file.
- 
+@subsubheading Answer
 
- To prevent this message make sure you exit Gnus
- via @samp{q} in group buffer instead of
- just killing Emacs.
- 
-@ifnottex
-@node [2.2], [2.3], [2.1], FAQ 2 - Startup / Group buffer
-@end ifnottex
-@subsubheading Question: 2.2 
+This message means that the last time you used Gnus, it
+wasn't properly exited and therefor couldn't write its
+informations to disk (e.g. which messages you read), you
+are now asked if you want to restore those informations
+from the auto-save file.
 
- Gnus doesn't remember which groups I'm subscribed to,
- what's this?
- 
+To prevent this message make sure you exit Gnus
+via @samp{q} in group buffer instead of
+just killing Emacs.
 
-Answer: 
+@node [2.2]
+@subsubheading Question 2.2
 
- You get the message described in the q/a pair above while
- starting Gnus, right? It's an other symptom for the same
- problem, so read the answer above.
- 
-@ifnottex
-@node [2.3], [2.4], [2.2], FAQ 2 - Startup / Group buffer
-@end ifnottex
-@subsubheading Question 2.3: 
+Gnus doesn't remember which groups I'm subscribed to,
+what's this?
 
- How to change the format of the lines in Group buffer?
- 
+@subsubheading Answer
 
-Answer: 
+You get the message described in the q/a pair above while
+starting Gnus, right? It's an other symptom for the same
+problem, so read the answer above.
 
- You've got to tweak the value of the variable
- gnus-group-line-format. See the manual node "Group Line
- Specification" for information on how to do this. An
- example for this (guess from whose .gnus :-)):
- 
+@node [2.3]
+@subsubheading Question 2.3
 
-@example
+How to change the format of the lines in Group buffer?
 
-(setq gnus-group-line-format "%P%M%S[%5t]%5y : %(%g%)\n")
-            
-@end example
- 
-@ifnottex
-@node [2.4], [2.5], [2.3], FAQ 2 - Startup / Group buffer
-@end ifnottex
-@subsubheading Question 2.4: 
-
- My group buffer becomes a bit crowded, is there a way to
- sort my groups into categories so I can easier browse
- through them?
- 
+@subsubheading Answer
 
-Answer: 
+You've got to tweak the value of the variable
+gnus-group-line-format. See the manual node "Group Line
+Specification" for information on how to do this. An
+example for this (guess from whose .gnus :-)):
 
- Gnus offers the topic mode, it allows you to sort your
- groups in, well, topics, e.g. all groups dealing with
- Linux under the topic linux, all dealing with music under
- the topic music and all dealing with scottish music under
- the topic scottish which is a subtopic of music.
- 
-
- To enter topic mode, just hit t while in Group buffer. Now
- you can use @samp{T n} to create a topic
- at point and @samp{T m} to move a group to
- a specific topic. For more commands see the manual or the
- menu. You might want to include the %P specifier at the
- beginning of your gnus-group-line-format variable to have
- the groups nicely indented.
- 
-@ifnottex
-@node [2.5],  , [2.4], FAQ 2 - Startup / Group buffer
-@end ifnottex
-@subsubheading Question 2.5: 
+@example
+(setq gnus-group-line-format "%P%M%S[%5t]%5y : %(%g%)\n")
+@end example
+@noindent
 
- How to manually sort the groups in Group buffer? How to
- sort the groups in a topic?
- 
+@node [2.4]
+@subsubheading Question 2.4
 
-Answer: 
+My group buffer becomes a bit crowded, is there a way to
+sort my groups into categories so I can easier browse
+through them?
+
+@subsubheading Answer
+
+Gnus offers the topic mode, it allows you to sort your
+groups in, well, topics, e.g. all groups dealing with
+Linux under the topic linux, all dealing with music under
+the topic music and all dealing with scottish music under
+the topic scottish which is a subtopic of music.
+
+To enter topic mode, just hit t while in Group buffer. Now
+you can use @samp{T n} to create a topic
+at point and @samp{T m} to move a group to
+a specific topic. For more commands see the manual or the
+menu. You might want to include the %P specifier at the
+beginning of your gnus-group-line-format variable to have
+the groups nicely indented.
+
+@node [2.5]
+@subsubheading Question 2.5
+
+How to manually sort the groups in Group buffer? How to
+sort the groups in a topic?
+
+@subsubheading Answer
+
+Move point over the group you want to move and
+hit @samp{C-k}, now move point to the
+place where you want the group to be and
+hit @samp{C-y}.
 
- Move point over the group you want to move and
- hit @samp{C-k}, now move point to the
- place where you want the group to be and
- hit @samp{C-y}.
- 
-@ifnottex
-@node FAQ 3 - Getting messages, FAQ 4 - Reading messages, FAQ 2 - Startup / Group buffer, Frequently Asked Questions
-@end ifnottex
-@subsection Getting messages
+@node FAQ 3 - Getting Messages
+@subsection Getting Messages
 
 @menu
-* [3.1]::   I just installed Gnus, started it via M-x gnus but it only says
-            "nntp (news) open error", what to do? 
-* [3.2]::   I'm working under Windows and have no idea what ~/.gnus means. 
-* [3.3]::   My news server requires authentication, how to store user name
-            and password on disk? 
-* [3.4]::   Gnus seems to start up OK, but I can't find out how to
-            subscribe to a group. 
-* [3.5]::   Gnus doesn't show all groups / Gnus says I'm not allowed to
-            post on this server as well as I am, what's that?
-* [3.6]::   I want Gnus to fetch news from several servers, is this possible? 
-* [3.7]::   And how about local spool files? 
-* [3.8]::   OK, reading news works now, but I want to be able to read my mail
-            with Gnus, too. How to do it? 
-* [3.9]::   And what about IMAP? 
-* [3.10]::  At the office we use one of those MS Exchange servers,
-            can I use Gnus to read my mail from it? 
-* [3.11]::  Can I tell Gnus not to delete the mails on the server
-            it retrieves via POP3? 
+* [3.1]::     I just installed Gnus, started it via  @samp{M-x gnus} 
+              but it only says "nntp (news) open error", what to do?
+* [3.2]::     I'm working under Windows and have no idea what ~/.gnus.el
+              means.
+* [3.3]::     My news server requires authentication, how to store user
+              name and password on disk?
+* [3.4]::     Gnus seems to start up OK, but I can't find out how to
+              subscribe to a group.
+* [3.5]::     Gnus doesn't show all groups / Gnus says I'm not allowed
+              to post on this server as well as I am, what's that?
+* [3.6]::     I want Gnus to fetch news from several servers, is this
+              possible?
+* [3.7]::     And how about local spool files?
+* [3.8]::     OK, reading news works now, but I want to be able to read
+              my mail with Gnus, too. How to do it?
+* [3.9]::     And what about IMAP?
+* [3.10]::    At the office we use one of those MS Exchange servers, can
+              I use Gnus to read my mail from it?
+* [3.11]::    Can I tell Gnus not to delete the mails on the server it
+              retrieves via POP3?
 @end menu
 
-@ifnottex
-@node [3.1], [3.2], FAQ 3 - Getting messages, FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.1: 
-
- I just installed Gnus, started it via 
- @samp{M-x gnus} 
- but it only says "nntp (news) open error", what to do?
- 
-
-Answer: 
+@node [3.1]
+@subsubheading Question 3.1
 
- You've got to tell Gnus where to fetch the news from. Read
- the documentation for information on how to do this. As a
- first start, put those lines in ~/.gnus:
- 
+I just installed Gnus, started it via 
+@samp{M-x gnus} 
+but it only says "nntp (news) open error", what to do?
+
+@subsubheading Answer
+
+You've got to tell Gnus where to fetch the news from. Read
+the documentation for information on how to do this. As a
+first start, put those lines in ~/.gnus.el:
 
 @example
 (setq gnus-select-method '(nntp "news.yourprovider.net"))
 (setq user-mail-address "you@@yourprovider.net")
 (setq user-full-name "Your Name")
 @end example
- 
-@ifnottex
-@node [3.2], [3.3], [3.1], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.2: 
+@noindent
 
- I'm working under Windows and have no idea what ~/.gnus means.
- 
+@node [3.2]
+@subsubheading Question 3.2
 
-Answer: 
+I'm working under Windows and have no idea what ~/.gnus.el means.
 
- The ~/ means the home directory where Gnus and Emacs look for the
-configuration files. However, you don't really need to know what this
-means, it suffices that Emacs knows what it means :-) You can type
-@samp{C-x C-f ~/.gnus RET } (yes, with the forward slash, even on
-Windows), and Emacs will open the right file for you. (It will most
-likely be new, and thus empty.)  However, I'd discourage you from
-doing so, since the directory Emacs chooses will most certainly not be
-what you want, so let's do it the correct way.  The first thing you've
-got to do is to create a suitable directory (no blanks in directory
-name please) e.g. @file{c:\myhome}. Then you must set the environment
-variable HOME to this directory. To do this under Win9x or Me include
-the line
- 
+@subsubheading Answer
 
-@example
+The ~/ means the home directory where Gnus and Emacs look
+for the configuration files.  However, you don't really
+need to know what this means, it suffices that Emacs knows
+what it means :-) You can type 
+@samp{C-x C-f ~/.gnus.el RET } 
+(yes, with the forward slash, even on Windows), and
+Emacs will open the right file for you.  (It will most
+likely be new, and thus empty.)
+However, I'd discourage you from doing so, since the
+directory Emacs chooses will most certainly not be what
+you want, so let's do it the correct way. 
+The first thing you've got to do is to
+create a suitable directory (no blanks in directory name
+please) e.g. c:\myhome. Then you must set the environment
+variable HOME to this directory.  To do this under Win9x
+or Me include the line
 
+@example
 SET HOME=C:\myhome
-	    
 @end example
-
 @noindent
- in your autoexec.bat and reboot. Under NT, 2000 and XP,
- hit Winkey+Pause/Break to enter system options (if it
- doesn't work, go to Control Panel -> System). There you'll
- find the possibility to set environment variables, create
- a new one with name HOME and value @file{c:\myhome}, a reboot is
- not necessary.
- 
 
- Now to create ~/.gnus, say
- @samp{C-x C-f ~/.gnus RET C-x C-s}.
- in Emacs. 
- 
-@ifnottex
-@node [3.3], [3.4], [3.2], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.3: 
+in your autoexec.bat and reboot.  Under NT, 2000 and XP,
+hit Winkey+Pause/Break to enter system options (if it
+doesn't work, go to Control Panel -> System). There you'll
+find the possibility to set environment variables, create
+a new one with name HOME and value C:\myhome, a reboot is
+not necessary.
+
+Now to create ~/.gnus.el, say
+@samp{C-x C-f ~/.gnus.el RET C-x C-s}.
+in Emacs.
+
+@node [3.3]
+@subsubheading Question 3.3
 
- My news server requires authentication, how to store
- user name and password on disk?
- 
+My news server requires authentication, how to store
+user name and password on disk?
 
-Answer: 
+@subsubheading Answer
 
- Create a file ~/.authinfo which includes for each server a line like this
- 
+Create a file ~/.authinfo which includes for each server a line like this
 
 @example
 machine news.yourprovider.net login YourUserName password YourPassword
 @end example
-
 @noindent
 .
- Make sure that the file isn't readable to others if you
- work on a OS which is capable of doing so. (Under Unix
- say 
-
+Make sure that the file isn't readable to others if you
+work on a OS which is capable of doing so.  (Under Unix
+say 
 @example
 chmod 600 ~/.authinfo
 @end example
-
 @noindent
- in a shell.)
- 
-@ifnottex
-@node [3.4], [3.5], [3.3], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.4: 
 
- Gnus seems to start up OK, but I can't find out how to
- subscribe to a group.
- 
+in a shell.)
 
-Answer: 
+@node [3.4]
+@subsubheading Question 3.4
 
- If you know the name of the group say @samp{U
- name.of.group RET} in group buffer (use the
- tab-completion Luke). Otherwise hit ^ in group buffer,
- this brings you to the server buffer. Now place point (the
- cursor) over the server which carries the group you want,
- hit @samp{RET}, move point to the group
- you want to subscribe to and say @samp{u}
- to subscribe to it.
- 
-@ifnottex
-@node [3.5], [3.6], [3.4], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.5: 
+Gnus seems to start up OK, but I can't find out how to
+subscribe to a group.
 
- Gnus doesn't show all groups / Gnus says I'm not allowed to
- post on this server as well as I am, what's that?
- 
+@subsubheading Answer
 
-Answer: 
+If you know the name of the group say @samp{U
+name.of.group RET} in group buffer (use the
+tab-completion Luke). Otherwise hit ^ in group buffer,
+this brings you to the server buffer. Now place point (the
+cursor) over the server which carries the group you want,
+hit @samp{RET}, move point to the group
+you want to subscribe to and say @samp{u}
+to subscribe to it.
 
- Some providers allow restricted anonymous access and full
- access only after authorization. To make Gnus send authinfo
- to those servers append 
- 
+@node [3.5]
+@subsubheading Question 3.5
+
+Gnus doesn't show all groups / Gnus says I'm not allowed to
+post on this server as well as I am, what's that?
+
+@subsubheading Answer
+
+Some providers allow restricted anonymous access and full
+access only after authorization. To make Gnus send authinfo
+to those servers append 
 
 @example
 force yes
 @end example
- 
-
 @noindent
- to the line for those servers in ~/.authinfo.
  
-@ifnottex
-@node [3.6], [3.7], [3.5], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.6: 
+to the line for those servers in ~/.authinfo.
 
- I want Gnus to fetch news from several servers, is this possible?
- 
+@node [3.6]
+@subsubheading Question 3.6
 
-Answer: 
+I want Gnus to fetch news from several servers, is this possible?
 
- Of course. You can specify more sources for articles in the
- variable gnus-secondary-select-methods. Add something like
- this in ~/.gnus:
- 
+@subsubheading Answer
+
+Of course. You can specify more sources for articles in the
+variable gnus-secondary-select-methods. Add something like
+this in ~/.gnus.el:
 
 @example
-(add-to-list 'gnus-secondary-select-methods 
-	     '(nntp "news.yourSecondProvider.net"))
-(add-to-list 'gnus-secondary-select-methods 
-	     '(nntp "news.yourThirdProvider.net"))	    
+(add-to-list 'gnus-secondary-select-methods
+             '(nntp "news.yourSecondProvider.net"))
+(add-to-list 'gnus-secondary-select-methods
+             '(nntp "news.yourThirdProvider.net"))
 @end example
- 
-@ifnottex
-@node [3.7], [3.8], [3.6], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.7: 
+@noindent
 
- And how about local spool files?
- 
+@node [3.7]
+@subsubheading Question 3.7
 
-Answer: 
+And how about local spool files?
 
- No problem, this is just one more select method called
- nnspool, so you want this:
- 
+@subsubheading Answer
+
+No problem, this is just one more select method called
+nnspool, so you want this:
 
 @example
 (add-to-list 'gnus-secondary-select-methods '(nnspool ""))
 @end example
-
 @noindent
- Or this if you don't want an NNTP Server as primary news source:
- 
+
+Or this if you don't want an NNTP Server as primary news source:
 
 @example
 (setq gnus-select-method '(nnspool ""))
 @end example
-
 @noindent
- Gnus will look for the spool file in /usr/spool/news, if you
- want something different, change the line above to something like this:
- 
+
+Gnus will look for the spool file in /usr/spool/news, if you
+want something different, change the line above to something like this:
 
 @example
 (add-to-list 'gnus-secondary-select-methods
-             '(nnspool "" (nnspool-directory "/usr/local/myspoolddir")))
+             '(nnspool ""
+		       (nnspool-directory "/usr/local/myspoolddir")))
 @end example
-
 @noindent
- This sets the spool directory for this server only.
- You might have to specify more stuff like the program used
- to post articles, see the Gnus manual on how to do this.
- 
-@ifnottex
-@node [3.8], [3.9], [3.7], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.8: 
 
- OK, reading news works now, but I want to be able to read my mail
- with Gnus, too. How to do it?
- 
-
-Answer: 
-
- That's a bit harder since there are many possible sources
- for mail, many possible ways for storing mail and many
- different ways for sending mail. The most common cases are
- these: 1: You want to read your mail from a pop3 server and
- send them directly to a SMTP Server 2: Some program like
- fetchmail retrieves your mail and stores it on disk from
- where Gnus shall read it. Outgoing mail is sent by
- Sendmail, Postfix or some other MTA. Sometimes, you even
- need a combination of the above cases.
- 
-
- However, the first thing to do is to tell Gnus in which way
- it should store the mail, in Gnus terminology which back end
- to use. Gnus supports many different back ends, the most
- commonly used one is nnml. It stores every mail in one file
- and is therefor quite fast. However you might prefer a one
- file per group approach if your file system has problems with
- many small files, the nnfolder back end is then probably the
- choice for you. To use nnml add the following to ~/.gnus:
- 
+This sets the spool directory for this server only.
+You might have to specify more stuff like the program used
+to post articles, see the Gnus manual on how to do this.
+
+@node [3.8]
+@subsubheading Question 3.8
+
+OK, reading news works now, but I want to be able to read my mail
+with Gnus, too. How to do it?
+
+@subsubheading Answer
+
+That's a bit harder since there are many possible sources
+for mail, many possible ways for storing mail and many
+different ways for sending mail. The most common cases are
+these: 1: You want to read your mail from a pop3 server and
+send them directly to a SMTP Server 2: Some program like
+fetchmail retrieves your mail and stores it on disk from
+where Gnus shall read it. Outgoing mail is sent by
+Sendmail, Postfix or some other MTA. Sometimes, you even
+need a combination of the above cases.
+
+However, the first thing to do is to tell Gnus in which way
+it should store the mail, in Gnus terminology which back end
+to use. Gnus supports many different back ends, the most
+commonly used one is nnml. It stores every mail in one file
+and is therefor quite fast. However you might prefer a one
+file per group approach if your file system has problems with
+many small files, the nnfolder back end is then probably the
+choice for you.  To use nnml add the following to ~/.gnus.el:
 
 @example
 (add-to-list 'gnus-secondary-select-methods '(nnml ""))
 @end example
-
 @noindent
- As you might have guessed, if you want nnfolder, it's
- 
+
+As you might have guessed, if you want nnfolder, it's
 
 @example
 (add-to-list 'gnus-secondary-select-methods '(nnfolder ""))
 @end example
- 
+@noindent
 
- Now we need to tell Gnus, where to get it's mail from. If
- it's a POP3 server, then you need something like this:
- 
+Now we need to tell Gnus, where to get it's mail from. If
+it's a POP3 server, then you need something like this:
 
 @example
 (eval-after-load "mail-source"
@@ -649,75 +601,68 @@
                                     :user "yourUserName"
                                     :password "yourPassword")))
 @end example
-
 @noindent
- Make sure ~/.gnus isn't readable to others if you store
- your password there. If you want to read your mail from a
- traditional spool file on your local machine, it's
- 
+
+Make sure ~/.gnus.el isn't readable to others if you store
+your password there. If you want to read your mail from a
+traditional spool file on your local machine, it's
 
 @example
 (eval-after-load "mail-source"
-  '(add-to-list 'mail-sources '(file :path "/path/to/spool/file")))
+  '(add-to-list 'mail-sources '(file :path "/path/to/spool/file"))
 @end example
-
 @noindent
- If it's a Maildir, with one file per message as used by
- postfix, Qmail and (optionally) fetchmail it's
- 
+
+If it's a Maildir, with one file per message as used by
+postfix, Qmail and (optionally) fetchmail it's
 
 @example
 (eval-after-load "mail-source"
   '(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/"
                                         :subdirs ("cur" "new")))
 @end example
-
 @noindent
- And finally if you want to read your mail from several files
- in one directory, for example because procmail already split your
- mail, it's
- 
+
+And finally if you want to read your mail from several files
+in one directory, for example because procmail already split your
+mail, it's
 
 @example
 (eval-after-load "mail-source"
-  '(add-to-list 'mail-sources '(directory :path "/path/to/procmail-dir/"
-                                          :suffix ".prcml"))
+  '(add-to-list 'mail-sources
+		'(directory :path "/path/to/procmail-dir/"
+			    :suffix ".prcml")))
 @end example
-
 @noindent
- Where :suffix ".prcml" tells Gnus only to use files with the
- suffix .prcml.
- 
 
- OK, now you only need to tell Gnus how to send mail. If you
- want to send mail via sendmail (or whichever MTA is playing
- the role of sendmail on your system), you don't need to do
- anything. However, if you want to send your mail to an
- SMTP Server you need the following in your ~/.gnus
- 
+Where :suffix ".prcml" tells Gnus only to use files with the
+suffix .prcml.
+
+OK, now you only need to tell Gnus how to send mail. If you
+want to send mail via sendmail (or whichever MTA is playing
+the role of sendmail on your system), you don't need to do
+anything. However, if you want to send your mail to an
+SMTP Server you need the following in your ~/.gnus.el
 
 @example
 (setq send-mail-function 'smtpmail-send-it)
 (setq message-send-mail-function 'smtpmail-send-it)
 (setq smtpmail-default-smtp-server "smtp.yourProvider.net")
 @end example
- 
-@ifnottex
-@node [3.9], [3.10], [3.8], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.9: 
+@noindent
 
- And what about IMAP?
- 
+@node [3.9]
+@subsubheading Question 3.9
 
-Answer: 
+And what about IMAP?
 
- There are two ways of using IMAP with Gnus. The first one is
- to use IMAP like POP3, that means Gnus fetches the mail from
- the IMAP server and stores it on disk. If you want to do
- this (you don't really want to do this) add the following to
- ~/.gnus
- 
+@subsubheading Answer
+
+There are two ways of using IMAP with Gnus. The first one is
+to use IMAP like POP3, that means Gnus fetches the mail from
+the IMAP server and stores it on disk. If you want to do
+this (you don't really want to do this) add the following to
+~/.gnus.el
 
 @example
 (add-to-list 'mail-sources '(imap :server "mail.mycorp.com"
@@ -728,249 +673,215 @@
                                   :mailbox "INBOX"
                                   :fetchflag "\\Seen"))
 @end example
-
 @noindent
- You might have to tweak the values for stream and/or
- authentification, see the Gnus manual node "Mail Source
- Specifiers" for possible values.
- 
 
- If you want to use IMAP the way it's intended, you've got to
- follow a different approach. You've got to add the nnimap
- back end to your select method and give the information
- about the server there.
- 
+You might have to tweak the values for stream and/or
+authentification, see the Gnus manual node "Mail Source
+Specifiers" for possible values.
+
+If you want to use IMAP the way it's intended, you've got to
+follow a different approach.  You've got to add the nnimap
+back end to your select method and give the information
+about the server there.
 
 @example
-(add-to-list 
- 'gnus-secondary-select-methods
- '(nnimap "Give the baby a name"
-	  (nnimap-address "imap.yourProvider.net")
-	  (nnimap-port 143)
-	  (nnimap-list-pattern "archive.*")))
+(add-to-list 'gnus-secondary-select-methods
+	     '(nnimap "Give the baby a name"
+		      (nnimap-address "imap.yourProvider.net")
+		      (nnimap-port 143)
+		      (nnimap-list-pattern "archive.*")))
 @end example
-
 @noindent
- Again, you might have to specify how to authenticate to the
- server if Gnus can't guess the correct way, see the Manual
- Node "IMAP" for detailed information.
- 
-@ifnottex
-@node [3.10], [3.11], [3.9], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.10: 
-
- At the office we use one of those MS Exchange servers, can I use
- Gnus to read my mail from it?
- 
-
-Answer: 
-
- Offer your administrator a pair of new running shoes for
- activating IMAP on the server and follow the instructions
- above.
- 
-@ifnottex
-@node [3.11],  , [3.10], FAQ 3 - Getting messages
-@end ifnottex
-@subsubheading Question 3.11: 
 
- Can I tell Gnus not to delete the mails on the server it
- retrieves via POP3?
- 
-
-Answer: 
-
- First of all, that's not the way POP3 is intended to work,
- if you have the possibility, you should use the IMAP
- Protocol if you want your messages to stay on the
- server. Nevertheless there might be situations where you
- need the feature, but sadly Gnus itself has no predefined
- functionality to do so.
- 
+Again, you might have to specify how to authenticate to the
+server if Gnus can't guess the correct way, see the Manual
+Node "IMAP" for detailed information.
+
+@node [3.10]
+@subsubheading Question 3.10
+
+At the office we use one of those MS Exchange servers, can I use
+Gnus to read my mail from it?
+
+@subsubheading Answer
+
+Offer your administrator a pair of new running shoes for
+activating IMAP on the server and follow the instructions
+above.
+
+@node [3.11]
+@subsubheading Question 3.11
+
+Can I tell Gnus not to delete the mails on the server it
+retrieves via POP3?
+
+@subsubheading Answer
+
+First of all, that's not the way POP3 is intended to work,
+if you have the possibility, you should use the IMAP
+Protocol if you want your messages to stay on the
+server. Nevertheless there might be situations where you
+need the feature, but sadly Gnus itself has no predefined
+functionality to do so.
+
+However this is Gnus county so there are possibilities to
+achieve what you want. The easiest way is to get an external
+program which retrieves copies of the mail and stores them
+on disk, so Gnus can read it from there. On Unix systems you
+could use e.g. fetchmail for this, on MS Windows you can use
+Hamster, an excellent local news and mail server.
+
+The other solution would be, to replace the method Gnus
+uses to get mail from POP3 servers by one which is capable
+of leaving the mail on the server. If you use XEmacs, get
+the package mail-lib, it includes an enhanced pop3.el,
+look in the file, there's documentation on how to tell
+Gnus to use it and not to delete the retrieved mail. For
+GNU Emacs look for the file epop3.el which can do the same
+(If you know the home of this file, please send me an
+e-mail). You can also tell Gnus to use an external program
+(e.g. fetchmail) to fetch your mail, see the info node
+"Mail Source Specifiers" in the Gnus manual on how to do
+it.
 
- However this is Gnus county so there are possibilities to
- achieve what you want. The easiest way is to get an external
- program which retrieves copies of the mail and stores them
- on disk, so Gnus can read it from there. On Unix systems you
- could use e.g. fetchmail for this, on MS Windows you can use
- Hamster, an excellent local news and mail server.
- 
-
- The other solution would be, to replace the method Gnus
- uses to get mail from POP3 servers by one which is capable
- of leaving the mail on the server. If you use XEmacs, get
- the package mail-lib, it includes an enhanced pop3.el,
- look in the file, there's documentation on how to tell
- Gnus to use it and not to delete the retrieved mail. For
- GNU Emacs look for the file epop3.el which can do the same
- (If you know the home of this file, please send me an
- e-mail). You can also tell Gnus to use an external program
- (e.g. fetchmail) to fetch your mail, see the info node
- "Mail Source Specifiers" in the Gnus manual on how to do
- it.
- 
-
-@ifnottex
-@node FAQ 4 - Reading messages, FAQ 5 - Composing messages, FAQ 3 - Getting messages, Frequently Asked Questions
-@end ifnottex
+@node FAQ 4 - Reading messages
 @subsection Reading messages
 
 @menu
-* [4.1]::   When I enter a group, all read messages are gone.
-            How to view them again? 
-* [4.2]::   How to tell Gnus to show an important message every time
-            I enter a group, even when it's read? 
-* [4.3]::   How to view the headers of a message? 
-* [4.4]::   How to view the raw unformatted message? 
-* [4.5]::   How can I change the headers Gnus displays by default at the
-            top of the article buffer? 
-* [4.6]::   I'd like Gnus NOT to render HTML-mails but show me the
-            text part if it's available. How to do it? 
-* [4.7]::   Can I use some other browser than w3 to render my HTML-mails? 
-* [4.8]::   Is there anything I can do to make poorly formatted mails
-            more readable? 
-* [4.9]::   Is there a way to automatically ignore posts by specific authors
-            or with specific words in the subject? And can I highlight more
-            interesting ones in some way? 
-* [4.10]::  How can I disable threading in some (e.g. mail-) groups, or set
-            other variables specific for some groups? 
-* [4.11]::  Can I highlight messages written by me and follow-ups to those? 
-* [4.12]::  The number of total messages in a group which Gnus displays in
-            group buffer is by far to high, especially in mail groups.
-            Is this a bug? 
-* [4.13]::  I don't like the layout of summary and article buffer,
-            how to change it?  Perhaps even a three pane display? 
-* [4.14]::  I don't like the way the Summary buffer looks, how to tweak it? 
-* [4.15]::  How to split incoming mails in several groups? 
+* [4.1]::     When I enter a group, all read messages are gone. How to
+              view them again?
+* [4.2]::     How to tell Gnus to show an important message every time I
+              enter a group, even when it's read?
+* [4.3]::     How to view the headers of a message?
+* [4.4]::     How to view the raw unformatted message?
+* [4.5]::     How can I change the headers Gnus displays by default at
+              the top of the article buffer?
+* [4.6]::     I'd like Gnus NOT to render HTML-mails but show me the
+              text part if it's available. How to do it?
+* [4.7]::     Can I use some other browser than w3 to render my
+              HTML-mails?
+* [4.8]::     Is there anything I can do to make poorly formatted mails
+              more readable?
+* [4.9]::     Is there a way to automatically ignore posts by specific
+              authors or with specific words in the subject? And can I highlight
+              more interesting ones in some way?
+* [4.10]::    How can I disable threading in some (e.g. mail-) groups,
+              or set other variables specific for some groups?
+* [4.11]::    Can I highlight messages written by me and follow-ups to
+              those?
+* [4.12]::    The number of total messages in a group which Gnus
+              displays in group buffer is by far to high, especially in mail
+              groups. Is this a bug?
+* [4.13]::    I don't like the layout of summary and article buffer, how
+              to change it? Perhaps even a three pane display?
+* [4.14]::    I don't like the way the Summary buffer looks, how to
+              tweak it?
+* [4.15]::    How to split incoming mails in several groups?
 @end menu
 
-@ifnottex
-@node [4.1], [4.2], FAQ 4 - Reading messages, FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.1: 
+@node [4.1]
+@subsubheading Question 4.1
 
- When I enter a group, all read messages are gone. How to view them again?
- 
+When I enter a group, all read messages are gone. How to view them again?
 
-Answer: 
+@subsubheading Answer
 
- If you enter the group by saying 
- @samp{RET}
- in summary buffer with point over the group, only unread and ticked messages are loaded. Say
- @samp{C-u RET}
- instead to load all available messages. If you want only the e.g. 300 newest say
- @samp{C-u 300 RET}
- 
+If you enter the group by saying  
+@samp{RET}
+in group buffer with point over the group, only unread and ticked messages are loaded. Say
+@samp{C-u RET}
+instead to load all available messages. If you want only the e.g. 300 newest say
+@samp{C-u 300 RET}
 
- Loading only unread messages can be annoying if you have threaded view enabled, say
- 
+Loading only unread messages can be annoying if you have threaded view enabled, say
 
 @example
 (setq gnus-fetch-old-headers 'some)
 @end example
- 
-
 @noindent
- in ~/.gnus to load enough old articles to prevent teared threads, replace 'some with t to load
- all articles (Warning: Both settings enlarge the amount of data which is 
- fetched when you enter a group and slow down the process of entering a group).
  
+in ~/.gnus.el to load enough old articles to prevent teared threads, replace 'some with t to load
+all articles (Warning: Both settings enlarge the amount of data which is 
+fetched when you enter a group and slow down the process of entering a group).
 
- If you already use Gnus 5.10.0, you can say 
- @samp{/o N} 
- In summary buffer to load the last N messages, this feature is not available in 5.8.8
- 
+If you already use Gnus 5.10, you can say 
+@samp{/o N} 
+In summary buffer to load the last N messages, this feature is not available in 5.8.8
 
- If you don't want all old messages, but the parent of the message you're just reading,
- you can say @samp{^}, if you want to retrieve the whole thread
- the message you're just reading belongs to, @samp{A T} is your friend.
- 
-@ifnottex
-@node [4.2], [4.3], [4.1], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.2: 
+If you don't want all old messages, but the parent of the message you're just reading,
+you can say @samp{^}, if you want to retrieve the whole thread
+the message you're just reading belongs to, @samp{A T} is your friend.
 
- How to tell Gnus to show an important message every time I
- enter a group, even when it's read?
- 
+@node [4.2]
+@subsubheading Question 4.2
 
-Answer: 
+How to tell Gnus to show an important message every time I
+enter a group, even when it's read?
 
- You can tick important messages. To do this hit
- @samp{u} while point is in summary buffer
- over the message. When you want to remove the mark, hit
- either @samp{d} (this deletes the tick
- mark and set's unread mark) or @samp{M c}
- (which deletes all marks for the message).
- 
-@ifnottex
-@node [4.3], [4.4], [4.2], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.3: 
+@subsubheading Answer
 
- How to view the headers of a message?
- 
+You can tick important messages. To do this hit
+@samp{u} while point is in summary buffer
+over the message. When you want to remove the mark, hit
+either @samp{d} (this deletes the tick
+mark and set's unread mark) or @samp{M c}
+(which deletes all marks for the message).
 
-Answer: 
+@node [4.3]
+@subsubheading Question 4.3
 
- Say @samp{t} 
- to show all headers, one more
- @samp{t} 
- hides them again.
- 
-@ifnottex
-@node [4.4], [4.5], [4.3], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.4: 
+How to view the headers of a message?
 
- How to view the raw unformatted message?
- 
+@subsubheading Answer
 
-Answer: 
+Say @samp{t} 
+to show all headers, one more
+@samp{t} 
+hides them again.
 
- Say 
- @samp{C-u g} 
- to show the raw message
- @samp{g} 
- returns to normal view.
- 
-@ifnottex
-@node [4.5], [4.6], [4.4], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.5: 
+@node [4.4]
+@subsubheading Question 4.4
 
- How can I change the headers Gnus displays by default at
- the top of the article buffer?
- 
+How to view the raw unformatted message?
 
-Answer: 
+@subsubheading Answer
+
+Say 
+@samp{C-u g} 
+to show the raw message
+@samp{g} 
+returns to normal view.
+
+@node [4.5]
+@subsubheading Question 4.5
+
+How can I change the headers Gnus displays by default at
+the top of the article buffer?
+
+@subsubheading Answer
+
+The variable gnus-visible-headers controls which headers
+are shown, its value is a regular expression, header lines
+which match it are shown. So if you want author, subject,
+date, and if the header exists, Followup-To and MUA / NUA
+say this in ~/.gnus.el:
 
- The variable gnus-visible-headers controls which headers
- are shown, its value is a regular expression, header lines
- which match it are shown. So if you want author, subject,
- date, and if the header exists, Followup-To and MUA / NUA
- say this in ~/.gnus:
- 
 @example
-(setq gnus-visible-headers 
-      "^\\(From:\\|Subject:\\|Date:\\|Followup-To:\
-\\|X-Newsreader:\\|User-Agent:\\|X-Mailer:\\)")
+(setq gnus-visible-headers
+      '("^From" "^Subject" "^Date" "^Newsgroups" "^Followup-To"
+	"^User-Agent" "^X-Newsreader" "^X-Mailer"))
 @end example
- 
-@ifnottex
-@node [4.6], [4.7], [4.5], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.6: 
+@noindent
 
- I'd like Gnus NOT to render HTML-mails but show me the
- text part if it's available. How to do it?
- 
+@node [4.6]
+@subsubheading Question 4.6
 
-Answer: 
+I'd like Gnus NOT to render HTML-mails but show me the
+text part if it's available. How to do it?
 
- Say
- 
+@subsubheading Answer
+
+Say
 
 @example
 (eval-after-load "mm-decode"
@@ -978,240 +889,206 @@
       (add-to-list 'mm-discouraged-alternatives "text/html")
       (add-to-list 'mm-discouraged-alternatives "text/richtext")))
 @end example
-
 @noindent
- in ~/.gnus. If you don't want HTML rendered, even if there's no text alternative add
- 
+
+in ~/.gnus.el. If you don't want HTML rendered, even if there's no text alternative add
 
 @example
 (setq mm-automatic-display (remove "text/html" mm-automatic-display))
 @end example
-
 @noindent
- too.
- 
-@ifnottex
-@node [4.7], [4.8], [4.6], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.7: 
 
- Can I use some other browser than w3 to render my HTML-mails?
- 
+too.
 
-Answer: 
+@node [4.7]
+@subsubheading Question 4.7
 
- Only if you use Gnus 5.10.0 or younger. In this case you've got the
- choice between w3, w3m, links, lynx and html2text, which
- one is used can be specified in the variable
- mm-text-html-renderer, so if you want links to render your
- mail say
- 
+Can I use some other browser than w3 to render my HTML-mails?
+
+@subsubheading Answer
+
+Only if you use Gnus 5.10 or younger. In this case you've got the
+choice between w3, w3m, links, lynx and html2text, which
+one is used can be specified in the variable
+mm-text-html-renderer, so if you want links to render your
+mail say
 
 @example
 (setq mm-text-html-renderer 'links)
 @end example
- 
-@ifnottex
-@node [4.8], [4.9], [4.7], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.8: 
-
- Is there anything I can do to make poorly formatted mails
- more readable?
- 
-
-Answer: 
-
- Gnus offers you several functions to "wash" incoming mail,
- you can find them if you browse through the menu, item Article->Washing. The most
- interesting ones are probably "Wrap long lines" (
- @samp{W w}
- ), "Decode ROT13" (
- @samp{W r}
- ) and "Outlook Deuglify" which repairs the dumb quoting used
- by many users of Microsoft products (
- @samp{W Y f} gives you full deuglify.
- See @samp{W Y C-h} or
- have a look at the menus for other deuglifications).
- Outlook deuglify is only available since Gnus 5.10.0.
- 
-@ifnottex
-@node [4.9], [4.10], [4.8], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.9: 
-
- Is there a way to automatically ignore posts by specific
- authors or with specific words in the subject? And can I
- highlight more interesting ones in some way?
- 
+@noindent
 
-Answer: 
+@node [4.8]
+@subsubheading Question 4.8
 
- You want Scoring. Scoring means, that you define rules
- which assign each message an integer value. Depending on
- the value the message is highlighted in summary buffer (if
- it's high, say +2000) or automatically marked read (if the
- value is low, say -800) or some other action happens.
- 
+Is there anything I can do to make poorly formatted mails
+more readable?
 
- There are basically three ways of setting up rules which assign
- the scoring-value to messages. The first and easiest way is to set
- up rules based on the article you are just reading. Say you're
- reading a message by a guy who always writes nonsense and you want
- to ignore his messages in the future. Hit
- @samp{L}, to set up a rule which lowers the score.
- Now Gnus asks you which the criteria for lowering the Score shall
- be. Hit @samp{?} twice to see all possibilities,
- we want @samp{a} which means the author (the from
- header). Now Gnus wants to know which kind of matching we want.
- Hit either @samp{e} for an exact match or
- @samp{s} for substring-match and delete afterwards
- everything but the name to score down all authors with the given
- name no matter which email address is used. Now you need to tell
- Gnus when to apply the rule and how long it should last, hit e.g.
- @samp{p} to apply the rule now and let it last
- forever. If you want to raise the score instead of lowering it say
- @samp{I} instead of @samp{L}.
- 
+@subsubheading Answer
 
- You can also set up rules by hand. To do this say @samp{V
- f} in summary buffer. Then you are asked for the name
- of the score file, it's name.of.group.SCORE for rules valid in
- only one group or all.Score for rules valid in all groups. See the
- Gnus manual for the exact syntax, basically it's one big list
- whose elements are lists again. the first element of those lists
- is the header to score on, then one more list with what to match,
- which score to assign, when to expire the rule and how to do the
- matching. If you find me very interesting, you could e.g. add the
- following to your all.Score:
- 
+Gnus offers you several functions to "wash" incoming mail, you can
+find them if you browse through the menu, item
+Article->Washing. The most interesting ones are probably "Wrap
+long lines" (@samp{W w}), "Decode ROT13"
+(@samp{W r}) and "Outlook Deuglify" which repairs
+the dumb quoting used by many users of Microsoft products
+(@samp{W Y f} gives you full deuglify.
+See @samp{W Y C-h} or have a look at the menus for
+other deuglifications).  Outlook deuglify is only available since
+Gnus 5.10.
+
+@node [4.9]
+@subsubheading Question 4.9
+
+Is there a way to automatically ignore posts by specific
+authors or with specific words in the subject? And can I
+highlight more interesting ones in some way?
+
+@subsubheading Answer
+
+You want Scoring. Scoring means, that you define rules
+which assign each message an integer value. Depending on
+the value the message is highlighted in summary buffer (if
+it's high, say +2000) or automatically marked read (if the
+value is low, say -800) or some other action happens.
+
+There are basically three ways of setting up rules which assign
+the scoring-value to messages. The first and easiest way is to set
+up rules based on the article you are just reading. Say you're
+reading a message by a guy who always writes nonsense and you want
+to ignore his messages in the future. Hit
+@samp{L}, to set up a rule which lowers the score.
+Now Gnus asks you which the criteria for lowering the Score shall
+be. Hit @samp{?} twice to see all possibilities,
+we want @samp{a} which means the author (the from
+header). Now Gnus wants to know which kind of matching we want.
+Hit either @samp{e} for an exact match or
+@samp{s} for substring-match and delete afterwards
+everything but the name to score down all authors with the given
+name no matter which email address is used. Now you need to tell
+Gnus when to apply the rule and how long it should last, hit e.g.
+@samp{p} to apply the rule now and let it last
+forever. If you want to raise the score instead of lowering it say
+@samp{I} instead of @samp{L}.
+
+You can also set up rules by hand. To do this say @samp{V
+f} in summary buffer. Then you are asked for the name
+of the score file, it's name.of.group.SCORE for rules valid in
+only one group or all.Score for rules valid in all groups. See the
+Gnus manual for the exact syntax, basically it's one big list
+whose elements are lists again. the first element of those lists
+is the header to score on, then one more list with what to match,
+which score to assign, when to expire the rule and how to do the
+matching. If you find me very interesting, you could e.g. add the
+following to your all.Score:
 
 @example
 (("references" ("hschmi22.userfqdn.rz-online.de" 500 nil s))
  ("message-id" ("hschmi22.userfqdn.rz-online.de" 999 nil s)))
 @end example
-
 @noindent
- This would add 999 to the score of messages written by me
- and 500 to the score of messages which are a (possibly
- indirect) answer to a message written by me. Of course
- nobody with a sane mind would do this :-)
- 
 
- The third alternative is adaptive scoring. This means Gnus
- watches you and tries to find out what you find
- interesting and what annoying and sets up rules
- which reflect this. Adaptive scoring can be a huge help
- when reading high traffic groups. If you want to activate
- adaptive scoring say
- 
+This would add 999 to the score of messages written by me
+and 500 to the score of messages which are a (possibly
+indirect) answer to a message written by me. Of course
+nobody with a sane mind would do this :-)
+
+The third alternative is adaptive scoring. This means Gnus
+watches you and tries to find out what you find
+interesting and what annoying and sets up rules
+which reflect this. Adaptive scoring can be a huge help
+when reading high traffic groups. If you want to activate
+adaptive scoring say
 
 @example
 (setq gnus-use-adaptive-scoring t)
 @end example
-
 @noindent
- in ~/.gnus.
- 
-@ifnottex
-@node [4.10], [4.11], [4.9], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.10: 
-
- How can I disable threading in some (e.g. mail-) groups, or
- set other variables specific for some groups?
- 
-
-Answer: 
-
- While in group buffer move point over the group and hit
- @samp{G c}, this opens a buffer where you
- can set options for the group. At the bottom of the buffer
- you'll find an item that allows you to set variables
- locally for the group. To disable threading enter
- gnus-show-threads as name of variable and nil as
- value. Hit button done at the top of the buffer when
- you're ready.
- 
-@ifnottex
-@node [4.11], [4.12], [4.10], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.11: 
-
- Can I highlight messages written by me and follow-ups to
- those?
- 
-
-Answer: 
-
- Stop those "Can I ..." questions, the answer is always yes
- in Gnus Country :-). It's a three step process: First we
- make faces (specifications of how summary-line shall look
- like) for those postings, then we'll give them some
- special score and finally we'll tell Gnus to use the new
- faces. You can find detailed instructions on how to do it on
- @uref{http://my.gnus.org/Members/dzimmerm/HowTo%2C2002-07-25%2C1027619165012198456/view,my.gnus.org}
- 
-@ifnottex
-@node [4.12], [4.13], [4.11], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.12: 
-
- The number of total messages in a group which Gnus
- displays in group buffer is by far to high, especially in
- mail groups. Is this a bug?
- 
-
-Answer: 
-
- No, that's a matter of design of Gnus, fixing this would
- mean reimplementation of major parts of Gnus'
- back ends. Gnus thinks "highest-article-number -
- lowest-article-number = total-number-of-articles". This
- works OK for Usenet groups, but if you delete and move
- many messages in mail groups, this fails. To cure the
- symptom, enter the group via @samp{C-u RET} 
- (this makes Gnus get all messages), then
- hit @samp{M P b} to mark all messages and
- then say @samp{B m name.of.group} to move
- all messages to the group they have been in before, they
- get new message numbers in this process and the count is
- right again (until you delete and move your mail to other
- groups again).
- 
-@ifnottex
-@node [4.13], [4.14], [4.12], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.13: 
 
- I don't like the layout of summary and article buffer, how
- to change it? Perhaps even a three pane display?
- 
+in ~/.gnus.el.
 
-Answer: 
+@node [4.10]
+@subsubheading Question 4.10
 
- You can control the windows configuration by calling the
- function gnus-add-configuration. The syntax is a bit
- complicated but explained very well in the manual node
- "Window Layout". Some popular examples:
- 
+How can I disable threading in some (e.g. mail-) groups, or
+set other variables specific for some groups?
 
- Instead 25% summary 75% article buffer 35% summary and 65%
- article (the 1.0 for article means "take the remaining
- space"):
- 
+@subsubheading Answer
+
+While in group buffer move point over the group and hit
+@samp{G c}, this opens a buffer where you
+can set options for the group. At the bottom of the buffer
+you'll find an item that allows you to set variables
+locally for the group. To disable threading enter
+gnus-show-threads as name of variable and nil as
+value. Hit button done at the top of the buffer when
+you're ready.
+
+@node [4.11]
+@subsubheading Question 4.11
+
+Can I highlight messages written by me and follow-ups to
+those?
+
+@subsubheading Answer
+
+Stop those "Can I ..." questions, the answer is always yes
+in Gnus Country :-). It's a three step process: First we
+make faces (specifications of how summary-line shall look
+like) for those postings, then we'll give them some
+special score and finally we'll tell Gnus to use the new
+faces. You can find detailed instructions on how to do it on
+@uref{http://my.gnus.org/node/view/224, my.gnus.org}
+
+@node [4.12]
+@subsubheading Question 4.12
+
+The number of total messages in a group which Gnus
+displays in group buffer is by far to high, especially in
+mail groups. Is this a bug?
+
+@subsubheading Answer
+
+No, that's a matter of design of Gnus, fixing this would
+mean reimplementation of major parts of Gnus'
+back ends. Gnus thinks "highest-article-number -
+lowest-article-number = total-number-of-articles". This
+works OK for Usenet groups, but if you delete and move
+many messages in mail groups, this fails. To cure the
+symptom, enter the group via @samp{C-u RET} 
+(this makes Gnus get all messages), then
+hit @samp{M P b} to mark all messages and
+then say @samp{B m name.of.group} to move
+all messages to the group they have been in before, they
+get new message numbers in this process and the count is
+right again (until you delete and move your mail to other
+groups again).
+
+@node [4.13]
+@subsubheading Question 4.13
+
+I don't like the layout of summary and article buffer, how
+to change it? Perhaps even a three pane display?
+
+@subsubheading Answer
+
+You can control the windows configuration by calling the
+function gnus-add-configuration. The syntax is a bit
+complicated but explained very well in the manual node
+"Window Layout". Some popular examples:
+
+Instead 25% summary 75% article buffer 35% summary and 65%
+article (the 1.0 for article means "take the remaining
+space"):
 
 @example
-(gnus-add-configuration 
- '(article (vertical 1.0
-		     (summary .35 point)
-		     (article 1.0))))
+(gnus-add-configuration
+ '(article (vertical 1.0 (summary .35 point) (article 1.0))))
 @end example
- 
+@noindent
 
- A three pane layout, Group buffer on the left, summary
- buffer top-right, article buffer bottom-right:
- 
+A three pane layout, Group buffer on the left, summary
+buffer top-right, article buffer bottom-right:
 
 @example
 (gnus-add-configuration
@@ -1228,46 +1105,40 @@
 	       (vertical 25
 			 (group 1.0))
 	       (vertical 1.0
-			 (summary 1.0 point)))))	      
+			 (summary 1.0 point)))))
 @end example
- 
-@ifnottex
-@node [4.14], [4.15], [4.13], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.14: 
+@noindent
 
- I don't like the way the Summary buffer looks, how to tweak it?
- 
+@node [4.14]
+@subsubheading Question 4.14
 
-Answer: 
+I don't like the way the Summary buffer looks, how to tweak it?
 
- You've got to play around with the variable
- gnus-summary-line-format. It's value is a string of
- symbols which stand for things like author, date, subject
- etc. A list of the available specifiers can be found in the
- manual node "Summary Buffer Lines" and the often forgotten
- node "Formatting Variables" and it's sub-nodes. There
- you'll find useful things like positioning the cursor and
- tabulators which allow you a summary in table form, but
- sadly hard tabulators are broken in 5.8.8.
- 
+@subsubheading Answer
 
- Since 5.10.0, Gnus offers you some very nice new specifiers,
- e.g. %B which draws a thread-tree and %&user-date which
- gives you a date where the details are dependent of the
- articles age. Here's an example which uses both:
- 
+You've got to play around with the variable
+gnus-summary-line-format. It's value is a string of
+symbols which stand for things like author, date, subject
+etc. A list of the available specifiers can be found in the
+manual node "Summary Buffer Lines" and the often forgotten
+node "Formatting Variables" and it's sub-nodes. There
+you'll find useful things like positioning the cursor and
+tabulators which allow you a summary in table form, but
+sadly hard tabulators are broken in 5.8.8.
+
+Since 5.10, Gnus offers you some very nice new specifiers,
+e.g. %B which draws a thread-tree and %&user-date which
+gives you a date where the details are dependent of the
+articles age. Here's an example which uses both:
 
 @example
-(setq gnus-summary-line-format 
-      ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; \n")
+(setq gnus-summary-line-format ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; \n")
 @end example
-
 @noindent
- resulting in:
- 
 
-@smallexample
+resulting in:
+
+@example
 :O     Re: [Richard Stallman] rfc2047.el          |  13 |Lars Magne Ingebrigt |Sat 23:06
 :O     Re: Revival of the ding-patches list       |  13 |Lars Magne Ingebrigt |Sat 23:12
 :R  >  Re: Find correct list of articles for a gro|  25 |Lars Magne Ingebrigt |Sat 23:16
@@ -1280,54 +1151,48 @@
 :R  >  Re: Gnus still doesn't count messages prope|  23 |Lars Magne Ingebrigt |Sat 23:57
 :O  \->  ...                                      |  18 |Kai Grossjohann      | 0:35
 :O    \->  ...                                    |  13 |Lars Magne Ingebrigt | 0:56
-@end smallexample
- 
-@ifnottex
-@node [4.15],  , [4.14], FAQ 4 - Reading messages
-@end ifnottex
-@subsubheading Question 4.15: 
+@end example
+@noindent
 
- How to split incoming mails in several groups?
- 
+@node [4.15]
+@subsubheading Question 4.15
 
-Answer: 
+How to split incoming mails in several groups?
 
- Gnus offers two possibilities for splitting mail, the easy
- nnmail-split-methods and the more powerful Fancy Mail
- Splitting. I'll only talk about the first one, refer to
- the manual, node "Fancy Mail Splitting" for the latter.
- 
+@subsubheading Answer
 
- The value of nnmail-split-methods is a list, each element
- is a list which stands for a splitting rule. Each rule has
- the form "group where matching articles should go to",
- "regular expression which has to be matched", the first
- rule which matches wins. The last rule must always be a
- general rule (regular expression .*) which denotes where
- articles should go which don't match any other rule. If
- the folder doesn't exist yet, it will be created as soon
- as an article lands there. By default the mail will be
- send to all groups whose rules match. If you 
- don't want that (you probably don't want), say
- 
+Gnus offers two possibilities for splitting mail, the easy
+nnmail-split-methods and the more powerful Fancy Mail
+Splitting. I'll only talk about the first one, refer to
+the manual, node "Fancy Mail Splitting" for the latter.
+
+The value of nnmail-split-methods is a list, each element
+is a list which stands for a splitting rule. Each rule has
+the form "group where matching articles should go to",
+"regular expression which has to be matched", the first
+rule which matches wins. The last rule must always be a
+general rule (regular expression .*) which denotes where
+articles should go which don't match any other rule. If
+the folder doesn't exist yet, it will be created as soon
+as an article lands there.  By default the mail will be
+send to all groups whose rules match. If you 
+don't want that (you probably don't want), say
 
 @example
 (setq nnmail-crosspost nil)
 @end example
-
 @noindent
- in ~/.gnus.
- 
 
- An example might be better than thousand words, so here's
- my nnmail-split-methods. Note that I send duplicates in a
- special group and that the default group is spam, since I
- filter all mails out which are from some list I'm
- subscribed to or which are addressed directly to me
- before. Those rules kill about 80% of the Spam which
- reaches me (Email addresses are changed to prevent spammers
- from using them):
- 
+in ~/.gnus.el.
+
+An example might be better than thousand words, so here's
+my nnmail-split-methods. Note that I send duplicates in a
+special group and that the default group is spam, since I
+filter all mails out which are from some list I'm
+subscribed to or which are addressed directly to me
+before. Those rules kill about 80% of the Spam which
+reaches me (Email addresses are changed to prevent spammers
+from using them):
 
 @example
 (setq nnmail-split-methods
@@ -1336,133 +1201,114 @@
     ("Gnus-Tut" "^\\(To:\\|CC:\\).*localpart@@socha.bla.*")
     ("tcsh" "^\\(To:\\|CC:\\).*localpart@@mx.gw.bla.*")
     ("BAfH" "^\\(To:\\|CC:\\).*localpart@@.*uni-muenchen.bla.*")
-    ("Hamster-src"
-     "^\\(CC:\\|To:\\).*hamster-sourcen@@yahoogroups.\\(de\\|com\\).*")
+    ("Hamster-src" "^\\(CC:\\|To:\\).*hamster-sourcen@@yahoogroups.\\(de\\|com\\).*")
     ("Tagesschau" "^From: tagesschau <localpart@@www.tagesschau.bla>$")
     ("Replies" "^\\(CC:\\|To:\\).*localpart@@Frank-Schmitt.bla.*")
-    ("EK"
-     "^From:.*\\(localpart@@privateprovider.bla\\|localpart@@workplace.bla\\).*")
-    ("Spam"
-     "^Content-Type:.*\\(ks_c_5601-1987\\|EUC-KR\\|big5\\|iso-2022-jp\\).*")
-    ("Spam"
-     "^Subject:.*\\(This really work\\|XINGA\\|ADV:\\|XXX\\|adult\\|sex\\).*")
-    ("Spam"
-     "^Subject:.*\\(\=\?ks_c_5601-1987\?\\|\=\?euc-kr\?\\|\=\?big5\?\\).*")
+    ("EK" "^From:.*\\(localpart@@privateprovider.bla\\|localpart@@workplace.bla\\).*")
+    ("Spam" "^Content-Type:.*\\(ks_c_5601-1987\\|EUC-KR\\|big5\\|iso-2022-jp\\).*")
+    ("Spam" "^Subject:.*\\(This really work\\|XINGA\\|ADV:\\|XXX\\|adult\\|sex\\).*")
+    ("Spam" "^Subject:.*\\(\=\?ks_c_5601-1987\?\\|\=\?euc-kr\?\\|\=\?big5\?\\).*")
     ("Spam" "^X-Mailer:\\(.*BulkMailer.*\\|.*MIME::Lite.*\\|\\)")
-    ("Spam"
-     "^X-Mailer:\\(.*CyberCreek Avalanche\\|.*http\:\/\/GetResponse\.com\\)")
-    ("Spam"
-     "^From:.*\\(verizon\.net\\|prontomail\.com\\|money\\|ConsumerDirect\\).*")
+    ("Spam" "^X-Mailer:\\(.*CyberCreek Avalanche\\|.*http\:\/\/GetResponse\.com\\)")
+    ("Spam" "^From:.*\\(verizon\.net\\|prontomail\.com\\|money\\|ConsumerDirect\\).*")
     ("Spam" "^Delivered-To: GMX delivery to spamtrap@@gmx.bla$")
     ("Spam" "^Received: from link2buy.com")
     ("Spam" "^CC: .*azzrael@@t-online.bla")
     ("Spam" "^X-Mailer-Version: 1.50 BETA")
     ("Uni" "^\\(CC:\\|To:\\).*localpart@@uni-koblenz.bla.*")
-    ("Inbox"
-     "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.bla\\|adress@@two.bla\\)")
+    ("Inbox" "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.bla\\|adress@@two.bla\\)")
     ("Spam" "")))
 @end example
- 
+@noindent
 
-@ifnottex
-@node FAQ 5 - Composing messages, FAQ 6 - Old messages, FAQ 4 - Reading messages, Frequently Asked Questions
-@end ifnottex
+@node FAQ 5 - Composing messages
 @subsection Composing messages
 
 @menu
-* [5.1]::   What are the basic commands I need to know for sending mail and
-            postings? 
-* [5.2]::   How to enable automatic word-wrap when composing messages? 
-* [5.3]::   How to set stuff like From, Organization, Reply-To, signature...? 
-* [5.4]::   Can I set things like From, Signature etc group based on the
-            group I post too? 
-* [5.5]::   Is there a spell-checker? Perhaps even on-the-fly spell-checking? 
-* [5.6]::   Can I set the dictionary based on the group I'm posting to? 
-* [5.7]::   Is there some kind of address-book, so I needn't remember all
-            those email addresses? 
-* [5.8]::   Sometimes I see little images at the top of article buffer.
-            What's that and how can I send one with my postings, too? 
-* [5.9]::   Sometimes I accidentally hit r instead of f in newsgroups.
-            Can Gnus warn me, when I'm replying by mail in newsgroups? 
-* [5.10]::  How to tell Gnus not to generate a sender header? 
-* [5.11]::  I want Gnus to locally store copies of my send mail and news,
-            how to do it? 
-* [5.12]::  People tell me my Message-IDs are not correct,
-            why aren't they and how to fix it? 
+* [5.1]::     What are the basic commands I need to know for sending
+              mail and postings?
+* [5.2]::     How to enable automatic word-wrap when composing messages?
+* [5.3]::     How to set stuff like From, Organization, Reply-To,
+              signature...?
+* [5.4]::     Can I set things like From, Signature etc group based on
+              the group I post too?
+* [5.5]::     Is there a spell-checker? Perhaps even on-the-fly
+              spell-checking?
+* [5.6]::     Can I set the dictionary based on the group I'm posting
+              to?
+* [5.7]::     Is there some kind of address-book, so I needn't remember
+              all those email addresses?
+* [5.8]::     Sometimes I see little images at the top of article
+              buffer. What's that and how can I send one with my postings, too?
+* [5.9]::     Sometimes I accidentally hit r instead of f in newsgroups.
+              Can Gnus warn me, when I'm replying by mail in newsgroups?
+* [5.10]::    How to tell Gnus not to generate a sender header?
+* [5.11]::    I want Gnus to locally store copies of my send mail and
+              news, how to do it?
+* [5.12]::    People tell me my Message-IDs are not correct, why aren't
+              they and how to fix it?
 @end menu
 
-@ifnottex
-@node [5.1], [5.2], FAQ 5 - Composing messages, FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.1: 
+@node [5.1]
+@subsubheading Question 5.1
 
- What are the basic commands I need to know for sending mail and postings?
- 
+What are the basic commands I need to know for sending mail and postings?
 
-Answer: 
+@subsubheading Answer
 
- To start composing a new mail hit @samp{m}
- either in Group or Summary buffer, for a posting, it's
- either @samp{a} in Group buffer and
- filling the Newsgroups header manually
- or @samp{a} in the Summary buffer of the
- group where the posting shall be send to. Replying by mail
- is
- @samp{r} if you don't want to cite the
- author, or import the cited text manually and
- @samp{R} to cite the text of the original
- message. For a follow up to a newsgroup, it's
- @samp{f} and @samp{F}
- (analog to @samp{r} and
- @samp{R}.
- 
+To start composing a new mail hit @samp{m}
+either in Group or Summary buffer, for a posting, it's
+either @samp{a} in Group buffer and
+filling the Newsgroups header manually
+or @samp{a} in the Summary buffer of the
+group where the posting shall be send to. Replying by mail
+is
+@samp{r} if you don't want to cite the
+author, or import the cited text manually and
+@samp{R} to cite the text of the original
+message. For a follow up to a newsgroup, it's
+@samp{f} and @samp{F}
+(analogously to @samp{r} and
+@samp{R}).
+
+Enter new headers above the line saying "--text follows
+this line--", enter the text below the line. When ready
+hit @samp{C-c C-c}, to send the message,
+if you want to finish it later hit @samp{C-c
+C-d} to save it in the drafts group, where you
+can start editing it again by saying @samp{D
+e}.
 
- Enter new headers above the line saying "--text follows
- this line--", enter the text below the line. When ready
- hit @samp{C-c C-c}, to send the message,
- if you want to finish it later hit @samp{C-c
- C-d} to save it in the drafts group, where you
- can start editing it again by saying @samp{D
- e}.
- 
-@ifnottex
-@node [5.2], [5.3], [5.1], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.2: 
+@node [5.2]
+@subsubheading Question 5.2
 
- How to enable automatic word-wrap when composing messages?
- 
+How to enable automatic word-wrap when composing messages?
 
-Answer: 
+@subsubheading Answer
 
- Say
- 
+Say
 
 @example
 (add-hook 'message-mode-hook
-      (lambda ()
-           (setq fill-column 72)
-           (turn-on-auto-fill)))
+	  (lambda ()
+	    (setq fill-column 72)
+	    (turn-on-auto-fill)))
 @end example
-
 @noindent
- in ~/.gnus. You can reformat a paragraph by hitting
- @samp{M-q} (as usual)
- 
-@ifnottex
-@node [5.3], [5.4], [5.2], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.3: 
 
- How to set stuff like From, Organization, Reply-To, signature...?
- 
+in ~/.gnus.el. You can reformat a paragraph by hitting
+@samp{M-q} (as usual)
 
-Answer: 
+@node [5.3]
+@subsubheading Question 5.3
 
- There are other ways, but you should use posting styles
- for this. (See below why).
- This example should make the syntax clear:
- 
+How to set stuff like From, Organization, Reply-To, signature...?
+
+@subsubheading Answer
+
+There are other ways, but you should use posting styles
+for this. (See below why).
+This example should make the syntax clear:
 
 @example
 (setq gnus-posting-styles
@@ -1474,146 +1320,121 @@
      ("X-SampleHeader" "foobar")
      (eval (setq some-variable "Foo bar")))))
 @end example
-
 @noindent
- The ".*" means that this settings are the default ones
- (see below), valid values for the first element of the
- following lists are signature, signature-file,
- organization, address, name or body. The attribute name
- can also be a string. In that case, this will be used as
- a header name, and the value will be inserted in the
- headers of the article; if the value is `nil', the header
- name will be removed. You can also say (eval (foo bar)),
- then the function foo will be evaluated with argument bar
- and the result will be thrown away.
- 
-@ifnottex
-@node [5.4], [5.5], [5.3], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.4: 
-
- Can I set things like From, Signature etc group based on the group I post too?
- 
 
-Answer: 
-
- That's the strength of posting styles. Before, we used ".*"
- to set the default for all groups. You can use a regexp
- like "^gmane" and the following settings are only applied
- to postings you send to the gmane hierarchy, use
- ".*binaries" instead and they will be applied to postings
- send to groups containing the string binaries in their
- name etc.
- 
-
- You can instead of specifying a regexp specify a function
- which is evaluated, only if it returns true, the
- corresponding settings take effect. Two interesting
- candidates for this are message-news-p which returns t if
- the current Group is a newsgroup and the corresponding
- message-mail-p.
- 
-
- Note that all forms that match are applied, that means in
- the example below, when I post to
- gmane.mail.spam.spamassassin.general, the settings under
- ".*" are applied and the settings under message-news-p and
- those under "^gmane" and those under
- "^gmane\\.mail\\.spam\\.spamassassin\\.general$". Because
- of this put general settings at the top and specific ones
- at the bottom.
- 
+The ".*" means that this settings are the default ones
+(see below), valid values for the first element of the
+following lists are signature, signature-file,
+organization, address, name or body.  The attribute name
+can also be a string.  In that case, this will be used as
+a header name, and the value will be inserted in the
+headers of the article; if the value is `nil', the header
+name will be removed. You can also say (eval (foo bar)),
+then the function foo will be evaluated with argument bar
+and the result will be thrown away.
+
+@node [5.4]
+@subsubheading Question 5.4
+
+Can I set things like From, Signature etc group based on the group I post too?
+
+@subsubheading Answer
+
+That's the strength of posting styles. Before, we used ".*"
+to set the default for all groups. You can use a regexp
+like "^gmane" and the following settings are only applied
+to postings you send to the gmane hierarchy, use
+".*binaries" instead and they will be applied to postings
+send to groups containing the string binaries in their
+name etc.
+
+You can instead of specifying a regexp specify a function
+which is evaluated, only if it returns true, the
+corresponding settings take effect. Two interesting
+candidates for this are message-news-p which returns t if
+the current Group is a newsgroup and the corresponding
+message-mail-p.
+
+Note that all forms that match are applied, that means in
+the example below, when I post to
+gmane.mail.spam.spamassassin.general, the settings under
+".*" are applied and the settings under message-news-p and
+those under "^gmane" and those under
+"^gmane\\.mail\\.spam\\.spamassassin\\.general$". Because
+of this put general settings at the top and specific ones
+at the bottom.
 
 @example
 (setq gnus-posting-styles
   '((".*"  ;;default
      (name "Frank Schmitt")
      (organization "Hamme net, kren mer och nimmi")
-     (signature-file "~/.signature"))
+     (signature-file "~/.signature")    )
     ((message-news-p)  ;;Usenet news?
      (address "mySpamTrap@@Frank-Schmitt.bla")
-     ("Reply-To" "hereRealRepliesOnlyPlease@@Frank-Schmitt.bla"))
+     ("Reply-To" "hereRealRepliesOnlyPlease@@Frank-Schmitt.bla")    )
     ((message-mail-p)  ;;mail?
-     (address "usedForMails@@Frank-Schmitt.bla"))
+     (address "usedForMails@@Frank-Schmitt.bla")    )
     ("^gmane" ;;this is mail, too in fact
      (address "usedForMails@@Frank-Schmitt.net")
-     ("Reply-To" nil))
+     ("Reply-To" nil)    )
     ("^gmane.mail.spam.spamassassin.general$"
      (eval (setq mail-envelope-from "Azzrael@@rz-online.de"))
-     (address "Azzrael@@rz-online.de"))))
+     (address "Azzrael@@rz-online.de")) ))
 @end example
- 
-@ifnottex
-@node [5.5], [5.6], [5.4], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.5: 
+@noindent
 
- Is there a spell-checker? Perhaps even on-the-fly spell-checking?
- 
+@node [5.5]
+@subsubheading Question 5.5
 
-Answer: 
+Is there a spell-checker? Perhaps even on-the-fly spell-checking?
 
-You can use ispell.el to spell-check stuff in Emacs. So the first
-thing to do is to make sure that you've got either
-@itemize @bullet
-@item
-@uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html,ispell}
-or 
-@item
-@uref{http://aspell.sourceforge.net/,aspell} 
-@end itemize
-@noindent
-installed and in your Path.
+@subsubheading Answer
 
-Then you need
-@uref{http://www.kdstevens.com/~stevens/ispell-page.html,ispell.el,ispell.el}
-and for on-the-fly spell-checking
-@uref{http://www-sop.inria.fr/mimosa/personnel/Manuel.Serrano/flyspell/flyspell.html,flyspell.el,flyspell.el}.
-Ispell.el is shipped with Gnus Emacs and available through the Emacs
-package system, flyspell.el is shipped with Emacs and part of XEmacs
-text-modes package which is available through the package system, so
-there should be no need to install them manually.
- 
+You can use ispell.el to spell-check stuff in Emacs. So the
+first thing to do is to make sure that you've got either
+@uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html, ispell}
+or @uref{http://aspell.sourceforge.net/, aspell}
+installed and in your Path. Then you need 
+@uref{http://www.kdstevens.com/~stevens/ispell-page.html, ispell.el}
+and for on-the-fly spell-checking 
+@uref{http://www-sop.inria.fr/mimosa/personnel/Manuel.Serrano/flyspell/flyspell.html, flyspell.el}.
+Ispell.el is shipped with Emacs and available through the XEmacs package system, 
+flyspell.el is shipped with Emacs and part of XEmacs text-modes package which is 
+available through the package system, so there should be no need to install them 
+manually.
 
- Ispell.el assumes you use ispell, if you choose aspell say
- 
+Ispell.el assumes you use ispell, if you choose aspell say
 
 @example
 (setq ispell-program-name "aspell")
 @end example
- 
-
 @noindent
- in your Emacs configuration file.
  
+in your Emacs configuration file.
 
- If you want your outgoing messages to be spell-checked, say
- 
+If you want your outgoing messages to be spell-checked, say
 
 @example
 (add-hook 'message-send-hook 'ispell-message)
 @end example
-
 @noindent
- In your ~/.gnus, if you prefer on-the-fly spell-checking say
- 
+
+In your ~/.gnus.el, if you prefer on-the-fly spell-checking say
 
 @example
 (add-hook 'message-mode-hook (lambda () (flyspell-mode 1)))
 @end example
- 
-@ifnottex
-@node [5.6], [5.7], [5.5], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.6: 
+@noindent
 
- Can I set the dictionary based on the group I'm posting to?
- 
+@node [5.6]
+@subsubheading Question 5.6
 
-Answer: 
+Can I set the dictionary based on the group I'm posting to?
 
- Yes, say something like
- 
+@subsubheading Answer
+
+Yes, say something like
 
 @example
 (add-hook 'gnus-select-group-hook
@@ -1625,55 +1446,47 @@
              (t
               (ispell-change-dictionary "english")))))
 @end example
- 
-
 @noindent
- in ~/.gnus. Change "^de\\." and "deutsch8" to something
- that suits your needs.
  
-@ifnottex
-@node [5.7], [5.8], [5.6], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.7:
+in ~/.gnus.el. Change "^de\\." and "deutsch8" to something
+that suits your needs.
 
- Is there some kind of address-book, so I needn't remember
- all those email addresses?
- 
+@node [5.7]
+@subsubheading Question 5.7
 
-Answer: 
+Is there some kind of address-book, so I needn't remember
+all those email addresses?
 
- There's an very basic solution for this, mail aliases.
- You can store your mail addresses in a ~/.mailrc file using a simple
- alias syntax:
- 
+@subsubheading Answer
+
+There's an very basic solution for this, mail aliases.
+You can store your mail addresses in a ~/.mailrc file using a simple
+alias syntax:
 
 @example
 alias al	"Al <al@@english-heritage.bla>"
 @end example
-
 @noindent
- Then typing your alias (followed by a space or punctuation
- character) on a To: or Cc: line in the message buffer will
- cause Gnus to insert the full address for you. See the
- node "Mail Aliases" in Message (not Gnus) manual for
- details.
- 
 
- However, what you really want is the Insidious Big Brother 
- Database bbdb. Get it through the XEmacs package system or from
- @uref{http://bbdb.sourceforge.net/,bbdb's homepage}.
- Now place the following in ~/.gnus, to activate bbdb for Gnus:
- 
+Then typing your alias (followed by a space or punctuation
+character) on a To: or Cc: line in the message buffer will
+cause Gnus to insert the full address for you. See the
+node "Mail Aliases" in Message (not Gnus) manual for
+details.
+
+However, what you really want is the Insidious Big Brother 
+Database bbdb. Get it through the XEmacs package system or from
+@uref{http://bbdb.sourceforge.net/, bbdb's homepage}.
+Now place the following in ~/.gnus.el, to activate bbdb for Gnus:
 
 @example
 (require 'bbdb)
 (bbdb-initialize 'gnus 'message)
 @end example
-
 @noindent
- Now you probably want some general bbdb configuration,
- place them in ~/.emacs:
- 
+
+Now you probably want some general bbdb configuration,
+place them in ~/.emacs:
 
 @example
 (require 'bbdb)
@@ -1689,56 +1502,50 @@
 ;;No popup-buffers
 (setq bbdb-use-pop-up nil)
 @end example
-
 @noindent
- Now you should be ready to go. Say @samp{M-x bbdb RET
- RET} to open a bbdb buffer showing all
- entries. Say @samp{c} to create a new
- entry, @samp{b} to search your BBDB and
- @samp{C-o} to add a new field to an
- entry. If you want to add a sender to the BBDB you can
- also just hit `:' on the posting in the summary buffer and
- you are done. When you now compose a new mail,
- hit @samp{TAB} to cycle through know
- recipients.
- 
-@ifnottex
-@node [5.8], [5.9], [5.7], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.8: 
-
- Sometimes I see little images at the top of article
- buffer. What's that and how can I send one with my
- postings, too?
- 
-
-Answer: 
 
- Those images are called X-Faces. They are 48*48 pixel b/w
- pictures, encoded in a header line. If you want to include
- one in your posts, you've got to convert some image to a
- X-Face. So fire up some image manipulation program (say
- Gimp), open the image you want to include, cut out the
- relevant part, reduce color depth to 1 bit, resize to
- 48*48 and save as bitmap. Now you should get the compface
- package from 
- @uref{ftp://ftp.cs.indiana.edu:/pub/faces/,this site}.
- and create the actual X-face by saying
- 
-
-@example
-cat file.xbm | xbm2ikon |compface > file.face
-cat ./file.face | sed 's/\\/\\\\/g' | sed 's/\"/\\\"/g' > ./file.face.quoted
+Now you should be ready to go. Say @samp{M-x bbdb RET
+RET} to open a bbdb buffer showing all
+entries. Say @samp{c} to create a new
+entry, @samp{b} to search your BBDB and
+@samp{C-o} to add a new field to an
+entry. If you want to add a sender to the BBDB you can
+also just hit `:' on the posting in the summary buffer and
+you are done. When you now compose a new mail,
+hit @samp{TAB} to cycle through know
+recipients.
+
+@node [5.8]
+@subsubheading Question 5.8
+
+Sometimes I see little images at the top of article
+buffer. What's that and how can I send one with my
+postings, too?
+
+@subsubheading Answer
+
+Those images are called X-Faces. They are 48*48 pixel b/w
+pictures, encoded in a header line. If you want to include
+one in your posts, you've got to convert some image to a
+X-Face. So fire up some image manipulation program (say
+Gimp), open the image you want to include, cut out the
+relevant part, reduce color depth to 1 bit, resize to
+48*48 and save as bitmap. Now you should get the compface
+package from 
+@uref{ftp://ftp.cs.indiana.edu:/pub/faces/, this site}.
+and create the actual X-face by saying
+
+@example
+cat file.xbm | xbm2ikon | compface > file.face
+cat file.face | sed 's/\\/\\\\/g;s/\"/\\\"/g;' > file.face.quoted
 @end example
-
 @noindent
-If you can't use compface, there's an online X-face converter at@*
-@uref{http://www.dairiki.org/xface/}.  If you use MS Windows, you
-could also use the WinFace program from
-@uref{http://www.xs4all.nl/~walterln/winface/}.
 
-Now you only have to tell Gnus to include the X-face in your postings
-by saying
+If you can't use compface, there's an online X-face converter at 
+@uref{http://www.dairiki.org/xface/}.
+If you use MS Windows, you could also use the WinFace program from
+@uref{http://www.xs4all.nl/~walterln/winface/}.
+Now you only have to tell Gnus to include the X-face in your postings by saying
 
 @example
 (setq message-default-headers
@@ -1747,79 +1554,70 @@
           (insert-file-contents "~/.xemacs/xface")
           (buffer-string)))
 @end example
-
 @noindent
- in ~/.gnus.
- 
-@ifnottex
-@node [5.9], [5.10], [5.8], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.9: 
-
- Sometimes I accidentally hit r instead of f in
- newsgroups. Can Gnus warn me, when I'm replying by mail in
- newsgroups?
- 
 
-Answer: 
+in ~/.gnus.el.
 
- Put this in ~/.gnus:
- 
+@node [5.9]
+@subsubheading Question 5.9
+
+Sometimes I accidentally hit r instead of f in
+newsgroups. Can Gnus warn me, when I'm replying by mail in
+newsgroups?
+
+@subsubheading Answer
+
+Put this in ~/.gnus.el:
 
 @example
 (setq gnus-confirm-mail-reply-to-news t)
 @end example
-
 @noindent
- if you already use Gnus 5.10.0, if you still use 5.8.8 or
- 5.9 try this instead:
- 
+
+if you already use Gnus 5.10, if you still use 5.8.8 or
+5.9 try this instead:
 
 @example
-(defadvice gnus-summary-reply (around reply-in-news activate)
+(eval-after-load "gnus-msg"
+  '(unless (boundp 'gnus-confirm-mail-reply-to-news)
+     (defadvice gnus-summary-reply (around reply-in-news activate)
+       "Request confirmation when replying to news."
        (interactive)
-        (when (or (not (gnus-news-group-p gnus-newsgroup-name))
-                  (y-or-n-p "Really reply? "))
-         ad-do-it))
+       (when (or (not (gnus-news-group-p gnus-newsgroup-name))
+                 (y-or-n-p "Really reply by mail to article author? "))
+         ad-do-it))))
 @end example
- 
-@ifnottex
-@node [5.10], [5.11], [5.9], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.10: 
+@noindent
 
- How to tell Gnus not to generate a sender header?
- 
+@node [5.10]
+@subsubheading Question 5.10
 
-Answer: 
+How to tell Gnus not to generate a sender header?
 
- Since 5.10.0 Gnus doesn't generate a sender header by
- default. For older Gnus' try this in ~/.gnus:
- 
+@subsubheading Answer
+
+Since 5.10 Gnus doesn't generate a sender header by
+default. For older Gnus' try this in ~/.gnus.el:
 
 @example
 (eval-after-load "message"
       '(add-to-list 'message-syntax-checks '(sender . disabled)))
 @end example
- 
- 
-@ifnottex
-@node [5.11], [5.12], [5.10], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.11: 
+@noindent
 
- I want gnus to locally store copies of my send mail and
- news, how to do it?
- 
+@node [5.11]
+@subsubheading Question 5.11
 
-Answer: 
+I want Gnus to locally store copies of my send mail and
+news, how to do it?
 
- You must set the variable gnus-message-archive-group to do
- this. You can set it to a string giving the name of the
- group where the copies shall go or like in the example
- below use a function which is evaluated and which returns
- the group to use.
- 
+@subsubheading Answer
+
+You must set the variable gnus-message-archive-group to do
+this. You can set it to a string giving the name of the
+group where the copies shall go or like in the example
+below use a function which is evaluated and which returns
+the group to use.
 
 @example
 (setq gnus-message-archive-group
@@ -1827,34 +1625,34 @@
 	      "nnml:Send-News"
 	    "nnml:Send-Mail")))
 @end example
- 
- 
-@ifnottex
-@node [5.12],  , [5.11], FAQ 5 - Composing messages
-@end ifnottex
-@subsubheading Question 5.12: 
+@noindent
 
- People tell me my Message-IDs are not correct, why
- aren't they and how to fix it?
- 
+@node [5.12]
+@subsubheading Question 5.12
+
+People tell me my Message-IDs are not correct, why
+aren't they and how to fix it?
+
+@subsubheading Answer
 
-Answer: 
+The message-ID is an unique identifier for messages you
+send. To make it unique, Gnus need to know which machine
+name to put after the "@@". If the name of the machine
+where Gnus is running isn't suitable (it probably isn't
+at most private machines) you can tell Gnus what to use
+by saying:
 
- The message-ID is an unique identifier for messages you
- send. To make it unique, Gnus need to know which machine
- name to put after the "@@". If the name of the machine
- where Gnus is running isn't suitable (it probably isn't
- at most private machines) you can tell Gnus what to use
- by saying
 @example
 (setq message-user-fqdn "yourmachine.yourdomain.tld")
 @end example
 @noindent
- in ~/.gnus.  If you use Gnus 5.9 or ealier, you can use this
-instead:
+
+in ~/.gnus.el.  If you use Gnus 5.9 or ealier, you can use this
+instead (works for newer versions a well): 
+
 @example
 (eval-after-load "message"
-  '(let (myfqdn "yourmachine.yourdomain.tld");; <-- Edit this!
+  '(let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this!
      (if (boundp 'message-user-fqdn)
          (setq message-user-fqdn fqdn)
        (gnus-message 1 "Redefining `message-make-fqdn'.")
@@ -1862,110 +1660,97 @@
          "Return user's fully qualified domain name."
          fqdn))))
 @end example
+@noindent
 
- If you have no idea what to insert for
- "yourmachine.yourdomain.tld", you've got several
- choices. You can either ask your provider if he allows
- you to use something like
- yourUserName.userfqdn.provider.net, or you can use
- somethingUnique.yourdomain.tld if you own the domain
- yourdomain.tld, or you can register at a service which
- gives private users a FQDN for free, e.g. 
- @uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}.
- (Sorry but this website is in German, if you know of an
- English one offering the same, drop me a note).
- 
+If you have no idea what to insert for
+"yourmachine.yourdomain.tld", you've got several
+choices. You can either ask your provider if he allows
+you to use something like
+yourUserName.userfqdn.provider.net, or you can use
+somethingUnique.yourdomain.tld if you own the domain
+yourdomain.tld, or you can register at a service which
+gives private users a FQDN for free, e.g.  
+@uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}.
+(Sorry but this website is in German, if you know of an
+English one offering the same, drop me a note).
 
- Finally you can tell Gnus not to generate a Message-ID
- for News at all (and letting the server do the job) by saying
- 
+Finally you can tell Gnus not to generate a Message-ID
+for News at all (and letting the server do the job) by saying
 
 @example
 (setq message-required-news-headers
   (remove' Message-ID message-required-news-headers))
 @end example
-
 @noindent
- you can also tell Gnus not to generate Message-IDs for mail by saying
- 
+
+you can also tell Gnus not to generate Message-IDs for mail by saying
 
 @example
 (setq message-required-mail-headers
   (remove' Message-ID message-required-mail-headers))
 @end example
-
 @noindent
- , however some mail servers don't generate proper
- Message-IDs, too, so test if your Mail Server behaves
- correctly by sending yourself a Mail and looking at the Message-ID.
- 
 
-@ifnottex
-@node FAQ 6 - Old messages, FAQ 7 - Gnus in a dial-up environment, FAQ 5 - Composing messages, Frequently Asked Questions
-@end ifnottex
+, however some mail servers don't generate proper
+Message-IDs, too, so test if your Mail Server behaves
+correctly by sending yourself a Mail and looking at the Message-ID.
+
+@node FAQ 6 - Old messages
 @subsection Old messages
 
 @menu
-* [6.1]::   How to import my old mail into Gnus? 
-* [6.2]::   How to archive interesting messages? 
-* [6.3]::   How to search for a specific message? 
-* [6.4]::   How to get rid of old unwanted mail? 
-* [6.5]::   I want that all read messages are expired (at least in some
-            groups). How to do it? 
-* [6.6]::   I don't want expiration to delete my mails but to move them
-            to another group. 
+* [6.1]::    How to import my old mail into Gnus?
+* [6.2]::    How to archive interesting messages?
+* [6.3]::    How to search for a specific message?
+* [6.4]::    How to get rid of old unwanted mail?
+* [6.5]::    I want that all read messages are expired (at least in some
+             groups). How to do it?
+* [6.6]::    I don't want expiration to delete my mails but to move them
+             to another group.
 @end menu
 
-@ifnottex
-@node [6.1], [6.2], FAQ 6 - Old messages, FAQ 6 - Old messages
-@end ifnottex
-@subsubheading Question 6.1: 
-
- How to import my old mail into Gnus?
- 
-
-Answer: 
-
- The easiest way is to tell your old mail program to
- export the messages in mbox format. Most Unix mailers
- are able to do this, if you come from the MS Windows
- world, you may find tools at
- @uref{http://mbx2mbox.sourceforge.net/}.
- 
-
- Now you've got to import this mbox file into Gnus. To do
- this, create a nndoc group based on the mbox file by
- saying @samp{G f /path/file.mbox RET} in
- Group buffer. You now have read-only access to your
- mail. If you want to import the messages to your normal
- Gnus mail groups hierarchy, enter the nndoc group you've
- just created by saying @samp{C-u RET}
- (thus making sure all messages are retrieved), mark all
- messages by saying @samp{M P b} and
- either copy them to the desired group by saying
- @samp{B c name.of.group RET} or send them
- through nnmail-split-methods (respool them) by saying
- @samp{B r}.
- 
-@ifnottex
-@node [6.2], [6.3], [6.1], FAQ 6 - Old messages
-@end ifnottex
-@subsubheading Question 6.2: 
+@node [6.1]
+@subsubheading Question 6.1
 
- How to archive interesting messages?
- 
+How to import my old mail into Gnus?
 
-Answer: 
+@subsubheading Answer
 
- If you stumble across an interesting message, say in
- gnu.emacs.gnus and want to archive it there are several
- solutions. The first and easiest is to save it to a file
- by saying @samp{O f}. However, wouldn't
- it be much more convenient to have more direct access to
- the archived message from Gnus? If you say yes, put this
- snippet by Frank Haun <pille3003@@fhaun.de> in
- ~/.gnus:
- 
+The easiest way is to tell your old mail program to
+export the messages in mbox format. Most Unix mailers
+are able to do this, if you come from the MS Windows
+world, you may find tools at
+@uref{http://mbx2mbox.sourceforge.net/}.
+
+Now you've got to import this mbox file into Gnus. To do
+this, create a nndoc group based on the mbox file by
+saying @samp{G f /path/file.mbox RET} in
+Group buffer. You now have read-only access to your
+mail. If you want to import the messages to your normal
+Gnus mail groups hierarchy, enter the nndoc group you've
+just created by saying @samp{C-u RET}
+(thus making sure all messages are retrieved), mark all
+messages by saying @samp{M P b} and
+either copy them to the desired group by saying
+@samp{B c name.of.group RET} or send them
+through nnmail-split-methods (respool them) by saying
+@samp{B r}.
+
+@node [6.2]
+@subsubheading Question 6.2
+
+How to archive interesting messages?
+
+@subsubheading Answer
+
+If you stumble across an interesting message, say in
+gnu.emacs.gnus and want to archive it there are several
+solutions. The first and easiest is to save it to a file
+by saying @samp{O f}. However, wouldn't
+it be much more convenient to have more direct access to
+the archived message from Gnus? If you say yes, put this
+snippet by Frank Haun <pille3003@@fhaun.de> in
+~/.gnus.el:
 
 @example
 (defun my-archive-article (&optional n)
@@ -1984,620 +1769,531 @@
             (replace-regexp-in-string "^.*:" "" gnus-newsgroup-name)))))
     (gnus-summary-copy-article n archive-name)))
 @end example
-
 @noindent
- You can now say @samp{M-x
- my-archive-article} in summary buffer to
- archive the article under the cursor in a nnml
- group. (Change nnml to your preferred back end)
- 
 
- Of course you can also make sure the cache is enabled by saying
- 
+You can now say @samp{M-x
+my-archive-article} in summary buffer to
+archive the article under the cursor in a nnml
+group. (Change nnml to your preferred back end)
+
+Of course you can also make sure the cache is enabled by saying
 
 @example
 (setq gnus-use-cache t)
 @end example
-
 @noindent
- then you only have to set either the tick or the dormant
- mark for articles you want to keep, setting the read
- mark will remove them from cache.
- 
-@ifnottex
-@node [6.3], [6.4], [6.2], FAQ 6 - Old messages
-@end ifnottex
-@subsubheading Question 6.3: 
-
- How to search for a specific message?
- 
-
-Answer: 
-
- There are several ways for this, too. For a posting from
- a Usenet group the easiest solution is probably to ask
- @uref{http://groups.google.com,groups.google.com},
- if you found the posting there, tell Google to display
- the raw message, look for the message-id, and say
- @samp{M-^ the@@message.id RET} in a
- summary buffer.
- Since Gnus 5.10.0 there's also a Gnus interface for
- groups.google.com which you can call with
- @samp{G W}) in group buffer.
- 
-
- Another idea which works for both mail and news groups
- is to enter the group where the message you are
- searching is and use the standard Emacs search
- @samp{C-s}, it's smart enough to look at
- articles in collapsed threads, too. If you want to
- search bodies, too try @samp{M-s}
- instead. Further on there are the
- gnus-summary-limit-to-foo functions, which can help you,
- too.
- 
-
- Of course you can also use grep to search through your
- local mail, but this is both slow for big archives and
- inconvenient since you are not displaying the found mail
- in Gnus. Here comes nnir into action. Nnir is a front end
- to search engines like swish-e or swish++ and
- others. You index your mail with one of those search
- engines and with the help of nnir you can search trough
- the indexed mail and generate a temporary group with all
- messages which met your search criteria. If this sound
- cool to you get nnir.el from
- @uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/}
- or @uref{ftp://ftp.is.informatik.uni-duisburg.de/pub/src/emacs/}.
- Instructions on how to use it are at the top of the file.
- 
-@ifnottex
-@node [6.4], [6.5], [6.3], FAQ 6 - Old messages
-@end ifnottex
-@subsubheading Question 6.4: 
-
- How to get rid of old unwanted mail?
- 
-
-Answer: 
-
- You can of course just mark the mail you don't need
- anymore by saying @samp{#} with point
- over the mail and then say @samp{B DEL}
- to get rid of them forever. You could also instead of
- actually deleting them, send them to a junk-group by
- saying @samp{B m nnml:trash-bin} which
- you clear from time to time, but both are not the intended
- way in Gnus.
- 
-
- In Gnus, we let mail expire like news expires on a news
- server. That means you tell Gnus the message is
- expirable (you tell Gnus "I don't need this mail
- anymore") by saying @samp{E} with point
- over the mail in summary buffer. Now when you leave the
- group, Gnus looks at all messages which you marked as
- expirable before and if they are old enough (default is
- older than a week) they are deleted. 
- 
-@ifnottex
-@node [6.5], [6.6], [6.4], FAQ 6 - Old messages
-@end ifnottex
-@subsubheading Question 6.5: 
-
- I want that all read messages are expired (at least in
- some groups). How to do it?
- 
-
-Answer: 
 
- If you want all read messages to be expired (e.g. in
- mailing lists where there's an online archive), you've
- got two choices: auto-expire and
- total-expire. Auto-expire means, that every article
- which has no marks set and is selected for reading is
- marked as expirable, Gnus hits @samp{E}
- for you every time you read a message. Total-expire
- follows a slightly different approach, here all article
- where the read mark is set are expirable.
- 
-
- To activate auto-expire, include auto-expire in the
- Group parameters for the group. (Hit @samp{G
- c} in summary buffer with point over the
- group to change group parameters). For total-expire add
- total-expire to the group-parameters.
- 
-
- Which method you choose is merely a matter of taste:
- Auto-expire is faster, but it doesn't play together with
- Adaptive Scoring, so if you want to use this feature,
- you should use total-expire.
- 
+then you only have to set either the tick or the dormant
+mark for articles you want to keep, setting the read
+mark will remove them from cache.
+
+@node [6.3]
+@subsubheading Question 6.3
+
+How to search for a specific message?
+
+@subsubheading Answer
+
+There are several ways for this, too. For a posting from
+a Usenet group the easiest solution is probably to ask
+@uref{http://groups.google.com, groups.google.com},
+if you found the posting there, tell Google to display
+the raw message, look for the message-id, and say
+@samp{M-^ the@@message.id RET} in a
+summary buffer.
+Since Gnus 5.10 there's also a Gnus interface for
+groups.google.com which you can call with
+@samp{G W}) in group buffer.
+
+Another idea which works for both mail and news groups
+is to enter the group where the message you are
+searching is and use the standard Emacs search
+@samp{C-s}, it's smart enough to look at
+articles in collapsed threads, too. If you want to
+search bodies, too try @samp{M-s}
+instead. Further on there are the
+gnus-summary-limit-to-foo functions, which can help you,
+too.
+
+Of course you can also use grep to search through your
+local mail, but this is both slow for big archives and
+inconvenient since you are not displaying the found mail
+in Gnus. Here comes nnir into action. Nnir is a front end
+to search engines like swish-e or swish++ and
+others. You index your mail with one of those search
+engines and with the help of nnir you can search trough
+the indexed mail and generate a temporary group with all
+messages which met your search criteria. If this sound
+cool to you get nnir.el from
+@uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/}
+or @uref{ftp://ftp.is.informatik.uni-duisburg.de/pub/src/emacs/}.
+Instructions on how to use it are at the top of the file.
+
+@node [6.4]
+@subsubheading Question 6.4
+
+How to get rid of old unwanted mail?
+
+@subsubheading Answer
+
+You can of course just mark the mail you don't need
+anymore by saying @samp{#} with point
+over the mail and then say @samp{B DEL}
+to get rid of them forever. You could also instead of
+actually deleting them, send them to a junk-group by
+saying @samp{B m nnml:trash-bin} which
+you clear from time to time, but both are not the intended
+way in Gnus.
+
+In Gnus, we let mail expire like news expires on a news
+server. That means you tell Gnus the message is
+expirable (you tell Gnus "I don't need this mail
+anymore") by saying @samp{E} with point
+over the mail in summary buffer. Now when you leave the
+group, Gnus looks at all messages which you marked as
+expirable before and if they are old enough (default is
+older than a week) they are deleted.
+
+@node [6.5]
+@subsubheading Question 6.5
+
+I want that all read messages are expired (at least in
+some groups). How to do it?
+
+@subsubheading Answer
+
+If you want all read messages to be expired (e.g. in
+mailing lists where there's an online archive), you've
+got two choices: auto-expire and
+total-expire. Auto-expire means, that every article
+which has no marks set and is selected for reading is
+marked as expirable, Gnus hits @samp{E}
+for you every time you read a message. Total-expire
+follows a slightly different approach, here all article
+where the read mark is set are expirable.
+
+To activate auto-expire, include auto-expire in the
+Group parameters for the group. (Hit @samp{G
+c} in summary buffer with point over the
+group to change group parameters). For total-expire add
+total-expire to the group-parameters.
+
+Which method you choose is merely a matter of taste:
+Auto-expire is faster, but it doesn't play together with
+Adaptive Scoring, so if you want to use this feature,
+you should use total-expire.
+
+If you want a message to be excluded from expiration in
+a group where total or auto expire is active, set either
+tick (hit @samp{u}) or dormant mark (hit
+@samp{u}), when you use auto-expire, you
+can also set the read mark (hit
+@samp{d}).
+
+@node [6.6]
+@subsubheading Question 6.6
 
- If you want a message to be excluded from expiration in
- a group where total or auto expire is active, set either
- tick (hit @samp{u}) or dormant mark (hit
- @samp{u}), when you use auto-expire, you
- can also set the read mark (hit
- @samp{d}).
- 
-@ifnottex
-@node [6.6],  , [6.5], FAQ 6 - Old messages
-@end ifnottex
-@subsubheading Question 6.6: 
+I don't want expiration to delete my mails but to move them
+to another group.
 
- I don't want expiration to delete my mails but to move them
- to another group.
- 
+@subsubheading Answer
 
-Answer: 
-
- Say something like this in ~/.gnus:
- 
+Say something like this in ~/.gnus.el:
 
 @example
 (setq nnmail-expiry-target "nnml:expired")
 @end example
-
 @noindent
- (If you want to change the value of nnmail-expiry-target
- on a per group basis see the question "How can I disable
- threading in some (e.g. mail-) groups, or set other
- variables specific for some groups?")
- 
 
-@ifnottex
-@node FAQ 7 - Gnus in a dial-up environment, FAQ 8 - Getting help, FAQ 6 - Old messages, Frequently Asked Questions
-@end ifnottex
+(If you want to change the value of nnmail-expiry-target
+on a per group basis see the question "How can I disable
+threading in some (e.g. mail-) groups, or set other
+variables specific for some groups?")
+
+@node FAQ 7 - Gnus in a dial-up environment
 @subsection Gnus in a dial-up environment
 
 @menu
-* [7.1]::   I don't have a permanent connection to the net, how can I
-            minimize the time I've got to be connected? 
-* [7.2]::   So what was this thing about the Agent? 
-* [7.3]::   I want to store article bodies on disk, too. How to do it? 
-* [7.4]::   How to tell Gnus not to try to send mails / postings while
-            I'm offline? 
+* [7.1]::    I don't have a permanent connection to the net, how can I
+             minimize the time I've got to be connected?
+* [7.2]::    So what was this thing about the Agent?
+* [7.3]::    I want to store article bodies on disk, too. How to do it?
+* [7.4]::    How to tell Gnus not to try to send mails / postings while
+             I'm offline?
 @end menu
 
+@node [7.1]
+@subsubheading Question 7.1
 
-@ifnottex
-@node [7.1], [7.2], FAQ 7 - Gnus in a dial-up environment, FAQ 7 - Gnus in a dial-up environment
-@end ifnottex
-@subsubheading Question 7.1: 
-
- I don't have a permanent connection to the net, how can
- I minimize the time I've got to be connected?
- 
-
-Answer: 
-
- You've got basically two options: Either you use the
- Gnus Agent (see below) for this, or you can install
- programs which fetch your news and mail to your local
- disk and Gnus reads the stuff from your local
- machine.
- 
-
- If you want to follow the second approach, you need a
- program which fetches news and offers them to Gnus, a
- program which does the same for mail and a program which
- receives the mail you write from Gnus and sends them
- when you're online.
- 
-
-Let's talk about Unix systems first: For the news part, the easiest
-solution is a small nntp server like
-@uref{http://www.leafnode.org/,Leafnode} or
-@uref{http://infa.abo.fi/~patrik/sn/,sn}, of course you can also
-install a full featured news server like
-@uref{http://www.isc.org/products/INN/,inn}.
-
-Then you want to fetch your Mail, popular choices are
-@itemize @bullet
-@item
-@uref{http://www.catb.org/~esr/fetchmail/,fetchmail} and
-@item
-@uref{http://www.qcc.ca/~charlesc/software/getmail-3.0/,getmail}.
-@end itemize
-You should tell those to write the mail to your disk and Gnus to read
-it from there. Last but not least the mail sending part: This can be
-done with every MTA like @uref{http://www.sendmail.org/,sendmail},
-@uref{http://www.qmail.org/,postfix}, @uref{http://www.exim.org/,exim}
-or @uref{http://www.qmail.org/,qmail}.
- 
-
- On windows boxes I'd vote for 
- @uref{http://www.tglsoft.de/,Hamster}, 
- it's a small freeware, open-source program which fetches
- your mail and news from remote servers and offers them
- to Gnus (or any other mail and/or news reader) via nntp
- respectively POP3 or IMAP. It also includes a smtp
- server for receiving mails from Gnus.
- 
-@ifnottex
-@node [7.2], [7.3], [7.1], FAQ 7 - Gnus in a dial-up environment
-@end ifnottex
-@subsubheading Question 7.2: 
-
- So what was this thing about the Agent?
- 
+I don't have a permanent connection to the net, how can
+I minimize the time I've got to be connected?
 
-Answer: 
+@subsubheading Answer
 
- The Gnus agent is part of Gnus, it allows you to fetch
- mail and news and store them on disk for reading them
- later when you're offline. It kind of mimics offline
- newsreaders like e.g. Forte Agent. If you want to use
- the Agent place the following in ~/.gnus if you are
- still using 5.8.8 or 5.9 (it's the default since 5.10.0):
- 
+You've got basically two options: Either you use the
+Gnus Agent (see below) for this, or you can install
+programs which fetch your news and mail to your local
+disk and Gnus reads the stuff from your local
+machine.
+
+If you want to follow the second approach, you need a
+program which fetches news and offers them to Gnus, a
+program which does the same for mail and a program which
+receives the mail you write from Gnus and sends them
+when you're online.
+
+Let's talk about Unix systems first: For the news part,
+the easiest solution is a small nntp server like 
+@uref{http://www.leafnode.org/, Leafnode} or
+@uref{http://infa.abo.fi/~patrik/sn/, sn},
+of course you can also install a full featured news
+server like 
+@uref{http://www.isc.org/products/INN/, inn}. 
+Then you want to fetch your Mail, popular choices
+are @uref{http://www.catb.org/~esr/fetchmail/, fetchmail}
+and @uref{http://www.qcc.ca/~charlesc/software/getmail-3.0/, getmail}.
+You should tell those to write the mail to your disk and
+Gnus to read it from there. Last but not least the mail
+sending part: This can be done with every MTA like
+@uref{http://www.sendmail.org/, sendmail},
+@uref{http://www.qmail.org/, postfix},
+@uref{http://www.exim.org/, exim} or
+@uref{http://www.qmail.org/, qmail}.
+
+On windows boxes I'd vote for 
+@uref{http://www.tglsoft.de/, Hamster}, 
+it's a small freeware, open-source program which fetches
+your mail and news from remote servers and offers them
+to Gnus (or any other mail and/or news reader) via nntp
+respectively POP3 or IMAP. It also includes a smtp
+server for receiving mails from Gnus.
+
+@node [7.2]
+@subsubheading Question 7.2
+
+So what was this thing about the Agent?
+
+@subsubheading Answer
+
+The Gnus agent is part of Gnus, it allows you to fetch
+mail and news and store them on disk for reading them
+later when you're offline. It kind of mimics offline
+newsreaders like e.g. Forte Agent. If you want to use
+the Agent place the following in ~/.gnus.el if you are
+still using 5.8.8 or 5.9 (it's the default since 5.10):
 
 @example
 (setq gnus-agent t)
 @end example
- 
-
- Now you've got to select the servers whose groups can be
- stored locally. To do this, open the server buffer
- (that is press @samp{^} while in the
- group buffer). Now select a server by moving point to
- the line naming that server. Finally, agentize the
- server by typing @samp{J a}. If you
- make a mistake, or change your mind, you can undo this
- action by typing @samp{J r}. When
- you're done, type 'q' to return to the group buffer.
- Now the next time you enter a group on a agentized
- server, the headers will be stored on disk and read from
- there the next time you enter the group.
- 
-@ifnottex
-@node [7.3], [7.4], [7.2], FAQ 7 - Gnus in a dial-up environment
-@end ifnottex
-@subsubheading Question 7.3: 
-
- I want to store article bodies on disk, too. How to do it?
- 
+@noindent
 
-Answer: 
+Now you've got to select the servers whose groups can be
+stored locally.  To do this, open the server buffer
+(that is press @samp{^} while in the
+group buffer).  Now select a server by moving point to
+the line naming that server.  Finally, agentize the
+server by typing @samp{J a}.  If you
+make a mistake, or change your mind, you can undo this
+action by typing @samp{J r}.  When
+you're done, type 'q' to return to the group buffer.
+Now the next time you enter a group on a agentized
+server, the headers will be stored on disk and read from
+there the next time you enter the group.
+
+@node [7.3]
+@subsubheading Question 7.3
+
+I want to store article bodies on disk, too. How to do it?
+
+@subsubheading Answer
+
+You can tell the agent to automatically fetch the bodies
+of articles which fulfill certain predicates, this is
+done in a special buffer which can be reached by
+saying @samp{J c} in group
+buffer. Please refer to the documentation for
+information which predicates are possible and how
+exactly to do it.
+
+Further on you can tell the agent manually which
+articles to store on disk. There are two ways to do
+this: Number one: In the summary buffer, process mark a
+set of articles that shall be stored in the agent by
+saying @samp{#} with point over the
+article and then type @samp{J s}. The
+other possibility is to set, again in the summary
+buffer, downloadable (%) marks for the articles you
+want by typing @samp{@@} with point over
+the article and then typing @samp{J u}.
+What's the difference? Well, process marks are erased as
+soon as you exit the summary buffer while downloadable
+marks are permanent.  You can actually set downloadable
+marks in several groups then use fetch session ('J s' in
+the GROUP buffer) to fetch all of those articles.  The
+only downside is that fetch session also fetches all of
+the headers for every selected group on an agentized
+server.  Depending on the volume of headers, the initial
+fetch session could take hours.
+
+@node [7.4]
+@subsubheading Question 7.4
+
+How to tell Gnus not to try to send mails / postings
+while I'm offline?
+
+@subsubheading Answer
+
+All you've got to do is to tell Gnus when you are online
+(plugged) and when you are offline (unplugged), the rest
+works automatically. You can toggle plugged/unplugged
+state by saying @samp{J j} in group
+buffer. To start Gnus unplugged say @samp{M-x
+gnus-unplugged} instead of
+@samp{M-x gnus}. Note that for this to
+work, the agent must be active.
 
- You can tell the agent to automatically fetch the bodies
- of articles which fulfill certain predicates, this is
- done in a special buffer which can be reached by
- saying @samp{J c} in group
- buffer. Please refer to the documentation for
- information which predicates are possible and how
- exactly to do it. 
- 
+@node FAQ 8 - Getting help
+@subsection Getting help
 
- Further on you can tell the agent manually which
- articles to store on disk. There are two ways to do
- this: Number one: In the summary buffer, process mark a
- set of articles that shall be stored in the agent by
- saying @samp{#} with point over the
- article and then type @samp{J s}. The
- other possibility is to set, again in the summary
- buffer, downloadable (%) marks for the articles you
- want by typing @samp{@@} with point over
- the article and then typing @samp{J u}.
- What's the difference? Well, process marks are erased as
- soon as you exit the summary buffer while downloadable
- marks are permanent. You can actually set downloadable
- marks in several groups then use fetch session ('J s' in
- the GROUP buffer) to fetch all of those articles. The
- only downside is that fetch session also fetches all of
- the headers for every selected group on an agentized
- server. Depending on the volume of headers, the initial
- fetch session could take hours.
- 
-@ifnottex
-@node [7.4],  , [7.3], FAQ 7 - Gnus in a dial-up environment
-@end ifnottex
-@subsubheading Question 7.4: 
+@menu
+* [8.1]::    How to find information and help inside Emacs?
+* [8.2]::    I can't find anything in the Gnus manual about X (e.g.
+             attachments, PGP, MIME...), is it not documented?
+* [8.3]::    Which websites should I know?
+* [8.4]::    Which mailing lists and newsgroups are there?
+* [8.5]::    Where to report bugs?
+* [8.6]::    I need real-time help, where to find it?
+@end menu
 
- How to tell Gnus not to try to send mails / postings
- while I'm offline?
- 
+@node [8.1]
+@subsubheading Question 8.1
 
-Answer: 
+How to find information and help inside Emacs?
 
- All you've got to do is to tell Gnus when you are online
- (plugged) and when you are offline (unplugged), the rest
- works automatically. You can toggle plugged/unplugged
- state by saying @samp{J j} in group
- buffer. To start Gnus unplugged say @samp{M-x
- gnus-unplugged} instead of
- @samp{M-x gnus}. Note that for this to
- work, the agent must be active.
- 
+@subsubheading Answer
 
-@ifnottex
-@node FAQ 8 - Getting help, FAQ 9 - Tuning Gnus, FAQ 7 - Gnus in a dial-up environment, Frequently Asked Questions
-@end ifnottex
-@subsection Getting help
+The first stop should be the Gnus manual (Say
+@samp{C-h i d m Gnus RET} to start the
+Gnus manual, then walk through the menus or do a
+full-text search with @samp{s}). Then
+there are the general Emacs help commands starting with
+C-h, type @samp{C-h ? ?} to get a list
+of all available help commands and their meaning. Finally
+@samp{M-x apropos-command} lets you
+search through all available functions and @samp{M-x
+apropos} searches the bound variables.
 
-@menu
-* [8.1]::   How to find information and help inside Emacs? 
-* [8.2]::   I can't find anything in the Gnus manual about X
-            (e.g. attachments, PGP, MIME...), is it not documented? 
-* [8.3]::   Which websites should I know? 
-* [8.4]::   Which mailing lists and newsgroups are there? 
-* [8.5]::   Where to report bugs? 
-* [8.6]::   I need real-time help, where to find it? 
-@end menu
+@node [8.2]
+@subsubheading Question 8.2
 
-@ifnottex
-@node [8.1], [8.2], FAQ 8 - Getting help, FAQ 8 - Getting help
-@end ifnottex
-@subsubheading Question 8.1: 
+I can't find anything in the Gnus manual about X
+(e.g. attachments, PGP, MIME...), is it not documented?
 
- How to find information and help inside Emacs?
- 
+@subsubheading Answer
 
-Answer: 
+There's not only the Gnus manual but also the manuals
+for message, emacs-mime, sieve and pgg. Those packages
+are distributed with Gnus and used by Gnus but aren't
+really part of core Gnus, so they are documented in
+different info files, you should have a look in those
+manuals, too.
 
- The first stop should be the Gnus manual (Say
- @samp{C-h i d m Gnus RET} to start the
- Gnus manual, then walk through the menus or do a
- full-text search with @samp{s}). Then
- there are the general Emacs help commands starting with
- C-h, type @samp{C-h ? ?} to get a list
- of all available help commands and their meaning. Finally
- @samp{M-x apropos-command} lets you
- search through all available functions and @samp{M-x
- apropos} searches the bound variables.
- 
-@ifnottex
-@node [8.2], [8.3], [8.1], FAQ 8 - Getting help
-@end ifnottex
-@subsubheading Question 8.2: 
+@node [8.3]
+@subsubheading Question 8.3
 
- I can't find anything in the Gnus manual about X
- (e.g. attachments, PGP, MIME...), is it not documented?
- 
+Which websites should I know?
 
-Answer: 
+@subsubheading Answer
 
- There's not only the Gnus manual but also the manuals
- for message, emacs-mime, sieve and pgg. Those packages
- are distributed with Gnus and used by Gnus but aren't
- really part of core Gnus, so they are documented in
- different info files, you should have a look in those
- manuals, too.
- 
-@ifnottex
-@node [8.3], [8.4], [8.2], FAQ 8 - Getting help
-@end ifnottex
-@subsubheading Question 8.3: 
+The two most important ones are the
+@uref{http://www.gnus.org, official Gnus website}.
+and it's sister site 
+@uref{http://my.gnus.org, my.gnus.org (MGO)},
+hosting an archive of lisp snippets, howtos, a (not
+really finished) tutorial and this FAQ.
 
- Which websites should I know?
- 
+Tell me about other sites which are interesting.
 
-Answer: 
+@node [8.4]
+@subsubheading Question 8.4
 
- The two most important ones are the
- @uref{http://www.gnus.org,official Gnus website}.
- and it's sister site 
- @uref{http://my.gnus.org,my.gnus.org (MGO)},
- hosting an archive of lisp snippets, howtos, a (not
- really finished) tutorial and this FAQ.
- 
+Which mailing lists and newsgroups are there?
 
- Tell me about other sites which are interesting.
- 
-@ifnottex
-@node [8.4], [8.5], [8.3], FAQ 8 - Getting help
-@end ifnottex
-@subsubheading Question 8.4: 
+@subsubheading Answer
 
- Which mailing lists and newsgroups are there?
- 
+There's the newsgroup gnu.emacs.gnus (pull it from
+e.g. news.gnus.org) which deals with general questions and the
+ding mailing list (ding@@gnus.org) dealing with development of
+Gnus. You can read the ding list via NNTP, too under the name
+gmane.emacs.gnus.general from news.gmane.org.
 
-Answer: 
+If you want to stay in the big8,
+news.software.newssreaders is also read by some Gnus
+users (but chances for qualified help are much better in
+the above groups) and if you speak German, there's
+de.comm.software.gnus.
 
- There's the newsgroup gnu.emacs.gnus (pull it from
- e.g. news.gnus.org) which deals with general questions
- and the ding mailing list (ding@@gnus.org) dealing with
- development of Gnus. You can read the ding list via
- NNTP, too under the name gnus.ding from news.gnus.org.
- 
+@node [8.5]
+@subsubheading Question 8.5
 
- If you want to stay in the big8,
- news.software.newssreaders is also read by some Gnus
- users (but chances for qualified help are much better in
- the above groups) and if you speak German, there's
- de.comm.software.gnus.
- 
-@ifnottex
-@node [8.5], [8.6], [8.4], FAQ 8 - Getting help
-@end ifnottex
-@subsubheading Question 8.5: 
+Where to report bugs?
 
- Where to report bugs?
- 
+@subsubheading Answer
 
-Answer: 
+Say @samp{M-x gnus-bug}, this will start
+a message to the 
+@email{bugs@@gnus.org, gnus bug mailing list}
+including information about your environment which make
+it easier to help you.
 
-Say @samp{M-x gnus-bug}, this will start a message to the
-@email{bugs@@gnus.org,gnus bug mailing list} including information
-about your environment which make it easier to help you.
- 
-@ifnottex
-@node [8.6],  , [8.5], FAQ 8 - Getting help
-@end ifnottex
-@subsubheading Question 8.6: 
+@node [8.6]
+@subsubheading Question 8.6
 
- I need real-time help, where to find it?
- 
+I need real-time help, where to find it?
 
-Answer: 
+@subsubheading Answer
 
- Point your IRC client to irc.my.gnus.org channel
- #mygnus. Don't be afraid if people there speak German,
- they are willing and capable of switching to
- English when people from outside Germany enter.
- 
+Point your IRC client to irc.my.gnus.org channel
+#mygnus. Don't be afraid if people there speak German,
+they are willing and capable of switching to
+English when people from outside Germany enter.
 
-@ifnottex
-@node FAQ 9 - Tuning Gnus, FAQ - Glossary, FAQ 8 - Getting help, Frequently Asked Questions
-@end ifnottex
+@node FAQ 9 - Tuning Gnus
 @subsection Tuning Gnus
 
 @menu
-* [9.1]::   Starting Gnus is really slow, how to speed it up? 
-* [9.2]::   How to speed up the process of entering a group? 
-* [9.3]::   Sending mail becomes slower and slower, what's up? 
+* [9.1]::    Starting Gnus is really slow, how to speed it up?
+* [9.2]::    How to speed up the process of entering a group?
+* [9.3]::    Sending mail becomes slower and slower, what's up?
 @end menu
 
-@ifnottex
-@node [9.1], [9.2], FAQ 9 - Tuning Gnus, FAQ 9 - Tuning Gnus
-@end ifnottex
-@subsubheading Question 9.1: 
+@node [9.1]
+@subsubheading Question 9.1
 
- Starting Gnus is really slow, how to speed it up?
- 
+Starting Gnus is really slow, how to speed it up?
 
-Answer: 
+@subsubheading Answer
 
- The reason for this could be the way Gnus reads it's
- active file, see the node "The Active File" in the Gnus
- manual for things you might try to speed the process up.
- An other idea would be to byte compile your ~/.gnus (say
- @samp{M-x byte-compile-file RET ~/.gnus
- RET} to do it). Finally, if you have require
- statements in your .gnus, you could replace them with
- eval-after-load, which loads the stuff not at startup
- time, but when it's needed. Say you've got this in your
- ~/.gnus:
- 
+The reason for this could be the way Gnus reads it's
+active file, see the node "The Active File" in the Gnus
+manual for things you might try to speed the process up.
+An other idea would be to byte compile your ~/.gnus.el (say
+@samp{M-x byte-compile-file RET ~/.gnus.el
+RET} to do it). Finally, if you have require
+statements in your .gnus, you could replace them with
+eval-after-load, which loads the stuff not at startup
+time, but when it's needed. Say you've got this in your
+~/.gnus.el:
 
 @example
 (require 'message)
 (add-to-list 'message-syntax-checks '(sender . disabled))
 @end example
-
 @noindent
- then as soon as you start Gnus, message.el is loaded. If
- you replace it with
- 
+
+then as soon as you start Gnus, message.el is loaded. If
+you replace it with
 
 @example
 (eval-after-load "message"
       '(add-to-list 'message-syntax-checks '(sender . disabled)))
 @end example
-
 @noindent
- it's loaded when it's needed.
- 
-@ifnottex
-@node [9.2], [9.3], [9.1], FAQ 9 - Tuning Gnus
-@end ifnottex
-@subsubheading Question 9.2: 
 
- How to speed up the process of entering a group?
- 
+it's loaded when it's needed.
 
-Answer: 
+@node [9.2]
+@subsubheading Question 9.2
 
- A speed killer is setting the variable
- gnus-fetch-old-headers to anything different from nil,
- so don't do this if speed is an issue. To speed up
- building of summary say
- 
+How to speed up the process of entering a group?
+
+@subsubheading Answer
+
+A speed killer is setting the variable
+gnus-fetch-old-headers to anything different from nil,
+so don't do this if speed is an issue. To speed up
+building of summary say
 
 @example
 (gnus-compile)
 @end example
-
 @noindent
- at the bottom of your ~/.gnus, this will make gnus
- byte-compile things like
- gnus-summary-line-format. 
- then you could increase the value of gc-cons-threshold
- by saying something like
- 
+
+at the bottom of your ~/.gnus.el, this will make gnus
+byte-compile things like
+gnus-summary-line-format. 
+then you could increase the value of gc-cons-threshold
+by saying something like
 
 @example
 (setq gc-cons-threshold 3500000)
 @end example
-
 @noindent
- in ~/.emacs. If you don't care about width of CJK
- characters or use Gnus 5.10.0 or younger together with a
- recent GNU Emacs, you should say
- 
+
+in ~/.emacs. If you don't care about width of CJK
+characters or use Gnus 5.10 or younger together with a
+recent GNU Emacs, you should say
 
 @example
-(setq gnus-use-correct-string-widths nil) 
+(setq gnus-use-correct-string-widths nil)
 @end example
- 
-
 @noindent
- in ~/.gnus (thanks to Jesper harder for the last
- two suggestions). Finally if you are still using 5.8.8
- or 5.9 and experience speed problems with summary
- buffer generation, you definitely should update to
- 5.10.0 since there quite some work on improving it has
- been done.
  
-@ifnottex
-@node [9.3],  , [9.2], FAQ 9 - Tuning Gnus
-@end ifnottex
-@subsubheading Question 9.3: 
+in ~/.gnus.el (thanks to Jesper harder for the last
+two suggestions). Finally if you are still using 5.8.8
+or 5.9 and experience speed problems with summary
+buffer generation, you definitely should update to
+5.10 since there quite some work on improving it has
+been done.
 
- Sending mail becomes slower and slower, what's up?
- 
+@node [9.3]
+@subsubheading Question 9.3
 
-Answer: 
+Sending mail becomes slower and slower, what's up?
 
- The reason could be that you told Gnus to archive the
- messages you wrote by setting
- gnus-message-archive-group. Try to use a nnml group
- instead of an archive group, this should bring you back
- to normal speed.
- 
+@subsubheading Answer
+
+The reason could be that you told Gnus to archive the
+messages you wrote by setting
+gnus-message-archive-group. Try to use a nnml group
+instead of an archive group, this should bring you back
+to normal speed.
 
-@ifnottex
-@node FAQ - Glossary,  , FAQ 9 - Tuning Gnus, Frequently Asked Questions
-@end ifnottex
+@node FAQ - Glossary
 @subsection Glossary
 
 @table @dfn
 
-@item ~/.gnus
- When the term ~/.gnus is used it just means your Gnus
- configuration file. You might as well call it ~/.gnus.el or
- specify another name.
- 
+@item ~/.gnus.el
+When the term ~/.gnus.el is used it just means your Gnus
+configuration file. You might as well call it ~/.gnus or
+specify another name.
 
 @item Back End
- In Gnus terminology a back end is a virtual server, a layer
- between core Gnus and the real NNTP-, POP3-, IMAP- or
- whatever-server which offers Gnus a standardized interface
- to functions like "get message", "get Headers" etc.
- 
+In Gnus terminology a back end is a virtual server, a layer
+between core Gnus and the real NNTP-, POP3-, IMAP- or
+whatever-server which offers Gnus a standardized interface
+to functions like "get message", "get Headers" etc.
 
 @item Emacs
- When the term Emacs is used in this FAQ, it means either GNU
- Emacs or XEmacs.
- 
+When the term Emacs is used in this FAQ, it means either GNU
+Emacs or XEmacs.
 
 @item Message
- In this FAQ message means a either a mail or a posting to a
- Usenet Newsgroup or to some other fancy back end, no matter
- of which kind it is.
- 
+In this FAQ message means a either a mail or a posting to a
+Usenet Newsgroup or to some other fancy back end, no matter
+of which kind it is.
 
 @item MUA
- MUA is an acronym for Mail User Agent, it's the program you
- use to read and write e-mails.
- 
+MUA is an acronym for Mail User Agent, it's the program you
+use to read and write e-mails.
 
 @item NUA
- NUA is an acronym for News User Agent, it's the program you
- use to read and write Usenet news.
- 
+NUA is an acronym for News User Agent, it's the program you
+use to read and write Usenet news.
+
 @end table
 
-@c @bye
+@ignore
+arch-tag: 64dc5692-edb4-4848-a965-7aa0181acbb8
+@end ignore
Index: gnus/texi/gnus-logo.eps
diff -u /dev/null gnus/texi/gnus-logo.eps:7.1
--- /dev/null	Sun May  1 19:05:03 2005
+++ gnus/texi/gnus-logo.eps	Wed Mar 30 04:00:30 2005
@@ -0,0 +1,1055 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: gnuslogo1.ps
+%%Creator: XV Version 3.00  Rev: 3/30/93  -  by John Bradley
+%%BoundingBox: 0 0 493 505
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% define string to hold a scanline's worth of data
+/pix 62 string def
+
+% lower left corner
+0 0 translate
+
+% size of image (on paper, in 1/72inch coords)
+493.0 505.0 scale
+
+% dimensions of data
+493 505 1
+
+% mapping matrix
+[493 0 0 -505 0 505]
+
+{currentfile pix readhexstring pop}
+image
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff01fffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff8003ffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff0000ffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff8000007ffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000003ffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffe0000000ffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff000000003fff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff000000000fff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffc0000000007ff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff80000000003ff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00000000001ff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffe00000000000ff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffc00000000000ff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff8000000000007f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff0000000000003f8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffff0000000000003f8
+fffffffffffffffffffffffffff800ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffe0000000000001f8
+fffffffffffffffffffffffffff0001fffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffc0000000000000f8
+ffffffffffffffffffffffffffc00007ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffc0000000000000f8
+ffffffffffffffffffffffffff000001ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff8000000000000078
+fffffffffffffffffffffffffe0000003ffffffffffff0001fffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000000000000038
+fffffffffffffffffffffffffc0000001fffffffffffe00007ffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffe0000000000000038
+fffffffffffffffffffffffff800000007ffffffffff800001ffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffe0000000000000038
+fffffffffffffffffffffffff000000003fffffffffe0000003fffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffc0000000000000018
+ffffffffffffffffffffffffe000000001fffffffff80000000fffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffc0000000000000018
+ffffffffffffffffffffffffc000000000ffffffffe000000003ffffffffffffffffffff
+fffffffffffffffffffffffffffffffffff80000000000000018
+ffffffffffffffffffffffff80000000007fffffff8000000000ffffffffffffffffffff
+fffffffffffffffffffffffffffffffffff80000000000000008
+ffffffffffffffffffffffff00000000003fffffff00000000007fffffffffffffffffff
+fffffffffffffffffffffffffffffffffff00000000000000008
+fffffffffffffffffffffffe00000000001ffffffe00000000001fffffffffffffffffff
+fffffffffffffffffffffffffffffffffff00000000000000008
+fffffffffffffffffffffffc00000000000ffffff8000000000007ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffe00000000000000008
+fffffffffffffffffffffff8000000000007fffff0000000000007ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffe00000000000000008
+fffffffffffffffffffffff0000000000001ffffe0000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffc00000000000000000
+ffffffffffffffffffffffe0000000000000ffffc00000000000007fffffffffffffffff
+ffffffffffffffffffffffffffffffffffc00000000000000000
+ffffffffffffffffffffffc00000000000007fff800000000000001fffffffffffffffff
+ffffffffffffffffffffffffffffffffff800000000000000000
+ffffffffffffffffffffff800000000000003fff000000000000000fffffffffffffffff
+ffffffffffffffffffffffffffffffffff800000000000000000
+ffffffffffffffffffffff000000000000003fff0000000000000007ffffffffffffffff
+ffffffffffffffffffffffffffffffffff000040000000000000
+fffffffffffffffffffffe000000000000000ffe0000000000000001ffffffffffffffff
+ffffffffffffffffffffffffffffffffff0007ffc00000000000
+fffffffffffffffffffffc000000000000000ffc0000000000000000ffffffffffffffff
+fffffffffffffffffffffffffffffffffe001ffffc0000000000
+fffffffffffffffffffffc0000000000000007fc00000000000000007fffffffffffffff
+fffffffffffffffffffffffffffffffffc003ffffe0000000000
+fffffffffffffffffffff80000000000000007f800000000000000003fffffffffffffff
+fffffffffffffffffffffffffffffffffc007fffffc000000000
+fffffffffffffffffffff00000000000000001f000000000000000001fffffffffffffff
+fffffffffffffffffffffffffffffffff800fffffff000000000
+ffffffffffffffffffffe00000000000000001f000000000000000000fffffffffffffff
+fffffffffffffffffffffffffffffffff801fffffff800000000
+ffffffffffffffffffffc00000000000000000e0000000000000000007ffffffffffffff
+fffffffffffffffffffffffffffffffff003ffffffff00000000
+ffffffffffffffffffff800000000000000000c0000000000000000003ffffffffffffff
+fffffffffffffffffffffffffffffffff007ffffffff00000000
+ffffffffffffffffffff00000000000000000000000000000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffe00fffffffff80000000
+fffffffffffffffffffe00000000000000000000000000000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffe01fffffffffc0000008
+fffffffffffffffffffc000000000000000000000000000000000000007fffffffffffff
+ffffffffffffffffffffffffffffffffc03fffffffffc0000008
+fffffffffffffffffff8000000000000000000000000000000000000001fffffffffffff
+ffffffffffffffffffffffffffffffffc07ffffffffff0000000
+fff9fffffffffffffff800000fe00000000000000000000000000000001fffffffffffff
+ffffffffffffffffffffffffffffffff807ffffffffff0000000
+fff9fffffffffffffff000001ff80000000000000000000000000000000fffffffffffff
+ffffffffffffffffffffffffffffffff80fffffffffff0000008
+fff0ffffffffffffffc000007ffc00000000000000000000000000000007ffffffffffff
+ffffffffffffffffffffffffffffffff81fffffffffff8000008
+fff0ffffffffffffffc00000fffc00000000000000000000000000000003ffffffffffff
+ffffffffffffffffffffffffffffffff01fffffffffff8000008
+ffe07fffffffffffff800001ffff00000000000000000000000000000001ffffffffffff
+ffffffffffffffffffffffffffffffff03fffffffffffc000008
+ffe07fffffffffffff00000fffffc0000000000000000000000000000000ffffffffffff
+fffffffffffffffffffffffffffffffe03fffffffffffc000008
+ffe03ffffffffffffc00001fffffe00000000000000000000000000000007fffffffffff
+fffffffffffffffffffffffffffffffe07fffffffffffe000008
+ffe03ffffffffffff800003ffffff00000000000000000000000000000003fffffffffff
+fffffffffffffffffffffffffffffffe07fffffffffffe000008
+ffc03ffffffffffff000007ffffff80000000000000f80000000000000003fffffffffff
+fffffffffffffffffffffffffffffffe0ffffffffffffe000008
+ffc01fffffffffffe00001fffffffe000000000000fffe000000000000001fffffffffff
+fffffffffffffffffffffffffffffffc0ffffffffffffe000008
+ffc00fffffffffffc00003ffffffff000000000001ffff800000000000000fffffffffff
+fffffffffffffffffffffffffffffffc1fffffffffffff000008
+ff800fffffffffff800003ffffffff800000000007ffffc000000000000007ffffffffff
+fffffffffffffffffffffffffffffffc3fffffffffffff000008
+ff8007fffffffffe00000fffffffffc0000000001ffffffc00000000000003ffffffffff
+fffffffffffffffffffffffffffffff87fffffffffffff000008
+ff8007fffffffffc00000fffffffffe0000000005ffffffe00000000000001ffffffffff
+fffffffffffffffffffffffffffffff87fffffffffffff000008
+ff8003fffffffff800001ffffffffff000000000ffffffffc0000000000000ffffffffff
+fffffffffffffffffffffffffffffff87fffffffffffff000008
+ff0001fffffffff000003ffffffffffc00000007fffffffff80000000000007fffffffff
+fffffffffffffffffffffffffffffff8ffffffffffffff000008
+ff0000ffffffffe000003ffffffffffc0000000ffffffffffc0000000000007fffffffff
+fffffffffffffffffffffffffffffffcffffffffffffff000008
+fe00007fffffff800000ffffffffffff0000001ffffffffffe0000000000001fffffffff
+ffffffffffffffffffffffffffffe7fdffffffffffffff000008
+fe00007fffffff000001ffffffffffff8000003fffffffffff0000000000001fffffffff
+ffffffffffffffffffffffffffffe7fdffffffffffffff000008
+fc00001ffffffc000003ffffffffffffc000007fffffffffffe0000000000007ffffffff
+ffffffffffffffffffffffffffffc7ffffffffffffffff000008
+fc00001ffffff0000003ffffffffffffe00000fffffffffffff0000000000007ffffffff
+fffffffffeffffffffffffffffff87ffffffffffffffff000008
+f800000fffffe0000007fffffffffffff00000fffffffffffff8000000000003ffffffff
+fffffffffcffffffffffffffffff87ffffffffffffffff000008
+f8000003ffff0000000ffffffffffffff80001fffffffffffffc000000000001ffffffff
+fffffffff8ffffffffffffffffff07ffffffffffffffff000008
+f8000001fffe0000001ffffffffffffff80001ffffffffffffff000000000000ffffffff
+fffffffff8fffffffffffffffffe0fffffffffffffffff000008
+f0000000fff00000003ffffffffffffffc0001ffffffffffffff8000000000007fffffff
+fffffffff0fffffffffffffffffe0fffffffffffffffff000018
+e00000001a000000007ffffffffffffffe0003ffffffffffffffc000000000003fffffff
+fffffffff0fffffffffffffffffc0fffffffffffffffff000018
+e000000000000000007fffffffffffffff0003ffffffffffffffc000000000003fffffff
+ffffffffe0fffffffffffffffffc1fffffffffffffffff000018
+c00000000000000000ffffffffffffffff0007ffffffffffffffe000000000001fffffff
+ffffffffe0fffffffffffffffff81fffffffffffffffff000018
+c00000000000000001ffffffffffffffff0007fffffffffffffff0000000000007ffffff
+ffffffffc0fffffffffffffffff83fffffffffffffffff000018
+800000000000000007ffffffffffffffff800ffffffffffffffffc000000000003ffffff
+ffffffff01fffffffffffffffff03fffffffffffffffff000038
+800000000000000007ffffffffffffffff800ffffffffffffffffe000000000001ffffff
+ffffffff01fffffffffffffffff03fffffffffffffffff800038
+00000000000000000fffffffffffffffffc00fffffffffffffffff000000000000ffffff
+fffffffe03ffffffffffffffffe07fffffffffffffffff800038
+00000000000000001fffffffffffffffffc01fffffffffffffffff8000000000007fffff
+fffffffc03ffffffffffffffffe07fffffffffffffffff800038
+00000000000000003fffffffffffffffffe03fffffffffffffffffc000000000003fffff
+fffffff803ffffffffffffffffc07fffffffffffffffff800038
+00000000000000007ffffffffffffffffff03fffffffffffffffffe000000000000fffff
+fffffff007ffffffffffffffffc0ffffffffffffffffff800038
+0000000000000000fffffffffffffffffff07ffffffffffffffffff000000000000fffff
+fffffff007ffffffffffffffff80ffffffffffffffffff800078
+0000000000000003ffffffffffffffff8ff87ffffffffffffffffff8000000000001ffff
+ffffffc00fffffffffffffffff81ffffffffffffffffff800078
+8000000000000007ffffffffffffffff0ff8fffffffffffffffffffc000000000000ffff
+ffffffc00fffffffffffffffff01ffffffffffffffffff8000f8
+8000000000000007fffffffffffffffe0ffffffffffffffffffffffe0000000000007fff
+ffffff801fffffffffffffffff03ffffffffffffffffff8000f8
+c00000000000001ffffffffffffffffc0fffffffffffffffffffffff0000000000001fff
+fffffe001ffffffffffffffffe07ffffffffffffffffff8000f8
+e00000000000007ffffffffffffffff83fffffffffffffffffffffffc0000000000007ff
+fffff8003ffffffffffffffffc07ffffffffffffffffff8000f8
+f00000000000007ffffffffffffffff03fffffffffffffffffffffffc0000000000001ff
+fffff0003ffffffffffffffff80fffffffffffffffffff8000f8
+f0000000000000fffffffffffffffff07fffffffffffffffffffffffe0000000000000ff
+ffffe0003ffffffffffffffff00fffffffffffffffffff8001f8
+f8000000000003ffffffffffffffffe07ffffffffffffffffffffffff00000000000000f
+ffff00007fffffffffffffffe01fffffffffffffffffff0001f8
+fc000000000007ffffffffffffffffc07ffffffffffffffffffffffff800000000000007
+fffc00007fffffffffffffffc01fffffffffffffffffff0001f8
+fc000000000007ffffffffffffffffc0fffffffffffffffffffffffff800000000000000
+ffe000007ffffbffffffffff801fffffffffffffffffff0001f8
+fe00000000001fffffffffffffffff03fffffffffffffffffffffffffe00000000000000
+00000000fffff3ffffffffff003fffffffffffffffffff0001f8
+fe00000000003fffffffffffffffff03ffffffffffffffffffffffffff00000000000000
+00000001fffff1fffffffffe003fffffffffffffffffff0003f8
+ff00000000007ffffffffffffffffe03ffffffffffffffffffffffffff00000000000000
+00000001ffffe1fffffffffc007fffffffffffffffffff0003f8
+ff8000000001fffffffffffffffffc07ffffffffffffffffffffffffff80000000000000
+00000003ffffe0fffffffff0007fffffffffffffffffff0003f8
+ffc000000003fffffffffffffffffc0fffffffffffffffffffffffffffc0000000000000
+00000003ffffc0ffffffffe0007fffffffffffffffffff0003f8
+ffe00000000ffffffffffffffffff81fffffffffffffffffffffffffffe0000000000000
+00000007ffffc07fffffff8000ffffffffffffffffffff0003f8
+fff00000003ffffffffffffffffff01ffffffffffffffffffffffffffff0000000000000
+00000007ffff803fffffff0000fffffffffffffffffffe0007f8
+fff8000000ffffffffffffffffffe03ffffffffffffffffffffffffffff8000000000000
+00000007ffff801ffffffc0001fffffffffffffffffffe0007f8
+fffc000001ffffffffffffffffffe07ffffffffffffffffffffffffffffc000000000000
+0000000fffff000ffffff80003fffffffffffffffffffe0007f8
+fffe00000fffffffffffffffffffc07ffffffffffffffffffffffffffffc000000000000
+0000000fffff0007ffffe00003fffffffffffffffffffe0007f8
+ffff80007fffffffffffffffffff80fffffffffffffffffffffffffffffe000000000000
+0000001ffffe0001ffff800007fffffffffffffffffffe000ff8
+ffffe007ffffffffffffffffffff80ffffffffffffffffffffffffffffff000000000000
+0000001ffffe0000fffc000007fffffffffffffffffffe000ff8
+ffffffffffffffffffffffffffff01ffffffffffffffffffffffffffffff800000000000
+0000003ffffe0000000000000ffffffffffffffffffffe000ff8
+fffffffffffffffffffffffffffe03ffffffffffffffffffffffffffffffc00000000000
+0000003ffffc0000000000000ffffffffffffffffffffe000ff8
+fffffffffffffffffffffffffffe03ffffffffffffffffffffffffffffffe00000000000
+0000007ffff80000000000001ffffffffffffffffffffe001ff8
+fffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffff00000000000
+0000007ffff80000000000001ffffffffffffffffffffe001ff8
+fffffffffffffffffffffffffff807fffffffffffffffffffffffffffffff80000000000
+000000fffff80000000000003ffffffffffffffffffffc001ff8
+fffffffffffffffffffffffffff80ffffffffffffffffffffffffffffffffc0000000000
+000003fffff00000000000007ffffffffffffffffffffc001ff8
+fffffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffe0000000000
+000007ffffe00000000000007ffffffffffffffffffffe003ff8
+fffffffffffffffffffffffffff01fffffffffffffffffffffffffffffffff0000000000
+000007ffffe0000000000000fffffffffffffffffffffc003ff8
+ffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffffff8000000000
+00001fffffc0000000000001fffffffffffffffffffffc003ff8
+ffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffffffe000000000
+00001fffffc0000000000003fffffffffffffffffffffc003ff8
+ffffffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffff000000000
+00003fffff80000000000003fffffffffffffffffffffc007ff8
+ffffffffffffffffffffffffff01fffffffffffffffffffffffffffffffffff800000000
+00007fffff80000000000007fffffffffffffffffffffc007ff8
+ffffffffffffffffffffffffff03fffffffffffffffffffffffffffffffffffc00000000
+0000ffffff0000000000000ffffffffffffffffffffffc007ff8
+fffffffffffffffffffffffffe03fffffffffffffffffffffffffffffffffffc00000000
+0001ffffff0000000000001ffffffffffffffffffffffc007ff8
+fffffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffffff00000000
+0003fffffe0000000000001ffffffffffffffffffffff800fff8
+fffffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffff80000000
+0007fffffe0000000000003ffffffffffffffffffffff800fff8
+fffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffff0000000
+001ffffffc0000000000007ffffffffffffffffffffff800fff8
+fffffffffffffffffffffffff03ffffffffffffffffffffffffffffffffffffff8000000
+003ffffffc000000000000fffffffffffffffffffffff800fff8
+ffffffffffffffffffffffffe07ffffffffffffffffffffffffffffffffffffffe000000
+00fffffff8000000000003fffffffffffffffffffffff001fff8
+ffffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffff800000
+03fffffff8000000000003fffffffffffffffffffffff001fff8
+ffffffffffffffffffffffffc0ffffffffffffffffffffffffffffffffffffffffc00000
+07fffffff0000000000007fffffffffffffffffffffff001fff8
+ffffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffffffffc0000
+3ffffffff000000000000ffffffffffffffffffffffff003fff8
+ffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffffffffe03f
+fffffffff000000000003ffffffffffffffffffffffff003fff8
+ffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffff800000000007ffffffffffffffffffffffff003fff8
+fffffffffffffffffffffffe03ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffff80000000000ffffffffffffffffffffffffe003fff8
+fffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffc0000000003ffffffffffffffffffffffffe007fff8
+fffffffffffffffffffffffc0fffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffe0000000007ffffffffffffffffffffffffe007fff8
+fffffffffffffffffffffff81fffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffe000000000fffffffffffffffffffffffffe00ffff8
+fffffffffffffffffffffff01fffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000001fffffffffffffffffffffffffe00ffff8
+ffffffffffffffffffffffe03ffffffffffffffffffffffffbffffffffffffffffffffff
+ffffffffff800000007fffffffffffffffffffffffffc00ffff8
+ffffffffffffffffffffffe07ffffffffffffffffffdfffff1ffffffffffffffffffffff
+ffffffffffc0000000ffffffffffffffffffffffffffc00ffff8
+ffffffffffffffffffffffe07ffffffffffffffffff9fffff07fffffffffffffffffffff
+ffffffffffe0000001ffffffffffffffffffffffffffc00ffff8
+ffffffffffffffffffffffc0ffffffffffffffffffe3ffffe03fffffffffffffffffffff
+fffffffffff800001fffffffffffffffffffffffffffc01ffff8
+ffffffffffffffffffffff81ffffffffffffffffffc7ffffc00fffffffffffffffffffff
+fffffffffffe00007fffffffffffffffffffffffffffc01ffff8
+ffffffffffffffffffffff81ffffffffffffffffff87ffffc007ffffffffffffffffffff
+ffffffffffff8003ffffffffffffffffffffffffffff801ffff8
+ffffffffffffffffffffff03ffffffffffffffffff0fffff8007ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff803ffff8
+fffffffffffffffffffffe07fffffffffffffffffe0fffff8001ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff803ffff8
+fffffffffffffffffffffe07fffffffffffffffffc1fffff0000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff803ffff8
+fffffffffffffffffffffc0ffffffffffffffffff83ffffe00007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff007ffff8
+fffffffffffffffffffff81fffffffffffffffffe03ffffe00007fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff007ffff8
+fffffffffffffffffffff83fffffffffffffffffc07ffffc00003fffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff007ffff8
+fffffffffffffffffffff03fffffffffffffffff80fffff800001fffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffe00fffff8
+ffffffffffffffffffffe07fffffffffffffffff00fffff800000fffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffe00fffff8
+ffffffffffffffffffffe0fffffffffffffffffe01fffff0000007ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffe00fffff8
+ffffffffffffffffffffc0fffffffffffffffffc01ffffe0000003ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffe00fffff8
+ffffffffffffffffffff81fffffffffffffffff803ffffe0000003ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffe01fffff8
+ffffffffffffffffffff81ffffffffffffffffe007ffffc0000003ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffc01fffff8
+ffffffffffffffffffff83ffffffffffffffffe007ffffc0000001ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffc01fffff8
+ffffffffffffffffffff07ffffffffffffffff800fffff80000000ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffc01fffff8
+fffffffffffffffffffe07ffffffffffffffff800fffff00000000ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffc03fffff8
+fffffffffffffffffffc0ffffffffffffffffe001fffff00000000ffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff803fffff8
+fffffffffffffffffffc0ffffffffffffffffc003ffffe000000007fffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff803fffff8
+fffffffffffffffffff81ffffffffffffffff0003ffffc000000007fffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff007fffff8
+fffffffffffffffffff01fffffffffffffffe0007ffffc000000003fffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff007fffff8
+fffffffffffffffffff03fffffffffffffffe000fffff8000000001fffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffff007fffff8
+ffffffffffffffffffe07fffffffffffffff8000fffff0000000001fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffe00ffffff8
+ffffffffffffffffffc07fffffffffffffff0001fffff0000000001fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffe00ffffff8
+ffffffffffffffffffc0fffffffffffffffe0001ffffe0000000000fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffe00ffffff8
+ffffffffffffffffff80fffffffffffffff80003ffffe0000000000fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffe01ffffff8
+ffffffffffffffffff81fffffffffffffff00007ffffc0000000000fffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffc01ffffff8
+ffffffffffffffffff81ffffffffffffffe00007ffffc00000000007ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffc01ffffff8
+ffffffffffffffffff03ffffffffffffffc0000fffffc00000000007ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffc03ffffff8
+fffffffffffffffffe03ffffffffffffff00000fffffe00000000007ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff803ffffff8
+fffffffffffffffffc07fffffffffffffe00001ffffff00000000007ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff803ffffff8
+fffffffffffffffffc07fffffffffffffc00007ffffffc0000000007ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff807ffffff8
+fffffffffffffffff807fffffffffffff00001fffffffe0000000003ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff807ffffff8
+fffffffffffffffff807ffffffffffffe00003ffffffff0000000003ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff007ffffff8
+fffffffffffffffff00fffffffffffff800007ffffffff8000000003ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00fffffff8
+fffffffffffffffff00fffffffffffff00000fffffffffc000000001ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00fffffff8
+ffffffffffffffffe00ffffffffffffc00003fffffffffe000000001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffe01fffffff8
+ffffffffffffffffe00ffffffffffff800007ffffffffff000000001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffe01fffffff8
+ffffffffffffffffc00ffffffffffff00000fffffffffff800000001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffe01fffffff8
+ffffffffffffffff800fffffffffffc00001fffffffffffc00000001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffe03fffffff8
+ffffffffffffffff800fffffffffff000007fffffffffffe00000001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffe03fffffff8
+ffffffffffffffff001ffffffffffe00000fffffffffffff00000001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffc07fffffff8
+ffffffffffffffff001ffffffffffc00001fffffffffffff80000001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffc07fffffff8
+fffffffffffffffe000fffffffffe000003fffffffffffff80000001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff807fffffff8
+fffffffffffffffe000fffffffffc000007fffffffffffffc0000000ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff807fffffff8
+fffffffffffffffc000fffffffff800000ffffffffffffffe0000000ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff80ffffffff8
+fffffffffffffffc0007fffffffe000001fffffffffffffff0000000ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff80ffffffff8
+fffffffffffffffc0003fffffffc000003fffffffffffffff0000000ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff01ffffffff8
+fffffffffffffff80001fffffff8000007fffffffffffffff8000000ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff01ffffffff8
+fffffffffffffff80000ffffffc000001ffffffffffffffff8000000ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffff01ffffffff8
+fffffffffffffff800003fffff0000003ffffffffffffffffc000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffe01ffffffff8
+fffffffffffffff000000000000000007ffffffffffffffffc000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffe03ffffffff8
+ffffffffffffffe00000000000000000fffffffffffffffffe000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffe03ffffffff8
+ffffffffffffffe00000000000000001fffffffffffffffffe000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc07ffffffff8
+ffffffffffffffc00000000000000003fffffffffffffffffe000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc07ffffffff8
+ffffffffffffffc00000000000000007ffffffffffffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc07ffffffff8
+ffffffffffffffc0000000000000000fffffffffffffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc0fffffffff8
+ffffffffffffff80000000000000003fffffffffffffffffff800000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffc0fffffffff8
+ffffffffffffff80000000000000007fffffffffffffffffff800001ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff80fffffffff8
+ffffffffffffff8000000000000001ffffffffffffffffffff800001ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff81fffffffff8
+ffffffffffffff8000000000000001ffffffffffffffffffffc00001ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff81fffffffff8
+ffffffffffffff8000000000000003ffffffffffffffffffffe00001ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff01fffffffff8
+ffffffffffffff000000000000000fffffffffffffffffffffe00001ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff03fffffffff8
+ffffffffffffff000000000000001ffffffffffffffffffffff00001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffe03fffffffff8
+fffffffffffffe000000000000003ffffffffffffffffffffff00001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffe03fffffffff8
+fffffffffffffe000000000000007ffffffffffffffffffffff00001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffe03fffffffff8
+fffffffffffffc00000000000001fffffffffffffffffffffff00001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffe07fffffffff8
+fffffffffffffc00000000000007fffffffffffffffffffffff00001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffc07fffffffff8
+fffffffffffffc00000000000007fffffffffffffffffffffff00001ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffc07fffffffff8
+fffffffffffffc0000000000003ffffffffffffffffffffffff80003ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffc0ffffffffff8
+fffffffffffffc0000000000007ffffffffffffffffffffffff80003ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffc0ffffffffff8
+fffffffffffffc000000000000fffffffffffffffffffffffff80003ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff80ffffffffff8
+fffffffffffffc000000000003fffffffffffffffffffffffff80003ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff80ffffffffff8
+fffffffffffffc000000000007fffffffffffffffffffffffff80003ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff00ffffffffff8
+fffffffffffffc00000000001ffffffffffffffffffffffffff80007ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff01ffffffffff8
+fffffffffffffe00000000001ffffffffffffffffffffffffff80007ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffff01ffffffffff8
+fffffffffffffe0000000000fffffffffffffffffffffffffff80007ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffe01ffffffffff8
+ffffffffffffff0000000001fffffffffffffffffffffffffff80007ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffe03ffffffffff8
+ffffffffffffff000000000ffffffffffffffffffffffffffff80007ffffffffffffffff
+fffffffffffffffffffdffffffffffffffffffe03ffffffffff8
+ffffffffffffff800000003ffffffffffffffffffffffffffff80007ffffffffffffffff
+fffffffffffffffffff9ffffffffffffffffffc03ffffffffff8
+ffffffffffffffe0000001fffffffffffffffffffffffffffff80007ffffffffffffffff
+fffffffffffffffffff1ffffffffffffffffff807ffffffffff8
+fffffffffffffff0000001fffffffffffffffffffffffffffff8000fffffffffffffffff
+fffffffffffffffffff1ffffffffffffffffff807ffffffffff8
+fffffffffffffff800000ffffffffffffffffffffffffffffffc000fffffffffffffffff
+fffffffffffffffffff1ffffffffffffffffff807ffffffffff8
+fffffffffffffffe0003fffffffffffffffffffffffffffffffc000fffffffffffffffff
+ffffffffffffffffffe1ffffffffffffffffff807ffffffffff8
+ffffffffffffffff4007fffffffffffffffffffffffffffffffc001fffffffffffffffff
+ffffffffffffffffffc1ffffffffffffffffff00fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff
+ffffffffffffffffff83ffffffffffffffffff00fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff
+ffffffffffffffffff83ffffffffffffffffff00fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff
+ffffffffffffffffff03ffffffffffffffffff00fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff
+ffffffffffffffffff03ffffffffffffffffff01fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff
+ffffffffffffffffff07ffffffffffffffffff01fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff
+fffffffffffffffffe07fffffffffffffffffe01fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff
+fffffffffffffffffc07fffffffffffffffffe03fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffffff
+fffffffffffffffffc07fffffffffffffffffc03fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffffff
+fffffffffffffffff80ffffffffffffffffffc03fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe007fffffffffffffffff
+fffffffffffffffff80ffffffffffffffffffc03fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe007fffffffffffffffff
+fffffffffffffffff80ffffffffffffffffffc03fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe00ffffffffffffffffff
+fffffffffffffffff03ffffffffffffffffff807fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe00ffffffffffffffffff
+ffffffffffffffffe01ffffffffffffffffff807fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe01ffffffffffffffffff
+ffffffffffffffffe03ffffffffffffffffff807fffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe01ffffffffffffffffff
+ffffffffffffffffc07ffffffffffffffffff00ffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe03ffffffffffffffffff
+ffffffffffffffffc07ffffffffffffffffff00ffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe03ffffffffffffffffff
+ffffffffffffffff80fffffffffffffffffff00ffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe07ffffffffffffffffff
+ffffffffffffffff80fffffffffffffffffff00ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff07ffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffe01ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff07ffffffffffffffffff
+fffffffffffffffe00ffffffffffffffffffe01ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffffffff
+fffffffffffffffe00ffffffffffffffffffe01ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffffffff
+fffffffffffffffc01ffffffffffffffffffc01ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffffffffff
+fffffffffffffffc03ffffffffffffffffffc01ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff3fffffffffffffffffff
+fffffffffffffffc03ffffffffffffffffffc03ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffff
+fffffffffffffff807ffffffffffffffffffc03ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffff807ffffffffffffffffff803ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffff00fffffffffffffffffff803ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffff00fffffffffffffffffff807ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffe01fffffffffffffffffff807ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffe03fffffffffffffffffff807ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffc03fffffffffffffffffff807ffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff807fffffffffffffffffff00fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff807fffffffffffffffffff00fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffff00fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00fffffffffffffffffffe00fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffe01fffffffffffffffffffe01fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffe03fffffffffffffffffffe01fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffc03fffffffffffffffffffc01fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffc07fffffffffffffffffffc01fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff807fffffffffffffffffffc03fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff00ffffffffffffffffffffc03fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffff00ffffffffffffffffffff803fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffe01ffffffffffffffffffff803fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffe01ffffffffffffffffffff803fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffc03ffffffffffffffffffff807fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffc03ffffffffffffffffffff007fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff807ffffffffffffffffffff007fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff807ffffffffffffffffffff007fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00fffffffffffffffffffff007fffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffe00ffffffffffffffffffffe00ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffe01ffffffffffffffffffffe00ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffffffffff
+fffffffffffc01ffffffffffffffffffffe00ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffff
+fffffffffffc03ffffffffffffffffffffe00ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffff
+fffffffffff803ffffffffffffffffffffc00ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffff
+fffffffffff807ffffffffffffffffffffc00ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1fffffffffffff
+fffffffffff00fffffffffffffffffffffc01ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffff
+fffffffffff00fffffffffffffffffffffc01ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffff83fffffffffffff
+ffffffffffc01fffffffffffffffffffffc01ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff
+ffffffffffc01fffffffffffffffffffffc01ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff
+ffffffffff801fffffffffffffffffffff801ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff
+ffffffffff803fffffffffffffffffffff801ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffff
+ffffffffff003fffffffffffffffffffff803ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0ffffffffffffff
+fffffffffe007fffffffffffffffffffff803ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1ffffffffffffff
+fffffffffc007fffffffffffffffffffff003ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff81ffffffffffffff
+fffffffffc00ffffffffffffffffffffff003ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffffffffffffff
+fffffffff800ffffffffffffffffffffff003ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffffffffffffff
+fffffffff801ffffffffffffffffffffff003ffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ffffffffffffff
+fffffffff803ffffffffffffffffffffff007ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffe07ffffffffffffff
+fffffffff003fffffffffffffffffffffe007ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffffc07ffffffffffffff
+ffffffffe007fffffffffffffffffffffe007ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff807ffffffffffffff
+ffffffffc007fffffffffffffffffffffe007ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff007ffffffffffffff
+ffffffffc007fffffffffffffffffffffe007ffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffff
+ffffffff800ffffffffffffffffffffffe00fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffff
+ffffffff000ffffffffffffffffffffffe00fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffe00fffffffffffffff
+fffffffe001ffffffffffffffffffffffe00fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffc01fffffffffffffff
+fffffffc003ffffffffffffffffffffffe00fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffc01fffffffffffffff
+9ffffffc003ffffffffffffffffffffffe00fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff803fffffffffffffff
+0ffffff8003ffffffffffffffffffffffc01fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff003ffffffffffffffe
+07fffff0007ffffffffffffffffffffffc01fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff003ffffffffffffffe
+07ffffe000fffffffffffffffffffffffc01fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffe007ffffffffffffff8
+03ffffc000fffffffffffffffffffffffc01fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffe007ffffffffffffff0
+03ffff8001fffffffffffffffffffffff801fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffffc007ffffffffffffff0
+01ffff0003fffffffffffffffffffffff803fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffe0
+00fffe0003fffffffffffffffffffffff803fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffe0
+00fffe0003fffffffffffffffffffffff803fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffff001ffffffffffffffc0
+003ffc0007fffffffffffffffffffffff003fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffe003ffffffffffffff80
+001fe0001ffffffffffffffffffffffff003fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffe003ffffffffffffff00
+000fc0001ffffffffffffffffffffffff007fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffe00
+000000001ffffffffffffffffffffffff007fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff8007fffffffffffffe00
+000000003ffffffffffffffffffffffff007fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffc00
+000000003ffffffffffffffffffffffff007fffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000ffffffffffffff800
+000000007fffffffffffffffffffffffe007fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe001ffffffffffffff800
+000000007fffffffffffffffffffffffe007fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffe001ffffffffffffff000
+00000001ffffffffffffffffffffffffe007fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc003ffffffffffffff000
+00000001ffffffffffffffffffffffffe007fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffe000
+00000001ffffffffffffffffffffffffe007fffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffff0007fffffffffffffc000
+00000003ffffffffffffffffffffffffc00ffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffff000ffffffffffffffc000
+00000003ffffffffffffffffffffffffc00ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffff8000
+00000007ffffffffffffffffffffffffc00ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffc001ffffffffffffff0000
+0000000fffffffffffffffffffffffffc01ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffffc003ffffffffffffff0000
+0000001fffffffffffffffffffffffffc01ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffff8003fffffffffffffe0000
+0000001fffffffffffffffffffffffffc01ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffff0007fffffffffffffe0000
+0000003fffffffffffffffffffffffffc01ffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffffc0000
+0000007fffffffffffffffffffffffff801ffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffff80000
+0000007fffffffffffffffffffffffff801ffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffffc001ffffffffffffff80000
+000000ffffffffffffffffffffffffff801ffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffff8001ffffffffffffff00000
+000001ffffffffffffffffffffffffff801ffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff00000
+000001ffffffffffffffffffffffffff801ffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff00000
+000003ffffffffffffffffffffffffff801ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffe0007fffffffffffffe00000
+000003ffffffffffffffffffffffffff801ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffffe00000
+000007ffffffffffffffffffffffffff803ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffc00000
+00000fffffffffffffffffffffffffff003ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffff8001ffffffffffffff800000
+00000fffffffffffffffffffffffffff803ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff800000
+00001fffffffffffffffffffffffffff803ffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffff0007ffffffffffffff000200
+00003fffffffffffffffffffffffffff007ffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffe0007fffffffffffffe000700
+00007fffffffffffffffffffffffffff00fffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffe001f80
+0000ffffffffffffffffffffffffffff00fffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe001f80
+0001ffffffffffffffffffffffffffff00fffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffc003fc0
+0001ffffffffffffffffffffffffffff00fffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffff0001ffffffffffffff8007fe0
+0003ffffffffffffffffffffffffffff01fffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffff0007fe0
+0007ffffffffffffffffffffffffffff01fffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffe0007ffffffffffffff000fff0
+0007ffffffffffffffffffffffffffff01fffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffe003fff8
+001fffffffffffffffffffffffffffff07fffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe003fffc
+007fffffffffffffffffffffffffffff07fffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe003fffe
+00ffffffffffffffffffffffffffffff07fffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffff0001ffffffffffffffc007ffff
+dfffffffffffffffffffffffffffffff0ffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffff800fffff
+fffffffffffffffffffffffffffffffe1ffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffff800fffff
+fffffffffffffffffffffffffffffffe1ffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffff001fffff
+fffffffffffffffffffffffffffffffe1ffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff003fffff
+fffffffffffffffffffffffffffffffe3ffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffe003fffff
+ffffffffffffffffffffffffffffffff3ffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffe0001ffffffffffffffc007fffff
+ffffffffffffffffffffffffffffffff3ffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffffc007fffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffffc00ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff800ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff801ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffe0000fffffffffffffff001ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffff003ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffffc0003ffffffffffffffe007ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffff80007ffffffffffffffe007ffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffff0000fffffffffffffffc00fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffff0000fffffffffffffffc00fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffe0001fffffffffffffffc00fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffff801fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffffc0003fffffffffffffff801fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffff80003fffffffffffffff003fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff007fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffff007fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffffc007fffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffffc00ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffff80003fffffffffffffffc01ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff801ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffe0001ffffffffffffffff801ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffff803ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffffc0003ffffffffffffffff803ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffff80003fffffffffffffffe007ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffff80007fffffffffffffffe007ffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffe00fffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffc00fffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffff801fffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffff80003ffffffffffffffff803fffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffff80003ffffffffffffffff003fffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff003fffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffffe007fffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffffc007fffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffffc00ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffff80007ffffffffffffffffc00ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff801ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff801ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffe0000fffffffffffffffff003ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffffc0001fffffffffffffffff003ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffff80003ffffffffffffffffe007ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffff80003ffffffffffffffffe007ffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffe00007ffffffffffffffffc00fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffe0000fffffffffffffffffc00fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffffe0000fffffffffffffffffc00fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffff80001fffffffffffffffff801fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffff00003fffffffffffffffff801fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffff00007fffffffffffffffff003fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffe00007fffffffffffffffff007fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffc0000ffffffffffffffffff007fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffffc0001fffffffffffffffffc007fffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffff80003fffffffffffffffffc00ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffff80007fffffffffffffffffc01ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffff00007fffffffffffffffff801ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffff0000ffffffffffffffffff801ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffffc0001ffffffffffffffffff803ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffff80003ffffffffffffffffff803ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffff00007ffffffffffffffffff007ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffff00007ffffffffffffffffff007ffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffe0000ffffffffffffffffffe00fffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffc0000ffffffffffffffffffe00fffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffffc0001ffffffffffffffffffe01fffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffff80003ffffffffffffffffffc03fffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffff00007ffffffffffffffffffc03fffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffe00007ffffffffffffffffffc03fffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffe00007ffffffffffffffffffc07fffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffffc0001fffffffffffffffffff807fffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffff80003fffffffffffffffffff80ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffff80003fffffffffffffffffff80ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffff00007fffffffffffffffffff81ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffe0000ffffffffffffffffffff01ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffe0001ffffffffffffffffffff03ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffffc0003ffffffffffffffffffff03ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffff80003fffffffffffffffffffe07ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffff00007fffffffffffffffffffe07ffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffe00007fffffffffffffffffffe0fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffe0000ffffffffffffffffffffc0fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffe0000ffffffffffffffffffffc1fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffffc0001ffffffffffffffffffffc1fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffff80007ffffffffffffffffffff83fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffff00007ffffffffffffffffffff83fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffe00007ffffffffffffffffffff83fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffe0000fffffffffffffffffffff87fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffc0001fffffffffffffffffffff87fffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffffc0001fffffffffffffffffffff0ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffff80003fffffffffffffffffffff0ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffff00007fffffffffffffffffffff0ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffff0000ffffffffffffffffffffff1ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffe0000fffffffffffffffffffffe1ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffffc0001fffffffffffffffffffffe3ffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffff80003fffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffff00007fffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffe0001ffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffe0001ffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffc0003ffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffffc0007ffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffff0000fffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffff0000fffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffe0001fffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffc0003fffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffc0003fffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffffc0007fffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffff8000ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffff8001ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffff0001ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffff0003ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffff0003ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffe0007ffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffffc000fffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffff8001fffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffff8001fffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffff8003fffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffff8007fffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffff8007fffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffff0007fffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffe000ffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffe001ffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffc001ffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffc007ffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffc00fffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffffc01fffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffff801fffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffff003fffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffff003fffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffe00ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffe01ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffc03ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffffc03ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffff807ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffff807ffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffff00fffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+fffffffffffffffffffffff01fffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffe03fffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffff83ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffff8fffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffff8fffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+ffffffffffffffffffffff3fffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffffffffffffffffffffffffffffffffffff8
+
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
Index: gnus/texi/gnus-news.el
diff -u gnus/texi/gnus-news.el:7.1 gnus/texi/gnus-news.el:7.4
--- gnus/texi/gnus-news.el:7.1	Tue Jan  6 22:51:24 2004
+++ gnus/texi/gnus-news.el	Thu Sep  2 15:50:48 2004
@@ -31,6 +31,8 @@
 See the end for copying conditions.
 
 Please send Gnus bug reports to bugs\@gnus.org.
+For older news, see Gnus info node \"New Features\".
+
 
 
 * Changes in No Gnus
@@ -64,6 +66,7 @@
 
 (defvar gnus-news-makeinfo-switches
   (concat " --no-headers --paragraph-indent=0"
+	  " --no-validate" ;; Allow unresolved references.
 	  " --fill-column=" (number-to-string
 			     (+ 3 ;; will strip leading spaces later
 				(or gnus-news-fill-column 80)))))
@@ -106,4 +109,5 @@
       (insert gnus-news-trailer)
       (write-region (point-min) (point-max) outfile))))
 
+;;; arch-tag: e23cdd27-eafd-4ba0-816f-98f5edb0dc29
 ;;; gnus-news.el ends here
Index: gnus/texi/gnus-news.texi
diff -u gnus/texi/gnus-news.texi:7.5 gnus/texi/gnus-news.texi:7.26
--- gnus/texi/gnus-news.texi:7.5	Sun Apr 11 01:24:49 2004
+++ gnus/texi/gnus-news.texi	Mon Feb 14 16:42:25 2005
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 
-@c Copyright (C) 2004 Free Software Foundation, Inc.
+@c Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 @c    Permission is granted to anyone to make or distribute verbatim copies
 @c    of this document as received, in any medium, provided that the
@@ -12,31 +12,59 @@
 @c    under the above conditions, provided also that they
 @c    carry prominent notices stating who last changed them.
 
-This file contains a list of news features Gnus.  It is supposed to be
-included in `gnus.texi'.  `GNUS-NEWS' is automatically generated from
-this file (see `gnus-news.el').
+@c This file contains a list of news features Gnus.  It is supposed to be
+@c included in `gnus.texi'.  `GNUS-NEWS' is automatically generated from
+@c this file (see `gnus-news.el').
 
 @itemize @bullet
 
+@item Upgrading from previous (stable) version if you have used No Gnus.
+
+If you have tried No Gnus (the unstable Gnus branch leading to this
+release) but went back to a stable version, be careful when upgrading
+to this version.  In particular, you will probably want to remove the
+@file{~/News/marks} directory (perhaps selectively), so that flags are
+read from your @file{~/.newsrc.eld} instead of from the stale marks
+file, where this release will store flags for nntp.  See a later entry
+for more information about nntp marks.  Note that downgrading isn't
+safe in general.
+
+@item The nntp back end store article marks in @file{~/News/marks}.
+
+The directory can be changed using the (customizable) variable
+@code{nntp-marks-directory}, and marks can be disabled using the
+(back end) variable @code{nntp-marks-is-evil}.  The advantage of this
+is that you can copy @file{~/News/marks} (using rsync, scp or
+whatever) to another Gnus installation, and it will realize what
+articles you have read and marked.  The data in @file{~/News/marks}
+has priority over the same data in @file{~/.newsrc.eld}.
+
+@item
+Picons can be displayed right from the textual address, see
+@code{gnus-picon-style}.  @ref{Picons}.
+
 @item
 You can import and export your @acronym{RSS} subscriptions from
 @acronym{OPML} files.  @xref{RSS}.
 
-@item 
+@item
 The option @code{mm-fill-flowed} can be used to disable treatment of
 format=flowed messages.  Also, flowed text is disabled when sending
 inline @acronym{PGP} signed messages.
 
 @item You can now drag and drop attachments to the Message buffer.
 
-@item @kbd{/ r} limits the summary buffer to replied articles.
-
 @item @acronym{ANSI} @acronym{SGR} control sequences can be transformed
 using @kbd{W A}.
 
 @acronym{ANSI} sequences are used in some Chinese hierarchies for
 highlighting articles (@code{gnus-article-treat-ansi-sequences}).
 
+@item International host names (@acronym{IDNA}) can now be decoded
+inside article bodies using @kbd{W i}
+(@code{gnus-summary-idna-message}).  This require that GNU Libidn
+(@url{http://www.gnu.org/software/libidn/}) has been installed.
+
 @item Gnus includes an Emacs Lisp @acronym{SASL} library.
 
 This provide a clean @acronym{API} to @acronym{SASL} mechanisms from
@@ -53,7 +81,7 @@
 
 It is enabled by default (see @code{password-cache}), with a short
 timeout of 16 seconds (see @code{password-cache-expiry}).  If
-@acronym{PGG} is used as the @acronym{PGP} backend, the @acronym{PGP}
+@acronym{PGG} is used as the @acronym{PGP} back end, the @acronym{PGP}
 passphrase is managed by this mechanism.  Passwords for ManageSieve
 connections are managed by this mechanism, after quering the user about
 whether to do so.
@@ -61,11 +89,48 @@
 @item @acronym{IMAP} identity (@acronym{RFC} 2971) is supported.
 
 By default, Gnus do not send any information about itself, but you can
-customize it using @code{nnimap-id}.
+customize it using the variable @code{nnimap-id}.
 
-@item The @file{all.SCORE} file can now be edited from the group buffer 
+@item The @file{all.SCORE} file can be edited from the group buffer
 using @kbd{W e}.
 
-@end itemize
+@item Gnus now MIME decode articles even when they lack "MIME-Version" header.
+This changes the default of @code{gnus-article-loose-mime}.
+
+@item Gnus now view DNS master files sent as text/dns using dns-mode.
+
+@item Gnus now support the ``hashcash'' client puzzle anti-spam idea.
+See the Gnus manual, section Hashcash, for more information.  Use
+@code{(setq message-generate-hashcash t)} to enable.
 
+@item Gnus supports new limiting commands in the Summary buffer:
+@kbd{/ r} (@code{gnus-summary-limit-to-replied}) and @kbd{/ R}
+(@code{gnus-summary-limit-to-recipient}).  @ref{Limiting}.
+
+@item Gnus supports a new sort command in the Summary buffer:
+@kbd{C-c C-s C-t} (@code{gnus-summary-sort-by-recipient}).  @ref{Summary
+Sorting}
+
+@item The @code{nnrss} back end now supports multilingual text.
+Non-@acronym{ASCII} group names for the @code{nnrss} groups are also
+supported.  @xref{RSS}.
+
+@item URLs inside OpenPGP: headers are retrieved and imported to your
+PGP key ring when you click on them.
+
+@item Gnus uses narrowing to hide headers in Message buffers.
+The @code{References} header is hidden by default.  To make all
+headers visible, use @code{(setq message-hidden-headers nil)}.
+
+@item @code{gnus-decay-scores} can be a regexp matching score files.
+This allows to decay only adaptive score files.  @ref{Score Decays}.
+
+@item @acronym{S/MIME} now feature @acronym{LDAP} user certificate searches.
+You need to configure the server in @code{smime-ldap-host-list}.
+
+@end itemize
 @c gnus-news.texi ends here.
+
+@ignore
+   arch-tag: 872c7569-4340-4d73-9d1d-7826d9f94a51
+@end ignore
Index: gnus/texi/gnus-refcard.tex
diff -u /dev/null gnus/texi/gnus-refcard.tex:7.1
--- /dev/null	Sun May  1 19:05:03 2005
+++ gnus/texi/gnus-refcard.tex	Wed Mar 30 04:00:30 2005
@@ -0,0 +1,1428 @@
+\documentclass{article}
+
+% Previously we had five input LaTeX files (booklet.tex bk-lt.tex bk-a4.tex
+% refcard.tex gnusref.tex) and two logo files (gnuslogo-refcard.eps and
+% gnuslogo-booklet.eps).
+%
+% From this LaTeX file (gnus-refcard.tex) plus a single logo (gnus-logo.eps),
+% we can generate the refcard and the booklet version.  Appropriate Makefile
+% rules were added.  This simplifies to distribute the refcard with Emacs.
+%
+% (Reiner Steib, March 2005)
+
+\usepackage{ifthen}
+\ifthenelse{\isundefined{\booklettrue}}{
+  \typeout{Creating reference card...}
+}{
+  \typeout{Creating reference booklet...}}
+
+\usepackage{supertabular}
+
+\newlength{\logowidth}  \setlength{\logowidth} {6.861in}
+\newlength{\logoheight} \setlength{\logoheight}{7.013in}
+
+\usepackage{graphicx}
+
+\usepackage{geometry}
+
+\ifthenelse{\isundefined{\booklettrue}}{% ifcard %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  % Reference Card
+  
+  \def\Guide{Card}\def\guide{card}
+  \def\logoscale{0.25}
+  
+  % Page setup for the refcard:
+  
+  % \setlength{\textwidth}{7.26in} \setlength{\textheight}{10in}
+  % \setlength{\topmargin}{-1.0in}
+  % % the same settings work for A4, although there is a bit of space at the
+  % % top and bottom of the page. 
+  % \setlength{\oddsidemargin}{-0.5in} \setlength{\evensidemargin}{-0.5in}
+
+  \ifthenelse{\isundefined{\letterpapertrue}}{
+    \geometry{a4paper,hmargin=10mm,tmargin=10mm,bmargin=35mm}
+  }{
+    \geometry{hmargin=20mm,tmargin=10mm,bmargin=12mm}
+  }
+  
+}{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  % Reference Booklet
+  
+  \def\Guide{Booklet}\def\guide{booklet}
+  \def\logoscale{0.5}% FIXME: too large for 2up printing?  --rsteib
+  
+  % FIXME: Use geometry package.  --rsteib
+%   \ifthenelse{\isundefined{\letterpapertrue}}{
+%     \textwidth 4.9in \textheight 7.35in \topmargin -1.0in
+%   }{
+%     \textwidth 4.5in \textheight 7.5in \topmargin -1.0in
+%   }
+%   \oddsidemargin -0.5in \evensidemargin -0.5in
+  \ifthenelse{\isundefined{\letterpapertrue}}{
+    \geometry{a5paper,hmargin=10mm,tmargin=10mm,bmargin=4mm}
+  }{
+    % FIXME: Use geometry package.  --rsteib
+    \geometry{a5paper,hmargin=20mm,tmargin=10mm,bmargin=4mm}
+  }
+  
+  \def\sec{\section}
+  \def\subsec{\subsection}
+  \def\subsubsec{\subsubsection}
+  \def\blankpage{\vspace*{\fill}\par
+  %\centerline{(This page intentionally left blank.)}
+  \par\vspace*{\fill}\pagebreak}
+}%ifbooklet% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \input{gnusref} % % % % % % % % % % % % % % % % % % % % % % % % % %  
+%% include file for the Gnus refcard and booklet
+
+\def\progver{5.10}\def\refver{5.10-2} % program and refcard versions
+\def\date{Mar, 2005}
+\def\author{Gnus Bugfixing Girls + Boys $<$bugs@gnus.org$>$}
+
+%%
+\newlength{\keycolwidth}
+\newenvironment{keys}[1]% #1 is the widest key
+{\nopagebreak%\noindent%
+  \settowidth{\keycolwidth}{#1}%
+  \addtolength{\keycolwidth}{\tabcolsep}%
+  \addtolength{\keycolwidth}{-\columnwidth}%
+  \begin{supertabular}{@{}l@{\hspace{\tabcolsep}}p{-\keycolwidth}@{}}}%
+  {\end{supertabular}\\}
+
+%% uncomment the first definition if you do not want pagebreaks in maps
+%%\newcommand{\esamepage}{\samepage}
+\newcommand{\esamepage}{}
+
+\newcommand*{\B}[1]{{\bf#1})}    % bold l)etter
+
+\newcommand{\Title}{%
+  \begin{center}
+    {\bf\LARGE Gnus \progver\ Reference \Guide\\}
+                                %{\normalsize \Guide\ version \refver}
+  \end{center}
+  }
+
+% \newcommand*{\LogoOLD}[1]{\centerline{%
+%     \makebox[\logoscale\logowidth][l]{\vbox to \logoscale\logoheight
+%       {\vfill\epsfig{figure=gnuslogo-#1}}\vspace{-\baselineskip}}}}
+
+\newcommand*{\Logo}[1]{\centerline{%
+    \includegraphics[width=\logoscale\logowidth]{gnus-logo}}}
+
+\newcommand{\Copyright}{%
+  \begin{center}
+    Copyright \copyright\ 1995 Free Software Foundation, Inc.\\*
+    Copyright \copyright\ 1995 Vladimir Alexiev
+    $<$vladimir@cs.ualberta.ca$>$.\\*
+    Copyright \copyright\ 2000 Felix Natter $<$fnatter@gmx.net$>$.\\*
+    Copyright \copyright\ 2001, 2002, 2003, 2004, 2005 \author.\\*
+    Created from the Gnus manual Copyright \copyright\ 1994 Lars Magne
+    Ingebrigtsen.\\*
+    and the Emacs Help Bindings feature (C-h b).\\*
+    Gnus logo copyright \copyright\ 1995 Luis Fernandes.\\*
+  \end{center}
+
+  Permission is granted to make and distribute copies of this reference
+  \guide{} provided the copyright notice and this permission are preserved on
+  all copies.  Please send corrections, additions and suggestions to the
+  current maintainer's email address. \Guide{} last edited on \date.
+  }
+
+\newcommand{\Notes}{%
+  \subsection*{Notes}
+  {\esamepage
+    Gnus is complex. Currently it has some 876 interactive (user-callable)
+    functions. Of these 618 are in the two major modes (Group and
+    Summary/Article). Many of these functions have more than one binding, some
+    have 3 or even 4 bindings. The total number of keybindings is 677. So in
+    order to save 40\% space, every function is listed only once on this
+    \guide, under the ``more logical'' binding. Alternative bindings are given
+    in parentheses in the beginning of the description.
+
+    Many Gnus commands are affected by the numeric prefix. Normally you enter a
+    prefix by holding the Meta key and typing a number, but in most Gnus modes
+    you don't need to use Meta since the digits are not self-inserting. The
+    prefixed behavior of commands is given in [brackets]. Often the prefix is
+    used to specify:
+
+    \quad [distance] How many objects to move the point over.
+
+    \quad [scope] How many objects to operate on (including the current one).
+
+    \quad [p/p] The ``Process/Prefix Convention'': If a prefix is given then it
+    determines how many objects to operate on. Else if there are some objects
+    marked with the process mark \#, these are operated on. Else only the
+    current object is affected.
+
+    \quad [level] A group subscribedness level. Only groups with a lower or
+    equal level will be affected by the operation. If no prefix is given,
+    `gnus-group-default-list-level' is used.  If
+    `gnus-group-use-permanent-levels', then a prefix to the `g' and `l'
+    commands will also set the default level.
+
+    \quad [score] An article score. If no prefix is given,
+    `gnus-summary-default-score' is used. \\*[\baselineskip]
+                                % some keys
+    Gnus startup-commands:\\*
+    \begin{keys}{M-x gnus-unplugged}
+      M-x gnus           & start Gnus. \\
+      M-x gnus-no-server & start Gnus without connecting to server
+      (i.e. to read mail). \\
+    \end{keys}
+    Additionally, there are the two commands \texttt{gnus-plugged} and
+    \texttt{gnus-unplugged}, which are only used if you want to download
+    news and/or read previously downloaded news offline (see C-c C-i g Gnus
+    Unplugged RET). Note: \texttt{gnus-no-server} ignores the stuff in
+    \texttt{gnus-agent-directory}, and thus does not allow you to use Gnus
+    Unplugged.
+                                %
+    \begin{keys}{C-c C-i}
+      C-c C-i & Go to the Gnus online {\bf info}.\\
+      C-c C-b & Send a Gnus {\bf bug} report.\\
+    \end{keys}
+    }}
+
+\newcommand{\GroupLevels}{%
+  The table below assumes that you use the default Gnus levels.
+  Fill your user-specific levels in the blank cells.\\[1\baselineskip]
+  \begin{tabular}{|c|l|l|}
+    \hline
+    Level & Groups & Status \\
+    \hline
+    1 & draft/mail groups   &              \\
+    2 & mail groups         &              \\
+    3 &                     & subscribed   \\
+    4 &                     &              \\
+    5 & default list level  &              \\
+    \hline
+    6 &                     & unsubscribed \\
+    7 &                     &              \\
+    \hline
+    8 &                     & zombies      \\
+    \hline
+    9 &                     & killed       \\
+    \hline
+  \end{tabular}}
+
+\newcommand{\MarkCharacters}{%
+  {\esamepage If a command directly sets a mark, it is shown in parentheses.\\*
+    \newlength{\markcolwidth}
+    \settowidth{\markcolwidth}{` '}% widest character
+    \addtolength{\markcolwidth}{4\tabcolsep}
+    \addtolength{\markcolwidth}{-\columnwidth}
+    \newlength{\markdblcolwidth}
+    \setlength{\markdblcolwidth}{\columnwidth}
+    \addtolength{\markdblcolwidth}{-2\tabcolsep}
+    \begin{tabular}{|c|p{-\markcolwidth}|}
+      \hline
+      \multicolumn{2}{|p{\markdblcolwidth}|}{{\bf ``Read'' Marks.}
+        All these marks appear in the first column of the summary line, and so
+        are mutually exclusive.}\\ 
+      \hline
+      ` ' & (M-u, M SPC, M c) Not read.\\
+      !   & (!, M !, M t) Ticked (interesting).\\
+      ?   & (?, M ?) Dormant (only followups are interesting).\\
+      E   & (E, M e, M x) {\bf Expirable}. Only has effect in mail groups.\\
+      G   & (C, B DEL) Canceled article (or deleted in mailgroups).\\
+      \$  & (M-d, M s x, S x).  Marked as spam.\\
+      \hline\hline
+      \multicolumn{2}{|p{\markdblcolwidth}|}
+      {The marks below mean that the article
+        is read (killed, uninteresting), and have more or less the same effect.
+        Some commands however explicitly differentiate between them (e.g.\ M
+        M-C-r, adaptive scoring).}\\
+      \hline
+      r   & (d, M d, M r) Deleted (marked as {\bf read}).\\
+      C   & (M C; M C-c; M H; c, Z c; Z n; Z C) Killed by {\bf catch-up}.\\
+      F   & SOUPed article. See the manual.\\
+      O   & {\bf Old} (read in a previous session).\\
+      K   & (k, M k; C-k, M K) {\bf Killed}.\\
+      M   & Article marked as read by duplicate suppression.\\
+      Q   & Article is part of a sparse thread (see ``Threading''
+      in the manual).\\
+      R   & {\bf Read} (viewed in actuality).\\
+      X   & Killed by a kill file.\\
+      Y   & Killed due to low score.\\
+      \hline\multicolumn{2}{c}{\vspace{1ex}}\\\hline
+      \multicolumn{2}{|p{\markdblcolwidth}|}
+      {{\bf Marks not affecting visibility}}\\
+      \hline
+      \#  & (\#, M \#, M P p) Processable (will be affected by the next operation).
+      [2]\\
+      A   & {\bf Answered} (followed-up or replied). [2]\\
+      F   & Forwarded. [2]\\
+      $\ast$  & Cached. [2]\\
+      S   & Saved. [2]\\
+      N   & Recently arrived. [2]\\
+      .   & Unseen. [2]\\
+      +   & Over default score. [3]\\
+      $-$ & Under default score. [3]\\
+      $=$ & Has children (thread underneath it). Add `\%e' to
+      `gnus-summary-line-format'. [3]\\
+      \hline
+    \end{tabular}
+    }}
+
+\newcommand{\GroupModeGeneral}{%
+  \begin{keys}{C-c M-C-x}
+    RET     & (=) Enter this group. [Prefix: how many (read) articles to fetch.
+    Positive: newest articles, negative: oldest ones; non-numerical:
+    view all articles, not just unread]\\
+    M-RET   & Enter group quickly.\\
+    M-SPC   & Same as RET but does not expunge and hide dormants.\\
+    M-C-RET & Enter group without any processing, changes will not be permanent.\\
+    SPC     & Select this group and display the first (unread) article. [Same
+    prefix as above.]\\
+    ?       & Give a very short help message.\\
+    $<$     & Go to the beginning of the Group buffer.\\
+    $>$     & Go to the end of the Group buffer.\\
+    ,       & Jump to the lowest-level group with unread articles.\\
+    .       & Jump to the first group with unread articles.\\
+    \^{}      & Enter the Server buffer mode.\\
+    a       & Post an {\bf article} to a group
+              [Prefix: use group under point to find posting-style].\\
+    b       & Find {\bf bogus} groups and delete them.\\
+    c       & Mark all unticked articles in this group as read ({\bf catch-up}).
+    [p/p]\\ 
+    g       & Check the server for new articles ({\bf get}). [level]\\
+    M-g     & Check the server for new articles in this group ({\bf get}). [p/p]\\
+    j       & {\bf Jump} to a group.\\
+    m       & {\bf Mail} a message to someone
+              [Prefix: use group under point to find posting-style].\\
+    n       & Go to the {\bf next} group with unread articles. [distance]\\
+    M-n     & Go to the {\bf next} group on the same or lower level.
+    [distance]\\ 
+    p       & (DEL) Go to the {\bf previous} group with unread articles.
+    [distance]\\ 
+    M-p     & Go to the {\bf previous} group on the same or lower level. [distance]\\ 
+    q       & {\bf Quit} Gnus.\\
+    r       & Re-read the init file ({\bf reset}).\\
+    s       & {\bf Save} the `.newsrc.eld' file (and `.newsrc' if
+    `gnus-save-newsrc-file').\\ 
+    z       & Suspend (kill all buffers of) Gnus.\\
+    B       & {\bf Browse} a foreign server.\\
+    C       & Mark all articles in this group as read ({\bf Catch-up}). [p/p]\\
+    F       & {\bf Find} new groups and process them.\\
+    N       & Go to the {\bf next} group. [distance]\\
+    P       & Go to the {\bf previous} group. [distance]\\
+    Q       & {\bf Quit} Gnus without saving any startup (.newsrc) files.\\
+    R       & {\bf Restart} Gnus.\\
+    Z       & Clear the dribble buffer.\\
+    M-c     & Clear data from group (marks and list of read articles). \\
+    C-c C-s & {\bf Sort} the groups by name, number of unread articles, or level
+    (depending on `gnus-group-sort-function').\\
+    C-c C-x & Run all expirable articles in this group through the {\bf expiry} 
+    process.\\
+    C-c M-C-x & Run all articles in all groups through the {\bf expiry} process.\\
+    C-c M-g & Activate all {\bf groups}.\\
+    C-c C-i & Gnus online-manual ({\bf info}).\\
+    C-x C-t & {\bf Transpose} two groups.\\
+    H f     & Fetch this group's {\bf FAQ} (using ange-ftp).\\
+    H c     & Display this group's {\bf charter}. [Prefix: query for group]\\
+    H C     & Display this group's {\bf control message} (using
+    ange-ftp). [Prefix: query for group]\\
+    H v     & (V) Display the Gnus {\bf version} number.\\
+    H d     & (C-c C-d) Show the {\bf description} of this group
+    [Prefix: re-read from server].\\ 
+    M-d     & {\bf Describe} all groups. [Prefix: re-read from server]\\
+    D g     & Regenerate a Sieve script from group parameters.\\
+    D u     & Regenerate Sieve script and {\bf upload} to server.\\
+  \end{keys}
+  }
+
+\newcommand{\ListGroups}{%
+  {\esamepage
+    \begin{keys}{A M}
+      A d     & (C-c C-M-a) List all groups whose names or {\bf descriptions} match a regexp.\\ 
+      A k     & (C-c C-l) List all {\bf killed} groups.
+      [Prefix: look at active-file from server]\\
+      A l     & List all groups on a specific level.
+      [Prefix: also list groups with no unread articles]\\
+      A a     & (C-c C-a) List all groups whose names match a regexp
+      ({\bf apropos}).\\ 
+      A A     & List the server's active-file.\\
+      A M     & List groups that {\bf match} a regexp.\\
+      A m     & List groups that {\bf match} a regexp and have unread articles. 
+      [level]\\ 
+      A s     & (l) List all {\bf subscribed} groups with unread articles.
+      [level; 5 and lower is the default]\\
+      A u     & (L) List all groups (including read and {\bf unsubscribed}).
+      [level; 7 and lower is the default]\\
+      A z     & List all {\bf zombie} groups.\\
+      A c     & List all groups with cached articles. [level]\\
+      A ?     & List all groups with dormant articles. [level]\\
+    \end{keys}
+  }
+  
+  \newcommand{\CreateEditGroups}{%
+    {\esamepage
+      The select methods are indicated in parentheses.\\*
+      \begin{keys}{G DEL}
+        G a     & Make the Gnus list {\bf archive} group. (nndir over ange-ftp)\\
+        G c     & {\bf Customize} this group's parameters.\\
+        G d     & Make a {\bf directory} group (every file must be a posting and files
+        must have numeric names). (nndir)\\
+        G D     & Enter a {\bf directory} as a (temporary) group.
+        (nneething without recording articles read)\\
+        G e     & (M-e) {\bf Edit} this group's select method.\\
+        G E     & {\bf Edit} this group's info (select method, articles read, etc).\\
+        G f     & Make a group based on a {\bf file}. (nndoc)\\
+        G h     & Make the Gnus {\bf help} (documentation) group. (nndoc)\\
+        G k     & Make a {\bf kiboze} group. (nnkiboze)\\
+        G m     & {\bf Make} a new group.\\
+        G p     & Edit this group's {\bf parameters}.\\
+        G r     & Rename this group (does not work with read-only groups!).\\
+        G u     & Create one of the groups mentioned in gnus-{\bf useful}-groups.\\
+        G v     & Add this group to a {\bf virtual} group. [p/p]\\
+        G V     & Make a new empty {\bf virtual} group. (nnvirtual)\\
+        G w     & Create ephemeral group based on web-search. [Prefix: make solid group
+        instead]\\
+        G R     & Make an {\bf RSS} group.\\
+        G DEL   & {\bf Delete} group [Prefix: delete all articles as well].\\
+        G x     & Expunge all deleted articles in an nnimap mailbox.\\
+        G l     & Edit ACL (Access Control {\bf List}) for an nnimap mailbox.\\
+      \end{keys}
+      You can also create mail-groups and read your mail with Gnus (very useful
+      if you are subscribed to mailing lists), using one of the methods
+      nnmbox, nnbabyl, nnml, nnmh, or nnfolder. Read about it in the online info
+      (C-c C-i g Reading Mail RET).
+      }}
+
+                                % TODO:
+  \newcommand{\SoupCommands}{%
+    \begin{keys}{G s w}
+      G s b   & gnus-group-brew-soup: not documented.\\
+      G s p   & gnus-soup-pack-packet: not documented.\\
+      G s r   & nnsoup-pack-replies: not documented.\\
+      G s s   & gnus-soup-send-replies: not documented.\\
+      G s w   & gnus-soup-save-areas: not documented.\\
+    \end{keys}}
+
+  \newcommand{\MarkGroups}{%
+    \begin{keys}{M m}
+      M m     & (\#) Set the process {\bf mark} on this group. [scope]\\
+      M r     & Mark all groups matching regular expression.\\
+      M u     & (M-\#) Remove the process mark from this group ({\bf unmark}).
+      [scope]\\ 
+      M U     & Remove the process mark from all groups (\textbf{umark all}).\\
+      M w     & Mark all groups in the current region. [prefix: unmark]\\
+      M b     & Mark all groups in the {\bf buffer}. [prefix: unmark]\\
+    \end{keys}}
+
+  \newcommand{\GroupTopicsGeneral}{%
+    {\esamepage
+      Topics are ``categories'' for groups. Press t in the group-buffer to
+      toggle gnus-topic-mode (C-c C-i g Group Topics RET).\\*
+      \begin{keys}{C-c C-x}
+        T n     & Prompt for topic {\bf name} and create it.\\
+        T m     & {\bf Move} the current group to some other topic [p/p].\\
+        T j     & {\bf Jump} to a topic.\\
+        T c     & {\bf Copy} the current group to some other topic [p/p].\\
+        T D     & Remove (not delete) the current group [p/p].\\
+        T M     & {\bf Move} all groups matching a regexp to a topic.\\
+        T C     & {\bf Copy} all groups matching a regexp to a topic.\\
+        T H     & Toggle {\bf hiding} of empty topics.\\
+        T r     & {\bf Rename} a topic.\\
+        T DEL   & Delete an empty topic.\\
+        T \#    & Mark all groups in the current topic with the process-mark.\\
+        T M-\#  & Remove the process-mark from all groups in the current topic.\\
+        T TAB   & (TAB) Indent current topic [Prefix: unindent].\\ 
+        M-TAB   & Unindent the current topic.\\
+        RET     & (SPC) Either unfold topic or enter group [level].\\
+        T s     & {\bf Show} the current topic. [Prefix: show permanently]\\
+        T h     & {\bf Hide} the current topic. [Prefix: hide permanently]\\
+        C-c C-x & Expire all articles in current group or topic.\\
+        C-k     & {\bf Kill} a group or topic.\\
+        C-y     & {\bf Yank} a group or topic.\\
+        A T     & List active-file using {\bf topics}.\\
+        G p     & Edit topic-{\bf parameters}.\\
+        T M-n   & Go to {\bf next} topic. [distance]\\
+        T M-p   & Go to {\bf previous} topic. [distance]\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\TopicSorting}{%
+    {\esamepage
+      \begin{keys}{T S m}
+        T S a  & Sort {\bf alphabetically}.\\
+        T S u  & Sort by number of {\bf unread} articles.\\
+        T S l  & Sort by group {\bf level}.\\
+        T S v  & Sort by group score ({\bf value}).\\
+        T S r  & Sort by group {\bf rank}.\\
+        T S m  & Sort by {\bf method}.\\
+        T S e  & Sort by {\bf server} name.\\
+        T S s  & Sort according to `gnus-group-sort-function'.\\
+      \end{keys}
+      With a prefix these commands will sort in reverse order.
+      }
+    }
+
+  \newcommand{\SubscribeKillYankGroups}{%
+    {\esamepage
+      \begin{keys}{S C-k}
+        S k     & (C-k) {\bf Kill} this group.\\
+        S l     & Set the {\bf level} of this group. [p/p]\\
+        S s     & (U) Prompt for a group and toggle its {\bf subscription}.\\
+        S t     & (u) {\bf Toggle} subscription to this group. [p/p]\\
+        S w     & (C-w) Kill all groups in the region.\\
+        S y     & (C-y) {\bf Yank} the last killed group.\\
+        S z     & Kill all {\bf zombie} groups.\\
+        S C-k   & Kill all groups on a certain level.\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\SummaryModeGeneral}{%
+    {\esamepage
+      \begin{keys}{M-RET}
+        SPC     & (A SPC, A n) Select an article, scroll it one page, move to the
+        next one.\\ 
+        DEL     & (A DEL, A p, b) Scroll this article one page back. [distance]\\
+        RET     & (A RET) Scroll this article one line forward. [distance]\\
+        M-RET   & (A M-RET) Scroll this article one line backward. [distance]\\
+        =       & Expand the Summary window (fullsize).
+        [Prefix: shrink to display article window]\\
+                                %
+        \&      & Execute a command on all articles whose header matches a regexp.
+        [Prefix: move backwards]\\
+        M-\&    & Execute a command on all articles having the process mark.\\
+                                %
+        M-n     & (G M-n) Go to the {\bf next} summary line of an unread article.
+        [distance]\\ 
+        M-p     & (G M-p) Go to the {\bf previous} summary line of an unread article. 
+        [distance]\\ 
+        M-s     & {\bf Search} through all subsequent articles for a regexp.\\
+        M-r     & Search through all previous articles for a regexp.\\
+                                %
+        A P     & {\bf Postscript}-print current buffer.\\
+                                %
+        M-k     & Edit this group's {\bf kill} file.\\
+        M-K     & Edit the general {\bf kill} file.\\
+                                %
+        C-t     & Toggle {\bf truncation} of summary lines.\\
+        Y g     & Regenerate the summary-buffer.\\
+        Y c     & Insert all cached articles into the summary-buffer.\\
+                                %
+        M-C-e   & {\bf Edit} the group-parameters.\\
+        M-C-a   & Customize the group-parameters.\\
+                                %
+                                % article handling
+                                %
+        A $<$   & ($<$, A b) Scroll to the beginning of this article.\\
+        A $>$   & ($>$, A e) Scroll to the end of this article.\\
+        A s     & (s) Perform an i{\bf search} in the article buffer.\\
+                                %
+        A D     & (C-d) Un{\bf digestify} this article into a separate group.
+        [Prefix: force digest]\\
+        M-C-d   & Like C-d, but open several documents in nndoc-groups, wrapped
+        in an nnvirtual group [p/p]\\
+                                %
+        A g     & (g) (Re)fetch this article ({\bf get}). [Prefix: get raw version]\\ 
+        A r     & (\^{}, A \^{}) Fetch the parent(s) of this article.
+        [Prefix: if positive fetch \textit{n} ancestors;
+        negative: fetch only the \textit{n}th ancestor]\\
+        A t     & {\bf Translate} this article.\\
+        A R     & Fetch all articles mentioned in the {\bf References}-header.\\
+        A T     & Fetch full \textbf{thread} in which the current article appears.\\
+        M-\^{}  & Fetch the article with a given Message-ID.\\
+        S y     & {\bf Yank} the current article into an existing message-buffer.
+        [p/p]\\
+        A M     & Setup group parameters for {\bf mailing} lists from
+        headers. [Prefix: replace old settings]\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\MIMESummary}{%
+    {\esamepage
+      For the commands operating on one MIME part (a subset of gnus-article-*), a
+      prefix selects which part to operate on. If the point is placed over a
+      MIME button in the article buffer, use the corresponding bindings for the
+      article buffer instead.
+      
+      \begin{keys}{W M w}
+        K v      & (b, W M b) {\bf View} the MIME-part.\\
+        K o      & {\bf Save} the MIME part.\\
+        K c      & {\bf Copy} the MIME part.\\
+        K e      & View the MIME part {\bf externally}.\\
+        K i      & View the MIME part {\bf internally}.\\
+        K $\mid$ & Pipe the MIME part to an external command.\\
+        K b      & Make all the MIME parts have buttons in front of them.\\
+        K m      & Try to repair {\bf multipart-headers}.\\
+        K C      & View the MIME part using a different {\bf charset}.\\
+        X m      & Save all parts matching a MIME type to a directory. [p/p]\\
+        M-t      & Toggle the buttonized display of the article buffer.\\
+        W M w    & Decode RFC2047-encoded words in the article headers.\\
+        W M c    & Decode encoded article bodies. [Prefix: prompt for charset]\\
+        W M v    & View all MIME parts in the current article.\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\SortSummary}{%
+    {\esamepage
+      \begin{keys}{C-c C-s C-a}
+        C-c C-s C-a & Sort the summary-buffer by {\bf author}.\\
+        C-c C-s C-t & Sort the summary-buffer by {\bf recipient}.\\
+        C-c C-s C-d & Sort the summary-buffer by {\bf date}.\\
+        C-c C-s C-i & Sort the summary-buffer by article score.\\
+        C-c C-s C-l & Sort the summary-buffer by amount of {\bf lines}.\\
+        C-c C-s C-c & Sort the summary-buffer by length.\\
+        C-c C-s C-n & Sort the summary-buffer by article {\bf number}.\\
+        C-c C-s C-s & Sort the summary-buffer by {\bf subject}.\\
+        C-c C-s C-r & Sort the summary-buffer {\bf randomly}.\\
+        C-c C-s C-o & Sort the summary-buffer using the default method.\\
+      \end{keys}
+      With a prefix these functions sort in reverse order.
+      }
+    }
+
+  \newcommand{\MailGroups}{% formerly \Bsubmap
+    {\esamepage
+      These commands (except `B c') are only valid in a mail group.\\*
+      \begin{keys}{B M-C-e}
+        B DEL   & (B backspace, B delete) {\bf Delete} the mail article from disk (!).
+        [p/p]\\
+        B B     & Crosspost this article to another group.\\
+        B c     & {\bf Copy} this article from any group to a mail group. [p/p]\\
+        B e     & {\bf Expire} all expirable articles in this group. [p/p]\\
+        B i     & {\bf Import} a random file into this group.\\
+        B I     & Create an empty article in this group.\\
+        B m     & {\bf Move} the article from one mail group to another. [p/p]\\
+        B p     & Query whether the article was {\bf posted} as well.\\
+        B q     & {\bf Query} where the article will end up after fancy splitting\\
+        B r     & {\bf Respool} this mail article. [p/p]\\
+        B t     & {\bf Trace} the fancy splitting patterns applied to this article.\\
+        B w     & (e) Edit this article.\\
+        B M-C-e & {\bf Expunge} (delete from disk) all expirable articles in this group
+        (!). [p/p]\\ 
+        K E     & {\bf Encrypt} article body. [p/p]\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\DraftGroup}{% formerly \Dsubmap
+    {\esamepage
+      The ``drafts''-group contains messages that have been saved but not sent
+      and rejected articles. \\*
+      \begin{keys}{B DEL}
+        D e      & \textbf{edit} message.\\
+        D s      & \textbf{Send} message. [p/p]\\
+        D S      & \textbf{Send} all messages.\\
+        D t      & \textbf{Toggle} sending (mark as unsendable).\\
+        B DEL    & \textbf{Delete} message (like in mailgroup).\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\SelectArticles}{% formerly \Gsubmap
+    {\esamepage
+      These commands select the target article. They do not understand the prefix.\\*
+      \begin{keys}{G C-n}
+        h       & Enter article-buffer.\\
+        G b     & (,) Go to the {\bf best} article (the one with highest score).\\
+        G f     & (.) Go to the {\bf first} unread article.\\
+        G n     & (n) Go to the {\bf next} unread article.\\
+        G p     & (p) Go to the {\bf previous} unread article.\\
+                                %
+        G N     & (N) Go to {\bf the} next article.\\
+        G P     & (P) Go to the {\bf previous} article.\\
+                                %
+        G C-n   & (M-C-n) Go to the {\bf next} article with the same subject.\\
+        G C-p   & (M-C-p) Go to the {\bf previous} article with the same subject.\\
+                                %
+        G l     & (l) Go to the previously read article ({\bf last-read-article}).\\
+        G o     & Pop an article off the summary history and go to it.\\
+                                %
+        G g     & Search an article via subject.\\
+        G j     & (j) Search an article via Message-Id or subject.\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\ArticleModeGeneral}{%
+    {\esamepage
+      The normal navigation keys work in Article mode. Some additional keys are:\\
+      \begin{keys}{C-c RET}
+        C-c \^{} & Get the article with the Message-ID near point.\\
+        C-c RET & Send reply to address near point.\\
+        h       & Go to the \textbf{header}-line of the article in the
+        summary-buffer.\\
+        s       & Go to \textbf{summary}-buffer.\\
+        RET     & (middle mouse button) Activate the button at point to follow
+        an URL or Message-ID.\\
+        TAB     & Move the point to the next button.\\
+        M-TAB   & Move point to previous button.\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\WashArticle}{% formerly \Wsubmap
+    {\esamepage
+      \begin{keys}{W W H}
+        W 6     & Translate a base64 article.\\
+        W a     & Strip certain {\bf headers} from body.\\
+        W b     & Make Message-IDs and URLs in the article mouse-clickable
+        {\bf buttons}.\\  
+        W c     & Translate CRLF-pairs to LF and then the remaining CR's to LF's.\\
+        W d     & Treat {\bf dumbquotes}.\\
+        W e     & Treat {\bf emphasized} text.\\
+        W h     & Treat {\bf HTML}.\\
+        W l     & (w) Remove page breaks ({\bf\^{}L}) from the article.\\
+        W m     & {\bf Morse} decode article.\\
+        W o     & Treat {\bf overstrike} or underline (\^{}H\_) in the article.\\
+        W p     & Verify X-{\bf PGP}-Sig header.\\
+        W q     & Treat {\bf quoted}-printable in the article.\\
+        W r     & (C-c C-r) Do a Caesar {\bf rotate} (rot13) on the article.\\
+        W s     & Verify (and decrypt) a {\bf signed} message.\\
+        W t     & (t) {\bf Toggle} display of all headers.\\
+        W u     & {\bf Unsplit} broken URLs.\\
+        W v     & (v) Toggle permanent {\bf verbose} displaying of all headers.\\
+        W w     & Do word {\bf wrap} in the article.\\
+        W B     & Add clickable {\bf buttons} to the article headers.\\
+        W C     & {\bf Capitalize} first word in each sentence.\\
+        W Q     & Fill long lines.\\
+        W Z     & Translate a HZ-encoded article.\\
+                                %
+        W G u   & {\bf Unfold} folded header lines.\\
+        W G f   & {\bf Fold} all header lines.\\
+        W G n   & Unfold {\bf Newsgroups:} and Follow-Up-To:.\\
+                                %
+        W Y c   & Repair broken {\bf citations}.\\
+        W Y a   & Repair broken {\bf attribution} lines.\\
+        W Y u   & {\bf Unwrap} broken citation lines.\\
+        W Y f   & Do a {\bf full} deuglification (W Y c, W Y a, W Y u).\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\BlankAndWhitespace}{% 
+    {\esamepage
+      \begin{keys}{W E w}
+        W E l   & Strip blank {\bf lines} from the beginning of the article.\\
+        W E m   & Replace blank lines with empty lines and remove {\bf multiple}
+        blank lines.\\
+        W E t   & Remove {\bf trailing} blank lines.\\
+        W E a   & Strip blank lines at the beginning and the end
+        (W E l, W E m and W E t).\\
+        W E A   & Strip {\bf all} blank lines.\\
+        W E s   & Strip leading blank lines from the article body.\\
+        W E e   & Strip trailing blank lines from the article body.\\
+        W E w   & Remove leading {\bf whitespace} from all headers.\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\Picons}{% 
+    {\esamepage
+      \begin{keys}{W D D}
+        W D s   & (W g) Display {\bf smilies}.\\
+        W D x   & (W f) Look for and display any X-{\bf Face} headers.\\
+        W D d   & Display any Face headers.\\
+        W D n   & Toggle picons in {\bf Newsgroups} and Followup-To.\\
+        W D m   & Toggle picons in {\bf mail} headers (To and Cc).\\
+        W D f   & Toggle picons in {\bf From}.\\
+        W D D   & Remove all images from the article buffer.\\
+      \end{keys}
+      }
+    }
+
+  \newcommand{\TimeAndDate}{% 
+    {\esamepage
+      \begin{keys}{W T u}
+        W T u   & (W T z) Display the article timestamp in GMT ({\bf UT, ZULU}).\\
+        W T i   & Display the article timestamp in {\bf ISO} 8601.\\
+        W T l   & Display the article timestamp in the {\bf local} timezone.\\
+        W T s   & Display according to `gnus-article-time-format'.\\
+        W T e   & Display the time {\bf elapsed} since it was sent.\\
+        W T o   & Display the {\bf original} timestamp.\\
+        W T p   & Display the date in format that's {\bf
+          pronounceable} in English.\\        
+      \end{keys}
+      }
+    }
+
+  \newcommand{\HideHighlightArticle}{%
+    {\esamepage
+      \begin{keys}{W W C-c}
+        W W a   & Hide {\bf all} unwanted parts. Calls W W h, W W s, W W C-c.\\
+        W W h   & Hide article {\bf headers}.\\
+        W W b   & Hide {\bf boring} headers.\\
+        W W s   & Hide {\bf signature}.\\
+        W W l   & Hide {\bf list} identifiers in subject-header.\\
+        W W P   & Hide {\bf PEM} (privacy enhanced messages).\\
+        W W B   & Hide banner specified by group parameter.\\
+        W W c   & Hide {\bf citation}.\\
+        W W C-c & Hide {\bf citation} using a more intelligent algorithm.\\
+        W W C   & Hide cited text in articles that aren't roots.\\
+        W H a   & Highlight {\bf all} parts. Calls W b, W H c, W H h, W H s.\\
+        W H c   & Highlight article {\bf citations}.\\
+        W H h   & Highlight article {\bf headers}.\\
+        W H s   & Highlight article {\bf signature}.\\
+      \end{keys}
+      For all hiding-commands: A positive prefix always hides, and a negative
+      prefix will show what was previously hidden.
+      }}
+
+  \newcommand{\MIMEArticleMode}{%
+    {\esamepage
+      \begin{keys}{RET}
+        RET     & (BUTTON-2) Toggle display of the MIME object.\\
+        v       & Prompt for a method and then view object using this method.\\
+        o       & Prompt for a filename and save the MIME object.\\
+        C-o     & Prompt for a filename to save the MIME object to and remove it.\\
+        d       & {\bf Delete} the MIME object.\\
+        c       & {\bf Copy} the MIME object to a new buffer and display this buffer.\\
+        i       & Display the MIME object in this buffer.\\
+        C       & Copy the MIME object to a new buffer and display this buffer using {\bf Charset} \\
+        E       & View internally. \\
+        e       & View {\bf externally}. \\
+        t       & View the MIME object as a different {\bf type}.\\
+        p       & {\bf Print} the MIME object.\\
+        $\mid$  & Pipe the MIME object to a process.\\
+        .       & Take action on the MIME object.\\
+      \end{keys}
+      }
+    }
+
+  %% end of article mode for reading ..........................................
+
+  \newcommand{\MarkArticlesGeneral}{% formerly \Msubmap
+    {\esamepage
+      \begin{keys}{M M-C-r}
+        d       & (M d, M r) Mark this article as read and move to the next one.
+        [scope]\\ 
+        D       & Mark this article as read and move to the previous one. [scope]\\
+        !       & (u, M !, M t) Tick this article (mark it as interesting) and move
+        to the next one. [scope]\\
+        U       & Tick this article and move to the previous one. [scope]\\ 
+        M ?     & (?) Mark this article as dormant (only followups are
+        interesting). [scope]\\ 
+        M D     & Show all {\bf dormant} articles (normally they are hidden unless they
+        have any followups).\\
+        M M-D   & Hide all {\bf dormant} articles.\\
+        C-w     & Mark all articles between point and mark as read.\\
+        M-u     & (M SPC, M c) Clear all marks from this article and move to the next
+        one. [scope]\\ 
+        M-U     & Clear all marks from this article and move to the previous one.
+        [scope]\\
+                                %
+        M e     & (E, M x) Mark this article as {\bf expirable}. [scope]\\
+                                %
+        M k     & (k) {\bf Kill} all articles with the same subject then select the
+        next unread one.\\ 
+        M K     & (C-k) {\bf Kill} all articles with the same subject as this one.\\
+                                %
+        M C     & {\bf Catch-up} the articles that are not ticked and not dormant.\\
+        M C-c   & {\bf Catch-up} all articles in this group.\\
+        M H     & {\bf Catch-up} (mark read) this group to point (to-{\bf here}).\\
+                                %
+        M b     & Set a {\bf bookmark} in this article.\\
+        M B     & Remove the {\bf bookmark} from this article.\\
+                                %
+        M M-r   & (x) Expunge all {\bf read} articles from this group.\\
+        M M-C-r & Expunge all articles having a given mark.\\
+        M S     & (C-c M-C-s) {\bf Show} all expunged articles.\\
+        M M C-h & Displays some more keys doing ticking slightly differently.\\
+      \end{keys}
+      The variable `gnus-summary-goto-unread' controls what happens after a mark
+      has been set (C-x C-i g Setting Marks RET)
+      }}
+
+  \newcommand{\MarkByScore}{%
+    \begin{keys}{M V m}
+      M V c   & {\bf Clear} all marks from all high-scored articles. [score]\\
+      M V k   & {\bf Kill} all low-scored articles. [score]\\
+      M V m   & Mark all high-scored articles with a given {\bf mark}. [score]\\
+      M V u   & Mark all high-scored articles as interesting (tick them). [score]\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\ProcessMark}{%
+  {\esamepage 
+    These commands set and remove the process mark (\#). You only need to use
+    it if the set of articles you want to operate on is non-contiguous. Else
+    use a numeric prefix.\\*
+    \begin{keys}{M P R}
+      M P p   & (\#, M \#) Mark this article.\\
+      M P u   & (M-\#, M M-\#) \textbf{unmark} this article.\\
+      M P b   & Mark all articles in {\bf buffer}.\\
+      M P r   & Mark all articles in the {\bf region}.\\
+      M P g   & Unmark all articles in the region.\\
+      M P R   & Mark all articles matching a {\bf regexp}.\\
+      M P G   & Unmark all articles matching a regexp.\\
+      M P t   & Mark all articles in this (sub){\bf thread}.\\
+      M P T   & Unmark all articles in this (sub){\bf thread}.\\
+      M P s   & Mark all articles in the current {\bf series}.\\
+      M P S   & Mark all {\bf series} that already contain a marked article.\\
+      M P a   & Mark {\bf all} articles (in series order).\\
+      M P U   & \textbf{unmark} all articles.\\
+      M P i   & {\bf Invert} the list of process-marked articles.\\
+      M P k   & Push the current process-mark set onto stack and unmark
+      all articles.\\
+      M P y   & Pop process-mark set from stack and restore it.\\
+      M P w   & Push process-mark set on the stack.\\
+      M P v   & Mark all articles with score over the default score. [Prefix: score]\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\Limiting}{%
+  {\esamepage
+    \begin{keys}{/M}
+      //   & (/s) Limit the summary-buffer to articles matching {\bf subject}.\\
+      /a   & Limit the summary-buffer to articles matching {\bf author}.\\
+      /R   & Limit the summary-buffer to articles matching {\bf recipient}.\\
+      /x   & Limit depending on ``extra'' headers.\\
+      /u   & (x) Limit to {\bf unread} articles.
+      [Prefix: also exclude ticked and dormant articles]\\
+      /.   & Limit to unseen articles.\\
+      /m   & Limit to articles marked with specified {\bf mark}.\\
+      /t   & Ask for a number and exclude articles younger than that many days.
+      [Prefix: exclude older articles]\\
+      /n   & Limit to current article. [p/p]\\
+      /w   & Pop the previous limit off the stack and restore it.
+      [Prefix: pop all limits]\\
+      /v   & Limit to score. [score]\\
+      /E   & (M S) Include all expunged articles in the limit.\\
+      /D   & Include all dormant articles in the limit.\\
+      /*   & Limit to cached articles.\\
+      Y C  & Include all cached articles in the limit.\\
+      /d   & Exclude all dormant articles from the limit.\\
+      /M   & Exclude all marked articles.\\
+      /T   & Include all articles from the current thread in the limit.\\
+      /c   & Exclude all dormant articles that have no children from the limit.\\
+      /C   & Mark all excluded unread articles as read.
+      [Prefix: also mark ticked and dormant articles]\\
+      /o   & Insert all {\bf old} articles. [Prefix: how many]\\
+      /N   & Insert all {\bf new} articles.\\
+      /p   & Limit to articles {\bf predicated} in the `display' group parameter.\\
+      /r   & Limit to {\bf replied} articles. [Prefix: unreplied]\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\OutputArticles}{% formerly \Osubmap
+  {\esamepage
+    \begin{keys}{O m}
+      O o     & (o, C-o) Save this article using the default article saver. [p/p]\\
+      O b     & Save this article's {\bf body} in plain file format [p/p]\\
+      O f     & Save this article in plain {\bf file} format. [p/p]\\
+      O F     & like O f, but overwrite file's contents. [p/p]\\
+      O h     & Save this article in {\bf mh} folder format. [p/p]\\
+      O m     & Save this article in {\bf mail} format. [p/p]\\
+      O r     & Save this article in {\bf rmail} format. [p/p]\\
+      O v     & Save this article in {\bf vm} format. [p/p]\\
+      O p     & ($\mid$) {\bf Pipe} this article to a shell command. [p/p]\\
+      O P     & \textbf{Print} this article using Muttprint. [p/p]\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\PostReplyetc}{% formerly \Ssubmap
+  {\esamepage
+    These commands put you in a separate news or mail buffer. See the section
+    about composing messages for more information.\\*
+                                %After
+                                %editing the article, send it by pressing C-c C-c.  If you are in a
+                                %foreign group and want to post the article using the foreign server, give
+                                %a prefix to C-c C-c.\\* 
+    \begin{keys}{S O m}
+      S p     & (a) {\bf Post} an article to this group.\\
+      S f     & (f) Post a {\bf followup} to this article.\\
+      S F     & (F) Post a {\bf followup} and include the original. [p/p]\\
+      S o p   & Forward this article as a {\bf post} to a newsgroup.\\
+      S M-c   & Send a complaint about excessive crossposting to the author of this
+      article. [p/p]\\
+                                %
+      S m     & (m) Send a {\bf mail} to some other person.\\
+      S r     & (r) Mail a {\bf reply} to the author of this article.\\
+      S R     & (R) Mail a {\bf reply} and include the original. [p/p]\\
+      S B r   & Like S r but ignore the Reply-To: header.\\
+      S B R   & Like S R but ignore the Reply-To: header.\\
+      S w     & Mail a {\bf wide} reply to this article.\\
+      S W     & Mail a {\bf wide} reply to this article and include
+      the original.\\
+      S v     & Mail a {\bf very} wide reply to this article.\\
+      S V     & Mail a {\bf very} wide reply to this article and include the original.\\
+      S o m   & (C-c C-f) Forward this article by {\bf mail} to a person.\\
+      S D b   & Resend {\bf bounced} mail.\\
+      S D r   & {\bf Resend} mail to a different person.\\
+      S D e   & {\bf Edit} and resend.\\
+                                %
+      S n     & Post a followup via {\bf news} even if you got the message
+      through mail.\\
+      S N     & Post a followup via {\bf news} and include the original mail.
+      [p/p]\\
+                                %
+      S c     & (C) {\bf Cancel} this article (only works if it is
+      your own). [p/p]\\
+      S s     & {\bf Supersede} this article with a new one (only for own
+      articles).\\
+                                %
+      S O m   & Digest these series and forward by {\bf mail}. [p/p]\\
+      S O p   & Digest these series and forward as a {\bf post} to a newsgroup.
+      [p/p]\\ 
+                                %
+      S u     & {\bf Uuencode} a file and post it as a series.\\
+    \end{keys}
+    If you want to cancel or supersede an article you just posted (before it
+    has appeared on the server), go to the *post-news* buffer, change
+    `Message-ID' to `Cancel' or `Supersedes' and send it again with C-c C-c.
+    }}
+
+\newcommand{\Threading}{% formerly \Tsubmap
+  {\esamepage
+    \begin{keys}{T M-\#}
+      T \#    & Mark this thread with the process mark.\\
+      T M-\#  & Remove process-marks from this thread.\\
+                                %
+      T t     & Re-{\bf thread} the current article's thread.\\
+      T \^{}  & Make the current article child of the marked (or previous) article.\\
+                                % movement
+      T n     & (M-C-f, M-down) Go to the {\bf next} thread. [distance]\\
+      T p     & (M-C-b, M-up) Go to the {\bf previous} thread. [distance]\\
+      T d     & {\bf Descend} this thread. [distance]\\
+      T u     & Ascend this thread ({\bf up}-thread). [distance]\\
+      T o     & Go to the top of this thread.\\
+                                %
+      T s     & {\bf Show} the thread hidden under this article.\\
+      T h     & {\bf Hide} this (sub)thread.\\
+                                %
+      T i     & {\bf Increase} the score of this thread.\\
+      T l     & (M-C-l) {\bf Lower} the score of this thread.\\
+                                %
+      T k     & (M-C-k) {\bf Kill} the current (sub)thread. [Negative prefix:
+      tick it, positive prefix: unmark it.]\\
+                                %
+      T H     & {\bf Hide} all threads.\\
+      T S     & {\bf Show} all hidden threads.\\
+      T T     & (M-C-t) {\bf Toggle} threading.\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\Scoring}{% formerly \Vsubmap
+  {\esamepage
+    Read about Adaptive Scoring in the online info.\\*
+    \begin{keys}{\bf A p m l}
+      V a     & {\bf Add} a new score entry, specifying all elements.\\
+      V c     & Specify a new score file as {\bf current}.\\
+      V e     & {\bf Edit} the current score alist.\\
+      V f     & Edit a score {\bf file} and make it the current one.\\
+      V m     & {\bf Mark} all articles below a given score as read.\\
+      V s     & Set the {\bf score} of this article.\\
+      V t     & Display all score rules applied to this article ({\bf track}).\\
+      W w     & List {\bf words} used in scoring.\\
+      V x     & {\bf Expunge} all low-scored articles. [score]\\
+      V C     & {\bf Customize} the current score file through a user-friendly
+      interface.\\
+      V F     & {\bf Flush} the cache of score files.\\
+      V R     & {\bf Re-score} the summary buffer.\\
+      V S     & Display the {\bf score} of this article.\\
+      \bf A p m l& Make a scoring entry based on this article.\\
+    \end{keys}
+    The four letters stand for:\\*
+    \quad \B{A}ction: I)ncrease, L)ower;\\*
+    \quad \B{p}art: a)uthor (from), s)ubject, x)refs (cross-posting), d)ate, l)ines,
+    message-i)d, t)references (parent), f)ollowup, b)ody, h)ead (all headers);\\*
+    \quad \B{m}atch type:\\*
+    \qquad string: s)ubstring, e)xact, r)egexp, f)uzzy,\\*
+    \qquad date: b)efore, a)t, n)this,\\*
+    \qquad number: $<$, =, $>$;\\*
+    \quad \B{l}ifetime: t)emporary, p)ermanent, i)mmediate.
+
+    If you type the second letter in uppercase, the remaining two are assumed
+    to be s)ubstring and t)emporary. 
+    If you type the third letter in uppercase, the last one is assumed to be 
+    t)emporary.
+
+    \quad Extra keys for manual editing of a score file:\\*
+    \begin{keys}{C-c C-c}
+      C-c C-c & Finish editing the score file.\\
+      C-c C-d & Insert the current {\bf date} as number of days.\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\ExtractSeries}{% formerly \Xsubmap
+  {\esamepage
+    Gnus recognizes if the current article is part of a series (multipart
+    posting whose parts are identified by numbers in their subjects, e.g.{}
+    1/10\dots10/10) and processes the series accordingly. You can mark and
+    process more than one series at a time. If the posting contains any
+    archives, they are expanded and gathered in a new group.\\*
+    \begin{keys}{X p}
+      X b     & Un-{\bf binhex} these series. [p/p]\\
+      X o     & Simply {\bf output} these series (no decoding). [p/p]\\ 
+      X p     & Unpack these {\bf postscript} series. [p/p]\\
+      X s     & Un-{\bf shar} these series. [p/p]\\
+      X u     & {\bf Uudecode} these series. [p/p]\\
+    \end{keys}
+
+    Each one of these commands has four variants:\\*
+    \begin{keys}{X v \bf Z}
+      X   \bf z & Decode these series. [p/p]\\
+      X   \bf Z & Decode and save these series. [p/p]\\
+      X v \bf z & Decode and view these series. [p/p]\\
+      X v \bf Z & Decode, save and view these series. [p/p]\\
+    \end{keys}
+    where {\bf z} or {\bf Z} identifies the decoding method (b, o, p, s, u).
+
+    An alternative binding for the most-often used of these commands is\\*
+    \begin{keys}{C-c C-v C-v}
+      C-c C-v C-v & (X v u) Uudecode and view these series. [p/p]\\
+    \end{keys}
+    }}
+
+\newcommand{\ExitSummary}{% formerly \Zsubmap
+  {\esamepage
+    \begin{keys}{Z G}
+      Z Z     & (q, Z Q) Exit this group.\\
+      Z E     & (Q) {\bf Exit} without updating the group information.\\
+                                %
+      Z c     & (c) Mark all unticked articles as read ({\bf catch-up}) and exit.\\
+      Z C     & Mark all articles as read ({\bf catch-up}) and exit.\\
+                                %
+      Z n     & Mark all articles as read and go to the {\bf next} group.\\
+      Z N     & Exit and go to {\bf the} next group.\\
+      Z P     & Exit and go to the {\bf previous} group.\\
+                                %
+      Z G     & (M-g) Check for new articles in this group ({\bf get}).\\
+      Z R     & (C-x C-s) Exit this group, and then enter it again ({\bf reenter}).
+      [Prefix: select all articles, read and unread.]\\
+      Z s     & Update and save the dribble buffer. [Prefix: save .newsrc* as well]\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\MsgCompositionGeneral}{%
+  Press C-c ? in the composition-buffer to get this information.\\*
+  {\esamepage
+    \begin{keys}{C-c C-m}
+                                % sending
+      C-c C-c & Send message and exit. [Prefix: send via foreign server]\\
+      C-c C-s & Send message. [Prefix: send via foreign server]\\
+      C-c C-d & Don't send message (save as \textbf{draft}).\\
+      C-c C-k & \textbf{Kill} message-buffer.\\
+      C-c C-m & {\bf Mail} reply to the address near point.
+      [Prefix: include the original]\\
+                                % modify headers/body
+      C-c C-o & Sort headers.\\
+      C-c C-e & \textbf{Elide} region.\\
+      C-c C-v & Kill everything outside region.\\
+      C-c C-r & Do a \textbf{Rot-13} on the body.\\
+      C-c C-w & Insert signature (from `message-signature-file').\\
+      C-c C-z & Kill everything up to signature.\\
+      C-c C-y & \textbf{Yank} original message.\\
+      C-c C-q & Fill the yanked message.\\
+      C-c M-C-y & \textbf{Yank} a buffer and quote it.\\
+      M-RET   & Insert four newlines and format quoted text. [Prefix:
+      justify as well]\\
+      C-c M-r & \textbf{Rename} message buffer. [Prefix: ask for new name]\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\MsgCompositionMovementArticle}{%
+  The following functions create the header-field if necessary.\\*
+  {\esamepage
+    \begin{keys}{C-c C-f C-u}
+      C-c TAB & Move to \textbf{signature}.\\
+      C-c C-b & Move to \textbf{body}.\\
+      C-c C-f C-t & (C-c C-t) Move to \textbf{To:}.\\
+      C-c C-f C-c & Move to \textbf{Cc:}.\\
+      C-c C-f C-b & Move to \textbf{Bcc:}.\\
+      C-c C-f C-w & Move to \textbf{Fcc:}.\\
+      C-c C-f C-s & Move to \textbf{Subject:}.\\
+      C-c C-f C-r & Move to \textbf{Reply-To:}.\\
+      C-c C-f C-f & Move to \textbf{Followup-To:}.\\
+      C-c C-f C-n & (C-c C-n) Move to \textbf{Newsgroups:}.\\
+      C-c C-f C-u & Move to \textbf{Summary:}.\\
+      C-c C-f C-k & Move to \textbf{Keywords:}.\\
+      C-c C-f C-d & Move to \textbf{Distribution:}.\\
+      C-c C-f C-m & Move to \textbf{Mail-Followup-To:}.\\
+      C-c C-f C-o & Move to \textbf{From:}.\\
+      C-c C-f C-a & Insert a reasonable \textbf{Mail-Followup-To:} for
+      an unsubscribed list. [Prefix: include addresses in \textbf{Cc:}]\\
+      C-c C-f TAB & (C-c C-u) Move to \textbf{Importance:}.\\
+      C-c M-n     & Insert \textbf{Disposition-Notification-To:}
+      (request receipt).\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\MsgCompositionMML}{%
+  {\esamepage
+    \begin{keys}{C-c C-m P}
+      C-c C-m f   & (C-c C-a) Attach \textbf{file}.\\
+      C-c C-m b   & Attach contents of \textbf{buffer}.\\
+      C-c C-m e   & Attach \textbf{external} file (ftp..).\\
+      C-c C-m P   & Create MIME-\textbf{preview} (new
+      buffer). [Prefix: show raw MIME preview]\\
+      C-c C-m v   & \textbf{Validate} article.\\
+      C-c C-m p   & Insert \textbf{part}.\\
+      C-c C-m m   & Insert \textbf{multi}-part.\\
+      C-c C-m q   & \textbf{Quote} region.\\
+      C-c C-m c s & Encrypt message using \textbf{S/MIME}.\\
+      C-c C-m c o & Encrypt message using PGP.\\
+      C-c C-m c p & Encrypt message using \textbf{PGP/MIME}.\\
+      C-c C-m s s & Sign message using \textbf{S/MIME}.\\
+      C-c C-m s o & Sign message using PGP.\\
+      C-c C-m s p & Sign message using \textbf{PGP/MIME}.\\
+      C-c C-m C-n & Remove security related MML tags from message.\\
+                                % TODO: narrow headers (C-c C-m n) ?
+    \end{keys}
+    }
+  }
+
+%% TODO:
+\newcommand{\ServerMode}{%
+  {\esamepage
+    To enter this mode, press \^{} while in Group mode.\\*
+    \begin{keys}{SPC}
+      SPC     & (RET) Browse this server.\\
+      a       & {\bf Add} a new server.\\
+      c       & {\bf Copy} this server.\\
+      e       & {\bf Edit} a server.\\
+      k       & {\bf Kill} this server. [scope]\\
+      l       & {\bf List} all servers.\\
+      q       & Return to the group buffer ({\bf quit}).\\
+      s       & Request that the server scan its sources for new articles.\\
+      g       & Request that the server regenerate its data.\\
+      y       & {\bf Yank} the previously killed server.\\
+      O       & Try to {\bf open} a connection to this server.\\
+      C       & {\bf Close} connection to this server.\\
+      D       & Mark this server as unreachable ({\bf deny}).\\
+      M-o     & {\bf Open} the connection to all servers.\\
+      M-c     & {\bf Close} the connection to all servers.\\
+      R       & Make all denied servers into closed servers.\\
+      L       & Set server status to offline.\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\BrowseServer}{%
+  {\esamepage
+    To enter this mode, press `B' while in Group mode.\\*
+    \begin{keys}{RET}
+      RET     & Enter the current group.\\
+      SPC     & Enter the current group and display the first article.\\
+      ?       & Give a very short help message.\\
+      n       & Go to the {\bf next} group. [distance]\\
+      p       & Go to the {\bf previous} group. [distance]\\
+      q       & (l) {\bf Quit} browse mode.\\
+      u       & Subscribe to the current group. [scope]\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\GroupUnplugged}{%
+  {\esamepage
+    \begin{keys}{J S}
+      J j & Toggle plugged-state.\\
+      J s & Fetch articles from all groups for offline-reading.\\
+      J u & Fetch all eligible articles from this group.\\
+      J S & \textbf{Send} all sendable messages in the drafts group.\\
+                                %
+      J c & Enter \textbf{category} buffer.\\
+      J a & \textbf{Add} this group to an Agent category [p/p].\\
+      J r & \textbf{Remove} this group from its Agent category [p/p].\\
+      J Y & Synchronize flags changed while unplugged with remote server.\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\SummaryUnplugged}{%
+  {\esamepage
+    \begin{keys}{J M-\#}
+      J \#   & \textbf{Mark} the article for downloading.\\
+      J M-\# & \textbf{Unmark} the article for downloading.\\
+      @      & \textbf{Toggle} whether to download the article.\\
+      J c    & Mark all undownloaded articles as read (\textbf{catch-up}).\\
+      J u    & Download all downloadable articles from group.\\
+    \end{keys}
+    }
+  }
+
+\newcommand{\ServerUnplugged}{%
+  {\esamepage
+    \begin{keys}{J a}
+      J a & \textbf{Add} the current server to the list of servers covered
+      by the agent.\\
+      J r & \textbf{Remove} the current server from the list of servers covered
+      by the agent.\\
+    \end{keys}
+    }
+  }
+
+% end   {gnusref} % % % % % % % % % % % % % % % % % % % % % % % % % %  
+
+
+% o some things might not be updated: scoring and server modes, maybe more
+% o Gnus Unplugged category-buffer commands need to be written
+
+\begin{document}
+
+\def\progver{5.10}\def\refver{5.10-1} % program and refcard versions
+\def\date{Jan 10th, 2004}
+\def\author{Gnus Bugfixing Girls + Boys $<$bugs@gnus.org$>$}
+
+\ifthenelse{\isundefined{\booklettrue}}{ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \raggedbottom\raggedright
+  \twocolumn
+  % use \tiny to shrink it to 4 pages (needs a high-resolution printer though)
+  % \tiny
+  \scriptsize
+  \pagestyle{plain}
+  \Title
+  \par
+  \Logo{refcard}
+}{
+  \setcounter{page}{0}
+  \thispagestyle{empty}
+  \vspace*{\fill}
+  \Title
+  \vspace{0.4in}
+  \Logo{booklet}
+  \vspace*{\fill}
+  \pagebreak
+}%ifbooklet% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% TODO: how does this work ?
+%\tableofcontents
+
+\Notes
+%
+
+\section*{Group-Mode}
+\GroupModeGeneral
+    \subsection*{Group Subscribedness-Levels}
+    \GroupLevels
+    \subsection*{List Groups}
+    \ListGroups
+    \subsection*{Create/Edit Foreign Groups}
+    \CreateEditGroups
+    \subsection*{Unsubscribe, Kill and Yank Groups}
+    \SubscribeKillYankGroups
+    \subsection*{Mark Groups}
+    \MarkGroups
+    \subsection*{Group-Unplugged}
+    \GroupUnplugged
+% topics in group-mode
+    \subsection*{Group Topics}
+    \GroupTopicsGeneral
+    \subsubsection*{Topic Sorting}
+    \TopicSorting
+
+% \ifthenelse{\isundefined{\booklettrue}}{}{\pagebreak}
+
+% summary-mode
+\section*{Summary Mode}
+\SummaryModeGeneral
+    \subsection*{Select Articles}
+    \SelectArticles
+%
+    \subsection*{Threading}
+    \Threading
+%
+    \subsection*{Limiting}
+    \Limiting
+    \subsection*{Sort the Summary-Buffer}
+    \SortSummary
+    \subsection*{Score (Value) Commands}
+    \Scoring
+    
+\ifthenelse{\isundefined{\booklettrue}}{% ifcard %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \subsection*{Output Articles}
+  \OutputArticles
+  \subsection*{Extract Series (Uudecode etc)}
+  \ExtractSeries
+}{}%ifcard% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+    \subsection*{MIME operations from the Summary-Buffer}
+    \MIMESummary
+    
+\ifthenelse{\isundefined{\booklettrue}}{}{% ifbooklet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \subsection*{Extract Series (Uudecode etc)}
+  \ExtractSeries
+  \subsection*{Output Articles}
+  \OutputArticles
+}%ifbooklet% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%
+    \subsection*{Post, Followup, Reply, Forward, Cancel}
+    \PostReplyetc
+    
+\ifthenelse{\isundefined{\booklettrue}}{\newpage}{}% newpage ifcard
+
+      \subsection*{Message Composition}
+
+    \MsgCompositionGeneral
+        \subsubsection*{Jumping in message-buffer}
+        \MsgCompositionMovementArticle
+        \subsubsection*{Attachments/MML}
+        \MsgCompositionMML
+% marking articles
+    \subsection*{Mark Articles}
+    \MarkArticlesGeneral
+        \subsubsection*{Mark Based on Score}
+        \MarkByScore
+        \subsubsection*{The Process Mark}
+        \ProcessMark
+        \subsubsection*{Mark Indication-Characters}
+        \MarkCharacters
+%
+\ifthenelse{\isundefined{\booklettrue}}{\newpage}{}%
+
+    \subsection*{Summary-Unplugged}
+    \SummaryUnplugged
+    \subsection*{Mail-Group Commands}
+    \MailGroups
+    \subsection*{Draft-Group Commands}
+    \DraftGroup
+% exiting
+    \subsection*{Exit the Summary-Buffer}
+    \ExitSummary
+%
+%
+\section*{Article Mode (reading)}
+\ArticleModeGeneral
+    \subsection*{Wash the Article-Buffer}
+    \WashArticle
+    \subsubsection*{Blank Lines and Whitespace}
+    \BlankAndWhitespace
+    \subsubsection*{Picons, X-faces, Smileys}
+    \Picons
+    \subsubsection*{Time and Date}
+    \TimeAndDate
+    \subsection*{Hide/Highlight Parts of the Article}
+    \HideHighlightArticle
+    \subsection*{MIME operations from the Article-Buffer (reading)}
+    \MIMEArticleMode
+%
+%
+\section*{Server Mode}
+\ServerMode
+    \subsection*{Unplugged-Server}
+    \ServerUnplugged
+%
+%
+\section*{Browse Server Mode}
+\BrowseServer
+
+%\pagebreak
+\vspace*{\fill}
+\Copyright
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
+
+% arch-tag: be438b0e-6832-4afb-8c56-5f84743e5cd1
Index: gnus/texi/gnus.texi
diff -u gnus/texi/gnus.texi:7.42 gnus/texi/gnus.texi:7.95
--- gnus/texi/gnus.texi:7.42	Mon Apr 19 03:14:55 2004
+++ gnus/texi/gnus.texi	Wed Mar 30 10:17:03 2005
@@ -5,15 +5,33 @@
 @syncodeindex fn cp
 @syncodeindex vr cp
 @syncodeindex pg cp
-@dircategory Emacs
-@direntry
-* Gnus: (gnus).         The newsreader Gnus.
-@end direntry
+
 @documentencoding ISO-8859-1
-@iftex
-@finalout
-@end iftex
-@setchapternewpage odd
+
+@copying
+Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU
+Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
+license is included in the section entitled ``GNU Free Documentation
+License'' in the Emacs manual.
+
+(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
+this GNU Manual, like GNU software.  Copies published by the Free
+Software Foundation raise funds for GNU development.''
+
+This document is part of a collection distributed under the GNU Free
+Documentation License.  If you want to distribute this document
+separately from the collection, you can do so by adding a copy of the
+license to the document, as described in section 6 of the license.
+@end quotation
+@end copying
 
 @iftex
 @iflatex
@@ -34,7 +52,7 @@
 \makeindex
 \begin{document}
 
-\newcommand{\gnusversionname}{Gnus v5.10.6}
+\newcommand{\gnusversionname}{No Gnus v0.3}
 \newcommand{\gnuschaptername}{}
 \newcommand{\gnussectionname}{}
 
@@ -278,6 +296,7 @@
 
 @iftex
 @iflatex
+
 \begin{titlepage}
 {
 
@@ -301,91 +320,35 @@
 
 \thispagestyle{empty}
 
-Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004
-Free Software Foundation, Inc.
-
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
+@c @insertcopying
 \newpage
 \end{titlepage}
 @end iflatex
 @end iftex
 
 @ifnottex
+@insertcopying
+@end ifnottex
 
-This file documents Gnus, the GNU Emacs newsreader.
-
-Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-        Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being none, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
+@dircategory Emacs
+@direntry
+* Gnus: (gnus).         The newsreader Gnus.
+@end direntry
+@iftex
+@finalout
+@end iftex
+@setchapternewpage odd
 
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
-@end ifnottex
 
-@tex
 
 @titlepage
 @title Gnus Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
-
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004
-        Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
-
+@insertcopying
 @end titlepage
-@page
-
-@end tex
 
 
 @node Top
@@ -398,7 +361,7 @@
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus v5.10.6.
+This manual corresponds to No Gnus v0.3.
 
 @end ifinfo
 
@@ -430,26 +393,26 @@
 @end iftex
 
 @menu
-* Starting Up::                 Finding news can be a pain.
-* Group Buffer::                Selecting, subscribing and killing groups.
-* Summary Buffer::              Reading, saving and posting articles.
-* Article Buffer::              Displaying and handling articles.
-* Composing Messages::          Information on sending mail and news.
-* Select Methods::              Gnus reads all messages from various select methods.
-* Scoring::                     Assigning values to articles.
-* Various::                     General purpose settings.
-* The End::                     Farewell and goodbye.
-* Appendices::                  Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
-* Index::                       Variable, function and concept index.
-* Key Index::                   Key Index.
+* Starting Up::              Finding news can be a pain.
+* Group Buffer::             Selecting, subscribing and killing groups.
+* Summary Buffer::           Reading, saving and posting articles.
+* Article Buffer::           Displaying and handling articles.
+* Composing Messages::       Information on sending mail and news.
+* Select Methods::           Gnus reads all messages from various select methods.
+* Scoring::                  Assigning values to articles.
+* Various::                  General purpose settings.
+* The End::                  Farewell and goodbye.
+* Appendices::               Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
+* Index::                    Variable, function and concept index.
+* Key Index::                Key Index.
 
 Other related manuals
 
-* Message:(message).            Composing messages.
-* Emacs-MIME:(emacs-mime).      Composing messages; @acronym{MIME}-specific parts.
-* Sieve:(sieve).                Managing Sieve scripts in Emacs.
-* PGG:(pgg).                    @acronym{PGP/MIME} with Gnus.
-* SASL:(sasl).                  @acronym{SASL} authentication in Emacs.
+* Message:(message).         Composing messages.
+* Emacs-MIME:(emacs-mime).   Composing messages; @acronym{MIME}-specific parts.
+* Sieve:(sieve).             Managing Sieve scripts in Emacs.
+* PGG:(pgg).                 @acronym{PGP/MIME} with Gnus.
+* SASL:(sasl).               @acronym{SASL} authentication in Emacs.
 
 @detailmenu
  --- The Detailed Node Listing ---
@@ -575,12 +538,9 @@
 * Unread Articles::             Marks for unread articles.
 * Read Articles::               Marks for read articles.
 * Other Marks::                 Marks that do not affect readedness.
-
-Marking Articles
-
-* Setting Marks::             How to set and remove marks.
-* Generic Marking Commands::  How to customize the marking.
-* Setting Process Marks::     How to mark articles for later processing.
+* Setting Marks::               How to set and remove marks.
+* Generic Marking Commands::    How to customize the marking.
+* Setting Process Marks::       How to mark articles for later processing.
 
 Threading
 
@@ -686,6 +646,7 @@
 * Direct Functions::            Connecting directly to the server.
 * Indirect Functions::          Connecting indirectly to the server.
 * Common Variables::            Understood by several connection functions.
+* NNTP marks::                  Storing marks for @acronym{NNTP} servers.
 
 Getting Mail
 
@@ -878,7 +839,7 @@
 * Blackholes::                  
 * Regular Expressions Header Matching::  
 * Bogofilter::                  
-* SpamAssassin backend::        
+* SpamAssassin back end::        
 * ifile spam filtering::        
 * spam-stat spam filtering::    
 * SpamOracle::                  
@@ -921,7 +882,7 @@
 * Red Gnus::                    Third time best---Gnus 5.4/5.5.
 * Quassia Gnus::                Two times two is four, or Gnus 5.6/5.7.
 * Pterodactyl Gnus::            Pentad also starts with P, AKA Gnus 5.8/5.9.
-* Oort Gnus::                   It's big.  It's far out.  Gnus 5.10.
+* Oort Gnus::                   It's big.  It's far out.  Gnus 5.10/5.11.
 * No Gnus::                     Lars, FIXME!
 
 Customization
@@ -988,17 +949,16 @@
 terminology section (@pxref{Terminology}).
 
 @menu
-* Finding the News::            Choosing a method for getting news.
-* The First Time::              What does Gnus do the first time you start it?
-* The Server is Down::          How can I read my mail then?
-* Slave Gnusae::                You can have more than one Gnus active at a time.
-* Fetching a Group::            Starting Gnus just to read a group.
-* New Groups::                  What is Gnus supposed to do with new groups?
-* Changing Servers::            You may want to move from one server to another.
-* Startup Files::               Those pesky startup files---@file{.newsrc}.
-* Auto Save::                   Recovering from a crash.
-* The Active File::             Reading the active file over a slow line Takes Time.
-* Startup Variables::           Other variables you might change.
+* Finding the News::      Choosing a method for getting news.
+* The First Time::        What does Gnus do the first time you start it?
+* The Server is Down::    How can I read my mail then?
+* Slave Gnusae::          You can have more than one Gnus active at a time.
+* New Groups::            What is Gnus supposed to do with new groups?
+* Changing Servers::      You may want to move from one server to another.
+* Startup Files::         Those pesky startup files---@file{.newsrc}.
+* Auto Save::             Recovering from a crash.
+* The Active File::       Reading the active file over a slow line Takes Time.
+* Startup Variables::     Other variables you might change.
 @end menu
 
 
@@ -1029,7 +989,8 @@
 
 If you can use a local spool, you probably should, as it will almost
 certainly be much faster.  But do not use the local spool if your
-server is running Leafnode; in this case, use @code{(nntp "localhost")}.
+server is running Leafnode (which is a simple, standalone private news
+server); in this case, use @code{(nntp "localhost")}.
 
 @vindex gnus-nntpserver-file
 @cindex NNTPSERVER
@@ -1083,13 +1044,18 @@
 (setq gnus-secondary-select-methods '((nnmbox "")))
 @end lisp
 
+Note: the @acronym{NNTP} back end stores marks in marks files
+(@pxref{NNTP marks}).  This feature makes it easy to share marks between
+several Gnus installations, but may slow down things a bit when fetching
+new articles.  @xref{NNTP marks}, for more information.
+
 
 @node The First Time
 @section The First Time
 @cindex first time usage
 
-If no startup files exist, Gnus will try to determine what groups should
-be subscribed by default.
+If no startup files exist (@pxref{Startup Files}), Gnus will try to
+determine what groups should be subscribed by default.
 
 @vindex gnus-default-subscribed-newsgroups
 If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
@@ -1176,16 +1142,6 @@
 incorporated into the slave.  If you answer ``no'', the slave may see some
 messages as unread that have been read in the master.
 
-@node Fetching a Group
-@section Fetching a Group
-@cindex fetching a group
-
-@findex gnus-fetch-group
-It is sometimes convenient to be able to just say ``I want to read this
-group and I don't care whether Gnus has been started or not''.  This is
-perhaps more useful for people who write code than for users, but the
-command @code{gnus-fetch-group} provides this functionality in any case.
-It takes the group name as a parameter.
 
 
 @node New Groups
@@ -1437,8 +1393,10 @@
 @cindex .newsrc.el
 @cindex .newsrc.eld
 
-Now, you all know about the @file{.newsrc} file.  All subscription
-information is traditionally stored in this file.
+Most common Unix news readers use a shared startup file called
+@file{.newsrc}.  This file contains all the information about what
+groups are subscribed, and which articles in these groups have been
+read. 
 
 Things got a bit more complicated with @sc{gnus}.  In addition to
 keeping the @file{.newsrc} file updated, it also used a file called
@@ -1463,8 +1421,10 @@
 However, this will make it impossible to use other newsreaders than
 Gnus.  But hey, who would want to, right?  Similarly, setting
 @code{gnus-read-newsrc-file} to @code{nil} makes Gnus ignore the
-@file{.newsrc} file and any @file{.newsrc-SERVER} files, which is
-convenient if you have a tendency to use Netscape once in a while.
+@file{.newsrc} file and any @file{.newsrc-SERVER} files, which can be
+convenient if you use a different news reader occasionally, and you
+want to read a different subset of the available groups with that
+news reader.
 
 @vindex gnus-save-killed-list
 If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
@@ -3004,11 +2964,25 @@
 Commands}) the following Sieve code is generated:
 
 @example
-if address \"sender\" \"sieve-admin@@extundo.com\" @{
-        fileinto \"INBOX.list.sieve\";
+if address "sender" "sieve-admin@@extundo.com" @{
+        fileinto "INBOX.list.sieve";
 @}
 @end example
 
+To generate tests for multiple email-addresses use a group parameter
+like @code{(sieve address "sender" ("name@@one.org" else@@two.org"))}.
+When generating a sieve script (@pxref{Sieve Commands}) Sieve code
+like the following is generated:
+
+@example
+if address "sender" ["name@@one.org", "else@@two.org"] @{
+        fileinto "INBOX.list.sieve";
+@}
+@end example
+
+See @pxref{Sieve Commands} for commands and variables that might be of
+interest in relation to the sieve parameter.
+
 The Sieve language is described in RFC 3028.  @xref{Top, Emacs Sieve,
 Top, sieve, Emacs Sieve}.
 
@@ -3053,11 +3027,23 @@
 the group by putting @code{(gnus-list-identifiers "DOCBOOK-APPS:")}
 into the group parameters for the group.
 
-This can also be used as a group-specific hook function, if you'd like.
-If you want to hear a beep when you enter a group, you could put
-something like @code{(dummy-variable (ding))} in the parameters of that
-group.  @code{dummy-variable} will be set to the result of the
-@code{(ding)} form, but who cares?
+This can also be used as a group-specific hook function.  If you want to
+hear a beep when you enter a group, you could put something like
+@code{(dummy-variable (ding))} in the parameters of that group.
+@code{dummy-variable} will be set to the (meaningless) result of the
+@code{(ding)} form.  
+
+Alternatively, since the VARIABLE becomes local to the group, this
+pattern can be used to temporarily change a hook.  For example, if the
+following is added to a group parameter
+
+@lisp
+(gnus-summary-prepared-hook
+  '(lambda nil (local-set-key "d" (local-key-binding "n"))))
+@end lisp
+
+when the group is entered, the 'd' key will not mark the article as
+expired.
 
 @end table
 
@@ -3808,7 +3794,7 @@
 @item T M-p
 @kindex T M-p (Topic)
 @findex gnus-topic-goto-previous-topic
-Go to the next topic (@code{gnus-topic-goto-previous-topic}).
+Go to the previous topic (@code{gnus-topic-goto-previous-topic}).
 
 @item G p
 @kindex G p (Topic)
@@ -5714,20 +5700,17 @@
 
 In addition, you also have marks that do not affect readedness.
 
-@menu
-* Unread Articles::             Marks for unread articles.
-* Read Articles::               Marks for read articles.
-* Other Marks::                 Marks that do not affect readedness.
-@end menu
-
 @ifinfo
-There's a plethora of commands for manipulating these marks:
+There's a plethora of commands for manipulating these marks.
 @end ifinfo
 
 @menu
-* Setting Marks::             How to set and remove marks.
-* Generic Marking Commands::  How to customize the marking.
-* Setting Process Marks::     How to mark articles for later processing.
+* Unread Articles::             Marks for unread articles.
+* Read Articles::               Marks for read articles.
+* Other Marks::                 Marks that do not affect readedness.
+* Setting Marks::               How to set and remove marks.
+* Generic Marking Commands::    How to customize the marking.
+* Setting Process Marks::       How to mark articles for later processing.
 @end menu
 
 
@@ -6234,7 +6217,7 @@
 @item M P a
 @kindex M P a (Summary)
 @findex gnus-uu-mark-all
-Mark all articles in series order (@code{gnus-uu-mark-series}).
+Mark all articles in series order (@code{gnus-uu-mark-all}).
 
 @item M P b
 @kindex M P b (Summary)
@@ -6296,6 +6279,13 @@
 (@code{gnus-summary-limit-to-author}).  If given a prefix, exclude
 matching articles.
 
+@item / R
+@kindex / R (Summary)
+@findex gnus-summary-limit-to-recipient
+Limit the summary buffer to articles that match some recipient
+(@code{gnus-summary-limit-to-recipient}).  If given a prefix, exclude
+matching articles.
+
 @item / x
 @kindex / x (Summary)
 @findex gnus-summary-limit-to-extra
@@ -6993,6 +6983,7 @@
 @findex gnus-thread-sort-by-score
 @findex gnus-thread-sort-by-subject
 @findex gnus-thread-sort-by-author
+@c @findex gnus-thread-sort-by-recipient
 @findex gnus-thread-sort-by-number
 @findex gnus-thread-sort-by-random
 @vindex gnus-thread-sort-functions
@@ -8135,6 +8126,13 @@
 Face used for attribution lines.  It is merged with the face for the
 cited text belonging to the attribution.
 
+@item gnus-cite-ignore-quoted-from
+@vindex gnus-cite-ignore-quoted-from
+If non-@code{nil}, no citation highlighting will be performed on lines
+beginning with @samp{>From }.  Those lines may have been quoted by MTAs
+in order not to mix up with the envelope From line.  The default value
+is @code{t}.
+
 @end table
 
 
@@ -8457,6 +8455,16 @@
 @findex gnus-summary-morse-message
 Morse decode the article buffer (@code{gnus-summary-morse-message}).
 
+@item W i
+@kindex W i (Summary)
+@findex gnus-summary-idna-message
+Decode IDNA encoded domain names in the current articles.  IDNA
+encoded domain names looks like @samp{xn--bar}.  If a string remain
+unencoded after running invoking this, it is likely an invalid IDNA
+string (@samp{xn--bar} is invalid).  You must have GNU Libidn
+(@url{http://www.gnu.org/software/libidn/}) installed for this command
+to work.
+
 @item W t
 @item t
 @kindex W t (Summary)
@@ -9383,6 +9391,27 @@
 @item gnus-mime-multipart-functions
 Alist of @acronym{MIME} multipart types and functions to handle them.
 
+@vindex gnus-mime-display-multipart-alternative-as-mixed
+@item gnus-mime-display-multipart-alternative-as-mixed
+Display "multipart/alternative" parts as "multipart/mixed".
+
+@vindex gnus-mime-display-multipart-related-as-mixed
+@item gnus-mime-display-multipart-related-as-mixed
+Display "multipart/related" parts as "multipart/mixed".
+
+If displaying "text/html" is discouraged, see
+@code{mm-discouraged-alternatives} in @ref{Display Customization,
+Display Customization, , emacs-mime, Emacs-Mime Manual}.  Images or
+other material inside a "multipart/related" part might be overlooked
+when this variable is @code{nil}.
+
+@vindex gnus-mime-display-multipart-as-mixed
+@item gnus-mime-display-multipart-as-mixed
+Display "multipart" parts as "multipart/mixed".  If @code{t}, it
+overrides @code{nil} values of
+@code{gnus-mime-display-multipart-alternative-as-mixed} and
+@code{gnus-mime-display-multipart-related-as-mixed}.
+
 @vindex mm-file-name-rewrite-functions
 @item mm-file-name-rewrite-functions
 List of functions used for rewriting file names of @acronym{MIME} parts.
@@ -9551,6 +9580,11 @@
 @findex gnus-summary-sort-by-author
 Sort by author (@code{gnus-summary-sort-by-author}).
 
+@item C-c C-s C-t
+@kindex C-c C-s C-t (Summary)
+@findex gnus-summary-sort-by-recipient
+Sort by recipient (@code{gnus-summary-sort-by-recipient}).
+
 @item C-c C-s C-s
 @kindex C-c C-s C-s (Summary)
 @findex gnus-summary-sort-by-subject
@@ -10983,7 +11017,10 @@
 @item c (Article)
 @kindex c (Article)
 Copy the @acronym{MIME} object to a fresh buffer and display this buffer
-(@code{gnus-mime-copy-part}).  Compressed files like @file{.gz} and
+(@code{gnus-mime-copy-part}).  If given a prefix, copy the raw contents
+without decoding.  If given a numerical prefix, you can do semi-manual
+charset stuff (see @code{gnus-summary-show-article-charset-alist} in
+@ref{Paging the Article}).  Compressed files like @file{.gz} and
 @file{.bz2} are automatically decompressed if
 @code{auto-compression-mode} is enabled (@pxref{Compressed Files,,
 Accessing Compressed Files, emacs, The Emacs Editor}).
@@ -11003,7 +11040,10 @@
 the raw contents without decoding.  If given a numerical prefix, you can
 do semi-manual charset stuff (see
 @code{gnus-summary-show-article-charset-alist} in @ref{Paging the
-Article}).
+Article}).  Compressed files like @file{.gz} and @file{.bz2} are
+automatically decompressed depending on @code{jka-compr} regardless of
+@code{auto-compression-mode} (@pxref{Compressed Files,, Accessing
+Compressed Files, emacs, The Emacs Editor}).
 
 @findex gnus-mime-view-part-internally
 @item E (Article)
@@ -11397,7 +11437,8 @@
 @item gnus-use-idna
 This variable controls whether Gnus performs IDNA decoding of
 internationalized domain names inside @samp{From}, @samp{To} and
-@samp{Cc} headers.  This requires
+@samp{Cc} headers.  @xref{IDNA, ,IDNA,message, The Message Manual},
+for how to compose such messages.  This requires
 @uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this
 variable is only enabled if you have installed it.
 
@@ -11867,8 +11908,13 @@
 said to @dfn{match}.
 
 Each style may contain an arbitrary amount of @dfn{attributes}.  Each
-attribute consists of a @code{(@var{name} @var{value})} pair.  The
-attribute name can be one of:
+attribute consists of a @code{(@var{name} @var{value})} pair.  In
+addition, you can also use the @code{(@var{name} :file @var{value})}
+form or the @code{(@var{name} :value @var{value})} form.  Where
+@code{:file} signifies @var{value} represents a file name and its
+contents should be used as the attribute value, @code{:value} signifies
+@var{value} does not represent a file name explicitly.  The attribute
+name can be one of:
 
 @itemize @bullet
 @item @code{signature}
@@ -12808,6 +12854,7 @@
 * Direct Functions::            Connecting directly to the server.
 * Indirect Functions::          Connecting indirectly to the server.
 * Common Variables::            Understood by several connection functions.
+* NNTP marks::                  Storing marks for @acronym{NNTP} servers.
 @end menu
 
 
@@ -13057,6 +13104,52 @@
 
 @end table
 
+@node NNTP marks
+@subsubsection NNTP marks
+@cindex storing NNTP marks
+
+Gnus stores marks (@pxref{Marking Articles}) for @acronym{NNTP}
+servers in marks files.  A marks file records what marks you have set
+in a group and each file is specific to the corresponding server.
+Marks files are stored in @file{~/News/marks}
+(@code{nntp-marks-directory}) under a classic hierarchy resembling
+that of a news server, for example marks for the group
+@samp{gmane.discuss} on the news.gmane.org server will be stored in
+the file @file{~/News/marks/news.gmane.org/gmane/discuss/.marks}.
+
+Marks files are useful because you can copy the @file{~/News/marks}
+directory (using rsync, scp or whatever) to another Gnus installation,
+and it will realize what articles you have read and marked.  The data
+in @file{~/News/marks} has priority over the same data in
+@file{~/.newsrc.eld}.
+
+Note that marks files are very much server-specific: Gnus remembers
+the article numbers so if you don't use the same servers on both
+installations things are most likely to break (most @acronym{NNTP}
+servers do not use the same article numbers as any other server).
+However, if you use servers A, B, C on one installation and servers A,
+D, E on the other, you can sync the marks files for A and then you'll
+get synchronization for that server between the two installations.
+
+Using @acronym{NNTP} marks can possibly incur a performance penalty so
+if Gnus feels sluggish, try setting the @code{nntp-marks-is-evil}
+variable to @code{t}.  Marks will then be stored in @file{~/.newsrc.eld}.
+
+Related variables:
+
+@table @code
+
+@item nntp-marks-is-evil
+@vindex nntp-marks-is-evil
+If non-@code{nil}, this back end will ignore any marks files.  The
+default is @code{nil}.
+
+@item nntp-marks-directory
+@vindex nntp-marks-directory
+The directory where marks for nntp groups will be stored.
+
+@end table
+
 
 @node News Spool
 @subsection News Spool
@@ -13290,17 +13383,25 @@
 ("list.\\1" "From:.* \\(.*\\)-list@@majordomo.com")
 @end lisp
 
+@noindent
+In that case, @code{nnmail-split-lowercase-expanded} controls whether
+the inserted text should be made lowercase.  @xref{Fancy Mail Splitting}.
+
 The second element can also be a function.  In that case, it will be
 called narrowed to the headers with the first element of the rule as the
 argument.  It should return a non-@code{nil} value if it thinks that the
 mail belongs in that group.
 
+@cindex @samp{bogus} group
 The last of these groups should always be a general one, and the regular
-expression should @emph{always} be @samp{*} so that it matches any mails
+expression should @emph{always} be @samp{""} so that it matches any mails
 that haven't been matched by any of the other regexps.  (These rules are
-processed from the beginning of the alist toward the end.  The first
-rule to make a match will ``win'', unless you have crossposting enabled.
-In that case, all matching rules will ``win''.)
+processed from the beginning of the alist toward the end.  The first rule
+to make a match will ``win'', unless you have crossposting enabled.  In
+that case, all matching rules will ``win''.)  If no rule matched, the mail
+will end up in the @samp{bogus} group.  When new groups are created by
+splitting mail, you may want to run @code{gnus-group-find-new-groups} to
+see the new groups.  This also applies to the @samp{bogus} group.
 
 If you like to tinker with this yourself, you can set this variable to a
 function of your choice.  This function will be called without any
@@ -13317,7 +13418,7 @@
 The mail back ends all support cross-posting.  If several regexps match,
 the mail will be ``cross-posted'' to all those groups.
 @code{nnmail-crosspost} says whether to use this mechanism or not.  Note
-that no articles are crossposted to the general (@samp{*}) group.
+that no articles are crossposted to the general (@samp{""}) group.
 
 @vindex nnmail-crosspost-link-function
 @cindex crosspost
@@ -13587,8 +13688,16 @@
 
 @end table
 
+@vindex pop3-movemail
+@vindex pop3-leave-mail-on-server
 If the @code{:program} and @code{:function} keywords aren't specified,
-@code{pop3-movemail} will be used.
+@code{pop3-movemail} will be used.  If the
+@code{pop3-leave-mail-on-server} is non-@code{nil} the mail is to be
+left on the @acronym{POP} server after fetching when using
+@code{pop3-movemail}.  Note that POP servers maintain no state
+information between sessions, so what the client believes is there and
+what is actually there may not match up.  If they do not, then the whole
+thing can fall apart and leave you with a corrupt mailbox.
 
 Here are some examples.  Fetch from the default @acronym{POP} server,
 using the default user name, and default fetcher:
@@ -13866,10 +13975,10 @@
 
 @item mail-source-directory
 @vindex mail-source-directory
-Directory where files (if any) will be stored.  The default is
-@file{~/Mail/}.  At present, the only thing this is used for is to say
-where the incoming files will be stored if the previous variable is
-@code{nil}.
+Directory where incoming mail source files (if any) will be stored.  The
+default is @file{~/Mail/}.  At present, the only thing this is used for
+is to say where the incoming files will be stored if the variable
+@code{mail-source-delete-incoming} is @code{nil} or a number.
 
 @item mail-source-incoming-file-prefix
 @vindex mail-source-incoming-file-prefix
@@ -14043,7 +14152,7 @@
       ;; @r{the bugs- list, but allow cross-posting when the}
       ;; @r{message was really cross-posted.}
       (any "bugs-mypackage@@somewhere" "mypkg.bugs")
-      (any "mypackage@@somewhere\" - "bugs-mypackage" "mypkg.list")
+      (any "mypackage@@somewhere" - "bugs-mypackage" "mypkg.list")
       ;; @r{People@dots{}}
       (any "larsi@@ifi\\.uio\\.no" "people.Lars_Magne_Ingebrigtsen"))
    ;; @r{Unmatched mail goes to the catch all group.}
@@ -14104,7 +14213,7 @@
 The buffer is narrowed to the message in question when @var{function}
 is run.  That's why @code{(widen)} needs to be called after
 @code{save-excursion} and @code{save-restriction} in the example
-above.  Also note that with the nnimap backend, message bodies will
+above.  Also note that with the nnimap back end, message bodies will
 not be downloaded by default.  You need to set
 @code{nnimap-split-download-body} to @code{t} to do that
 (@pxref{Splitting in IMAP}).
@@ -14164,6 +14273,14 @@
 up to @samp{\\9} will be substituted with the text matched by the
 groupings 1 through 9.
 
+@vindex nnmail-split-lowercase-expanded
+Where @code{nnmail-split-lowercase-expanded} controls whether the
+lowercase of the matched string should be used for the substitution.
+Setting it as non-@code{nil} is useful to avoid the creation of multiple
+groups when users send to an address using different case
+(i.e. mailing-list@@domain vs Mailing-List@@Domain).  The default value
+is @code{t}.
+
 @vindex nnmail-split-fancy-match-partial-words
 @code{nnmail-split-fancy-match-partial-words} controls whether partial
 words are matched during fancy splitting.
@@ -15910,14 +16027,30 @@
 @acronym{RSS} has a quite regular and nice interface, and it's
 possible to get the information Gnus needs to keep groups updated.
 
+Note: you had better use Emacs which supports the @code{utf-8} coding
+system because @acronym{RSS} uses UTF-8 for encoding non-@acronym{ASCII}
+text by default.  It is also used by default for non-@acronym{ASCII}
+group names.
+
 @kindex G R (Summary)
-Use @kbd{G R} from the summary buffer to subscribe to a feed---you
-will be prompted for the location of the feed.
+Use @kbd{G R} from the summary buffer to subscribe to a feed---you will
+be prompted for the location, the title and the description of the feed.
+The title, which allows any characters, will be used for the group name
+and the name of the group data file.  The description can be omitted.
 
 An easy way to get started with @code{nnrss} is to say something like
-the following in the group buffer: @kbd{B nnrss RET y}, then
+the following in the group buffer: @kbd{B nnrss RET RET y}, then
 subscribe to groups.
 
+The @code{nnrss} back end saves the group data file in
+@code{nnrss-directory} (see below) for each @code{nnrss} group.  File
+names containing non-@acronym{ASCII} characters will be encoded by the
+coding system specified with the @code{nnmail-pathname-coding-system}
+variable.  If it is @code{nil}, in Emacs the coding system defaults to
+the value of @code{default-file-name-coding-system}.  If you are using
+XEmacs and want to use non-@acronym{ASCII} group names, you should set
+the value for the @code{nnmail-pathname-coding-system} variable properly.
+
 @cindex OPML
 You can also use the following commands to import and export your
 subscriptions from a file in @acronym{OPML} format (Outline Processor
@@ -15941,6 +16074,13 @@
 The directory where @code{nnrss} stores its files.  The default is
 @file{~/News/rss/}.
 
+@item nnrss-file-coding-system
+@vindex nnrss-file-coding-system
+The coding system used when reading and writing the @code{nnrss} groups
+data files.  The default is the value of
+@code{mm-universal-coding-system} (which defaults to @code{emacs-mule}
+in Emacs or @code{escape-quoted} in XEmacs).
+
 @item nnrss-use-local
 @vindex nnrss-use-local
 @findex nnrss-generate-download-script
@@ -16311,7 +16451,17 @@
 A file containing credentials used to log in on servers.  The format is
 (almost) the same as the @code{ftp} @file{~/.netrc} file.  See the
 variable @code{nntp-authinfo-file} for exact syntax; also see
-@ref{NNTP}.
+@ref{NNTP}.  An example of an .authinfo line for an IMAP server, is: 
+
+@example
+machine students.uio.no login larsi password geheimnis port imap
+@end example
+
+Note that it should be @code{port imap}, or @code{port 143}, if you
+use a @code{nnimap-stream} of @code{tls} or @code{ssl}, even if the
+actual port number used is port 993 for secured IMAP.  For
+convenience, Gnus will accept @code{port imaps} as a synonym of
+@code{port imap}.
 
 @item nnimap-need-unselect-to-notice-new-mail
 @vindex nnimap-need-unselect-to-notice-new-mail
@@ -18333,8 +18483,8 @@
 While it may be obvious to all, the only headers and articles
 available while unplugged are those headers and articles that were
 fetched into the Agent while previously plugged.  To put it another
-way, "If you forget to fetch something while plugged, you might have a
-less than satisfying unplugged session".  For this reason, the Agent
+way, ``If you forget to fetch something while plugged, you might have a
+less than satisfying unplugged session''.  For this reason, the Agent
 adds two visual effects to your summary buffer.  These effects display
 the download status of each article so that you always know which
 articles will be available when unplugged.
@@ -18562,8 +18712,8 @@
 @vindex gnus-agent
 Is the agent enabled?  The default is @code{t}.  When first enabled,
 the agent will use @code{gnus-agent-auto-agentize-methods} to
-automatically mark some backends as agentized.  You may change which
-backends are agentized using the agent commands in the server buffer.
+automatically mark some back ends as agentized.  You may change which
+back ends are agentized using the agent commands in the server buffer.
 
 To enter the server buffer, use the @kbd{^}
 (@code{gnus-group-enter-server-mode}) command in the group buffer.
@@ -18657,7 +18807,7 @@
 buffer how to maneuver around undownloaded (only headers stored in the
 agent) and unfetched (neither article nor headers stored) articles.
 
-The legal values are @code{nil} (maneuver to any article),
+The valid values are @code{nil} (maneuver to any article),
 @code{undownloaded} (maneuvering while unplugged ignores articles that
 have not been fetched), @code{always-undownloaded} (maneuvering always
 ignores articles that have not been fetched), @code{unfetched}
@@ -18681,8 +18831,8 @@
 If you have never used the Agent before (or more technically, if
 @file{~/News/agent/lib/servers} does not exist), Gnus will
 automatically agentize a few servers for you.  This variable control
-which backends should be auto-agentized.  It is typically only useful
-to agentize remote backends.  The auto-agentizing has the same effect
+which back ends should be auto-agentized.  It is typically only useful
+to agentize remote back ends.  The auto-agentizing has the same effect
 as running @kbd{J a} on the servers (@pxref{Server Agent Commands}).
 If the file exist, you must manage the servers manually by adding or
 removing them, this variable is only applicable the first time you
@@ -19702,6 +19852,11 @@
 group name with @code{gnus-adaptive-file-suffix} appended.  The default
 is @file{ADAPT}.
 
+@vindex gnus-adaptive-pretty-print
+Adaptive score files can get huge and are not meant to be edited by
+human hands.  If @code{gnus-adaptive-pretty-print} is @code{nil} (the
+deafult) those files will not be written in a human readable way.
+
 @vindex gnus-score-exact-adapt-limit
 When doing adaptive scoring, substring or fuzzy matching would probably
 give you the best results in most cases.  However, if the header one
@@ -20368,8 +20523,8 @@
 ...
 @end example
 
-Then that means "score on the from header of the grandparent of the
-current article".  An indirection is quite fast, but it's better to say:
+Then that means ``score on the from header of the grandparent of the
+current article''.  An indirection is quite fast, but it's better to say:
 
 @example
 (1-
@@ -20404,9 +20559,12 @@
 When score files are loaded and @code{gnus-decay-scores} is
 non-@code{nil}, Gnus will run the score files through the decaying
 mechanism thereby lowering the scores of all non-permanent score rules.
-The decay itself if performed by the @code{gnus-decay-score-function}
-function, which is @code{gnus-decay-score} by default.  Here's the
-definition of that function:
+If @code{gnus-decay-scores} is a regexp, only score files matching this
+regexp are treated.  E.g. you may set it to @samp{\\.ADAPT\\'} if only
+@emph{adaptive} score files should be decayed.  The decay itself if
+performed by the @code{gnus-decay-score-function} function, which is
+@code{gnus-decay-score} by default.  Here's the definition of that
+function:
 
 @lisp
 (defun gnus-decay-score (score)
@@ -20485,6 +20643,7 @@
 * Undo::                        Some actions can be undone.
 * Predicate Specifiers::        Specifying predicates.
 * Moderation::                  What to do if you're a moderator.
+* Fetching a Group::            Starting Gnus just to read a group.
 * Image Enhancements::          Modern versions of Emacs/XEmacs can display images.
 * Fuzzy Matching::              What's the big fuzz?
 * Thwarting Email Spam::        A how-to on avoiding unsolicited commercial email.
@@ -21756,6 +21915,18 @@
 @end lisp
 
 
+@node Fetching a Group
+@section Fetching a Group
+@cindex fetching a group
+
+@findex gnus-fetch-group
+It is sometimes convenient to be able to just say ``I want to read this
+group and I don't care whether Gnus has been started or not''.  This is
+perhaps more useful for people who write code than for users, but the
+command @code{gnus-fetch-group} provides this functionality in any case.
+It takes the group name as a parameter.
+
+
 @node Image Enhancements
 @section Image Enhancements
 
@@ -21792,32 +21963,7 @@
 @end iftex
 @c @anchor{X-Face}
 
-Gnus now uses the internal ELisp-based @code{uncompface} program for
-decoding an @code{X-Face} header normally in Emacs.  While it doesn't
-require any other external program, you may feel it is slow if you are
-using a slow machine.  In such a case, you can modify the following
-variables:
-
-@table @code
-@item uncompface-use-external
-@vindex uncompface-use-external
-Specify which of the internal or the external decoder should be used.
-@code{nil} means to use the internal ELisp-based @code{uncompface}
-program.  @code{t} means to use the external decoder.  The default value
-is normally @code{undecided} which means to determine it by checking
-whether the host machine is slow, being controlled by
-@code{uncompface-use-external-threshold} (which see).
-
-@item uncompface-use-external-threshold
-@vindex uncompface-use-external-threshold
-A number of seconds to check whether the host machine is slow.  If the
-host takes time larger than this value for decoding an @code{X-Face}
-using the internal ELisp-based @code{uncompface} program, it will be
-changed to using the external decoder.  The default is 0.1 seconds.
-@end table
-
-If the internal decoder is invalidated or if you are using XEmacs,
-decoding an @code{X-Face} header either requires an Emacs that has
+Decoding an @code{X-Face} header either requires an Emacs that has
 @samp{compface} support (which most XEmacs versions has), or that you
 have @samp{compface} installed on your system.  If either is true,
 Gnus will default to displaying @code{X-Face} headers.
@@ -22063,6 +22209,11 @@
 @code{gnus-picon-databases} points to the directory containing the
 Picons databases.
 
+@vindex gnus-picon-style
+The variable @code{gnus-picon-style} controls how picons are displayed.
+If @code{inline}, the textual representation is replaced.  If
+@code{right}, picons are added right to the textual representation.
+
 The following variables offer control over where things are located.
 
 @table @code
@@ -22433,7 +22584,7 @@
           "spam"))))
 @end lisp
 
-Note that with the nnimap backend, message bodies will not be
+Note that with the nnimap back end, message bodies will not be
 downloaded by default.  You need to set
 @code{nnimap-split-download-body} to @code{t} to do that
 (@pxref{Splitting in IMAP}).
@@ -22456,10 +22607,10 @@
 @cindex hashcash
 
 A novel technique to fight spam is to require senders to do something
-costly for each message they send.  This has the obvious drawback that
-you cannot rely on everyone in the world using this technique,
-since it is not part of the Internet standards, but it may be useful
-in smaller communities.
+costly and demonstrably unique for each message they send.  This has
+the obvious drawback that you cannot rely on everyone in the world
+using this technique, since it is not part of the Internet standards,
+but it may be useful in smaller communities.
 
 While the tools in the previous section work well in practice, they
 work only because the tools are constantly maintained and updated as
@@ -22475,24 +22626,20 @@
 @cindex X-Hashcash
 The ``something costly'' is to burn CPU time, more specifically to
 compute a hash collision up to a certain number of bits.  The
-resulting hashcash cookie is inserted in a @samp{X-Hashcash:}
-header.  For more details, and for the external application
-@code{hashcash} you need to install to use this feature, see
-@uref{http://www.cypherspace.org/~adam/hashcash/}.  Even more
-information can be found at @uref{http://www.camram.org/}.
-
-If you wish to call hashcash for each message you send, say something
-like:
+resulting hashcash cookie is inserted in a @samp{X-Hashcash:} header.
+For more details, and for the external application @code{hashcash} you
+need to install to use this feature, see
+@uref{http://www.hashcash.org/}.  Even more information can be found
+at @uref{http://www.camram.org/}.
+
+If you wish to generate hashcash for each message you send, you can
+customize @code{message-generate-hashcash} (@pxref{Mail Headers, ,Mail
+Headers,message, The Message Manual}), as in:
 
 @lisp
-(require 'hashcash)
-(add-hook 'message-send-hook 'mail-add-payment)
+(setq message-generate-hashcash t)
 @end lisp
 
-The @file{hashcash.el} library can be found in the Gnus development
-contrib directory or at
-@uref{http://users.actrix.gen.nz/mycroft/hashcash.el}.
-
 You will need to set up some additional variables as well:
 
 @table @code
@@ -22500,8 +22647,8 @@
 @item hashcash-default-payment
 @vindex hashcash-default-payment
 This variable indicates the default number of bits the hash collision
-should consist of.  By default this is 0, meaning nothing will be
-done.  Suggested useful values include 17 to 29.
+should consist of.  By default this is 20.  Suggested useful values
+include 17 to 29.
 
 @item hashcash-payment-alist
 @vindex hashcash-payment-alist
@@ -22513,30 +22660,41 @@
 @var{amount})} cells, where the @var{string} is the string to use
 (normally the email address or newsgroup name is used).
 
-@item hashcash
-@vindex hashcash
-Where the @code{hashcash} binary is installed.
+@item hashcash-path
+@vindex hashcash-path
+Where the @code{hashcash} binary is installed.  This variable should
+be automatically set by @code{executable-find}, but if it's @code{nil}
+(usually because the @code{hashcash} binary is not in your path)
+you'll get a warning when you check hashcash payments and an error
+when you generate hashcash payments.
 
 @end table
 
-Currently there is no built in functionality in Gnus to verify
-hashcash cookies, it is expected that this is performed by your hand
-customized mail filtering scripts.  Improvements in this area would be
-a useful contribution, however.
+Gnus can verify hashcash cookies, although this can also be done by
+hand customized mail filtering scripts.  To verify a hashcash cookie
+in a message, use the @code{mail-check-payment} function in the
+@code{hashcash.el} library.  You can also use the @code{spam.el}
+package with the @code{spam-use-hashcash} back end to validate hashcash
+cookies in incoming mail and filter mail accordingly (@pxref{Anti-spam
+Hashcash Payments}).
 
 @node Filtering Spam Using The Spam ELisp Package
 @subsection Filtering Spam Using The Spam ELisp Package
 @cindex spam filtering
 @cindex spam
 
-The idea behind @file{spam.el} is to have a control center for spam detection
-and filtering in Gnus.  To that end, @file{spam.el} does two things: it
+The idea behind @code{spam.el} is to have a control center for spam detection
+and filtering in Gnus.  To that end, @code{spam.el} does two things: it
 filters new mail, and it analyzes mail known to be spam or ham.
-@dfn{Ham} is the name used throughout @file{spam.el} to indicate
+@dfn{Ham} is the name used throughout @code{spam.el} to indicate
 non-spam messages.
 
-First of all, you @strong{must} run the function
-@code{spam-initialize} to autoload @code{spam.el} and to install the
+Make sure you read the section on the @code{spam.el} sequence of
+events.  See @xref{Spam ELisp Package Sequence of Events}.
+
+@cindex spam-initialize
+To use @code{spam.el}, you @strong{must} run the function
+@code{spam-initialize} to autoload @file{spam.el} and to install the
 @code{spam.el} hooks.  There is one exception: if you use the
 @code{spam-use-stat} (@pxref{spam-stat spam filtering}) setting, you
 should turn it on before @code{spam-initialize}:
@@ -22593,6 +22751,7 @@
 * Spam ELisp Package Sequence of Events::  
 * Spam ELisp Package Filtering of Incoming Mail::  
 * Spam ELisp Package Global Variables::  
+* Spam ELisp Package Sorting and Score Display in Summary Buffer::  
 * Spam ELisp Package Configuration Examples::  
 * Blacklists and Whitelists::   
 * BBDB Whitelists::             
@@ -22601,7 +22760,7 @@
 * Blackholes::                  
 * Regular Expressions Header Matching::  
 * Bogofilter::                  
-* SpamAssassin backend::        
+* SpamAssassin back end::        
 * ifile spam filtering::        
 * spam-stat spam filtering::    
 * SpamOracle::                  
@@ -22613,7 +22772,6 @@
 @cindex spam filtering
 @cindex spam filtering sequence of events
 @cindex spam
-
 You must read this section to understand how @code{spam.el} works.
 Do not skip, speed-read, or glance through this section.
 
@@ -22621,20 +22779,20 @@
 @code{spam.el} and the rest of Gnus: checking new mail for spam, and
 leaving a group.
 
-Getting new mail is done in one of two ways.  You can either split
-your incoming mail or you can classify new articles as ham or spam
-when you enter the group.
+Getting new mail in Gnus is done in one of two ways.  You can either
+split your incoming mail or you can classify new articles as ham or
+spam when you enter the group.
 
-Splitting incoming mail is better suited to mail backends such as
+Splitting incoming mail is better suited to mail back ends such as
 @code{nnml} or @code{nnimap} where new mail appears in a single file
 called a @dfn{Spool File}.  See @xref{Spam ELisp Package Filtering of
 Incoming Mail}.
 
 @vindex gnus-spam-autodetect
 @vindex gnus-spam-autodetect-methods
-For backends such as @code{nntp} there is no incoming mail spool, so
+For back ends such as @code{nntp} there is no incoming mail spool, so
 an alternate mechanism must be used.  This may also happen for
-backends where the server is in charge of splitting incoming mail, and
+back ends where the server is in charge of splitting incoming mail, and
 Gnus does not do further splitting.  The @code{spam-autodetect} and
 @code{spam-autodetect-methods} group parameters (accessible with
 @kbd{G c} and @kbd{G p} as usual), and the corresponding variables
@@ -22642,12 +22800,14 @@
 (accessible with @kbd{M-x customize-variable} as usual) can help.
 
 When @code{spam-autodetect} is used (you can turn it on for a
-group/topic or wholesale by regex, as needed), it hooks into the
-process of entering a group.  Thus, entering a group with unseen or
-unread articles becomes the substitute for checking incoming mail.
-Whether only unseen articles or all unread articles will be processed
-is determined by the @code{spam-autodetect-recheck-messages}.  When
-set to @code{t}, unread messages will be rechecked.
+group/topic or wholesale by regular expression matches, as needed), it
+hooks into the process of entering a group.  Thus, entering a group
+with unseen or unread articles becomes the substitute for checking
+incoming mail.  Whether only unseen articles or all unread articles
+will be processed is determined by the
+@code{spam-autodetect-recheck-messages}.  When set to @code{t}, unread
+messages will be rechecked.  You should probably stick with the
+default of only checking unseen messages.
 
 @code{spam-autodetect} grants the user at once more and less control
 of spam filtering.  The user will have more control over each group's
@@ -22670,8 +22830,8 @@
 variable) will be marked as spam.  Thus, mail split into a spam group
 gets automatically marked as spam when you enter the group.
 
-So, when you exit a group, the @code{spam-processors} are applied, if
-any are set, and the processed mail is moved to the
+Thus, when you exit a group, the @code{spam-processors} are applied,
+if any are set, and the processed mail is moved to the
 @code{ham-process-destination} or the @code{spam-process-destination}
 depending on the article's classification.  If the
 @code{ham-process-destination} or the @code{spam-process-destination},
@@ -22691,7 +22851,7 @@
 @code{spam-process-destination} is @code{nil}, the spam is marked as
 expired, which is usually the right thing to do.
 
-If spam can not be moved---because of a read-only backend such as
+If spam can not be moved---because of a read-only back end such as
 @acronym{NNTP}, for example, it will be copied.
 
 If a ham mail is found in a ham group, as determined by the
@@ -22706,7 +22866,7 @@
 necessary, which is what most people want.  More on this in
 @xref{Spam ELisp Package Configuration Examples}.
 
-If ham can not be moved---because of a read-only backend such as
+If ham can not be moved---because of a read-only back end such as
 @acronym{NNTP}, for example, it will be copied.
 
 If all this seems confusing, don't worry.  Soon it will be as natural
@@ -22719,7 +22879,7 @@
 @cindex spam filtering incoming mail
 @cindex spam
 
-To use the @file{spam.el} facilities for incoming mail filtering, you
+To use the @code{spam.el} facilities for incoming mail filtering, you
 must add the following to your fancy split list
 @code{nnmail-split-fancy} or @code{nnimap-split-fancy}:
 
@@ -22803,18 +22963,15 @@
 The boolean variable @code{nnimap-split-download-body} needs to be
 set, if you want to split based on the whole message instead of just
 the headers.  By default, the nnimap back end will only retrieve the
-message headers.  If you use @code{spam-check-bogofilter},
-@code{spam-check-ifile}, or @code{spam-check-stat} (the splitters that
-can benefit from the full message body), you should set this variable.
-It is not set by default because it will slow @acronym{IMAP} down, and
-that is not an appropriate decision to make on behalf of the user.
+message headers.  If you use a @emph{statistical} filter,
+e.g. @code{spam-check-bogofilter}, @code{spam-check-ifile}, or
+@code{spam-check-stat} (the splitters that can benefit from the full
+message body), this variable will be set automatically.  It is not set
+for non-statistical back ends by default because it will slow
+@acronym{IMAP} down.
 
 @xref{Splitting in IMAP}.
 
-@emph{TODO: spam.el needs to provide a uniform way of training all the
-statistical databases.  Some have that functionality built-in, others
-don't.}
-
 @node Spam ELisp Package Global Variables
 @subsubsection Spam ELisp Package Global Variables
 @cindex spam filtering
@@ -22919,7 +23076,7 @@
 @code{spam-mark-ham-unread-before-move-from-spam-group} parameter is
 set, the ham articles are marked as unread before being moved.
 
-If ham can not be moved---because of a read-only backend such as
+If ham can not be moved---because of a read-only back end such as
 @acronym{NNTP}, for example, it will be copied.
 
 Note that you can use multiples destinations per group or regular
@@ -22956,7 +23113,7 @@
 that if you see @samp{nntp:servername} before the group name in the
 group buffer then you need it here as well.
 
-If spam can not be moved---because of a read-only backend such as
+If spam can not be moved---because of a read-only back end such as
 @acronym{NNTP}, for example, it will be copied.
 
 Note that you can use multiples destinations per group or regular
@@ -22988,6 +23145,55 @@
 only unseen articles or all unread articles should be checked for
 spam.  It is recommended that you leave it off.
 
+@node Spam ELisp Package Sorting and Score Display in Summary Buffer
+@subsubsection Spam ELisp Package Sorting and Score Display in Summary Buffer
+@cindex spam scoring
+@cindex spam sorting
+@cindex spam score summary buffer
+@cindex spam sort summary buffer
+@cindex spam
+
+You can display the spam score of articles in your summary buffer, and
+you can sort articles by their spam score.
+
+First you need to decide which back end you will be using.  If you use
+the @code{spam-use-spamassassin},
+@code{spam-use-spamassassin-headers}, or @code{spam-use-regex-headers}
+back end, the @code{X-Spam-Status} header will be used.  If you use
+@code{spam-use-bogofilter}, the @code{X-Bogosity} header will be used.
+If you use @code{spam-use-crm114}, any header that matches the CRM114
+score format will be used.  As long as you set the appropriate back end
+variable to t @emph{before} you load @file{spam.el}, you will be
+fine.  @code{spam.el} will automatically add the right header to the
+internal Gnus list of required headers.
+
+To show the spam score in your summary buffer, add this line to your
+@code{gnus.el} file (note @code{spam.el} does not do that by default
+so it won't override any existing @code{S} formats you may have).
+
+@lisp
+(defalias 'gnus-user-format-function-S 'spam-user-format-function-S)
+@end lisp
+
+Now just set your summary line format to use @code{%uS}.  Here's an
+example that formats the spam score in a 5-character field:
+
+@lisp
+(setq gnus-summary-line-format 
+ "%U%R %10&user-date; $%5uS %6k  %B %(%4L: %*%-25,25a%) %s \n")
+@end lisp
+
+Finally, to sort by spam status, either do it globally:
+
+@lisp
+(setq
+ gnus-show-threads nil
+ gnus-article-sort-functions
+  '(spam-article-sort-by-spam-status))
+@end lisp
+
+or per group (@pxref{Sorting the Summary Buffer}).
+
 @node Spam ELisp Package Configuration Examples
 @subsubsection Spam ELisp Package Configuration Examples
 @cindex spam filtering
@@ -23078,7 +23284,7 @@
 
 @end example
 
-@subsubheading Using @file{spam.el} on an IMAP server with a statistical filter on the server
+@subsubheading Using @code{spam.el} on an IMAP server with a statistical filter on the server
 From Reiner Steib <reiner.steib@@gmx.de>.
 
 My provider has set up bogofilter (in combination with @acronym{DCC}) on
@@ -23132,7 +23338,7 @@
 In my ham folders, I just hit @kbd{S x}
 (@code{gnus-summary-mark-as-spam}) whenever I see an unrecognized spam
 mail (false negative).  On group exit, those messages are moved to
-@samp{training.ham}.
+@samp{training.spam}.
 @end itemize
 
 @subsubheading Reporting spam articles in Gmane groups with @code{spam-report.el}
@@ -23269,6 +23475,12 @@
 addresses in the BBDB will be allowed through; all others will be
 classified as spammers.
 
+While @code{spam-use-BBDB-exclusive} @emph{can} be used as an alias
+for @code{spam-use-BBDB} as far as @code{spam.el} is concerned, it is
+@emph{not} a separate back end.  If you set
+@code{spam-use-BBDB-exclusive} to t, @emph{all} your BBDB splitting
+will be exclusive.
+
 @end defvar
 
 @defvar gnus-group-ham-exit-processor-BBDB
@@ -23337,12 +23549,10 @@
 
 Similar to @code{spam-use-whitelist} (@pxref{Blacklists and
 Whitelists}), but uses hashcash tokens for whitelisting messages
-instead of the sender address.  You must have the @code{hashcash.el}
-package loaded for @code{spam-use-hashcash} to work properly.
-Messages without a hashcash payment token will be sent to the next
-spam-split rule.  This is an explicit filter, meaning that unless a
-hashcash token is found, the messages are not assumed to be spam or
-ham.
+instead of the sender address.  Messages without a hashcash payment
+token will be sent to the next spam-split rule.  This is an explicit
+filter, meaning that unless a hashcash token is found, the messages
+are not assumed to be spam or ham.
 
 @end defvar
 
@@ -23362,7 +23572,7 @@
 contains outdated servers.
 
 The blackhole check uses the @code{dig.el} package, but you can tell
-@file{spam.el} to use @code{dns.el} instead for better performance if
+@code{spam.el} to use @code{dns.el} instead for better performance if
 you set @code{spam-use-dig} to @code{nil}.  It is not recommended at
 this time to set @code{spam-use-dig} to @code{nil} despite the
 possible performance improvements, because some users may be unable to
@@ -23515,8 +23725,8 @@
 used, or has already been used on the article.  The 0.9.2.1 version of
 Bogofilter was used to test this functionality.
 
-@node SpamAssassin backend
-@subsubsection SpamAssassin backend
+@node SpamAssassin back end
+@subsubsection SpamAssassin back end
 @cindex spam filtering
 @cindex spamassassin, spam filtering
 @cindex spam
@@ -23656,7 +23866,7 @@
 the same way, we promise.
 @end defvar
 
-This enables @file{spam.el} to cooperate with @file{spam-stat.el}.
+This enables @code{spam.el} to cooperate with @file{spam-stat.el}.
 @file{spam-stat.el} provides an internal (Lisp-only) spam database,
 which unlike ifile or Bogofilter does not require external programs.
 A spam and a ham processor, and the @code{spam-use-stat} variable for
@@ -23681,11 +23891,11 @@
 @xref{Mail Source Specifiers}, (@pxref{SpamAssassin}).  This method has
 the advantage that the user can see the @emph{X-Spam} headers.
 
-The easiest method is to make @file{spam.el} (@pxref{Filtering Spam
+The easiest method is to make @code{spam.el} (@pxref{Filtering Spam
 Using The Spam ELisp Package}) call SpamOracle.
 
 @vindex spam-use-spamoracle
-To enable SpamOracle usage by @file{spam.el}, set the variable
+To enable SpamOracle usage by @code{spam.el}, set the variable
 @code{spam-use-spamoracle} to @code{t} and configure the
 @code{nnmail-split-fancy} or @code{nnimap-split-fancy} as described in
 the section @xref{Filtering Spam Using The Spam ELisp Package}.  In
@@ -23728,7 +23938,7 @@
 characteristics of your spam mails.  Using the @emph{add} mode
 (training mode) one has to feed good (ham) and spam mails to
 SpamOracle.  This can be done by pressing @kbd{|} in the Summary buffer
-and pipe the mail to a SpamOracle process or using @file{spam.el}'s
+and pipe the mail to a SpamOracle process or using @code{spam.el}'s
 spam- and ham-processors, which is much more convenient.  For a
 detailed description of spam- and ham-processors, @xref{Filtering Spam
 Using The Spam ELisp Package}.
@@ -23798,45 +24008,22 @@
   "True if blackbox should be used.")
 @end lisp
 
-Add
-@lisp
-(spam-use-blackbox   . spam-check-blackbox)
-@end lisp
-to @code{spam-list-of-checks}.
-
-Add
-@lisp
-(gnus-group-ham-exit-processor-blackbox  ham spam-use-blackbox)
-(gnus-group-spam-exit-processor-blackbox spam spam-use-blackbox)
-@end lisp
-
-to @code{spam-list-of-processors}.
-
-Add
-@lisp
-(spam-use-blackbox spam-blackbox-register-routine
-                   nil
-                   spam-blackbox-unregister-routine
-                   nil)
-@end lisp
+Write @code{spam-check-blackbox} if Blackbox can check incoming mail.
 
-to @code{spam-registration-functions}.  Write the register/unregister
-routines using the bogofilter register/unregister routines as a
-start, or other restister/unregister routines more appropriate to
-Blackbox.
+Write @code{spam-blackbox-register-routine} and
+@code{spam-blackbox-unregister-routine} using the bogofilter
+register/unregister routines as a start, or other restister/unregister
+routines more appropriate to Blackbox, if Blackbox can
+register/unregister spam and ham.
 
 @item
 Functionality
 
-Write the @code{spam-check-blackbox} function.  It should return
-@samp{nil} or @code{spam-split-group}, observing the other
-conventions.  See the existing @code{spam-check-*} functions for
-examples of what you can do, and stick to the template unless you
-fully understand the reasons why you aren't.
-
-Make sure to add @code{spam-use-blackbox} to
-@code{spam-list-of-statistical-checks} if Blackbox is a statistical
-mail analyzer that needs the full message body to operate.
+The @code{spam-check-blackbox} function should return @samp{nil} or
+@code{spam-split-group}, observing the other conventions.  See the
+existing @code{spam-check-*} functions for examples of what you can
+do, and stick to the template unless you fully understand the reasons
+why you aren't.
 
 @end enumerate
 
@@ -23883,7 +24070,64 @@
 (variable-item spam-use-blackbox)
 @end lisp
 to the @code{spam-autodetect-methods} group parameter in
-@code{gnus.el}.
+@code{gnus.el} if Blackbox can check incoming mail for spam contents.
+
+Finally, use the appropriate @code{spam-install-*-backend} function in
+@code{spam.el}.  Here are the available functions.
+
+
+@enumerate
+
+@item
+@code{spam-install-backend-alias}
+
+This function will simply install an alias for a back end that does
+everything like the original back end.  It is currently only used to
+make @code{spam-use-BBDB-exclusive} act like @code{spam-use-BBDB}.
+
+@item
+@code{spam-install-nocheck-backend}
+
+This function installs a back end that has no check function, but can
+register/unregister ham or spam.  The @code{spam-use-gmane} back end is
+such a back end.
+
+@item
+@code{spam-install-checkonly-backend}
+
+This function will install a back end that can only check incoming mail
+for spam contents.  It can't register or unregister messages.
+@code{spam-use-blackholes} and @code{spam-use-hashcash} are such
+back ends.
+
+@item
+@code{spam-install-statistical-checkonly-backend}
+
+This function installs a statistical back end (one which requires the
+full body of a message to check it) that can only check incoming mail
+for contents.  @code{spam-use-regex-body} is such a filter.
+
+@item
+@code{spam-install-statistical-backend}
+
+This function install a statistical back end with incoming checks and
+registration/unregistration routines.  @code{spam-use-bogofilter} is
+set up this way.
+
+@item
+@code{spam-install-backend}
+
+This is the most normal back end installation, where a back end that can
+check and register/unregister messages is set up without statistical
+abilities.  The @code{spam-use-BBDB} is such a back end.
+
+@item
+@code{spam-install-mover-backend}
+
+Mover back ends are internal to @code{spam.el} and specifically move
+articles around when the summary is exited.  You will very probably
+never install such a back end.
+@end enumerate
 
 @end enumerate
 
@@ -25040,7 +25284,7 @@
 * Red Gnus::                    Third time best---Gnus 5.4/5.5.
 * Quassia Gnus::                Two times two is four, or Gnus 5.6/5.7.
 * Pterodactyl Gnus::            Pentad also starts with P, AKA Gnus 5.8/5.9.
-* Oort Gnus::                   It's big.  It's far out.  Gnus 5.10.
+* Oort Gnus::                   It's big.  It's far out.  Gnus 5.10/5.11.
 * No Gnus::                     Lars, FIXME!
 @end menu
 
@@ -25760,6 +26004,11 @@
 @itemize @bullet
 
 @item
+@kbd{F} (@code{gnus-article-followup-with-original}) and @kbd{R}
+(@code{gnus-article-reply-with-original}) only yank the text in the
+region if the region is active.
+
+@item
 @code{gnus-group-read-ephemeral-group} can be called interactively,
 using @kbd{G M}.
 
@@ -26561,6 +26810,12 @@
 number of unread articles is called @dfn{activating the group}.
 Un-activated groups are listed with @samp{*} in the group buffer.
 
+@item spool
+@cindex spool
+News servers store their articles locally in one fashion or other.
+One old-fashioned storage method is to have just one file per
+article.  That's called a ``traditional spool''.
+
 @item server
 @cindex server
 A machine one can connect to and get news (or mail) from.
@@ -26661,7 +26916,7 @@
 
 @item gnus-read-active-file
 Set this to @code{nil}, which will inhibit Gnus from requesting the
-entire active file from the server.  This file is often v.  large.  You
+entire active file from the server.  This file is often very large.  You
 also have to set @code{gnus-check-new-newsgroups} and
 @code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
 doesn't suddenly decide to fetch the active file anyway.
@@ -26762,10 +27017,6 @@
 @code{gnus-nov-is-evil} to @code{nil} to make entering and exiting the
 summary buffer faster.
 
-Gnus uses the internal ELisp-based @code{uncompface} program for
-decoding an @code{X-Face} header normally in Emacs.  If you feel it is
-slow, set @code{uncompface-use-external} to @code{t}.  @xref{X-Face}.
-
 
 @page
 @node Troubleshooting
@@ -27379,7 +27630,9 @@
 alterations.  This comes in handy if the back end really carries all
 the information (as is the case with virtual and imap groups).  This
 function should destructively alter the info to suit its needs, and
-should return a non-@code{nil} value.
+should return a non-@code{nil} value (exceptionally,
+@code{nntp-request-update-info} always returns @code{nil} not to waste
+the network resources).
 
 There should be no result data from this function.
 
@@ -28495,3 +28748,7 @@
 @c mode: texinfo
 @c coding: iso-8859-1
 @c End:
+
+@ignore
+   arch-tag: c9fa47e7-78ca-4681-bda9-9fef45d1c819
+@end ignore
Index: gnus/texi/gnuslogo-booklet.eps
diff -u gnus/texi/gnuslogo-booklet.eps:7.1 gnus/texi/gnuslogo-booklet.eps:removed
--- gnus/texi/gnuslogo-booklet.eps:7.1	Sun Jan  4 22:42:02 2004
+++ gnus/texi/gnuslogo-booklet.eps	Sun May  1 19:05:04 2005
@@ -1,1055 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: gnuslogo1.ps
-%%Creator: XV Version 3.00  Rev: 3/30/93  -  by John Bradley
-%%BoundingBox: 0 0 493 505
-%%Pages: 1
-%%DocumentFonts:
-%%EndComments
-%%EndProlog
-
-%%Page: 1 1
-
-% remember original state
-/origstate save def
-
-% build a temporary dictionary
-20 dict begin
-
-% define string to hold a scanline's worth of data
-/pix 62 string def
-
-% lower left corner
-0 0 translate
-
-% size of image (on paper, in 1/72inch coords)
-493.0 505.0 scale
-
-% dimensions of data
-493 505 1
-
-% mapping matrix
-[493 0 0 -505 0 505]
-
-{currentfile pix readhexstring pop}
-image
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff01fffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff8003ffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff0000ffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff8000007ffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff0000003ffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffe0000000ffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffff000000003fff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffff000000000fff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffc0000000007ff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff80000000003ff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffff00000000001ff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffe00000000000ff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffc00000000000ff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffff8000000000007f8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffff0000000000003f8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffff0000000000003f8
-fffffffffffffffffffffffffff800ffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffe0000000000001f8
-fffffffffffffffffffffffffff0001fffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffc0000000000000f8
-ffffffffffffffffffffffffffc00007ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffc0000000000000f8
-ffffffffffffffffffffffffff000001ffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff8000000000000078
-fffffffffffffffffffffffffe0000003ffffffffffff0001fffffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffff0000000000000038
-fffffffffffffffffffffffffc0000001fffffffffffe00007ffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffe0000000000000038
-fffffffffffffffffffffffff800000007ffffffffff800001ffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffe0000000000000038
-fffffffffffffffffffffffff000000003fffffffffe0000003fffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffc0000000000000018
-ffffffffffffffffffffffffe000000001fffffffff80000000fffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffc0000000000000018
-ffffffffffffffffffffffffc000000000ffffffffe000000003ffffffffffffffffffff
-fffffffffffffffffffffffffffffffffff80000000000000018
-ffffffffffffffffffffffff80000000007fffffff8000000000ffffffffffffffffffff
-fffffffffffffffffffffffffffffffffff80000000000000008
-ffffffffffffffffffffffff00000000003fffffff00000000007fffffffffffffffffff
-fffffffffffffffffffffffffffffffffff00000000000000008
-fffffffffffffffffffffffe00000000001ffffffe00000000001fffffffffffffffffff
-fffffffffffffffffffffffffffffffffff00000000000000008
-fffffffffffffffffffffffc00000000000ffffff8000000000007ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffe00000000000000008
-fffffffffffffffffffffff8000000000007fffff0000000000007ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffe00000000000000008
-fffffffffffffffffffffff0000000000001ffffe0000000000000ffffffffffffffffff
-ffffffffffffffffffffffffffffffffffc00000000000000000
-ffffffffffffffffffffffe0000000000000ffffc00000000000007fffffffffffffffff
-ffffffffffffffffffffffffffffffffffc00000000000000000
-ffffffffffffffffffffffc00000000000007fff800000000000001fffffffffffffffff
-ffffffffffffffffffffffffffffffffff800000000000000000
-ffffffffffffffffffffff800000000000003fff000000000000000fffffffffffffffff
-ffffffffffffffffffffffffffffffffff800000000000000000
-ffffffffffffffffffffff000000000000003fff0000000000000007ffffffffffffffff
-ffffffffffffffffffffffffffffffffff000040000000000000
-fffffffffffffffffffffe000000000000000ffe0000000000000001ffffffffffffffff
-ffffffffffffffffffffffffffffffffff0007ffc00000000000
-fffffffffffffffffffffc000000000000000ffc0000000000000000ffffffffffffffff
-fffffffffffffffffffffffffffffffffe001ffffc0000000000
-fffffffffffffffffffffc0000000000000007fc00000000000000007fffffffffffffff
-fffffffffffffffffffffffffffffffffc003ffffe0000000000
-fffffffffffffffffffff80000000000000007f800000000000000003fffffffffffffff
-fffffffffffffffffffffffffffffffffc007fffffc000000000
-fffffffffffffffffffff00000000000000001f000000000000000001fffffffffffffff
-fffffffffffffffffffffffffffffffff800fffffff000000000
-ffffffffffffffffffffe00000000000000001f000000000000000000fffffffffffffff
-fffffffffffffffffffffffffffffffff801fffffff800000000
-ffffffffffffffffffffc00000000000000000e0000000000000000007ffffffffffffff
-fffffffffffffffffffffffffffffffff003ffffffff00000000
-ffffffffffffffffffff800000000000000000c0000000000000000003ffffffffffffff
-fffffffffffffffffffffffffffffffff007ffffffff00000000
-ffffffffffffffffffff00000000000000000000000000000000000000ffffffffffffff
-ffffffffffffffffffffffffffffffffe00fffffffff80000000
-fffffffffffffffffffe00000000000000000000000000000000000000ffffffffffffff
-ffffffffffffffffffffffffffffffffe01fffffffffc0000008
-fffffffffffffffffffc000000000000000000000000000000000000007fffffffffffff
-ffffffffffffffffffffffffffffffffc03fffffffffc0000008
-fffffffffffffffffff8000000000000000000000000000000000000001fffffffffffff
-ffffffffffffffffffffffffffffffffc07ffffffffff0000000
-fff9fffffffffffffff800000fe00000000000000000000000000000001fffffffffffff
-ffffffffffffffffffffffffffffffff807ffffffffff0000000
-fff9fffffffffffffff000001ff80000000000000000000000000000000fffffffffffff
-ffffffffffffffffffffffffffffffff80fffffffffff0000008
-fff0ffffffffffffffc000007ffc00000000000000000000000000000007ffffffffffff
-ffffffffffffffffffffffffffffffff81fffffffffff8000008
-fff0ffffffffffffffc00000fffc00000000000000000000000000000003ffffffffffff
-ffffffffffffffffffffffffffffffff01fffffffffff8000008
-ffe07fffffffffffff800001ffff00000000000000000000000000000001ffffffffffff
-ffffffffffffffffffffffffffffffff03fffffffffffc000008
-ffe07fffffffffffff00000fffffc0000000000000000000000000000000ffffffffffff
-fffffffffffffffffffffffffffffffe03fffffffffffc000008
-ffe03ffffffffffffc00001fffffe00000000000000000000000000000007fffffffffff
-fffffffffffffffffffffffffffffffe07fffffffffffe000008
-ffe03ffffffffffff800003ffffff00000000000000000000000000000003fffffffffff
-fffffffffffffffffffffffffffffffe07fffffffffffe000008
-ffc03ffffffffffff000007ffffff80000000000000f80000000000000003fffffffffff
-fffffffffffffffffffffffffffffffe0ffffffffffffe000008
-ffc01fffffffffffe00001fffffffe000000000000fffe000000000000001fffffffffff
-fffffffffffffffffffffffffffffffc0ffffffffffffe000008
-ffc00fffffffffffc00003ffffffff000000000001ffff800000000000000fffffffffff
-fffffffffffffffffffffffffffffffc1fffffffffffff000008
-ff800fffffffffff800003ffffffff800000000007ffffc000000000000007ffffffffff
-fffffffffffffffffffffffffffffffc3fffffffffffff000008
-ff8007fffffffffe00000fffffffffc0000000001ffffffc00000000000003ffffffffff
-fffffffffffffffffffffffffffffff87fffffffffffff000008
-ff8007fffffffffc00000fffffffffe0000000005ffffffe00000000000001ffffffffff
-fffffffffffffffffffffffffffffff87fffffffffffff000008
-ff8003fffffffff800001ffffffffff000000000ffffffffc0000000000000ffffffffff
-fffffffffffffffffffffffffffffff87fffffffffffff000008
-ff0001fffffffff000003ffffffffffc00000007fffffffff80000000000007fffffffff
-fffffffffffffffffffffffffffffff8ffffffffffffff000008
-ff0000ffffffffe000003ffffffffffc0000000ffffffffffc0000000000007fffffffff
-fffffffffffffffffffffffffffffffcffffffffffffff000008
-fe00007fffffff800000ffffffffffff0000001ffffffffffe0000000000001fffffffff
-ffffffffffffffffffffffffffffe7fdffffffffffffff000008
-fe00007fffffff000001ffffffffffff8000003fffffffffff0000000000001fffffffff
-ffffffffffffffffffffffffffffe7fdffffffffffffff000008
-fc00001ffffffc000003ffffffffffffc000007fffffffffffe0000000000007ffffffff
-ffffffffffffffffffffffffffffc7ffffffffffffffff000008
-fc00001ffffff0000003ffffffffffffe00000fffffffffffff0000000000007ffffffff
-fffffffffeffffffffffffffffff87ffffffffffffffff000008
-f800000fffffe0000007fffffffffffff00000fffffffffffff8000000000003ffffffff
-fffffffffcffffffffffffffffff87ffffffffffffffff000008
-f8000003ffff0000000ffffffffffffff80001fffffffffffffc000000000001ffffffff
-fffffffff8ffffffffffffffffff07ffffffffffffffff000008
-f8000001fffe0000001ffffffffffffff80001ffffffffffffff000000000000ffffffff
-fffffffff8fffffffffffffffffe0fffffffffffffffff000008
-f0000000fff00000003ffffffffffffffc0001ffffffffffffff8000000000007fffffff
-fffffffff0fffffffffffffffffe0fffffffffffffffff000018
-e00000001a000000007ffffffffffffffe0003ffffffffffffffc000000000003fffffff
-fffffffff0fffffffffffffffffc0fffffffffffffffff000018
-e000000000000000007fffffffffffffff0003ffffffffffffffc000000000003fffffff
-ffffffffe0fffffffffffffffffc1fffffffffffffffff000018
-c00000000000000000ffffffffffffffff0007ffffffffffffffe000000000001fffffff
-ffffffffe0fffffffffffffffff81fffffffffffffffff000018
-c00000000000000001ffffffffffffffff0007fffffffffffffff0000000000007ffffff
-ffffffffc0fffffffffffffffff83fffffffffffffffff000018
-800000000000000007ffffffffffffffff800ffffffffffffffffc000000000003ffffff
-ffffffff01fffffffffffffffff03fffffffffffffffff000038
-800000000000000007ffffffffffffffff800ffffffffffffffffe000000000001ffffff
-ffffffff01fffffffffffffffff03fffffffffffffffff800038
-00000000000000000fffffffffffffffffc00fffffffffffffffff000000000000ffffff
-fffffffe03ffffffffffffffffe07fffffffffffffffff800038
-00000000000000001fffffffffffffffffc01fffffffffffffffff8000000000007fffff
-fffffffc03ffffffffffffffffe07fffffffffffffffff800038
-00000000000000003fffffffffffffffffe03fffffffffffffffffc000000000003fffff
-fffffff803ffffffffffffffffc07fffffffffffffffff800038
-00000000000000007ffffffffffffffffff03fffffffffffffffffe000000000000fffff
-fffffff007ffffffffffffffffc0ffffffffffffffffff800038
-0000000000000000fffffffffffffffffff07ffffffffffffffffff000000000000fffff
-fffffff007ffffffffffffffff80ffffffffffffffffff800078
-0000000000000003ffffffffffffffff8ff87ffffffffffffffffff8000000000001ffff
-ffffffc00fffffffffffffffff81ffffffffffffffffff800078
-8000000000000007ffffffffffffffff0ff8fffffffffffffffffffc000000000000ffff
-ffffffc00fffffffffffffffff01ffffffffffffffffff8000f8
-8000000000000007fffffffffffffffe0ffffffffffffffffffffffe0000000000007fff
-ffffff801fffffffffffffffff03ffffffffffffffffff8000f8
-c00000000000001ffffffffffffffffc0fffffffffffffffffffffff0000000000001fff
-fffffe001ffffffffffffffffe07ffffffffffffffffff8000f8
-e00000000000007ffffffffffffffff83fffffffffffffffffffffffc0000000000007ff
-fffff8003ffffffffffffffffc07ffffffffffffffffff8000f8
-f00000000000007ffffffffffffffff03fffffffffffffffffffffffc0000000000001ff
-fffff0003ffffffffffffffff80fffffffffffffffffff8000f8
-f0000000000000fffffffffffffffff07fffffffffffffffffffffffe0000000000000ff
-ffffe0003ffffffffffffffff00fffffffffffffffffff8001f8
-f8000000000003ffffffffffffffffe07ffffffffffffffffffffffff00000000000000f
-ffff00007fffffffffffffffe01fffffffffffffffffff0001f8
-fc000000000007ffffffffffffffffc07ffffffffffffffffffffffff800000000000007
-fffc00007fffffffffffffffc01fffffffffffffffffff0001f8
-fc000000000007ffffffffffffffffc0fffffffffffffffffffffffff800000000000000
-ffe000007ffffbffffffffff801fffffffffffffffffff0001f8
-fe00000000001fffffffffffffffff03fffffffffffffffffffffffffe00000000000000
-00000000fffff3ffffffffff003fffffffffffffffffff0001f8
-fe00000000003fffffffffffffffff03ffffffffffffffffffffffffff00000000000000
-00000001fffff1fffffffffe003fffffffffffffffffff0003f8
-ff00000000007ffffffffffffffffe03ffffffffffffffffffffffffff00000000000000
-00000001ffffe1fffffffffc007fffffffffffffffffff0003f8
-ff8000000001fffffffffffffffffc07ffffffffffffffffffffffffff80000000000000
-00000003ffffe0fffffffff0007fffffffffffffffffff0003f8
-ffc000000003fffffffffffffffffc0fffffffffffffffffffffffffffc0000000000000
-00000003ffffc0ffffffffe0007fffffffffffffffffff0003f8
-ffe00000000ffffffffffffffffff81fffffffffffffffffffffffffffe0000000000000
-00000007ffffc07fffffff8000ffffffffffffffffffff0003f8
-fff00000003ffffffffffffffffff01ffffffffffffffffffffffffffff0000000000000
-00000007ffff803fffffff0000fffffffffffffffffffe0007f8
-fff8000000ffffffffffffffffffe03ffffffffffffffffffffffffffff8000000000000
-00000007ffff801ffffffc0001fffffffffffffffffffe0007f8
-fffc000001ffffffffffffffffffe07ffffffffffffffffffffffffffffc000000000000
-0000000fffff000ffffff80003fffffffffffffffffffe0007f8
-fffe00000fffffffffffffffffffc07ffffffffffffffffffffffffffffc000000000000
-0000000fffff0007ffffe00003fffffffffffffffffffe0007f8
-ffff80007fffffffffffffffffff80fffffffffffffffffffffffffffffe000000000000
-0000001ffffe0001ffff800007fffffffffffffffffffe000ff8
-ffffe007ffffffffffffffffffff80ffffffffffffffffffffffffffffff000000000000
-0000001ffffe0000fffc000007fffffffffffffffffffe000ff8
-ffffffffffffffffffffffffffff01ffffffffffffffffffffffffffffff800000000000
-0000003ffffe0000000000000ffffffffffffffffffffe000ff8
-fffffffffffffffffffffffffffe03ffffffffffffffffffffffffffffffc00000000000
-0000003ffffc0000000000000ffffffffffffffffffffe000ff8
-fffffffffffffffffffffffffffe03ffffffffffffffffffffffffffffffe00000000000
-0000007ffff80000000000001ffffffffffffffffffffe001ff8
-fffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffff00000000000
-0000007ffff80000000000001ffffffffffffffffffffe001ff8
-fffffffffffffffffffffffffff807fffffffffffffffffffffffffffffff80000000000
-000000fffff80000000000003ffffffffffffffffffffc001ff8
-fffffffffffffffffffffffffff80ffffffffffffffffffffffffffffffffc0000000000
-000003fffff00000000000007ffffffffffffffffffffc001ff8
-fffffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffe0000000000
-000007ffffe00000000000007ffffffffffffffffffffe003ff8
-fffffffffffffffffffffffffff01fffffffffffffffffffffffffffffffff0000000000
-000007ffffe0000000000000fffffffffffffffffffffc003ff8
-ffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffffff8000000000
-00001fffffc0000000000001fffffffffffffffffffffc003ff8
-ffffffffffffffffffffffffffc07fffffffffffffffffffffffffffffffffe000000000
-00001fffffc0000000000003fffffffffffffffffffffc003ff8
-ffffffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffff000000000
-00003fffff80000000000003fffffffffffffffffffffc007ff8
-ffffffffffffffffffffffffff01fffffffffffffffffffffffffffffffffff800000000
-00007fffff80000000000007fffffffffffffffffffffc007ff8
-ffffffffffffffffffffffffff03fffffffffffffffffffffffffffffffffffc00000000
-0000ffffff0000000000000ffffffffffffffffffffffc007ff8
-fffffffffffffffffffffffffe03fffffffffffffffffffffffffffffffffffc00000000
-0001ffffff0000000000001ffffffffffffffffffffffc007ff8
-fffffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffffff00000000
-0003fffffe0000000000001ffffffffffffffffffffff800fff8
-fffffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffff80000000
-0007fffffe0000000000003ffffffffffffffffffffff800fff8
-fffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffff0000000
-001ffffffc0000000000007ffffffffffffffffffffff800fff8
-fffffffffffffffffffffffff03ffffffffffffffffffffffffffffffffffffff8000000
-003ffffffc000000000000fffffffffffffffffffffff800fff8
-ffffffffffffffffffffffffe07ffffffffffffffffffffffffffffffffffffffe000000
-00fffffff8000000000003fffffffffffffffffffffff001fff8
-ffffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffff800000
-03fffffff8000000000003fffffffffffffffffffffff001fff8
-ffffffffffffffffffffffffc0ffffffffffffffffffffffffffffffffffffffffc00000
-07fffffff0000000000007fffffffffffffffffffffff001fff8
-ffffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffffffffc0000
-3ffffffff000000000000ffffffffffffffffffffffff003fff8
-ffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffffffffe03f
-fffffffff000000000003ffffffffffffffffffffffff003fff8
-ffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffff800000000007ffffffffffffffffffffffff003fff8
-fffffffffffffffffffffffe03ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffff80000000000ffffffffffffffffffffffffe003fff8
-fffffffffffffffffffffffc07ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffc0000000003ffffffffffffffffffffffffe007fff8
-fffffffffffffffffffffffc0fffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffe0000000007ffffffffffffffffffffffffe007fff8
-fffffffffffffffffffffff81fffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffe000000000fffffffffffffffffffffffffe00ffff8
-fffffffffffffffffffffff01fffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffff000000001fffffffffffffffffffffffffe00ffff8
-ffffffffffffffffffffffe03ffffffffffffffffffffffffbffffffffffffffffffffff
-ffffffffff800000007fffffffffffffffffffffffffc00ffff8
-ffffffffffffffffffffffe07ffffffffffffffffffdfffff1ffffffffffffffffffffff
-ffffffffffc0000000ffffffffffffffffffffffffffc00ffff8
-ffffffffffffffffffffffe07ffffffffffffffffff9fffff07fffffffffffffffffffff
-ffffffffffe0000001ffffffffffffffffffffffffffc00ffff8
-ffffffffffffffffffffffc0ffffffffffffffffffe3ffffe03fffffffffffffffffffff
-fffffffffff800001fffffffffffffffffffffffffffc01ffff8
-ffffffffffffffffffffff81ffffffffffffffffffc7ffffc00fffffffffffffffffffff
-fffffffffffe00007fffffffffffffffffffffffffffc01ffff8
-ffffffffffffffffffffff81ffffffffffffffffff87ffffc007ffffffffffffffffffff
-ffffffffffff8003ffffffffffffffffffffffffffff801ffff8
-ffffffffffffffffffffff03ffffffffffffffffff0fffff8007ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff803ffff8
-fffffffffffffffffffffe07fffffffffffffffffe0fffff8001ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff803ffff8
-fffffffffffffffffffffe07fffffffffffffffffc1fffff0000ffffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff803ffff8
-fffffffffffffffffffffc0ffffffffffffffffff83ffffe00007fffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff007ffff8
-fffffffffffffffffffff81fffffffffffffffffe03ffffe00007fffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff007ffff8
-fffffffffffffffffffff83fffffffffffffffffc07ffffc00003fffffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffff007ffff8
-fffffffffffffffffffff03fffffffffffffffff80fffff800001fffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffe00fffff8
-ffffffffffffffffffffe07fffffffffffffffff00fffff800000fffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffe00fffff8
-ffffffffffffffffffffe0fffffffffffffffffe01fffff0000007ffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffe00fffff8
-ffffffffffffffffffffc0fffffffffffffffffc01ffffe0000003ffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffe00fffff8
-ffffffffffffffffffff81fffffffffffffffff803ffffe0000003ffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffe01fffff8
-ffffffffffffffffffff81ffffffffffffffffe007ffffc0000003ffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffc01fffff8
-ffffffffffffffffffff83ffffffffffffffffe007ffffc0000001ffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffc01fffff8
-ffffffffffffffffffff07ffffffffffffffff800fffff80000000ffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffc01fffff8
-fffffffffffffffffffe07ffffffffffffffff800fffff00000000ffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffc03fffff8
-fffffffffffffffffffc0ffffffffffffffffe001fffff00000000ffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffff803fffff8
-fffffffffffffffffffc0ffffffffffffffffc003ffffe000000007fffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffff803fffff8
-fffffffffffffffffff81ffffffffffffffff0003ffffc000000007fffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffff007fffff8
-fffffffffffffffffff01fffffffffffffffe0007ffffc000000003fffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffff007fffff8
-fffffffffffffffffff03fffffffffffffffe000fffff8000000001fffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffff007fffff8
-ffffffffffffffffffe07fffffffffffffff8000fffff0000000001fffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffe00ffffff8
-ffffffffffffffffffc07fffffffffffffff0001fffff0000000001fffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffe00ffffff8
-ffffffffffffffffffc0fffffffffffffffe0001ffffe0000000000fffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffe00ffffff8
-ffffffffffffffffff80fffffffffffffff80003ffffe0000000000fffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffe01ffffff8
-ffffffffffffffffff81fffffffffffffff00007ffffc0000000000fffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffc01ffffff8
-ffffffffffffffffff81ffffffffffffffe00007ffffc00000000007ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffc01ffffff8
-ffffffffffffffffff03ffffffffffffffc0000fffffc00000000007ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffffc03ffffff8
-fffffffffffffffffe03ffffffffffffff00000fffffe00000000007ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff803ffffff8
-fffffffffffffffffc07fffffffffffffe00001ffffff00000000007ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff803ffffff8
-fffffffffffffffffc07fffffffffffffc00007ffffffc0000000007ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff807ffffff8
-fffffffffffffffff807fffffffffffff00001fffffffe0000000003ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff807ffffff8
-fffffffffffffffff807ffffffffffffe00003ffffffff0000000003ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff007ffffff8
-fffffffffffffffff00fffffffffffff800007ffffffff8000000003ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff00fffffff8
-fffffffffffffffff00fffffffffffff00000fffffffffc000000001ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffff00fffffff8
-ffffffffffffffffe00ffffffffffffc00003fffffffffe000000001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffe01fffffff8
-ffffffffffffffffe00ffffffffffff800007ffffffffff000000001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffe01fffffff8
-ffffffffffffffffc00ffffffffffff00000fffffffffff800000001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffe01fffffff8
-ffffffffffffffff800fffffffffffc00001fffffffffffc00000001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffe03fffffff8
-ffffffffffffffff800fffffffffff000007fffffffffffe00000001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffe03fffffff8
-ffffffffffffffff001ffffffffffe00000fffffffffffff00000001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffc07fffffff8
-ffffffffffffffff001ffffffffffc00001fffffffffffff80000001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffc07fffffff8
-fffffffffffffffe000fffffffffe000003fffffffffffff80000001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff807fffffff8
-fffffffffffffffe000fffffffffc000007fffffffffffffc0000000ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff807fffffff8
-fffffffffffffffc000fffffffff800000ffffffffffffffe0000000ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff80ffffffff8
-fffffffffffffffc0007fffffffe000001fffffffffffffff0000000ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff80ffffffff8
-fffffffffffffffc0003fffffffc000003fffffffffffffff0000000ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff01ffffffff8
-fffffffffffffff80001fffffff8000007fffffffffffffff8000000ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff01ffffffff8
-fffffffffffffff80000ffffffc000001ffffffffffffffff8000000ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffff01ffffffff8
-fffffffffffffff800003fffff0000003ffffffffffffffffc000000ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffe01ffffffff8
-fffffffffffffff000000000000000007ffffffffffffffffc000000ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffe03ffffffff8
-ffffffffffffffe00000000000000000fffffffffffffffffe000000ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffe03ffffffff8
-ffffffffffffffe00000000000000001fffffffffffffffffe000000ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffc07ffffffff8
-ffffffffffffffc00000000000000003fffffffffffffffffe000000ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffc07ffffffff8
-ffffffffffffffc00000000000000007ffffffffffffffffff000000ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffc07ffffffff8
-ffffffffffffffc0000000000000000fffffffffffffffffff000000ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffc0fffffffff8
-ffffffffffffff80000000000000003fffffffffffffffffff800000ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffffc0fffffffff8
-ffffffffffffff80000000000000007fffffffffffffffffff800001ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff80fffffffff8
-ffffffffffffff8000000000000001ffffffffffffffffffff800001ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff81fffffffff8
-ffffffffffffff8000000000000001ffffffffffffffffffffc00001ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff81fffffffff8
-ffffffffffffff8000000000000003ffffffffffffffffffffe00001ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff01fffffffff8
-ffffffffffffff000000000000000fffffffffffffffffffffe00001ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffff03fffffffff8
-ffffffffffffff000000000000001ffffffffffffffffffffff00001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffe03fffffffff8
-fffffffffffffe000000000000003ffffffffffffffffffffff00001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffe03fffffffff8
-fffffffffffffe000000000000007ffffffffffffffffffffff00001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffe03fffffffff8
-fffffffffffffc00000000000001fffffffffffffffffffffff00001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffe07fffffffff8
-fffffffffffffc00000000000007fffffffffffffffffffffff00001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffc07fffffffff8
-fffffffffffffc00000000000007fffffffffffffffffffffff00001ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffc07fffffffff8
-fffffffffffffc0000000000003ffffffffffffffffffffffff80003ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffc0ffffffffff8
-fffffffffffffc0000000000007ffffffffffffffffffffffff80003ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffc0ffffffffff8
-fffffffffffffc000000000000fffffffffffffffffffffffff80003ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffff80ffffffffff8
-fffffffffffffc000000000003fffffffffffffffffffffffff80003ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffff80ffffffffff8
-fffffffffffffc000000000007fffffffffffffffffffffffff80003ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffff00ffffffffff8
-fffffffffffffc00000000001ffffffffffffffffffffffffff80007ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffff01ffffffffff8
-fffffffffffffe00000000001ffffffffffffffffffffffffff80007ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffff01ffffffffff8
-fffffffffffffe0000000000fffffffffffffffffffffffffff80007ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffe01ffffffffff8
-ffffffffffffff0000000001fffffffffffffffffffffffffff80007ffffffffffffffff
-ffffffffffffffffffffffffffffffffffffffe03ffffffffff8
-ffffffffffffff000000000ffffffffffffffffffffffffffff80007ffffffffffffffff
-fffffffffffffffffffdffffffffffffffffffe03ffffffffff8
-ffffffffffffff800000003ffffffffffffffffffffffffffff80007ffffffffffffffff
-fffffffffffffffffff9ffffffffffffffffffc03ffffffffff8
-ffffffffffffffe0000001fffffffffffffffffffffffffffff80007ffffffffffffffff
-fffffffffffffffffff1ffffffffffffffffff807ffffffffff8
-fffffffffffffff0000001fffffffffffffffffffffffffffff8000fffffffffffffffff
-fffffffffffffffffff1ffffffffffffffffff807ffffffffff8
-fffffffffffffff800000ffffffffffffffffffffffffffffffc000fffffffffffffffff
-fffffffffffffffffff1ffffffffffffffffff807ffffffffff8
-fffffffffffffffe0003fffffffffffffffffffffffffffffffc000fffffffffffffffff
-ffffffffffffffffffe1ffffffffffffffffff807ffffffffff8
-ffffffffffffffff4007fffffffffffffffffffffffffffffffc001fffffffffffffffff
-ffffffffffffffffffc1ffffffffffffffffff00fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff
-ffffffffffffffffff83ffffffffffffffffff00fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff
-ffffffffffffffffff83ffffffffffffffffff00fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff
-ffffffffffffffffff03ffffffffffffffffff00fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc001fffffffffffffffff
-ffffffffffffffffff03ffffffffffffffffff01fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff
-ffffffffffffffffff07ffffffffffffffffff01fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff
-fffffffffffffffffe07fffffffffffffffffe01fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc003fffffffffffffffff
-fffffffffffffffffc07fffffffffffffffffe03fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffffff
-fffffffffffffffffc07fffffffffffffffffc03fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffffff
-fffffffffffffffff80ffffffffffffffffffc03fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe007fffffffffffffffff
-fffffffffffffffff80ffffffffffffffffffc03fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe007fffffffffffffffff
-fffffffffffffffff80ffffffffffffffffffc03fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe00ffffffffffffffffff
-fffffffffffffffff03ffffffffffffffffff807fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe00ffffffffffffffffff
-ffffffffffffffffe01ffffffffffffffffff807fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe01ffffffffffffffffff
-ffffffffffffffffe03ffffffffffffffffff807fffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe01ffffffffffffffffff
-ffffffffffffffffc07ffffffffffffffffff00ffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe03ffffffffffffffffff
-ffffffffffffffffc07ffffffffffffffffff00ffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe03ffffffffffffffffff
-ffffffffffffffff80fffffffffffffffffff00ffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe07ffffffffffffffffff
-ffffffffffffffff80fffffffffffffffffff00ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff07ffffffffffffffffff
-ffffffffffffffff00ffffffffffffffffffe01ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff07ffffffffffffffffff
-fffffffffffffffe00ffffffffffffffffffe01ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffffffff
-fffffffffffffffe00ffffffffffffffffffe01ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffffffff
-fffffffffffffffc01ffffffffffffffffffc01ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffffffffff
-fffffffffffffffc03ffffffffffffffffffc01ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff3fffffffffffffffffff
-fffffffffffffffc03ffffffffffffffffffc03ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffff
-fffffffffffffff807ffffffffffffffffffc03ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffff807ffffffffffffffffff803ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffff00fffffffffffffffffff803ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffff00fffffffffffffffffff807ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffe01fffffffffffffffffff807ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffe03fffffffffffffffffff807ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffc03fffffffffffffffffff807ffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffff807fffffffffffffffffff00fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffff807fffffffffffffffffff00fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffff00ffffffffffffffffffff00fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffff00fffffffffffffffffffe00fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffe01fffffffffffffffffffe01fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffe03fffffffffffffffffffe01fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffc03fffffffffffffffffffc01fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffc07fffffffffffffffffffc01fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffff807fffffffffffffffffffc03fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffff00ffffffffffffffffffffc03fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffff00ffffffffffffffffffff803fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffe01ffffffffffffffffffff803fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffe01ffffffffffffffffffff803fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffc03ffffffffffffffffffff807fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffc03ffffffffffffffffffff007fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff807ffffffffffffffffffff007fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff807ffffffffffffffffffff007fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffff00fffffffffffffffffffff007fffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffe00ffffffffffffffffffffe00ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffe01ffffffffffffffffffffe00ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffffffffff
-fffffffffffc01ffffffffffffffffffffe00ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffff
-fffffffffffc03ffffffffffffffffffffe00ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1fffffffffffff
-fffffffffff803ffffffffffffffffffffc00ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffff
-fffffffffff807ffffffffffffffffffffc00ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1fffffffffffff
-fffffffffff00fffffffffffffffffffffc01ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffff
-fffffffffff00fffffffffffffffffffffc01ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffff83fffffffffffff
-ffffffffffc01fffffffffffffffffffffc01ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff
-ffffffffffc01fffffffffffffffffffffc01ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff
-ffffffffff801fffffffffffffffffffff801ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff
-ffffffffff803fffffffffffffffffffff801ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffff
-ffffffffff003fffffffffffffffffffff803ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0ffffffffffffff
-fffffffffe007fffffffffffffffffffff803ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1ffffffffffffff
-fffffffffc007fffffffffffffffffffff003ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffff81ffffffffffffff
-fffffffffc00ffffffffffffffffffffff003ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffffffffffffff
-fffffffff800ffffffffffffffffffffff003ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffffffffffffff
-fffffffff801ffffffffffffffffffffff003ffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffff03ffffffffffffff
-fffffffff803ffffffffffffffffffffff007ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffe07ffffffffffffff
-fffffffff003fffffffffffffffffffffe007ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffffc07ffffffffffffff
-ffffffffe007fffffffffffffffffffffe007ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffff807ffffffffffffff
-ffffffffc007fffffffffffffffffffffe007ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffff007ffffffffffffff
-ffffffffc007fffffffffffffffffffffe007ffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffff
-ffffffff800ffffffffffffffffffffffe00fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffff
-ffffffff000ffffffffffffffffffffffe00fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffe00fffffffffffffff
-fffffffe001ffffffffffffffffffffffe00fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc01fffffffffffffff
-fffffffc003ffffffffffffffffffffffe00fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffffc01fffffffffffffff
-9ffffffc003ffffffffffffffffffffffe00fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff803fffffffffffffff
-0ffffff8003ffffffffffffffffffffffc01fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff003ffffffffffffffe
-07fffff0007ffffffffffffffffffffffc01fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffff003ffffffffffffffe
-07ffffe000fffffffffffffffffffffffc01fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffe007ffffffffffffff8
-03ffffc000fffffffffffffffffffffffc01fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffe007ffffffffffffff0
-03ffff8001fffffffffffffffffffffff801fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffffc007ffffffffffffff0
-01ffff0003fffffffffffffffffffffff803fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffe0
-00fffe0003fffffffffffffffffffffff803fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffe0
-00fffe0003fffffffffffffffffffffff803fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffff001ffffffffffffffc0
-003ffc0007fffffffffffffffffffffff003fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffe003ffffffffffffff80
-001fe0001ffffffffffffffffffffffff003fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffe003ffffffffffffff00
-000fc0001ffffffffffffffffffffffff007fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffe00
-000000001ffffffffffffffffffffffff007fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff8007fffffffffffffe00
-000000003ffffffffffffffffffffffff007fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff800ffffffffffffffc00
-000000003ffffffffffffffffffffffff007fffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffff000ffffffffffffff800
-000000007fffffffffffffffffffffffe007fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe001ffffffffffffff800
-000000007fffffffffffffffffffffffe007fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffe001ffffffffffffff000
-00000001ffffffffffffffffffffffffe007fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc003ffffffffffffff000
-00000001ffffffffffffffffffffffffe007fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffffc007fffffffffffffe000
-00000001ffffffffffffffffffffffffe007fffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffff0007fffffffffffffc000
-00000003ffffffffffffffffffffffffc00ffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffff000ffffffffffffffc000
-00000003ffffffffffffffffffffffffc00ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffff8000
-00000007ffffffffffffffffffffffffc00ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffc001ffffffffffffff0000
-0000000fffffffffffffffffffffffffc01ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffffc003ffffffffffffff0000
-0000001fffffffffffffffffffffffffc01ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffff8003fffffffffffffe0000
-0000001fffffffffffffffffffffffffc01ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffff0007fffffffffffffe0000
-0000003fffffffffffffffffffffffffc01ffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffffc0000
-0000007fffffffffffffffffffffffff801ffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffff80000
-0000007fffffffffffffffffffffffff801ffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffffc001ffffffffffffff80000
-000000ffffffffffffffffffffffffff801ffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffff8001ffffffffffffff00000
-000001ffffffffffffffffffffffffff801ffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff00000
-000001ffffffffffffffffffffffffff801ffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff00000
-000003ffffffffffffffffffffffffff801ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffe0007fffffffffffffe00000
-000003ffffffffffffffffffffffffff801ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffe000ffffffffffffffe00000
-000007ffffffffffffffffffffffffff803ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffc00000
-00000fffffffffffffffffffffffffff003ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffff8001ffffffffffffff800000
-00000fffffffffffffffffffffffffff803ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffff0003ffffffffffffff800000
-00001fffffffffffffffffffffffffff803ffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffff0007ffffffffffffff000200
-00003fffffffffffffffffffffffffff007ffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffe0007fffffffffffffe000700
-00007fffffffffffffffffffffffffff00fffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffe001f80
-0000ffffffffffffffffffffffffffff00fffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe001f80
-0001ffffffffffffffffffffffffffff00fffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffc003fc0
-0001ffffffffffffffffffffffffffff00fffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffff0001ffffffffffffff8007fe0
-0003ffffffffffffffffffffffffffff01fffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffff0007fe0
-0007ffffffffffffffffffffffffffff01fffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffe0007ffffffffffffff000fff0
-0007ffffffffffffffffffffffffffff01fffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffffc000ffffffffffffffe003fff8
-001fffffffffffffffffffffffffffff07fffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe003fffc
-007fffffffffffffffffffffffffffff07fffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffff8000ffffffffffffffe003fffe
-00ffffffffffffffffffffffffffffff07fffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffff0001ffffffffffffffc007ffff
-dfffffffffffffffffffffffffffffff0ffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffff800fffff
-fffffffffffffffffffffffffffffffe1ffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffff800fffff
-fffffffffffffffffffffffffffffffe1ffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffff001fffff
-fffffffffffffffffffffffffffffffe1ffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff003fffff
-fffffffffffffffffffffffffffffffe3ffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffe003fffff
-ffffffffffffffffffffffffffffffff3ffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffe0001ffffffffffffffc007fffff
-ffffffffffffffffffffffffffffffff3ffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffffffffc007fffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffffc0007ffffffffffffffc00ffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff800ffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffff8000fffffffffffffff801ffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffe0000fffffffffffffff001ffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffff003ffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffffc0003ffffffffffffffe007ffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffff80007ffffffffffffffe007ffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffff0000fffffffffffffffc00fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffff0000fffffffffffffffc00fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffe0001fffffffffffffffc00fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffff801fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffffc0003fffffffffffffff801fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffff80003fffffffffffffff003fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff007fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffff007fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffffc007fffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffffc0001fffffffffffffffc00ffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffff80003fffffffffffffffc01ffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff801ffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffe0001ffffffffffffffff801ffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffff803ffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffffc0003ffffffffffffffff803ffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffff80003fffffffffffffffe007ffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffff80007fffffffffffffffe007ffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffe00fffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffc00fffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffff801fffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffff80003ffffffffffffffff803fffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffff80003ffffffffffffffff003fffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff003fffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffffe007fffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffe0000ffffffffffffffffc007fffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffffc0001ffffffffffffffffc00ffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffff80007ffffffffffffffffc00ffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff801ffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffff00007ffffffffffffffff801ffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffe0000fffffffffffffffff003ffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffffc0001fffffffffffffffff003ffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffff80003ffffffffffffffffe007ffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffff80003ffffffffffffffffe007ffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffe00007ffffffffffffffffc00fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffe0000fffffffffffffffffc00fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffffe0000fffffffffffffffffc00fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffff80001fffffffffffffffff801fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffff00003fffffffffffffffff801fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffff00007fffffffffffffffff003fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffe00007fffffffffffffffff007fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffc0000ffffffffffffffffff007fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffffc0001fffffffffffffffffc007fffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffff80003fffffffffffffffffc00ffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffff80007fffffffffffffffffc01ffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffff00007fffffffffffffffff801ffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffff0000ffffffffffffffffff801ffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffffc0001ffffffffffffffffff803ffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffff80003ffffffffffffffffff803ffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffff00007ffffffffffffffffff007ffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffff00007ffffffffffffffffff007ffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffe0000ffffffffffffffffffe00fffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffc0000ffffffffffffffffffe00fffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffffc0001ffffffffffffffffffe01fffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffff80003ffffffffffffffffffc03fffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffff00007ffffffffffffffffffc03fffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffe00007ffffffffffffffffffc03fffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffe00007ffffffffffffffffffc07fffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffffc0001fffffffffffffffffff807fffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffff80003fffffffffffffffffff80ffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffff80003fffffffffffffffffff80ffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffff00007fffffffffffffffffff81ffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffe0000ffffffffffffffffffff01ffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffe0001ffffffffffffffffffff03ffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffffc0003ffffffffffffffffffff03ffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffff80003fffffffffffffffffffe07ffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffff00007fffffffffffffffffffe07ffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffe00007fffffffffffffffffffe0fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffe0000ffffffffffffffffffffc0fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffe0000ffffffffffffffffffffc1fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffffc0001ffffffffffffffffffffc1fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffff80007ffffffffffffffffffff83fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffff00007ffffffffffffffffffff83fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffe00007ffffffffffffffffffff83fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffe0000fffffffffffffffffffff87fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffc0001fffffffffffffffffffff87fffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffffc0001fffffffffffffffffffff0ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffff80003fffffffffffffffffffff0ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffff00007fffffffffffffffffffff0ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffff0000ffffffffffffffffffffff1ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffe0000fffffffffffffffffffffe1ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffffc0001fffffffffffffffffffffe3ffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffff80003fffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffff00007fffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffe0001ffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffe0001ffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffc0003ffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffffc0007ffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffff0000fffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffff0000fffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffe0001fffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffc0003fffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffc0003fffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffffc0007fffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffff8000ffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffff8001ffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffff0001ffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffff0003ffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffff0003ffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffe0007ffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffffc000fffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffff8001fffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffff8001fffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffff8003fffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffff8007fffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffff8007fffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffff0007fffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffe000ffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffe001ffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffc001ffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffc007ffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffc00fffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffffc01fffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffff801fffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffff003fffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffff003fffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffe00ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffe01ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffc03ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffffc03ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffff807ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffff807ffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffff80fffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffff00fffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-fffffffffffffffffffffff01fffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffe03fffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffe07fffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffff83ffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffff8fffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffff8fffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-ffffffffffffffffffffff3fffffffffffffffffffffffffffffffffffffffffffffffff
-fffffffffffffffffffffffffffffffffffffffffffffffffff8
-
-
-showpage
-
-% stop using temporary dictionary
-end
-
-% restore original state
-origstate restore
-
-%%Trailer
Index: gnus/texi/gnuslogo-refcard.eps
diff -u gnus/texi/gnuslogo-refcard.eps:7.1 gnus/texi/gnuslogo-refcard.eps:removed
--- gnus/texi/gnuslogo-refcard.eps:7.1	Sun Jan  4 22:42:02 2004
+++ gnus/texi/gnuslogo-refcard.eps	Sun May  1 19:05:04 2005
@@ -1,242 +0,0 @@
-%!PS-Adobe-2.0 EPSF-1.2
-%%Creator: Adobe Illustrator 88(TM) format generated by CorelTRACE Version 2.0C
-%%Title:  /home/menja/c/larsi/gnus.eps
-%%BoundingBox: 17 11 127 122
-%%CreationDate: Tue Feb 20 01:51:37 1996
-%%DocumentFonts:
-%%ColorUsage: B & W
-%%TileBox: 17 11 127 122
-%%EndComments
-% Copyright 1992 Corel Corporation.
-
-% All rights reserved.
-.15 .15 scale
-
-/wPSMDict 150 dict def
-wPSMDict begin
-/bd {bind def} bind def
-/ld {load def} bd
-/xd {exch def} bd
-/_ null def
-/$c 0 def
-/$m 0 def
-/$y 0 def
-/$k 0 def
-/$t 1 def
-/$n _ def
-/$o 0 def
-/$C 0 def
-/$M 0 def
-/$Y 0 def
-/$K 0 def
-/$T 1 def
-/$N _ def
-/$O 0 def
-/$h false def
-/$al 0 def
-/$tr 0 def
-/$le 0 def
-/$lx 0 def
-/$ly 0 def
-/$ctm matrix currentmatrix def
-/@cp /closepath ld
-/@gs /gsave ld
-/@gr /grestore ld
-/@MN {2 copy le{pop}{exch pop}ifelse}bd
-/setcmykcolor where {pop}{/setcmykcolor{4 1 roll
-3 {3 index add 1 @MN 1 exch sub 3 1 roll} repeat
-setrgbcolor
-pop}bd}ifelse
-/@tc{dup 1 ge{pop}{4 {dup
-6 -1 roll
-mul
-exch}repeat
-pop}ifelse}bd
-/@scc{$c $m $y $k $t @tc setcmykcolor true}bd
-/@SCC{$C $M $Y $K $T @tc setcmykcolor true}bd
-/@sm{/$ctm $ctm currentmatrix def}bd
-/x {/$t xd /$n xd
-/$k xd /$y xd /$m xd /$c xd}bd
-/X {/$T xd /$N xd
-/$K xd /$Y xd /$M xd /$C xd}bd
-/g {1 exch sub 0 0 0
-4 -1 roll
-_ 1 x}bd
-/G {1 exch sub 0 0 0
-4 -1 roll
-_ 1 X}bd
-/k {_ 1 x}bd
-/K {_ 1 X}bd
-/d /setdash ld
-/i {dup 0 ne {setflat} {pop} ifelse}bd
-/j /setlinejoin ld
-/J /setlinecap ld
-/M /setmiterlimit ld
-/w /setlinewidth ld
-/O {/$o xd}bd
-/R {/$O xd}bd
-/c /curveto ld
-/C /c ld
-/l /lineto ld
-/L /l ld
-/m /moveto ld
-/n /newpath ld
-/N /newpath ld
-/F {@scc{eofill}if n} bd
-/f {@cp F}bd
-/S {@SCC{stroke}if n} bd
-/s {@cp
-S}bd
-/B {@gs F @gr
-S}bd
-/b {@cp B }bd
-/u {}bd
-/U {}bd
-%%EndProlog
-%%BeginSetup
-%%EndSetup
-1 i
-2 J
-0 j
-4 M
-[]0 d
-
-%%Note: traced as Normal_Outline
-0 g
-259.2 78.2 m
-327.3 178.5 L
-327.8 179.0 328.3 180.0 329.7 180.4 C
-373.4 241.9 L
-388.8 263.5 L
-389.2 264.0 390.7 264.4 391.6 265.4 C
-413.7 298.0 453.6 351.8 468.0 404.6 C
-467.5 405.6 467.5 407.0 467.5 407.0 C
-442.0 367.6 411.3 319.2 379.2 279.3 C
-372.0 267.3 366.7 265.9 361.9 254.8 C
-333.1 216.0 L
-323.5 207.3 311.0 185.2 302.8 175.6 C
-298.0 165.6 293.2 164.1 288.9 154.0 C
-282.2 147.8 282.2 139.6 276.4 132.4 C
-258.2 77.7 L
-258.2 77.7 259.2 78.2 259.2 78.2 C
-f
-0 g
-470.8 211.6 m
-470.8 211.6 472.3 212.1 472.3 212.1 C
-518.8 305.2 L
-531.3 317.2 L
-537.6 314.8 539.0 300.9 548.6 301.9 C
-555.8 301.9 554.8 302.8 561.6 306.2 C
-595.2 357.1 L
-595.6 358.0 597.6 358.5 598.5 360.0 C
-615.8 398.4 650.8 450.7 657.6 483.8 C
-658.0 486.2 658.0 488.1 658.0 489.6 C
-654.2 489.1 656.1 485.2 650.4 479.5 C
-634.5 446.8 611.5 402.2 592.8 377.2 C
-588.0 370.0 581.7 365.7 577.4 358.5 C
-570.2 355.6 568.3 351.3 560.1 356.6 C
-554.8 360.0 553.9 364.8 550.0 370.0 C
-548.1 371.5 550.0 370.5 547.2 371.0 C
-541.4 365.2 L
-511.2 319.6 484.3 276.0 471.8 220.3 C
-470.8 215.5 471.3 215.5 469.4 212.1 C
-469.4 212.1 470.8 211.6 470.8 211.6 C
-f
-0 g
-731.0 292.8 m
-756.0 351.3 751.6 407.0 771.3 468.0 C
-783.3 520.8 809.7 582.2 822.2 635.0 C
-829.4 684.4 855.8 732.0 825.1 789.1 C
-811.6 797.7 799.6 805.4 784.8 802.0 C
-757.9 792.0 732.9 743.0 726.2 712.8 C
-727.6 708.4 727.2 707.0 730.0 704.6 C
-731.0 704.1 732.9 704.1 734.4 704.6 C
-737.2 709.9 L
-754.0 747.3 L
-758.8 755.0 771.8 754.0 781.9 751.2 C
-788.1 748.3 791.5 745.9 797.7 744.0 C
-831.8 680.1 800.6 611.0 784.3 542.8 C
-765.6 478.5 748.3 431.5 739.2 370.5 C
-733.9 347.5 729.1 318.7 730.0 292.8 C
-730.0 292.8 731.0 292.8 731.0 292.8 C
-f
-0 g
-434.4 462.7 m
-460.3 496.8 462.2 532.8 458.4 575.5 C
-456.4 588.0 451.2 599.0 445.4 609.1 C
-435.3 620.1 435.3 622.5 421.9 630.7 C
-411.8 619.6 398.4 604.8 391.6 586.0 C
-393.6 581.7 396.4 584.1 401.7 577.9 C
-403.2 577.4 404.6 576.9 404.6 576.9 C
-407.0 574.5 406.0 573.6 410.4 571.2 C
-414.2 564.0 418.5 558.2 424.3 545.7 C
-437.2 526.5 428.1 489.6 433.9 462.2 C
-433.9 462.2 434.4 462.7 434.4 462.7 C
-f
-0 g
-226.0 482.4 m
-281.7 485.7 311.0 531.3 357.1 565.9 C
-362.8 572.1 364.8 574.0 368.6 580.3 C
-368.6 581.7 369.1 582.7 369.6 584.6 C
-370.0 585.6 371.5 587.0 372.9 588.0 C
-381.6 606.2 L
-377.2 605.2 374.8 602.8 371.0 597.6 C
-346.0 576.4 316.8 552.0 289.9 536.1 C
-288.9 535.2 288.0 534.2 288.0 534.2 C
-273.6 528.0 263.5 527.5 247.6 530.8 C
-242.4 535.2 239.0 536.1 238.0 544.3 C
-239.5 572.1 266.8 600.0 281.2 624.9 C
-293.7 637.9 300.4 650.4 311.5 668.1 C
-312.0 669.1 313.9 669.6 314.8 671.0 C
-319.6 679.6 L
-319.6 680.1 319.6 681.6 319.2 682.0 C
-285.6 649.4 258.7 601.4 229.9 555.8 C
-216.4 529.9 205.4 511.2 210.2 491.0 C
-212.6 483.8 218.8 484.8 226.0 482.4 C
-f
-0 g
-624.9 600.4 m
-645.1 606.2 L
-676.3 622.5 694.5 658.0 710.8 698.4 C
-710.4 704.1 711.3 704.6 712.3 709.4 C
-696.9 685.9 693.6 667.6 662.4 653.7 C
-654.7 651.3 649.4 650.4 639.3 650.8 C
-633.1 654.2 625.4 659.0 621.6 670.5 C
-597.6 620.6 L
-600.9 612.4 604.3 607.2 613.4 603.8 C
-617.2 603.3 621.1 601.4 624.9 600.4 C
-f
-0 g
-528.4 619.2 m
-548.6 617.2 564.9 629.2 578.8 645.6 C
-584.1 651.8 586.5 662.8 591.8 671.0 C
-593.2 681.6 603.8 690.2 601.9 704.1 C
-598.5 705.1 599.0 698.8 594.7 694.0 C
-581.7 679.6 L
-569.7 668.6 545.7 663.8 532.8 673.9 C
-487.2 697.9 467.5 754.5 413.2 772.8 C
-393.1 778.0 387.3 771.8 367.2 760.3 C
-360.9 755.5 357.6 744.9 351.3 740.6 C
-347.0 740.6 349.9 743.5 344.6 747.3 C
-344.1 748.8 343.6 750.2 343.6 750.2 C
-322.5 770.8 L
-312.9 775.2 300.9 784.3 287.0 779.0 C
-283.6 777.1 281.7 776.1 279.3 775.2 C
-250.0 750.7 229.4 705.6 181.4 697.4 C
-165.6 705.1 160.3 715.2 150.7 733.9 C
-130.5 685.4 L
-142.5 663.3 L
-147.3 661.9 147.3 660.4 151.2 655.6 C
-160.8 650.4 169.9 649.4 182.8 655.2 C
-212.1 676.8 L
-213.1 677.7 214.0 678.7 216.0 679.2 C
-238.5 695.5 250.5 727.6 279.3 735.3 C
-296.1 727.2 312.4 715.6 326.8 695.5 C
-330.2 688.3 331.6 684.9 335.5 681.1 C
-345.1 694.5 352.8 717.6 372.9 721.9 C
-423.3 726.7 453.6 670.5 498.2 631.6 C
-510.7 624.4 517.4 621.1 528.4 619.2 C
-f
-%%Trailer
-end
-showpage
Index: gnus/texi/gnusref.tex
diff -u gnus/texi/gnusref.tex:7.2 gnus/texi/gnusref.tex:removed
--- gnus/texi/gnusref.tex:7.2	Wed Jan  7 00:33:24 2004
+++ gnus/texi/gnusref.tex	Sun May  1 19:05:04 2005
@@ -1,1183 +0,0 @@
-%% include file for the Gnus refcard and booklet
-
-\def\progver{5.10}\def\refver{5.10-1} % program and refcard versions
-\def\date{Jan, 2004}
-\def\author{Gnus Bugfixing Girls + Boys $<$bugs@gnus.org$>$}
-
-%%
-\newlength{\keycolwidth}
-\newenvironment{keys}[1]% #1 is the widest key
-{\nopagebreak%\noindent%
-  \settowidth{\keycolwidth}{#1}%
-  \addtolength{\keycolwidth}{\tabcolsep}%
-  \addtolength{\keycolwidth}{-\columnwidth}%
-  \begin{supertabular}{@{}l@{\hspace{\tabcolsep}}p{-\keycolwidth}@{}}}%
-  {\end{supertabular}\\}
-
-%% uncomment the first definition if you do not want pagebreaks in maps
-%%\newcommand{\esamepage}{\samepage}
-\newcommand{\esamepage}{}
-
-\newcommand*{\B}[1]{{\bf#1})}    % bold l)etter
-
-\newcommand{\Title}{%
-  \begin{center}
-    {\bf\LARGE Gnus \progver\ Reference \Guide\\}
-                                %{\normalsize \Guide\ version \refver}
-  \end{center}
-  }
-
-\newcommand*{\Logo}[1]{\centerline{%
-    \makebox[\logoscale\logowidth][l]{\vbox to \logoscale\logoheight
-      {\vfill\epsfig{figure=gnuslogo-#1}}\vspace{-\baselineskip}}}}
-
-\newcommand{\Copyright}{%
-  \begin{center}
-    Copyright \copyright\ 1995 Free Software Foundation, Inc.\\*
-    Copyright \copyright\ 1995 Vladimir Alexiev
-    $<$vladimir@cs.ualberta.ca$>$.\\*
-    Copyright \copyright\ 2000 Felix Natter $<$fnatter@gmx.net$>$.\\*
-    Copyright \copyright\ 2001, 2002, 2003, 2004 \author.\\*
-    Created from the Gnus manual Copyright \copyright\ 1994 Lars Magne
-    Ingebrigtsen.\\*
-    and the Emacs Help Bindings feature (C-h b).\\*
-    Gnus logo copyright \copyright\ 1995 Luis Fernandes.\\*
-  \end{center}
-
-  Permission is granted to make and distribute copies of this reference
-  \guide{} provided the copyright notice and this permission are preserved on
-  all copies.  Please send corrections, additions and suggestions to the
-  current maintainer's email address. \Guide{} last edited on \date.
-  }
-
-\newcommand{\Notes}{%
-  \subsection*{Notes}
-  {\esamepage
-    Gnus is complex. Currently it has some 876 interactive (user-callable)
-    functions. Of these 618 are in the two major modes (Group and
-    Summary/Article). Many of these functions have more than one binding, some
-    have 3 or even 4 bindings. The total number of keybindings is 677. So in
-    order to save 40\% space, every function is listed only once on this
-    \guide, under the ``more logical'' binding. Alternative bindings are given
-    in parentheses in the beginning of the description.
-
-    Many Gnus commands are affected by the numeric prefix. Normally you enter a
-    prefix by holding the Meta key and typing a number, but in most Gnus modes
-    you don't need to use Meta since the digits are not self-inserting. The
-    prefixed behavior of commands is given in [brackets]. Often the prefix is
-    used to specify:
-
-    \quad [distance] How many objects to move the point over.
-
-    \quad [scope] How many objects to operate on (including the current one).
-
-    \quad [p/p] The ``Process/Prefix Convention'': If a prefix is given then it
-    determines how many objects to operate on. Else if there are some objects
-    marked with the process mark \#, these are operated on. Else only the
-    current object is affected.
-
-    \quad [level] A group subscribedness level. Only groups with a lower or
-    equal level will be affected by the operation. If no prefix is given,
-    `gnus-group-default-list-level' is used.  If
-    `gnus-group-use-permanent-levels', then a prefix to the `g' and `l'
-    commands will also set the default level.
-
-    \quad [score] An article score. If no prefix is given,
-    `gnus-summary-default-score' is used. \\*[\baselineskip]
-                                % some keys
-    Gnus startup-commands:
-    \begin{keys}{M-x gnus-unplugged}
-      M-x gnus           & start Gnus. \\
-      M-x gnus-no-server & start Gnus without connecting to server
-      (i.e. to read mail). \\
-    \end{keys}
-    Additionally, there are the two commands \texttt{gnus-plugged} and
-    \texttt{gnus-unplugged}, which are only used if you want to download
-    news and/or read previously downloaded news offline (see C-c C-i g Gnus
-    Unplugged RET). Note: \texttt{gnus-no-server} ignores the stuff in
-    \texttt{gnus-agent-directory}, and thus does not allow you to use Gnus
-    Unplugged.
-                                %
-    \begin{keys}{C-c C-i}
-      C-c C-i & Go to the Gnus online {\bf info}.\\
-      C-c C-b & Send a Gnus {\bf bug} report.\\
-    \end{keys}
-    }}
-
-\newcommand{\GroupLevels}{%
-  The table below assumes that you use the default Gnus levels.
-  Fill your user-specific levels in the blank cells.\\[1\baselineskip]
-  \begin{tabular}{|c|l|l|}
-    \hline
-    Level & Groups & Status \\
-    \hline
-    1 & draft/mail groups   &              \\
-    2 & mail groups         &              \\
-    3 &                     & subscribed   \\
-    4 &                     &              \\
-    5 & default list level  &              \\
-    \hline
-    6 &                     & unsubscribed \\
-    7 &                     &              \\
-    \hline
-    8 &                     & zombies      \\
-    \hline
-    9 &                     & killed       \\
-    \hline
-  \end{tabular}}
-
-\newcommand{\MarkCharacters}{%
-  {\esamepage If a command directly sets a mark, it is shown in parentheses.\\*
-    \newlength{\markcolwidth}
-    \settowidth{\markcolwidth}{` '}% widest character
-    \addtolength{\markcolwidth}{4\tabcolsep}
-    \addtolength{\markcolwidth}{-\columnwidth}
-    \newlength{\markdblcolwidth}
-    \setlength{\markdblcolwidth}{\columnwidth}
-    \addtolength{\markdblcolwidth}{-2\tabcolsep}
-    \begin{tabular}{|c|p{-\markcolwidth}|}
-      \hline
-      \multicolumn{2}{|p{\markdblcolwidth}|}{{\bf ``Read'' Marks.}
-        All these marks appear in the first column of the summary line, and so
-        are mutually exclusive.}\\ 
-      \hline
-      ` ' & (M-u, M SPC, M c) Not read.\\
-      !   & (!, M !, M t) Ticked (interesting).\\
-      ?   & (?, M ?) Dormant (only followups are interesting).\\
-      E   & (E, M e, M x) {\bf Expirable}. Only has effect in mail groups.\\
-      G   & (C, B DEL) Canceled article (or deleted in mailgroups).\\
-      \$  & (M-d, M s x, S x).  Marked as spam.\\
-      \hline\hline
-      \multicolumn{2}{|p{\markdblcolwidth}|}
-      {The marks below mean that the article
-        is read (killed, uninteresting), and have more or less the same effect.
-        Some commands however explicitly differentiate between them (e.g.\ M
-        M-C-r, adaptive scoring).}\\
-      \hline
-      r   & (d, M d, M r) Deleted (marked as {\bf read}).\\
-      C   & (M C; M C-c; M H; c, Z c; Z n; Z C) Killed by {\bf catch-up}.\\
-      F   & SOUPed article. See the manual.\\
-      O   & {\bf Old} (read in a previous session).\\
-      K   & (k, M k; C-k, M K) {\bf Killed}.\\
-      M   & Article marked as read by duplicate suppression.\\
-      Q   & Article is part of a sparse thread (see ``Threading''
-      in the manual).\\
-      R   & {\bf Read} (viewed in actuality).\\
-      X   & Killed by a kill file.\\
-      Y   & Killed due to low score.\\
-      \hline\multicolumn{2}{c}{\vspace{1ex}}\\\hline
-      \multicolumn{2}{|p{\markdblcolwidth}|}
-      {{\bf Marks not affecting visibility}}\\
-      \hline
-      \#  & (\#, M \#, M P p) Processable (will be affected by the next operation).
-      [2]\\
-      A   & {\bf Answered} (followed-up or replied). [2]\\
-      F   & Forwarded. [2]\\
-      $\ast$  & Cached. [2]\\
-      S   & Saved. [2]\\
-      N   & Recently arrived. [2]\\
-      .   & Unseen. [2]\\
-      +   & Over default score. [3]\\
-      $-$ & Under default score. [3]\\
-      $=$ & Has children (thread underneath it). Add `\%e' to
-      `gnus-summary-line-format'. [3]\\
-      \hline
-    \end{tabular}
-    }}
-
-\newcommand{\GroupModeGeneral}{%
-  \begin{keys}{C-c M-C-x}
-    RET     & (=) Enter this group. [Prefix: how many (read) articles to fetch.
-    Positive: newest articles, negative: oldest ones; non-numerical:
-    view all articles, not just unread]\\
-    M-RET   & Enter group quickly.\\
-    M-SPC   & Same as RET but does not expunge and hide dormants.\\
-    M-C-RET & Enter group without any processing, changes will not be permanent.\\
-    SPC     & Select this group and display the first (unread) article. [Same
-    prefix as above.]\\
-    ?       & Give a very short help message.\\
-    $<$     & Go to the beginning of the Group buffer.\\
-    $>$     & Go to the end of the Group buffer.\\
-    ,       & Jump to the lowest-level group with unread articles.\\
-    .       & Jump to the first group with unread articles.\\
-    \^{}      & Enter the Server buffer mode.\\
-    a       & Post an {\bf article} to a group
-              [Prefix: use group under point to find posting-style].\\
-    b       & Find {\bf bogus} groups and delete them.\\
-    c       & Mark all unticked articles in this group as read ({\bf catch-up}).
-    [p/p]\\ 
-    g       & Check the server for new articles ({\bf get}). [level]\\
-    M-g     & Check the server for new articles in this group ({\bf get}). [p/p]\\
-    j       & {\bf Jump} to a group.\\
-    m       & {\bf Mail} a message to someone
-              [Prefix: use group under point to find posting-style].\\
-    n       & Go to the {\bf next} group with unread articles. [distance]\\
-    M-n     & Go to the {\bf next} group on the same or lower level.
-    [distance]\\ 
-    p       & (DEL) Go to the {\bf previous} group with unread articles.
-    [distance]\\ 
-    M-p     & Go to the {\bf previous} group on the same or lower level. [distance]\\ 
-    q       & {\bf Quit} Gnus.\\
-    r       & Re-read the init file ({\bf reset}).\\
-    s       & {\bf Save} the `.newsrc.eld' file (and `.newsrc' if
-    `gnus-save-newsrc-file').\\ 
-    z       & Suspend (kill all buffers of) Gnus.\\
-    B       & {\bf Browse} a foreign server.\\
-    C       & Mark all articles in this group as read ({\bf Catch-up}). [p/p]\\
-    F       & {\bf Find} new groups and process them.\\
-    N       & Go to the {\bf next} group. [distance]\\
-    P       & Go to the {\bf previous} group. [distance]\\
-    Q       & {\bf Quit} Gnus without saving any startup (.newsrc) files.\\
-    R       & {\bf Restart} Gnus.\\
-    Z       & Clear the dribble buffer.\\
-    M-c     & Clear data from group (marks and list of read articles). \\
-    C-c C-s & {\bf Sort} the groups by name, number of unread articles, or level
-    (depending on `gnus-group-sort-function').\\
-    C-c C-x & Run all expirable articles in this group through the {\bf expiry} 
-    process.\\
-    C-c M-C-x & Run all articles in all groups through the {\bf expiry} process.\\
-    C-c M-g & Activate all {\bf groups}.\\
-    C-c C-i & Gnus online-manual ({\bf info}).\\
-    C-x C-t & {\bf Transpose} two groups.\\
-    H f     & Fetch this group's {\bf FAQ} (using ange-ftp).\\
-    H c     & Display this group's {\bf charter}. [Prefix: query for group]\\
-    H C     & Display this group's {\bf control message} (using
-    ange-ftp). [Prefix: query for group]\\
-    H v     & (V) Display the Gnus {\bf version} number.\\
-    H d     & (C-c C-d) Show the {\bf description} of this group
-    [Prefix: re-read from server].\\ 
-    M-d     & {\bf Describe} all groups. [Prefix: re-read from server]\\
-    D g     & Regenerate a Sieve script from group parameters.\\
-    D u     & Regenerate Sieve script and {\bf upload} to server.\\
-  \end{keys}
-  }
-
-\newcommand{\ListGroups}{%
-  {\esamepage
-    \begin{keys}{A M}
-      A d     & (C-c C-M-a) List all groups whose names or {\bf descriptions} match a regexp.\\ 
-      A k     & (C-c C-l) List all {\bf killed} groups.
-      [Prefix: look at active-file from server]\\
-      A l     & List all groups on a specific level.
-      [Prefix: also list groups with no unread articles]\\
-      A a     & (C-c C-a) List all groups whose names match a regexp
-      ({\bf apropos}).\\ 
-      A A     & List the server's active-file.\\
-      A M     & List groups that {\bf match} a regexp.\\
-      A m     & List groups that {\bf match} a regexp and have unread articles. 
-      [level]\\ 
-      A s     & (l) List all {\bf subscribed} groups with unread articles.
-      [level; 5 and lower is the default]\\
-      A u     & (L) List all groups (including read and {\bf unsubscribed}).
-      [level; 7 and lower is the default]\\
-      A z     & List all {\bf zombie} groups.\\
-      A c     & List all groups with cached articles. [level]\\
-      A ?     & List all groups with dormant articles. [level]\\
-    \end{keys}
-    }
-
-  \newcommand{\CreateEditGroups}{%
-    {\esamepage
-      The select methods are indicated in parentheses.\\*
-      \begin{keys}{G DEL}
-        G a     & Make the Gnus list {\bf archive} group. (nndir over ange-ftp)\\
-        G c     & {\bf Customize} this group's parameters.\\
-        G d     & Make a {\bf directory} group (every file must be a posting and files
-        must have numeric names). (nndir)\\
-        G D     & Enter a {\bf directory} as a (temporary) group.
-        (nneething without recording articles read)\\
-        G e     & (M-e) {\bf Edit} this group's select method.\\
-        G E     & {\bf Edit} this group's info (select method, articles read, etc).\\
-        G f     & Make a group based on a {\bf file}. (nndoc)\\
-        G h     & Make the Gnus {\bf help} (documentation) group. (nndoc)\\
-        G k     & Make a {\bf kiboze} group. (nnkiboze)\\
-        G m     & {\bf Make} a new group.\\
-        G p     & Edit this group's {\bf parameters}.\\
-        G r     & Rename this group (does not work with read-only groups!).\\
-        G u     & Create one of the groups mentioned in gnus-{\bf useful}-groups.\\
-        G v     & Add this group to a {\bf virtual} group. [p/p]\\
-        G V     & Make a new empty {\bf virtual} group. (nnvirtual)\\
-        G w     & Create ephemeral group based on web-search. [Prefix: make solid group
-        instead]\\
-        G R     & Make an {\bf RSS} group.\\
-        G DEL   & {\bf Delete} group [Prefix: delete all articles as well].\\
-        G x     & Expunge all deleted articles in an nnimap mailbox.\\
-        G l     & Edit ACL (Access Control {\bf List}) for an nnimap mailbox.\\
-      \end{keys}
-      You can also create mail-groups and read your mail with Gnus (very useful
-      if you are subscribed to mailing lists), using one of the methods
-      nnmbox, nnbabyl, nnml, nnmh, or nnfolder. Read about it in the online info
-      (C-c C-i g Reading Mail RET).
-      }}
-
-                                % TODO:
-  \newcommand{\SoupCommands}{%
-    \begin{keys}{G s w}
-      G s b   & gnus-group-brew-soup: not documented.\\
-      G s p   & gnus-soup-pack-packet: not documented.\\
-      G s r   & nnsoup-pack-replies: not documented.\\
-      G s s   & gnus-soup-send-replies: not documented.\\
-      G s w   & gnus-soup-save-areas: not documented.\\
-    \end{keys}}
-
-  \newcommand{\MarkGroups}{%
-    \begin{keys}{M m}
-      M m     & (\#) Set the process {\bf mark} on this group. [scope]\\
-      M r     & Mark all groups matching regular expression.\\
-      M u     & (M-\#) Remove the process mark from this group ({\bf unmark}).
-      [scope]\\ 
-      M U     & Remove the process mark from all groups (\textbf{umark all}).\\
-      M w     & Mark all groups in the current region. [prefix: unmark]\\
-      M b     & Mark all groups in the {\bf buffer}. [prefix: unmark]\\
-    \end{keys}}
-
-  \newcommand{\GroupTopicsGeneral}{%
-    {\esamepage
-      Topics are ``categories'' for groups. Press t in the group-buffer to
-      toggle gnus-topic-mode (C-c C-i g Group Topics RET).\\*
-      \begin{keys}{C-c C-x}
-        T n     & Prompt for topic {\bf name} and create it.\\
-        T m     & {\bf Move} the current group to some other topic [p/p].\\
-        T j     & {\bf Jump} to a topic.\\
-        T c     & {\bf Copy} the current group to some other topic [p/p].\\
-        T D     & Remove (not delete) the current group [p/p].\\
-        T M     & {\bf Move} all groups matching a regexp to a topic.\\
-        T C     & {\bf Copy} all groups matching a regexp to a topic.\\
-        T H     & Toggle {\bf hiding} of empty topics.\\
-        T r     & {\bf Rename} a topic.\\
-        T DEL   & Delete an empty topic.\\
-        T \#    & Mark all groups in the current topic with the process-mark.\\
-        T M-\#  & Remove the process-mark from all groups in the current topic.\\
-        T TAB   & (TAB) Indent current topic [Prefix: unindent].\\ 
-        M-TAB   & Unindent the current topic.\\
-        RET     & (SPC) Either unfold topic or enter group [level].\\
-        T s     & {\bf Show} the current topic. [Prefix: show permanently]\\
-        T h     & {\bf Hide} the current topic. [Prefix: hide permanently]\\
-        C-c C-x & Expire all articles in current group or topic.\\
-        C-k     & {\bf Kill} a group or topic.\\
-        C-y     & {\bf Yank} a group or topic.\\
-        A T     & List active-file using {\bf topics}.\\
-        G p     & Edit topic-{\bf parameters}.\\
-        T M-n   & Go to {\bf next} topic. [distance]\\
-        T M-p   & Go to {\bf previous} topic. [distance]\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\TopicSorting}{%
-    {\esamepage
-      \begin{keys}{T S m}
-        T S a  & Sort {\bf alphabetically}.\\
-        T S u  & Sort by number of {\bf unread} articles.\\
-        T S l  & Sort by group {\bf level}.\\
-        T S v  & Sort by group score ({\bf value}).\\
-        T S r  & Sort by group {\bf rank}.\\
-        T S m  & Sort by {\bf method}.\\
-        T S e  & Sort by {\bf server} name.\\
-        T S s  & Sort according to `gnus-group-sort-function'.\\
-      \end{keys}
-      With a prefix these commands will sort in reverse order.
-      }
-    }
-
-  \newcommand{\SubscribeKillYankGroups}{%
-    {\esamepage
-      \begin{keys}{S C-k}
-        S k     & (C-k) {\bf Kill} this group.\\
-        S l     & Set the {\bf level} of this group. [p/p]\\
-        S s     & (U) Prompt for a group and toggle its {\bf subscription}.\\
-        S t     & (u) {\bf Toggle} subscription to this group. [p/p]\\
-        S w     & (C-w) Kill all groups in the region.\\
-        S y     & (C-y) {\bf Yank} the last killed group.\\
-        S z     & Kill all {\bf zombie} groups.\\
-        S C-k   & Kill all groups on a certain level.\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\SummaryModeGeneral}{%
-    {\esamepage
-      \begin{keys}{M-RET}
-        SPC     & (A SPC, A n) Select an article, scroll it one page, move to the
-        next one.\\ 
-        DEL     & (A DEL, A p, b) Scroll this article one page back. [distance]\\
-        RET     & (A RET) Scroll this article one line forward. [distance]\\
-        M-RET   & (A M-RET) Scroll this article one line backward. [distance]\\
-        =       & Expand the Summary window (fullsize).
-        [Prefix: shrink to display article window]\\
-                                %
-        \&      & Execute a command on all articles whose header matches a regexp.
-        [Prefix: move backwards]\\
-        M-\&    & Execute a command on all articles having the process mark.\\
-                                %
-        M-n     & (G M-n) Go to the {\bf next} summary line of an unread article.
-        [distance]\\ 
-        M-p     & (G M-p) Go to the {\bf previous} summary line of an unread article. 
-        [distance]\\ 
-        M-s     & {\bf Search} through all subsequent articles for a regexp.\\
-        M-r     & Search through all previous articles for a regexp.\\
-                                %
-        A P     & {\bf Postscript}-print current buffer.\\
-                                %
-        M-k     & Edit this group's {\bf kill} file.\\
-        M-K     & Edit the general {\bf kill} file.\\
-                                %
-        C-t     & Toggle {\bf truncation} of summary lines.\\
-        Y g     & Regenerate the summary-buffer.\\
-        Y c     & Insert all cached articles into the summary-buffer.\\
-                                %
-        M-C-e   & {\bf Edit} the group-parameters.\\
-        M-C-a   & Customize the group-parameters.\\
-                                %
-                                % article handling
-                                %
-        A $<$   & ($<$, A b) Scroll to the beginning of this article.\\
-        A $>$   & ($>$, A e) Scroll to the end of this article.\\
-        A s     & (s) Perform an i{\bf search} in the article buffer.\\
-                                %
-        A D     & (C-d) Un{\bf digestify} this article into a separate group.
-        [Prefix: force digest]\\
-        M-C-d   & Like C-d, but open several documents in nndoc-groups, wrapped
-        in an nnvirtual group [p/p]\\
-                                %
-        A g     & (g) (Re)fetch this article ({\bf get}). [Prefix: get raw version]\\ 
-        A r     & (\^{}, A \^{}) Fetch the parent(s) of this article.
-        [Prefix: if positive fetch \textit{n} ancestors;
-        negative: fetch only the \textit{n}th ancestor]\\
-        A t     & {\bf Translate} this article.\\
-        A R     & Fetch all articles mentioned in the {\bf References}-header.\\
-        A T     & Fetch full \textbf{thread} in which the current article appears.\\
-        M-\^{}  & Fetch the article with a given Message-ID.\\
-        S y     & {\bf Yank} the current article into an existing message-buffer.
-        [p/p]\\
-        A M     & Setup group parameters for {\bf mailing} lists from
-        headers. [Prefix: replace old settings]\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\MIMESummary}{%
-    {\esamepage
-      For the commands operating on one MIME part (a subset of gnus-article-*), a
-      prefix selects which part to operate on. If the point is placed over a
-      MIME button in the article buffer, use the corresponding bindings for the
-      article buffer instead.
-      \begin{keys}{W M w}
-        K v      & (b, W M b) {\bf View} the MIME-part.\\
-        K o      & {\bf Save} the MIME part.\\
-        K c      & {\bf Copy} the MIME part.\\
-        K e      & View the MIME part {\bf externally}.\\
-        K i      & View the MIME part {\bf internally}.\\
-        K $\mid$ & Pipe the MIME part to an external command.\\
-        K b      & Make all the MIME parts have buttons in front of them.\\
-        K m      & Try to repair {\bf multipart-headers}.\\
-        K C      & View the MIME part using a different {\bf charset}.\\
-        X m      & Save all parts matching a MIME type to a directory. [p/p]\\
-        M-t      & Toggle the buttonized display of the article buffer.\\
-        W M w    & Decode RFC2047-encoded words in the article headers.\\
-        W M c    & Decode encoded article bodies. [Prefix: prompt for charset]\\
-        W M v    & View all MIME parts in the current article.\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\SortSummary}{%
-    {\esamepage
-      \begin{keys}{C-c C-s C-a}
-        C-c C-s C-a & Sort the summary-buffer by {\bf author}.\\
-        C-c C-s C-d & Sort the summary-buffer by {\bf date}.\\
-        C-c C-s C-i & Sort the summary-buffer by article score.\\
-        C-c C-s C-l & Sort the summary-buffer by amount of {\bf lines}.\\
-        C-c C-s C-c & Sort the summary-buffer by length.\\
-        C-c C-s C-n & Sort the summary-buffer by article {\bf number}.\\
-        C-c C-s C-s & Sort the summary-buffer by {\bf subject}.\\
-        C-c C-s C-r & Sort the summary-buffer {\bf randomly}.\\
-        C-c C-s C-o & Sort the summary-buffer using the default method.\\
-      \end{keys}
-      With a prefix these functions sort in reverse order.
-      }
-    }
-
-  \newcommand{\MailGroups}{% formerly \Bsubmap
-    {\esamepage
-      These commands (except `B c') are only valid in a mail group.\\*
-      \begin{keys}{B M-C-e}
-        B DEL   & (B backspace, B delete) {\bf Delete} the mail article from disk (!).
-        [p/p]\\
-        B B     & Crosspost this article to another group.\\
-        B c     & {\bf Copy} this article from any group to a mail group. [p/p]\\
-        B e     & {\bf Expire} all expirable articles in this group. [p/p]\\
-        B i     & {\bf Import} a random file into this group.\\
-        B I     & Create an empty article in this group.\\
-        B m     & {\bf Move} the article from one mail group to another. [p/p]\\
-        B p     & Query whether the article was {\bf posted} as well.\\
-        B q     & {\bf Query} where the article will end up after fancy splitting\\
-        B r     & {\bf Respool} this mail article. [p/p]\\
-        B t     & {\bf Trace} the fancy splitting patterns applied to this article.\\
-        B w     & (e) Edit this article.\\
-        B M-C-e & {\bf Expunge} (delete from disk) all expirable articles in this group
-        (!). [p/p]\\ 
-        K E     & {\bf Encrypt} article body. [p/p]\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\DraftGroup}{% formerly \Dsubmap
-    {\esamepage
-      The ``drafts''-group contains messages that have been saved but not sent
-      and rejected articles. \\*
-      \begin{keys}{B DEL}
-        D e      & \textbf{edit} message.\\
-        D s      & \textbf{Send} message. [p/p]\\
-        D S      & \textbf{Send} all messages.\\
-        D t      & \textbf{Toggle} sending (mark as unsendable).\\
-        B DEL    & \textbf{Delete} message (like in mailgroup).\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\SelectArticles}{% formerly \Gsubmap
-    {\esamepage
-      These commands select the target article. They do not understand the prefix.\\*
-      \begin{keys}{G C-n}
-        h       & Enter article-buffer.\\
-        G b     & (,) Go to the {\bf best} article (the one with highest score).\\
-        G f     & (.) Go to the {\bf first} unread article.\\
-        G n     & (n) Go to the {\bf next} unread article.\\
-        G p     & (p) Go to the {\bf previous} unread article.\\
-                                %
-        G N     & (N) Go to {\bf the} next article.\\
-        G P     & (P) Go to the {\bf previous} article.\\
-                                %
-        G C-n   & (M-C-n) Go to the {\bf next} article with the same subject.\\
-        G C-p   & (M-C-p) Go to the {\bf previous} article with the same subject.\\
-                                %
-        G l     & (l) Go to the previously read article ({\bf last-read-article}).\\
-        G o     & Pop an article off the summary history and go to it.\\
-                                %
-        G g     & Search an article via subject.\\
-        G j     & (j) Search an article via Message-Id or subject.\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\ArticleModeGeneral}{%
-    {\esamepage
-      The normal navigation keys work in Article mode. Some additional keys are:\\
-      \begin{keys}{C-c RET}
-        C-c \^{} & Get the article with the Message-ID near point.\\
-        C-c RET & Send reply to address near point.\\
-        h       & Go to the \textbf{header}-line of the article in the
-        summary-buffer.\\
-        s       & Go to \textbf{summary}-buffer.\\
-        RET     & (middle mouse button) Activate the button at point to follow
-        an URL or Message-ID.\\
-        TAB     & Move the point to the next button.\\
-        M-TAB   & Move point to previous button.\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\WashArticle}{% formerly \Wsubmap
-    {\esamepage
-      \begin{keys}{W W H}
-        W 6     & Translate a base64 article.\\
-        W a     & Strip certain {\bf headers} from body.\\
-        W b     & Make Message-IDs and URLs in the article mouse-clickable
-        {\bf buttons}.\\  
-        W c     & Translate CRLF-pairs to LF and then the remaining CR's to LF's.\\
-        W d     & Treat {\bf dumbquotes}.\\
-        W e     & Treat {\bf emphasized} text.\\
-        W h     & Treat {\bf HTML}.\\
-        W l     & (w) Remove page breaks ({\bf\^{}L}) from the article.\\
-        W m     & {\bf Morse} decode article.\\
-        W o     & Treat {\bf overstrike} or underline (\^{}H\_) in the article.\\
-        W p     & Verify X-{\bf PGP}-Sig header.\\
-        W q     & Treat {\bf quoted}-printable in the article.\\
-        W r     & (C-c C-r) Do a Caesar {\bf rotate} (rot13) on the article.\\
-        W s     & Verify (and decrypt) a {\bf signed} message.\\
-        W t     & (t) {\bf Toggle} display of all headers.\\
-        W u     & {\bf Unsplit} broken URLs.\\
-        W v     & (v) Toggle permanent {\bf verbose} displaying of all headers.\\
-        W w     & Do word {\bf wrap} in the article.\\
-        W B     & Add clickable {\bf buttons} to the article headers.\\
-        W C     & {\bf Capitalize} first word in each sentence.\\
-        W Q     & Fill long lines.\\
-        W Z     & Translate a HZ-encoded article.\\
-                                %
-        W G u   & {\bf Unfold} folded header lines.\\
-        W G f   & {\bf Fold} all header lines.\\
-        W G n   & Unfold {\bf Newsgroups:} and Follow-Up-To:.\\
-                                %
-        W Y c   & Repair broken {\bf citations}.\\
-        W Y a   & Repair broken {\bf attribution} lines.\\
-        W Y u   & {\bf Unwrap} broken citation lines.\\
-        W Y f   & Do a {\bf full} deuglification (W Y c, W Y a, W Y u).\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\BlankAndWhitespace}{% 
-    {\esamepage
-      \begin{keys}{W E w}
-        W E l   & Strip blank {\bf lines} from the beginning of the article.\\
-        W E m   & Replace blank lines with empty lines and remove {\bf multiple}
-        blank lines.\\
-        W E t   & Remove {\bf trailing} blank lines.\\
-        W E a   & Strip blank lines at the beginning and the end
-        (W E l, W E m and W E t).\\
-        W E A   & Strip {\bf all} blank lines.\\
-        W E s   & Strip leading blank lines from the article body.\\
-        W E e   & Strip trailing blank lines from the article body.\\
-        W E w   & Remove leading {\bf whitespace} from all headers.\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\Picons}{% 
-    {\esamepage
-      \begin{keys}{W D D}
-        W D s   & (W g) Display {\bf smilies}.\\
-        W D x   & (W f) Look for and display any X-{\bf Face} headers.\\
-        W D d   & Display any Face headers.\\
-        W D n   & Toggle picons in {\bf Newsgroups} and Followup-To.\\
-        W D m   & Toggle picons in {\bf mail} headers (To and Cc).\\
-        W D f   & Toggle picons in {\bf From}.\\
-        W D D   & Remove all images from the article buffer.\\
-      \end{keys}
-      }
-    }
-
-  \newcommand{\TimeAndDate}{% 
-    {\esamepage
-      \begin{keys}{W T u}
-        W T u   & (W T z) Display the article timestamp in GMT ({\bf UT, ZULU}).\\
-        W T i   & Display the article timestamp in {\bf ISO} 8601.\\
-        W T l   & Display the article timestamp in the {\bf local} timezone.\\
-        W T s   & Display according to `gnus-article-time-format'.\\
-        W T e   & Display the time {\bf elapsed} since it was sent.\\
-        W T o   & Display the {\bf original} timestamp.\\
-        W T p   & Display the date in format that's {\bf
-          pronounceable} in English.\\        
-      \end{keys}
-      }
-    }
-
-  \newcommand{\HideHighlightArticle}{%
-    {\esamepage
-      \begin{keys}{W W C-c}
-        W W a   & Hide {\bf all} unwanted parts. Calls W W h, W W s, W W C-c.\\
-        W W h   & Hide article {\bf headers}.\\
-        W W b   & Hide {\bf boring} headers.\\
-        W W s   & Hide {\bf signature}.\\
-        W W l   & Hide {\bf list} identifiers in subject-header.\\
-        W W P   & Hide {\bf PEM} (privacy enhanced messages).\\
-        W W B   & Hide banner specified by group parameter.\\
-        W W c   & Hide {\bf citation}.\\
-        W W C-c & Hide {\bf citation} using a more intelligent algorithm.\\
-        W W C   & Hide cited text in articles that aren't roots.\\
-        W H a   & Highlight {\bf all} parts. Calls W b, W H c, W H h, W H s.\\
-        W H c   & Highlight article {\bf citations}.\\
-        W H h   & Highlight article {\bf headers}.\\
-        W H s   & Highlight article {\bf signature}.\\
-      \end{keys}
-      For all hiding-commands: A positive prefix always hides, and a negative
-      prefix will show what was previously hidden.
-      }}
-
-  \newcommand{\MIMEArticleMode}{%
-    {\esamepage
-      \begin{keys}{RET}
-        RET     & (BUTTON-2) Toggle display of the MIME object.\\
-        v       & Prompt for a method and then view object using this method.\\
-        o       & Prompt for a filename and save the MIME object.\\
-        C-o     & Prompt for a filename to save the MIME object to and remove it.\\
-        d       & {\bf Delete} the MIME object.\\
-        c       & {\bf Copy} the MIME object to a new buffer and display this buffer.\\
-        i       & Display the MIME object in this buffer.\\
-        C       & Copy the MIME object to a new buffer and display this buffer using {\bf Charset} \\
-        E       & View internally. \\
-        e       & View {\bf externally}. \\
-        t       & View the MIME object as a different {\bf type}.\\
-        p       & {\bf Print} the MIME object.\\
-        $\mid$  & Pipe the MIME object to a process.\\
-        .       & Take action on the MIME object.\\
-      \end{keys}
-      }
-    }
-
-  %% end of article mode for reading ..........................................
-
-  \newcommand{\MarkArticlesGeneral}{% formerly \Msubmap
-    {\esamepage
-      \begin{keys}{M M-C-r}
-        d       & (M d, M r) Mark this article as read and move to the next one.
-        [scope]\\ 
-        D       & Mark this article as read and move to the previous one. [scope]\\
-        !       & (u, M !, M t) Tick this article (mark it as interesting) and move
-        to the next one. [scope]\\
-        U       & Tick this article and move to the previous one. [scope]\\ 
-        M ?     & (?) Mark this article as dormant (only followups are
-        interesting). [scope]\\ 
-        M D     & Show all {\bf dormant} articles (normally they are hidden unless they
-        have any followups).\\
-        M M-D   & Hide all {\bf dormant} articles.\\
-        C-w     & Mark all articles between point and mark as read.\\
-        M-u     & (M SPC, M c) Clear all marks from this article and move to the next
-        one. [scope]\\ 
-        M-U     & Clear all marks from this article and move to the previous one.
-        [scope]\\
-                                %
-        M e     & (E, M x) Mark this article as {\bf expirable}. [scope]\\
-                                %
-        M k     & (k) {\bf Kill} all articles with the same subject then select the
-        next unread one.\\ 
-        M K     & (C-k) {\bf Kill} all articles with the same subject as this one.\\
-                                %
-        M C     & {\bf Catch-up} the articles that are not ticked and not dormant.\\
-        M C-c   & {\bf Catch-up} all articles in this group.\\
-        M H     & {\bf Catch-up} (mark read) this group to point (to-{\bf here}).\\
-                                %
-        M b     & Set a {\bf bookmark} in this article.\\
-        M B     & Remove the {\bf bookmark} from this article.\\
-                                %
-        M M-r   & (x) Expunge all {\bf read} articles from this group.\\
-        M M-C-r & Expunge all articles having a given mark.\\
-        M S     & (C-c M-C-s) {\bf Show} all expunged articles.\\
-        M M C-h & Displays some more keys doing ticking slightly differently.\\
-      \end{keys}
-      The variable `gnus-summary-goto-unread' controls what happens after a mark
-      has been set (C-x C-i g Setting Marks RET)
-      }}
-
-  \newcommand{\MarkByScore}{%
-    \begin{keys}{M V m}
-      M V c   & {\bf Clear} all marks from all high-scored articles. [score]\\
-      M V k   & {\bf Kill} all low-scored articles. [score]\\
-      M V m   & Mark all high-scored articles with a given {\bf mark}. [score]\\
-      M V u   & Mark all high-scored articles as interesting (tick them). [score]\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\ProcessMark}{%
-  {\esamepage 
-    These commands set and remove the process mark (\#). You only need to use
-    it if the set of articles you want to operate on is non-contiguous. Else
-    use a numeric prefix.\\*
-    \begin{keys}{M P R}
-      M P p   & (\#, M \#) Mark this article.\\
-      M P u   & (M-\#, M M-\#) \textbf{unmark} this article.\\
-      M P b   & Mark all articles in {\bf buffer}.\\
-      M P r   & Mark all articles in the {\bf region}.\\
-      M P g   & Unmark all articles in the region.\\
-      M P R   & Mark all articles matching a {\bf regexp}.\\
-      M P G   & Unmark all articles matching a regexp.\\
-      M P t   & Mark all articles in this (sub){\bf thread}.\\
-      M P T   & Unmark all articles in this (sub){\bf thread}.\\
-      M P s   & Mark all articles in the current {\bf series}.\\
-      M P S   & Mark all {\bf series} that already contain a marked article.\\
-      M P a   & Mark {\bf all} articles (in series order).\\
-      M P U   & \textbf{unmark} all articles.\\
-      M P i   & {\bf Invert} the list of process-marked articles.\\
-      M P k   & Push the current process-mark set onto stack and unmark
-      all articles.\\
-      M P y   & Pop process-mark set from stack and restore it.\\
-      M P w   & Push process-mark set on the stack.\\
-      M P v   & Mark all articles with score over the default score. [Prefix: score]\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\Limiting}{%
-  {\esamepage
-    \begin{keys}{/M}
-      //   & (/s) Limit the summary-buffer to articles matching {\bf subject}.\\
-      /a   & Limit the summary-buffer to articles matching {\bf author}.\\
-      /x   & Limit depending on ``extra'' headers.\\
-      /u   & (x) Limit to {\bf unread} articles.
-      [Prefix: also exclude ticked and dormant articles]\\
-      /.   & Limit to unseen articles.\\
-      /m   & Limit to articles marked with specified {\bf mark}.\\
-      /t   & Ask for a number and exclude articles younger than that many days.
-      [Prefix: exclude older articles]\\
-      /n   & Limit to current article. [p/p]\\
-      /w   & Pop the previous limit off the stack and restore it.
-      [Prefix: pop all limits]\\
-      /v   & Limit to score. [score]\\
-      /E   & (M S) Include all expunged articles in the limit.\\
-      /D   & Include all dormant articles in the limit.\\
-      /*   & Limit to cached articles.\\
-      Y C  & Include all cached articles in the limit.\\
-      /d   & Exclude all dormant articles from the limit.\\
-      /M   & Exclude all marked articles.\\
-      /T   & Include all articles from the current thread in the limit.\\
-      /c   & Exclude all dormant articles that have no children from the limit.\\
-      /C   & Mark all excluded unread articles as read.
-      [Prefix: also mark ticked and dormant articles]\\
-      /o   & Insert all {\bf old} articles. [Prefix: how many]\\
-      /N   & Insert all {\bf new} articles.\\
-      /p   & Limit to articles {\bf predicated} in the `display' group parameter.\\
-      /r   & Limit to {\bf replied} articles. [Prefix: unreplied]\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\OutputArticles}{% formerly \Osubmap
-  {\esamepage
-    \begin{keys}{O m}
-      O o     & (o, C-o) Save this article using the default article saver. [p/p]\\
-      O b     & Save this article's {\bf body} in plain file format [p/p]\\
-      O f     & Save this article in plain {\bf file} format. [p/p]\\
-      O F     & like O f, but overwrite file's contents. [p/p]\\
-      O h     & Save this article in {\bf mh} folder format. [p/p]\\
-      O m     & Save this article in {\bf mail} format. [p/p]\\
-      O r     & Save this article in {\bf rmail} format. [p/p]\\
-      O v     & Save this article in {\bf vm} format. [p/p]\\
-      O p     & ($\mid$) {\bf Pipe} this article to a shell command. [p/p]\\
-      O P     & \textbf{Print} this article using Muttprint. [p/p]\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\PostReplyetc}{% formerly \Ssubmap
-  {\esamepage
-    These commands put you in a separate news or mail buffer. See the section
-    about composing messages for more information.\\*
-                                %After
-                                %editing the article, send it by pressing C-c C-c.  If you are in a
-                                %foreign group and want to post the article using the foreign server, give
-                                %a prefix to C-c C-c.\\* 
-    \begin{keys}{S O m}
-      S p     & (a) {\bf Post} an article to this group.\\
-      S f     & (f) Post a {\bf followup} to this article.\\
-      S F     & (F) Post a {\bf followup} and include the original. [p/p]\\
-      S o p   & Forward this article as a {\bf post} to a newsgroup.\\
-      S M-c   & Send a complaint about excessive crossposting to the author of this
-      article. [p/p]\\
-                                %
-      S m     & (m) Send a {\bf mail} to some other person.\\
-      S r     & (r) Mail a {\bf reply} to the author of this article.\\
-      S R     & (R) Mail a {\bf reply} and include the original. [p/p]\\
-      S B r   & Like S r but ignore the Reply-To: header.\\
-      S B R   & Like S R but ignore the Reply-To: header.\\
-      S w     & Mail a {\bf wide} reply to this article.\\
-      S W     & Mail a {\bf wide} reply to this article and include
-      the original.\\
-      S v     & Mail a {\bf very} wide reply to this article.\\
-      S V     & Mail a {\bf very} wide reply to this article and include the original.\\
-      S o m   & (C-c C-f) Forward this article by {\bf mail} to a person.\\
-      S D b   & Resend {\bf bounced} mail.\\
-      S D r   & {\bf Resend} mail to a different person.\\
-      S D e   & {\bf Edit} and resend.\\
-                                %
-      S n     & Post a followup via {\bf news} even if you got the message
-      through mail.\\
-      S N     & Post a followup via {\bf news} and include the original mail.
-      [p/p]\\
-                                %
-      S c     & (C) {\bf Cancel} this article (only works if it is
-      your own). [p/p]\\
-      S s     & {\bf Supersede} this article with a new one (only for own
-      articles).\\
-                                %
-      S O m   & Digest these series and forward by {\bf mail}. [p/p]\\
-      S O p   & Digest these series and forward as a {\bf post} to a newsgroup.
-      [p/p]\\ 
-                                %
-      S u     & {\bf Uuencode} a file and post it as a series.\\
-    \end{keys}
-    If you want to cancel or supersede an article you just posted (before it
-    has appeared on the server), go to the *post-news* buffer, change
-    `Message-ID' to `Cancel' or `Supersedes' and send it again with C-c C-c.
-    }}
-
-\newcommand{\Threading}{% formerly \Tsubmap
-  {\esamepage
-    \begin{keys}{T M-\#}
-      T \#    & Mark this thread with the process mark.\\
-      T M-\#  & Remove process-marks from this thread.\\
-                                %
-      T t     & Re-{\bf thread} the current article's thread.\\
-      T \^{}  & Make the current article child of the marked (or previous) article.\\
-                                % movement
-      T n     & (M-C-f, M-down) Go to the {\bf next} thread. [distance]\\
-      T p     & (M-C-b, M-up) Go to the {\bf previous} thread. [distance]\\
-      T d     & {\bf Descend} this thread. [distance]\\
-      T u     & Ascend this thread ({\bf up}-thread). [distance]\\
-      T o     & Go to the top of this thread.\\
-                                %
-      T s     & {\bf Show} the thread hidden under this article.\\
-      T h     & {\bf Hide} this (sub)thread.\\
-                                %
-      T i     & {\bf Increase} the score of this thread.\\
-      T l     & (M-C-l) {\bf Lower} the score of this thread.\\
-                                %
-      T k     & (M-C-k) {\bf Kill} the current (sub)thread. [Negative prefix:
-      tick it, positive prefix: unmark it.]\\
-                                %
-      T H     & {\bf Hide} all threads.\\
-      T S     & {\bf Show} all hidden threads.\\
-      T T     & (M-C-t) {\bf Toggle} threading.\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\Scoring}{% formerly \Vsubmap
-  {\esamepage
-    Read about Adaptive Scoring in the online info.\\*
-    \begin{keys}{\bf A p m l}
-      V a     & {\bf Add} a new score entry, specifying all elements.\\
-      V c     & Specify a new score file as {\bf current}.\\
-      V e     & {\bf Edit} the current score alist.\\
-      V f     & Edit a score {\bf file} and make it the current one.\\
-      V m     & {\bf Mark} all articles below a given score as read.\\
-      V s     & Set the {\bf score} of this article.\\
-      V t     & Display all score rules applied to this article ({\bf track}).\\
-      W w     & List {\bf words} used in scoring.\\
-      V x     & {\bf Expunge} all low-scored articles. [score]\\
-      V C     & {\bf Customize} the current score file through a user-friendly
-      interface.\\
-      V F     & {\bf Flush} the cache of score files.\\
-      V R     & {\bf Re-score} the summary buffer.\\
-      V S     & Display the {\bf score} of this article.\\
-      \bf A p m l& Make a scoring entry based on this article.\\
-    \end{keys}
-    The four letters stand for:\\*
-    \quad \B{A}ction: I)ncrease, L)ower;\\*
-    \quad \B{p}art: a)uthor (from), s)ubject, x)refs (cross-posting), d)ate, l)ines,
-    message-i)d, t)references (parent), f)ollowup, b)ody, h)ead (all headers);\\*
-    \quad \B{m}atch type:\\*
-    \qquad string: s)ubstring, e)xact, r)egexp, f)uzzy,\\*
-    \qquad date: b)efore, a)t, n)this,\\*
-    \qquad number: $<$, =, $>$;\\*
-    \quad \B{l}ifetime: t)emporary, p)ermanent, i)mmediate.
-
-    If you type the second letter in uppercase, the remaining two are assumed
-    to be s)ubstring and t)emporary. 
-    If you type the third letter in uppercase, the last one is assumed to be 
-    t)emporary.
-
-    \quad Extra keys for manual editing of a score file:\\*
-    \begin{keys}{C-c C-c}
-      C-c C-c & Finish editing the score file.\\
-      C-c C-d & Insert the current {\bf date} as number of days.\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\ExtractSeries}{% formerly \Xsubmap
-  {\esamepage
-    Gnus recognizes if the current article is part of a series (multipart
-    posting whose parts are identified by numbers in their subjects, e.g.{}
-    1/10\dots10/10) and processes the series accordingly. You can mark and
-    process more than one series at a time. If the posting contains any
-    archives, they are expanded and gathered in a new group.\\*
-    \begin{keys}{X p}
-      X b     & Un-{\bf binhex} these series. [p/p]\\
-      X o     & Simply {\bf output} these series (no decoding). [p/p]\\ 
-      X p     & Unpack these {\bf postscript} series. [p/p]\\
-      X s     & Un-{\bf shar} these series. [p/p]\\
-      X u     & {\bf Uudecode} these series. [p/p]\\
-    \end{keys}
-
-    Each one of these commands has four variants:\\*
-    \begin{keys}{X v \bf Z}
-      X   \bf z & Decode these series. [p/p]\\
-      X   \bf Z & Decode and save these series. [p/p]\\
-      X v \bf z & Decode and view these series. [p/p]\\
-      X v \bf Z & Decode, save and view these series. [p/p]\\
-    \end{keys}
-    where {\bf z} or {\bf Z} identifies the decoding method (b, o, p, s, u).
-
-    An alternative binding for the most-often used of these commands is\\*
-    \begin{keys}{C-c C-v C-v}
-      C-c C-v C-v & (X v u) Uudecode and view these series. [p/p]\\
-    \end{keys}
-    }}
-
-\newcommand{\ExitSummary}{% formerly \Zsubmap
-  {\esamepage
-    \begin{keys}{Z G}
-      Z Z     & (q, Z Q) Exit this group.\\
-      Z E     & (Q) {\bf Exit} without updating the group information.\\
-                                %
-      Z c     & (c) Mark all unticked articles as read ({\bf catch-up}) and exit.\\
-      Z C     & Mark all articles as read ({\bf catch-up}) and exit.\\
-                                %
-      Z n     & Mark all articles as read and go to the {\bf next} group.\\
-      Z N     & Exit and go to {\bf the} next group.\\
-      Z P     & Exit and go to the {\bf previous} group.\\
-                                %
-      Z G     & (M-g) Check for new articles in this group ({\bf get}).\\
-      Z R     & (C-x C-s) Exit this group, and then enter it again ({\bf reenter}).
-      [Prefix: select all articles, read and unread.]\\
-      Z s     & Update and save the dribble buffer. [Prefix: save .newsrc* as well]\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\MsgCompositionGeneral}{%
-  Press C-c ? in the composition-buffer to get this information.\\*
-  {\esamepage
-    \begin{keys}{C-c C-m}
-                                % sending
-      C-c C-c & Send message and exit. [Prefix: send via foreign server]\\
-      C-c C-s & Send message. [Prefix: send via foreign server]\\
-      C-c C-d & Don't send message (save as \textbf{draft}).\\
-      C-c C-k & \textbf{Kill} message-buffer.\\
-      C-c C-m & {\bf Mail} reply to the address near point.
-      [Prefix: include the original]\\
-                                % modify headers/body
-      C-c C-o & Sort headers.\\
-      C-c C-e & \textbf{Elide} region.\\
-      C-c C-v & Kill everything outside region.\\
-      C-c C-r & Do a \textbf{Rot-13} on the body.\\
-      C-c C-w & Insert signature (from `message-signature-file').\\
-      C-c C-z & Kill everything up to signature.\\
-      C-c C-y & \textbf{Yank} original message.\\
-      C-c C-q & Fill the yanked message.\\
-      C-c M-C-y & \textbf{Yank} a buffer and quote it.\\
-      M-RET   & Insert four newlines and format quoted text. [Prefix:
-      justify as well]\\
-      C-c M-r & \textbf{Rename} message buffer. [Prefix: ask for new name]\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\MsgCompositionMovementArticle}{%
-  The following functions create the header-field if necessary.\\*
-  {\esamepage
-    \begin{keys}{C-c C-f C-u}
-      C-c TAB & Move to \textbf{signature}.\\
-      C-c C-b & Move to \textbf{body}.\\
-      C-c C-f C-t & (C-c C-t) Move to \textbf{To:}.\\
-      C-c C-f C-c & Move to \textbf{Cc:}.\\
-      C-c C-f C-b & Move to \textbf{Bcc:}.\\
-      C-c C-f C-w & Move to \textbf{Fcc:}.\\
-      C-c C-f C-s & Move to \textbf{Subject:}.\\
-      C-c C-f C-r & Move to \textbf{Reply-To:}.\\
-      C-c C-f C-f & Move to \textbf{Followup-To:}.\\
-      C-c C-f C-n & (C-c C-n) Move to \textbf{Newsgroups:}.\\
-      C-c C-f C-u & Move to \textbf{Summary:}.\\
-      C-c C-f C-k & Move to \textbf{Keywords:}.\\
-      C-c C-f C-d & Move to \textbf{Distribution:}.\\
-      C-c C-f C-m & Move to \textbf{Mail-Followup-To:}.\\
-      C-c C-f C-o & Move to \textbf{From:}.\\
-      C-c C-f C-a & Insert a reasonable \textbf{Mail-Followup-To:} for
-      an unsubscribed list. [Prefix: include addresses in \textbf{Cc:}]\\
-      C-c C-f TAB & (C-c C-u) Move to \textbf{Importance:}.\\
-      C-c M-n     & Insert \textbf{Disposition-Notification-To:}
-      (request receipt).\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\MsgCompositionMML}{%
-  {\esamepage
-    \begin{keys}{C-c C-m P}
-      C-c C-m f   & (C-c C-a) Attach \textbf{file}.\\
-      C-c C-m b   & Attach contents of \textbf{buffer}.\\
-      C-c C-m e   & Attach \textbf{external} file (ftp..).\\
-      C-c C-m P   & Create MIME-\textbf{preview} (new
-      buffer). [Prefix: show raw MIME preview]\\
-      C-c C-m v   & \textbf{Validate} article.\\
-      C-c C-m p   & Insert \textbf{part}.\\
-      C-c C-m m   & Insert \textbf{multi}-part.\\
-      C-c C-m q   & \textbf{Quote} region.\\
-      C-c C-m c s & Encrypt message using \textbf{S/MIME}.\\
-      C-c C-m c o & Encrypt message using PGP.\\
-      C-c C-m c p & Encrypt message using \textbf{PGP/MIME}.\\
-      C-c C-m s s & Sign message using \textbf{S/MIME}.\\
-      C-c C-m s o & Sign message using PGP.\\
-      C-c C-m s p & Sign message using \textbf{PGP/MIME}.\\
-      C-c C-m C-n & Remove security related MML tags from message.\\
-                                % TODO: narrow headers (C-c C-m n) ?
-    \end{keys}
-    }
-  }
-
-%% TODO:
-\newcommand{\ServerMode}{%
-  {\esamepage
-    To enter this mode, press \^{} while in Group mode.\\*
-    \begin{keys}{SPC}
-      SPC     & (RET) Browse this server.\\
-      a       & {\bf Add} a new server.\\
-      c       & {\bf Copy} this server.\\
-      e       & {\bf Edit} a server.\\
-      k       & {\bf Kill} this server. [scope]\\
-      l       & {\bf List} all servers.\\
-      q       & Return to the group buffer ({\bf quit}).\\
-      s       & Request that the server scan its sources for new articles.\\
-      g       & Request that the server regenerate its data.\\
-      y       & {\bf Yank} the previously killed server.\\
-      O       & Try to {\bf open} a connection to this server.\\
-      C       & {\bf Close} connection to this server.\\
-      D       & Mark this server as unreachable ({\bf deny}).\\
-      M-o     & {\bf Open} the connection to all servers.\\
-      M-c     & {\bf Close} the connection to all servers.\\
-      R       & Make all denied servers into closed servers.\\
-      L       & Set server status to offline.\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\BrowseServer}{%
-  {\esamepage
-    To enter this mode, press `B' while in Group mode.\\*
-    \begin{keys}{RET}
-      RET     & Enter the current group.\\
-      SPC     & Enter the current group and display the first article.\\
-      ?       & Give a very short help message.\\
-      n       & Go to the {\bf next} group. [distance]\\
-      p       & Go to the {\bf previous} group. [distance]\\
-      q       & (l) {\bf Quit} browse mode.\\
-      u       & Subscribe to the current group. [scope]\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\GroupUnplugged}{%
-  {\esamepage
-    \begin{keys}{J S}
-      J j & Toggle plugged-state.\\
-      J s & Fetch articles from all groups for offline-reading.\\
-      J u & Fetch all eligible articles from this group.\\
-      J S & \textbf{Send} all sendable messages in the drafts group.\\
-                                %
-      J c & Enter \textbf{category} buffer.\\
-      J a & \textbf{Add} this group to an Agent category [p/p].\\
-      J r & \textbf{Remove} this group from its Agent category [p/p].\\
-      J Y & Synchronize flags changed while unplugged with remote server.\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\SummaryUnplugged}{%
-  {\esamepage
-    \begin{keys}{J M-\#}
-      J \#   & \textbf{Mark} the article for downloading.\\
-      J M-\# & \textbf{Unmark} the article for downloading.\\
-      @      & \textbf{Toggle} whether to download the article.\\
-      J c    & Mark all undownloaded articles as read (\textbf{catch-up}).\\
-      J u    & Download all downloadable articles from group.\\
-    \end{keys}
-    }
-  }
-
-\newcommand{\ServerUnplugged}{%
-  {\esamepage
-    \begin{keys}{J a}
-      J a & \textbf{Add} the current server to the list of servers covered
-      by the agent.\\
-      J r & \textbf{Remove} the current server from the list of servers covered
-      by the agent.\\
-    \end{keys}
-    }
-  }
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "refcard.tex"
-%%% End:
Index: gnus/texi/infohack.el
diff -u gnus/texi/infohack.el:7.2 gnus/texi/infohack.el:7.4
--- gnus/texi/infohack.el:7.2	Thu Mar  4 00:45:34 2004
+++ gnus/texi/infohack.el	Wed Sep  1 04:05:43 2004
@@ -1,5 +1,5 @@
 ;;; infohack.el --- a hack to format info file.
-;; Copyright (C)  2001  Free Software Foundation, Inc.
+;; Copyright (C)  2001, 2003, 2004  Free Software Foundation, Inc.
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
 ;; Keywords: info
@@ -27,6 +27,39 @@
 
 (require 'texinfmt)
 
+(if (fboundp 'texinfo-copying)
+    nil
+  ;; Support @copying and @insertcopying for Emacs 21.3 and lesser and
+  ;; XEmacs.
+  (defvar texinfo-copying-text ""
+    "Text of the copyright notice and copying permissions.")
+
+  (defun texinfo-copying ()
+    "Copy the copyright notice and copying permissions from the Texinfo file,
+as indicated by the @copying ... @end copying command;
+insert the text with the @insertcopying command."
+    (let ((beg (progn (beginning-of-line) (point)))
+	  (end  (progn (re-search-forward "^@end copying[ \t]*\n") (point))))
+      (setq texinfo-copying-text
+	    (buffer-substring-no-properties
+	     (save-excursion (goto-char beg) (forward-line 1) (point))
+	     (save-excursion (goto-char end) (forward-line -1) (point))))
+      (delete-region beg end)))
+
+  (defun texinfo-insertcopying ()
+    "Insert the copyright notice and copying permissions from the Texinfo file,
+which are indicated by the @copying ... @end copying command."
+    (insert (concat "\n" texinfo-copying-text)))
+
+  (defadvice texinfo-format-scan (before expand-@copying-section activate)
+    "Extract @copying and replace @insertcopying with it."
+    (goto-char (point-min))
+    (when (search-forward "@copying" nil t)
+      (texinfo-copying))
+    (while (search-forward "@insertcopying" nil t)
+      (delete-region (match-beginning 0) (match-end 0))
+      (texinfo-insertcopying))))
+
 (defun infohack-remove-unsupported ()
   (goto-char (point-min))
   (while (re-search-forward "@\\(end \\)?ifnottex" nil t) 
@@ -85,4 +118,5 @@
   (infohack (car command-line-args-left))
   (setq command-line-args-left nil))
 
+;;; arch-tag: 9ca2f71f-b280-48b3-9826-8dc052dfbbfe
 ;;; infohack.el ends here
Index: gnus/texi/message.texi
diff -u gnus/texi/message.texi:7.3 gnus/texi/message.texi:7.16
--- gnus/texi/message.texi:7.3	Fri Mar  5 12:24:27 2004
+++ gnus/texi/message.texi	Wed Feb  2 05:14:12 2005
@@ -5,22 +5,13 @@
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
-@dircategory Emacs
-@direntry
-* Message: (message).   Mail and news composition mode that goes with Gnus.
-@end direntry
-@iftex
-@finalout
-@end iftex
-@setchapternewpage odd
-
-@ifnottex
-
+@copying
 This file documents Message, the Emacs message composition mode.
 
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 
 Free Software Foundation, Inc.
 
+@quotation
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 any later version published by the Free Software Foundation; with no
@@ -37,9 +28,17 @@
 Documentation License.  If you want to distribute this document
 separately from the collection, you can do so by adding a copy of the
 license to the document, as described in section 6 of the license.
-@end ifnottex
+@end quotation
+@end copying
 
-@tex
+@dircategory Emacs
+@direntry
+* Message: (message).   Mail and news composition mode that goes with Gnus.
+@end direntry
+@iftex
+@finalout
+@end iftex
+@setchapternewpage odd
 
 @titlepage
 @title Message Manual
@@ -48,30 +47,10 @@
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-     Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being none, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
+@insertcopying
 @end titlepage
 @page
 
-@end tex
-
 @node Top
 @top Message
 
@@ -167,16 +146,15 @@
 This function will be called narrowed to the head of the article that is
 being replied to.
 
-As you can see, this function should return a string if it has an
-opinion as to what the To header should be.  If it does not, it should
-just return @code{nil}, and the normal methods for determining the To
-header will be used.
-
-This function can also return a list.  In that case, each list element
-should be a cons, where the @sc{car} should be the name of a header
-(e.g. @code{Cc}) and the @sc{cdr} should be the header value
-(e.g. @samp{larsi@@ifi.uio.no}).  All these headers will be inserted into
-the head of the outgoing mail.
+As you can see, this function should return a list.  In this case, it
+returns @code{((To . "Whom"))} if it has an opinion as to what the To
+header should be.  If it does not, it should just return @code{nil}, and
+the normal methods for determining the To header will be used.
+
+Each list element should be a cons, where the @sc{car} should be the
+name of a header (e.g. @code{Cc}) and the @sc{cdr} should be the header
+value (e.g. @samp{larsi@@ifi.uio.no}).  All these headers will be
+inserted into the head of the outgoing mail.
 
 
 @node Wide Reply
@@ -245,7 +223,13 @@
 is that if you lose your @file{.emacs} file (which is where Gnus
 stores the secret cancel lock password (which is generated
 automatically the first time you use this feature)), you won't be
-able to cancel your message.
+able to cancel your message.  If you want to manage a password yourself,
+you can put something like the following in your @file{~/.gnus.el} file:
+
+@lisp
+(setq canlock-password "geheimnis"
+      canlock-password-for-verify canlock-password)
+@end lisp
 
 Whether to insert the header or not is controlled by the
 @code{message-insert-canlock} variable.
@@ -330,8 +314,7 @@
 
 @vindex message-ignored-resent-headers
 Headers that match the @code{message-ignored-resent-headers} regexp will
-be removed before sending the message.  The default is
-@samp{^Return-receipt}.
+be removed before sending the message.
 
 
 @node Bouncing
@@ -1097,6 +1080,11 @@
 @code{message-elide-ellipsis}.  The default value is to use an ellipsis
 (@samp{[...]}).
 
+@item C-c M-k
+@kindex C-c M-k
+@findex message-kill-address
+Kill the address under point.
+
 @item C-c C-z
 @kindex C-c C-x
 @findex message-kill-to-signature
@@ -1417,6 +1405,9 @@
       '(not "From" "Subject" "To" "Cc" "Newsgroups"))
 @end lisp
 
+Headers are hidden using narrowing, you can use @kbd{M-x widen} to
+expose them in the buffer.
+
 @item message-header-synonyms
 @vindex message-header-synonyms
 A list of lists of header synonyms.  E.g., if this list contains a
@@ -1447,6 +1438,12 @@
 This string is inserted at the end of the headers in all message
 buffers that are initialized as mail.
 
+@item message-generate-hashcash
+@vindex message-generate-hashcash
+Boolean variable that indicate whether @samp{X-Hashcash} headers
+should be computed for the message.  @xref{Hashcash, ,Hashcash,gnus,
+The Gnus Manual}.
+
 @end table
 
 
@@ -1463,10 +1460,10 @@
 @findex smtpmail-send-it
 @findex feedmail-send-it
 Function used to send the current buffer as mail.  The default is
-@code{message-send-mail-with-sendmail}.  Other valid values include
+@code{message-send-mail-with-sendmail}, or @code{smtpmail-send-it}
+according to the system.  Other valid values include
 @code{message-send-mail-with-mh}, @code{message-send-mail-with-qmail},
-@code{message-smtpmail-send-it}, @code{smtpmail-send-it} and
-@code{feedmail-send-it}.
+@code{message-smtpmail-send-it} and @code{feedmail-send-it}.
 
 @item message-mh-deletable-headers
 @vindex message-mh-deletable-headers
@@ -1573,8 +1570,8 @@
 @cindex Sun
 @cindex i-did-not-set--mail-host-address--so-tickle-me
 This required header will be generated by Message.  A unique ID will be
-created based on the date, time, user name and system name.  For the
-domain part, message will look (in this order) at
+created based on the date, time, user name (for the local part) and the
+domain part.  For the domain part, message will look (in this order) at
 @code{message-user-fqdn}, @code{system-name}, @code{mail-host-address}
 and @code{message-user-mail-address} (i.e. @code{user-mail-address})
 until a probably valid fully qualified domain name (FQDN) was found.
@@ -1884,6 +1881,7 @@
 @item message-directory
 @vindex message-directory
 Directory used by many mailey things.  The default is @file{~/Mail/}.
+All other mail file variables are derived from @code{message-directory}.
 
 @item message-auto-save-directory
 @vindex message-auto-save-directory
@@ -1959,6 +1957,12 @@
 @vindex message-mode-syntax-table
 Syntax table used in message mode buffers.
 
+@item message-cite-articles-with-x-no-archive
+@vindex message-cite-articles-with-x-no-archive
+If non-@code{nil}, don't strip quoted text from articles that have
+@samp{X-No-Archive} set.  Even if this variable isn't set, you can
+undo the stripping by hitting the @code{undo} keystroke.
+
 @item message-strip-special-text-properties
 @vindex message-strip-special-text-properties
 Emacs has a number of special text properties which can break message
@@ -1996,7 +2000,6 @@
 @end lisp
 
 
-
 @end table
 
 
@@ -2214,3 +2217,7 @@
 @bye
 
 @c End:
+
+@ignore
+   arch-tag: 16ab76af-a281-4e34-aed6-5624569f7601
+@end ignore
Index: gnus/texi/pagestyle.sty
diff -u gnus/texi/pagestyle.sty:7.1 gnus/texi/pagestyle.sty:7.2
--- gnus/texi/pagestyle.sty:7.1	Sun Jan  4 22:42:02 2004
+++ gnus/texi/pagestyle.sty	Thu May 20 10:02:51 2004
@@ -81,3 +81,4 @@
 \setcounter{tocdepth}{3}
 \setcounter{secnumdepth}{3}
 
+% arch-tag: 49bd5922-1cc7-4614-87b7-53f34f669c5c
Index: gnus/texi/pgg.texi
diff -u gnus/texi/pgg.texi:7.3 gnus/texi/pgg.texi:7.6
--- gnus/texi/pgg.texi:7.3	Sat Jan 17 20:46:05 2004
+++ gnus/texi/pgg.texi	Sun Nov 21 21:27:19 2004
@@ -4,27 +4,30 @@
 
 @set VERSION 0.1
 
-@direntry
-* PGG: (pgg).   Emacs interface to various PGP implementations.
-@end direntry
-
-@settitle PGG @value{VERSION}
 
-@ifinfo
+@copying
 This file describes the PGG.
 
-Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
 Copyright (C) 2001 Daiki Ueno.
 
+@quotation
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 any later version published by the Free Software Foundation; with no
 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-@end ifinfo
+Texts.  A copy of the license is included in the section entitled ``GNU
+Free Documentation License''.
+@end quotation
+@end copying
+
+@dircategory Emacs
+@direntry
+* PGG: (pgg).   Emacs interface to various PGP implementations.
+@end direntry
+
+@settitle PGG @value{VERSION}
 
-@tex
 
 @titlepage
 @title PGG
@@ -33,19 +36,10 @@
 @page
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 2001 Daiki Ueno.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the section entitled "GNU
-Free Documentation License".
+@insertcopying
 @end titlepage
 @page
 
-@end tex
-
 @node Top
 @top PGG
 This manual describes PGG.  PGG is an interface library between Emacs
@@ -263,11 +257,11 @@
 Since PGG was designed for accessing and developing PGP functionality,
 the architecture had to be designed not just for interoperability but
 also for extensiblity.  In this chapter we explore the architecture
-while finding out how to write the PGG backend.
+while finding out how to write the PGG back end.
 
 @menu
 * Initializing::                
-* Backend methods::             
+* Back end methods::             
 * Getting output::              
 @end menu
 
@@ -291,12 +285,12 @@
 @end lisp
 
 The name of the function must follow the
-regulation---@code{pgg-make-scheme-} follows the backend name.
+regulation---@code{pgg-make-scheme-} follows the back end name.
 
-@node Backend methods
-@section Backend methods
+@node Back end methods
+@section Back end methods
 
-In each backend, these methods must be present.  The output of these
+In each back end, these methods must be present.  The output of these
 methods is stored in special buffers (@ref{Getting output}), so that
 these methods must tell the status of the execution.
 
@@ -346,7 +340,7 @@
 @node Getting output
 @section Getting output
 
-The output of the backend methods (@ref{Backend methods}) is stored in
+The output of the back end methods (@ref{Back end methods}) is stored in
 special buffers, so that these methods must tell the status of the
 execution.
 
@@ -399,3 +393,7 @@
 @bye
 
 @c End:
+
+@ignore
+   arch-tag: 0c205838-34b9-41a5-b9d7-49ae57ccac85
+@end ignore
Index: gnus/texi/pixidx.sty
diff -u gnus/texi/pixidx.sty:7.1 gnus/texi/pixidx.sty:7.2
--- gnus/texi/pixidx.sty:7.1	Sun Jan  4 22:42:02 2004
+++ gnus/texi/pixidx.sty	Thu May 20 10:02:51 2004
@@ -227,3 +227,5 @@
 \flushbottom
 
 \endinput
+
+% arch-tag: 286974d6-3578-4aa9-b298-f6a03b13f0bd
Index: gnus/texi/postamble.tex
diff -u gnus/texi/postamble.tex:7.1 gnus/texi/postamble.tex:7.2
--- gnus/texi/postamble.tex:7.1	Sun Jan  4 22:42:02 2004
+++ gnus/texi/postamble.tex	Thu May 20 10:02:51 2004
@@ -48,3 +48,5 @@
 %%% mode: latex
 %%% TeX-master: t
 %%% End: 
+
+% arch-tag: 5e771934-0d03-4dbc-898f-10eb429ad992
Index: gnus/texi/refcard.tex
diff -u gnus/texi/refcard.tex:7.1 gnus/texi/refcard.tex:removed
--- gnus/texi/refcard.tex:7.1	Sun Jan  4 22:42:02 2004
+++ gnus/texi/refcard.tex	Sun May  1 19:05:04 2005
@@ -1,186 +0,0 @@
-% Reference Card for Oort Gnus: to be processed with LaTeX2e
-\documentclass{article}
-
-\usepackage{supertabular}
-
-\def\Guide{Card}\def\guide{card}
-\def\logoscale{0.25}
-\newlength{\logowidth} \setlength{\logowidth}{6.861in}
-\newlength{\logoheight} \setlength{\logoheight}{7.013in}
-
-\raggedbottom\raggedright
-
-\usepackage{epsfig}
-
-\setlength{\textwidth}{7.26in} \setlength{\textheight}{10in}
-\setlength{\topmargin}{-1.0in}
-% the same settings work for A4, although there is a bit of space at the
-% top and bottom of the page. 
-\setlength{\oddsidemargin}{-0.5in} \setlength{\evensidemargin}{-0.5in}
-
-
-% README (for refcard + booklet)
-% This is a 5+ page reference card. In addition there is a booklet
-% (bk-a4.tex for A4 and bk-lt.tex for Letter).
-%
-% *** files for the refcard
-% refcard.tex (this file), gnusref.tex ("include"-file) and
-% gnuslogo-refcard.eps (Gnus logo).
-%
-% *** printing (about 5 pages now: write me if you can make it shorter..)
-% if you are using latex-mode, you do C-c C-f (process with latex),
-% C-c C-v (view using xdvi/dvi2tty) and C-c C-p (print)
-% the original author has set up the page dimensions cleverly so that this
-% should print on both letter and a4 (see note above)
-% $latex refcard.tex
-% this creates a file refcard.dvi which you can preview using
-% $xdvi refcard.dvi [C-c C-v]
-% and print using something like
-% $dvips refcard.dvi 
-%
-% If you want to print the booklet, you need to use `pstops' from the
-% `psutils' package (TODO: somebody write a howto ?)
-%
-% *** customization:
-
-% the part following \begin{document} in this file consists of a macro for
-% each section and section-headers (\section*{..}). It should be easy to
-% reorder things and/or remove sections (put '%' at the beginning of the line).
-% (i.e. you might want to omit \notes in the printed version)
-% The same goes for the booklet: Its contents are defined in booklet.tex.
-% If you think that the order is not logical and you have ideas for
-% improvements, please send mail to the current maintainer.
-
-% *** TODO:
-% o some things might not be updated: scoring and server modes, maybe more
-% o Gnus Unplugged category-buffer commands need to be written
-
-\begin{document}
-
-\def\progver{5.10}\def\refver{5.10-1} % program and refcard versions
-\def\date{Mar 23rd, 2002}
-\def\author{Gnus Bugfixing Girls + Boys $<$bugs@gnus.org$>$}
-\raggedbottom\raggedright
-
-\twocolumn
-% use \tiny to shrink it to 4 pages (needs a high-resolution printer though)
-%\tiny
-\scriptsize
-\pagestyle{plain}
-
-% this contains a set of commands containing the actual sections
-% (and some explanations).
-\input{gnusref}
-
-\Title
-\par
-\Logo{refcard}
-\Notes
-%
-%
-\section*{Group-Mode}
-\GroupModeGeneral
-    \subsection*{Group Subscribedness-Levels}
-    \GroupLevels
-    \subsection*{List Groups}
-    \ListGroups
-    \subsection*{Create/Edit Foreign Groups}
-    \CreateEditGroups
-    \subsection*{Unsubscribe, Kill and Yank Groups}
-    \SubscribeKillYankGroups
-    \subsection*{Mark Groups}
-    \MarkGroups
-    \subsection*{Group-Unplugged}
-    \GroupUnplugged
-% topics in group-mode
-    \subsection*{Group Topics}
-    \GroupTopicsGeneral
-    \subsubsection*{Topic Sorting}
-    \TopicSorting
-%
-% summary-mode
-\section*{Summary-Mode}
-\SummaryModeGeneral
-    \subsection*{Select Articles}
-    \SelectArticles
-%
-    \subsection*{Threading}
-    \Threading
-%
-    \subsection*{Limiting}
-    \Limiting
-    \subsection*{Sort the Summary-Buffer}
-    \SortSummary
-    \subsection*{Score (Value) Commands}
-    \Scoring
-    \subsection*{Output Articles}
-    \OutputArticles
-    \subsection*{Extract Series (Uudecode etc)}
-    \ExtractSeries
-    \subsection*{MIME operations from the Summary-Buffer}
-    \MIMESummary     
-%
-    \subsection*{Post, Followup, Reply, Forward, Cancel}
-    \PostReplyetc
-    \newpage
-      \subsection*{Message Composition}
-      \MsgCompositionGeneral
-        \subsubsection*{Jumping in message-buffer}
-        \MsgCompositionMovementArticle
-        \subsubsection*{Attachments/MML}
-        \MsgCompositionMML
-% marking articles
-    \subsection*{Mark Articles}
-    \MarkArticlesGeneral
-        \subsubsection*{Mark Based on Score}
-        \MarkByScore
-        \subsubsection*{The Process Mark}
-        \ProcessMark
-        \subsubsection*{Mark Indication-Characters}
-        \MarkCharacters
-%
-    \subsection*{Summary-Unplugged}
-    \SummaryUnplugged
-    \subsection*{Mail-Group Commands}
-    \MailGroups
-    \subsection*{Draft-Group Commands}
-    \DraftGroup
-% exiting
-    \subsection*{Exit the Summary-Buffer}
-    \ExitSummary
-%
-%
-\section*{Article Mode (reading)}
-\ArticleModeGeneral
-    \subsection*{Wash the Article-Buffer}
-    \WashArticle
-    \subsubsection*{Blank Lines and Whitespace}
-    \BlankAndWhitespace
-    \subsubsection*{Picons, X-faces, Smileys}
-    \Picons
-    \subsubsection*{Time and Date}
-    \TimeAndDate
-    \subsection*{Hide/Highlight Parts of the Article}
-    \HideHighlightArticle
-    \subsection*{MIME operations from the Article-Buffer (reading)}
-    \MIMEArticleMode
-%
-%
-\section*{Server Mode}
-\ServerMode
-    \subsection*{Unplugged-Server}
-    \ServerUnplugged
-%
-%
-\section*{Browse Server Mode}
-\BrowseServer
-
-%\pagebreak
-\vspace*{\fill}
-\Copyright
-
-\end{document}
-
-%%% Local Variables:
-%%% mode: latex
-%%% End:
Index: gnus/texi/sasl.texi
diff -u gnus/texi/sasl.texi:7.2 gnus/texi/sasl.texi:7.4
--- gnus/texi/sasl.texi:7.2	Wed Jan  7 16:59:30 2004
+++ gnus/texi/sasl.texi	Sun Nov 21 21:27:19 2004
@@ -57,7 +57,7 @@
 * Overview::                    What Emacs SASL library is.
 * How to use::                  Adding authentication support to your applications.
 * Data types::                  
-* Backend drivers::             Writing your own drivers.
+* Back end drivers::             Writing your own drivers.
 * Index::                       
 * Function Index::              
 * Variable Index::              
@@ -72,9 +72,9 @@
 
 The toplevel interface of this library is inspired by Java @sc{sasl}
 Application Program Interface.  It defines an abstraction over a series
-of authentication mechanism drivers (@ref{Backend drivers}).
+of authentication mechanism drivers (@ref{Back end drivers}).
 
-Backend drivers are designed to be close as possible to the
+Back end drivers are designed to be close as possible to the
 authentication mechanism.  You can access the additional configuration
 information anywhere from the implementation.
 
@@ -133,7 +133,7 @@
 Return name of mechanism, a string.
 @end defun
 
-If you want to write an authentication mechanism driver (@ref{Backend
+If you want to write an authentication mechanism driver (@ref{Back end
 drivers}), use @code{sasl-make-mechanism} and modify
 @code{sasl-mechanisms} and @code{sasl-mechanism-alist} correctly.
 
@@ -241,8 +241,8 @@
 At the first time @var{step} should be set to @code{nil}.
 @end defun
 
-@node Backend drivers
-@chapter Backend drivers
+@node Back end drivers
+@chapter Back end drivers
 
 (Not yet written).
 
@@ -263,3 +263,7 @@
 @bye
 
 @c End:
+
+@ignore
+   arch-tag: dc9650be-a953-40bf-bc55-24fe5f19d875
+@end ignore
Index: gnus/texi/sieve.texi
diff -u gnus/texi/sieve.texi:7.2 gnus/texi/sieve.texi:7.4
--- gnus/texi/sieve.texi:7.2	Sat Jan 17 20:46:05 2004
+++ gnus/texi/sieve.texi	Tue Aug 31 18:29:46 2004
@@ -5,21 +5,13 @@
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
-@dircategory Emacs
-@direntry
-* Sieve: (sieve).               Managing Sieve scripts in Emacs.
-@end direntry
-@iftex
-@finalout
-@end iftex
-@setchapternewpage odd
-
-@ifnottex
 
+@copying
 This file documents the Emacs Sieve package.
 
 Copyright (C) 2001 Free Software Foundation, Inc.
 
+@quotation
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 any later version published by the Free Software Foundation; with no
@@ -36,39 +28,27 @@
 Documentation License.  If you want to distribute this document
 separately from the collection, you can do so by adding a copy of the
 license to the document, as described in section 6 of the license.
-@end ifnottex
+@end quotation
+@end copying
 
-@tex
+@dircategory Emacs
+@direntry
+* Sieve: (sieve).               Managing Sieve scripts in Emacs.
+@end direntry
+@iftex
+@finalout
+@end iftex
+@setchapternewpage odd
 
 @titlepage
 @title Emacs Sieve Manual
 
 @author by Simon Josefsson
 @page
-
 @vskip 0pt plus 1filll
-Copyright @copyright{} 2001 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being none, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
+@insertcopying
 @end titlepage
-@page
 
-@end tex
 
 @node Top
 @top Sieve Support for Emacs
@@ -378,3 +358,7 @@
 @bye
 
 @c End:
+
+@ignore
+   arch-tag: 6e3ad0af-2eaf-4f35-a081-d40f4a683ec3
+@end ignore
Index: gnus/texi/splitindex
diff -u gnus/texi/splitindex:7.1 gnus/texi/splitindex:7.2
--- gnus/texi/splitindex:7.1	Sun Jan  4 22:42:02 2004
+++ gnus/texi/splitindex	Thu May 20 10:02:51 2004
@@ -4,3 +4,5 @@
 egrep "$match" gnus.idx > gnus.kidx
 egrep "$fun" gnus.idx > gnus.gidx
 egrep -v "$match|$fun" gnus.idx > gnus.cidx
+
+# arch-tag: 2e32a8e5-4eae-46dd-a3d0-90f514ba27d7
Index: gnus/texi/texi2latex.el
diff -u gnus/texi/texi2latex.el:7.4 gnus/texi/texi2latex.el:7.6
--- gnus/texi/texi2latex.el:7.4	Thu Mar  4 01:32:08 2004
+++ gnus/texi/texi2latex.el	Fri Sep  3 04:07:24 2004
@@ -64,6 +64,12 @@
     (erase-buffer)
     (insert-buffer-substring cur)
     (goto-char (point-min))
+    (when (search-forward "@copying" nil t)
+      (latexi-copying))
+    (while (search-forward "@insertcopying" nil t)
+      (delete-region (match-beginning 0) (match-end 0))
+      (latexi-insertcopying))
+    (goto-char (point-min))
     (latexi-strip-line)
     (latexi-translate-string "@'e" "\\'{e}")
     (latexi-translate-string "@`a" "\\`{a}")
@@ -392,4 +398,25 @@
 		"\\\\\n"))
       (insert "\\end{tabular}\n")
       (widen))))
-	
+
+(defvar latexi-copying-text ""
+  "Text of the copyright notice and copying permissions.")
+
+(defun latexi-copying ()
+  "Copy the copyright notice and copying permissions from the Texinfo file,
+as indicated by the @copying ... @end copying command;
+insert the text with the @insertcopying command."
+  (let ((beg (progn (beginning-of-line) (point)))
+	(end  (progn (re-search-forward "^@end copying[ \t]*\n") (point))))
+    (setq latexi-copying-text
+	  (buffer-substring-no-properties
+	   (save-excursion (goto-char beg) (forward-line 1) (point))
+	   (save-excursion (goto-char end) (forward-line -1) (point))))
+    (delete-region beg end)))
+
+(defun latexi-insertcopying ()
+  "Insert the copyright notice and copying permissions from the Texinfo file,
+which are indicated by the @copying ... @end copying command."
+  (insert (concat "\n" latexi-copying-text)))
+
+;;; arch-tag: 31e30f7f-4876-4dd1-ba3a-6f9f7ea0d256
Index: gnus/texi/xml2texi.scm
diff -u /dev/null gnus/texi/xml2texi.scm:7.2
--- /dev/null	Sun May  1 19:05:04 2005
+++ gnus/texi/xml2texi.scm	Thu Mar 24 10:14:36 2005
@@ -0,0 +1,437 @@
+;;; xml2texi.scm --- Convert gnus-faq.xml to gnus-faq.texi
+;; Copyright (C) 2005  Free Software Foundation, Inc.
+
+;; Author:  Karl Pflästerer <sigurd@12move.de>
+;; Keywords: tools
+
+;; This file is not part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+;; 
+
+;;; Code:
+
+(require (lib "ssax.ss" "ssax")
+         (lib "sxpath.ss" "ssax")
+         (lib "sxml-tree-trans.ss" "ssax")
+         (lib "pregexp.ss")
+         (lib "list.ss")
+         (lib "etc.ss")
+         (rename (lib "1.ss" "srfi") list-index list-index)
+         (rename (lib "13.ss" "srfi") string-join string-join))
+
+
+;;; Constants
+;; In and out; for convenience if we work from the REPL
+(define +infile+ "gnus-faq.xml")
+(define +outfile+ "gnus-faq.texi")
+
+;; These are the names of the sections.  These variables hold the names
+;; of the sections where numbering starts in the main menu.
+;; Where we start numbering in menu
+(define +first-numbered-section+ "Installation FAQ")
+;; Where we end numbering in menu
+(define +last-numbered-section+ "Tuning Gnus")
+
+;; Which sections not to include; i.e. not to name a node.
+(define +ignored-sections+ '("Frequently Asked Questions with Answers"))
+
+;; Names of menu entries and the corresponding descriptions (used in the
+;; main menu).
+(define +section-comments-alist+
+    '(("Introduction" . "About Gnus and this FAQ.")
+      ("Installation FAQ" . "Installation of Gnus.")
+      ("Startup / Group buffer" . "Start up questions and the first buffer Gnus shows you.")
+      ("Getting Messages" . "Making Gnus read your mail and news.")
+      ("Reading messages" . "How to efficiently read messages.")
+      ("Composing messages" . "Composing mails or Usenet postings.")
+      ("Old messages" . "Importing, archiving, searching and deleting messages.")
+      ("Gnus in a dial-up environment" . "Reading mail and news while offline.")
+      ("Getting help" . "When this FAQ isn't enough.")
+      ("Tuning Gnus" .  "How to make Gnus faster.")
+      ("Glossary" . "Terms used in the FAQ explained.")))
+
+;; Where to break descriptions in menus
+(define +width+ 72)
+
+;; The boilerplate text we include before the document
+(define boilerplate
+    (lambda (titel)
+      (format
+       "\
+@c \\input texinfo @c -*-texinfo-*-~%\
+@c Uncomment 1st line before texing this file alone.~%\
+@c %**start of header~%\
+@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.~%\
+@c~%\
+@c Do not modify this file, it was generated from gnus-faq.xml, available from~%\
+@c <URL:http://my.gnus.org/FAQ/>.~%\
+@c~%\
+@setfilename gnus-faq.info~%\
+@settitle ~A~%\
+@c %**end of header~%\
+@c~%\
+" titel)))
+
+;; Inserted right before the end of the file
+(define +tag-for-gnus-faq-texi+
+    (format "\
+~%\
+@ignore~%\
+arch-\
+tag: 64dc5692-edb4-4848-a965-7aa0181acbb8~%\
+@end ignore~%\
+"))
+
+;;; Little Helpers
+;; (a b c) -> (1 2 3)
+(define (number-list start inc lst)
+    (let loop ((lst lst) (lvl start) (acc '()))
+         (if (null? lst)
+           (reverse acc)
+           (loop (cdr lst) (+ inc lvl) (cons lvl acc)))))
+
+;; Given an alist made of regexps and their replacements (key and value
+;; are in a proper list) returns a function which given a string
+;; replaces all occurences of the regexps (from left to right).
+;; ((re1 repl1) (re2 repl2)) -> str -> str
+(define make-reg-replacer
+    (lambda (defalist)
+      (let ((allreg (string-join (map car defalist) "|")))
+        (lambda (str)
+          (if (and (string? str) (pregexp-match allreg str))
+            (let loop ((lst defalist) (str str))
+                 (if (null? lst)
+                   str
+                   (loop (cdr lst) (pregexp-replace* (caar lst) str (cadar lst)))))
+            str)))))
+
+(define escape-texi
+    (make-reg-replacer '(("@"  "@@") ("{"  "@{") ("}"  "@}"))))
+
+(define normalize
+    (compose escape-texi (make-reg-replacer `((,(format "~%\\s+") ,(format "~%"))))))
+
+(define normalize-example
+    (compose escape-texi (make-reg-replacer '(("^\\s+|\\s+$" "")))))
+
+(define trim-ws (make-reg-replacer '(("^\\s+|\\s+$" ""))))
+
+(define filter-sect
+    (lambda (lst)
+      (filter (lambda (e) (not (member e +ignored-sections+))) lst)))
+
+;;;; Para
+(define format-para
+    (lambda (list-of-entries)
+      (format "~%~A~%" (trim-ws (apply string-append list-of-entries)))))
+
+;;;; Questions
+(define format-q-level
+    (lambda (level)
+      (apply format "[~A.~A]" (reverse level))))
+
+(define format-q-description
+    (compose trim-ws (make-reg-replacer `((,(format "~%") " ")))))
+
+;;;; Building nodes
+;; curr-node up-node (list of nodes) (list of node names) ->
+;;   ((curr-node curr-name) (next next-name) (prev prev-name) up)
+(define (find-prev-next-up curr up search-list name-list)
+    (do ((lst   search-list (cdr lst))
+         (rlst  name-list   (cdr rlst))
+         (prev  up   (car lst))
+         (prevn up   (car rlst)))
+        ((or (null? lst) (equal? (car lst) curr))
+         (values (cons curr (if (pair? rlst) (car rlst) curr))
+                 (if (and (pair? lst) (pair? (cdr lst))) ;next
+                   (cons (cadr lst) (cadr rlst))
+                   (cons "" ""))
+                 (cons prev prevn)
+                 up))))
+
+
+(define (format-node section title up lst-of-nodes lst-of-names)
+    (if (member title +ignored-sections+)
+      ()
+      (call-with-values
+       (lambda () (find-prev-next-up title up lst-of-nodes lst-of-names))
+       (lambda (currn prevn nextn up)
+         (format "~%@node ~A~%~A ~A~%"
+                 (cdr currn) ;; (cdr prevn) (cdr nextn) up
+                 section ;; @subsection etc.
+                 (if (pair? title)
+                   (apply format "~A.~A" (reverse title))
+                   title))))))
+
+;;;; Building menus
+
+(define format-menu
+    (lambda (alist-of-entries)
+      (let ((len (apply max (map (lambda (s) (string-length (car s))) alist-of-entries))))
+        (format "~%@menu~%~A@end menu~%"
+                (apply string-append
+                       (map (lambda (e)
+                              (format "* ~A::~A~A~%"
+                                      (car e) ;the entry
+                                      (make-string (- len (string-length (car e)) -3) #\ )
+                                      (format-menu-description (cdr e) +width+ (+ len 7))))
+                            alist-of-entries))))))
+
+
+(define format-menu-description
+    (lambda (entry width offset)
+      (let loop ((lst (pregexp-split "\\s" entry)) (len 0) (acc '()))
+           (if (null? lst)
+             (apply string-append (reverse! acc))
+             (let ((slen (+ 1 (string-length (car lst))))) ; +1 because of whitespace added later
+               (if (> (+ slen len) (- width offset))
+                 (loop (cdr lst) 0 (cons
+                                    (format "~%~A ~A"                 ; start a new line
+                                            (make-string offset #\ ) ; the whitespace
+                                            (car lst))
+                                    acc))
+                 (loop (cdr lst) (+ slen len) (cons (format " ~A"(car lst)) acc))))))))
+
+
+(define format-sub-titles
+    (lambda (list-of-entries first-number-entry last-number-entry)
+      (let ((offset (or (list-index (lambda (e) (equal? e first-number-entry)) list-of-entries) 0))
+            (end (or (list-index (lambda (e) (equal? e last-number-entry)) list-of-entries)
+                     (length list-of-entries))))
+      (map (lambda (entry ind)
+             (format "FAQ ~A ~A"
+                     (if (<= offset ind end)
+                       (format "~A -" (- ind offset -1)) ;numbered entry
+                       "-")
+                     entry))
+           list-of-entries (number-list 0 1 list-of-entries)))))
+
+;;;; We number some sections first
+
+;; ntags is an alist => ((tag startcounter increment)
+(define (number-nodes tree level ntags)
+    (if (null? ntags)
+      tree
+      (let* ((vals  (car ntags))
+             (ntag  (car vals))
+             (start (second vals))
+             (inc   (third vals))
+             (ntags (cdr ntags)))
+
+        (map
+         (lambda (node sublevel)
+           (pre-post-order
+            node
+            `((,ntag *preorder*
+                     . ,(lambda (tag . entry)
+                          `(,tag ,(cons sublevel level)
+                                 ,@(number-nodes entry (cons sublevel level) ntags))))
+              (*default* . ,(lambda x x))
+              (*text* . ,(lambda (tag s) s)))))
+         tree (number-list start inc tree)))))
+
+
+;;(transform->numbered faqsxml '(section article qandaset ((qandadiv 1 1) (qandaentry 0 1))))
+(define transform->numbered
+    (lambda (sxml rules)
+      (let* ((rules (reverse rules))
+             (rule (car rules))
+             (ntag (cadr rules))
+             (styles (map (lambda (tag) (cons tag (lambda x x))) (list-tail rules 2))))
+  (pre-post-order
+   sxml
+     `((*default* *preorder* . ,(lambda x x))
+       (*TOP* . ,(lambda x x))
+       ,@styles
+       (,ntag *preorder*
+        . ,(lambda (tag . nodes)
+             (cons tag (number-nodes nodes '() rule)))))))))
+
+
+;;;; The main transform function
+
+(define (transform sxml)
+    (let* ((sxml (transform->numbered
+                  sxml '(section article qandaset ((qandadiv 1 1) (qandaentry 0 1)))))
+           (qandadivtitles (filter-sect (map second ((sxpath '(// qandadiv title)) sxml))))
+           (fqandadivtitles (format-sub-titles qandadivtitles "" ""))
+           (subtitles (filter-sect (append (map second ((sxpath '(// section title)) sxml))
+                                           qandadivtitles
+                                           (map second ((sxpath '(// glossary title)) sxml)))))
+           (fsubtitles (format-sub-titles subtitles +first-numbered-section+
+                                          +last-numbered-section+))
+           (questlevel (map second ((sxpath '(article section qandaset qandadiv qandaentry)) sxml)))
+           (up1 (cadar ((sxpath '(article articleinfo title)) sxml)))
+
+;;; ************************************************************
+;;; The Style Sheet
+;;; ************************************************************
+           (style-sheet
+             `(
+;;; ************************************************************
+;;; First the SXML special markers
+;;; ************************************************************
+               ;; *TOP* *PI* @ are markers from SXML
+               (*TOP* . ,(lambda (tag . x) x))
+               (*PI* . ,(lambda _ '()))
+               (@ . ,(lambda _ ""))
+
+               ;; Look for the example rule where we overwrite the *text* rule
+               ;; so code doesn't get mangled.
+               (*text*
+                . ,(lambda (tag string)
+                     (normalize string)))
+               ;; If nothing else matches
+               (*default* . ,(lambda x x))
+;;; ************************************************************
+;;; Now to the tags of our FAQ
+;;; ************************************************************
+               (article . ,(lambda (tag . sects)
+                             (list (boilerplate up1) sects 
+                                   +tag-for-gnus-faq-texi+)))
+
+               (articleinfo
+                ((*default* . ,(lambda _ '()))
+                 (title
+                  . ,(lambda (tag titel)
+                       (let ((menucom (map (lambda (entry)
+                                             (let ((e (assoc entry +section-comments-alist+)))
+                                               (if e (cdr e) "")))
+                                           subtitles)))
+                         (list (format-node '@section titel "" '() '())
+                               (format-menu (map cons fsubtitles menucom)))))))
+                . ,(lambda (tag . info) info))
+
+               ;; Sections
+               (abstract
+                . ,(lambda (tag . text)
+                     (cons (format "~%@subheading Abstract~%") text)))
+               (section
+                ((title
+                  . ,(lambda (tag titel)
+                       (format-node '@subheading titel up1 subtitles fsubtitles))))
+                . ,(lambda (tag . entry) entry))
+
+               ;; Q&A well it's called FAQ isn't it?
+               (qandaset . ,(lambda (tag . x) x))
+               (qandadiv
+                ((title
+                  . ,(lambda (tag titel) titel)))
+                . ,(lambda (tag level titel . entries)
+                     (let ((questions (map cadr entries))
+                           (nlevel (filter (lambda (lvl) (eq? (car level) (cadr lvl))) questlevel)))
+                       (list*
+                        (format-node '@subsection titel up1 subtitles fsubtitles)
+                        (format-menu (map (lambda (lvl quest)
+                                            (cons (format-q-level lvl)
+                                                  (format-q-description quest)))
+                                          nlevel questions))
+                        entries))))
+               (qandaentry
+                . ,(lambda (tag level question answer)
+                     (let ((nodes
+                             (filter (lambda (lvl) (eq? (cadr lvl) (cadr level))) questlevel))
+                           (up (list-ref fqandadivtitles (- (cadr level) 1))))
+                       (list*
+                        (format-node "@subsubheading Question" level up nodes (map format-q-level nodes))
+                        question answer))))
+               (question . ,(lambda (tag quest) quest))
+               (answer
+                . ,(lambda (tag  . answ) (list* (format "~%@subsubheading Answer~%") answ)))
+
+               ;; Para
+               (para . ,(lambda (tag . x) (format-para x)))
+               (simpara . ,(lambda (tag . x) (cons (format "~%")  x)))
+
+               ;; Itemized lists.
+               ;; We rewrite para here because it plays here the role of an
+               ;; item marker
+               (itemizedlist
+                . ,(lambda (tag lstitem)
+                     (format "~%@itemize @bullet~%~A@end itemize~%" lstitem)))
+               (listitem
+                ((para
+                  . ,(lambda (tag item)
+                       (format "~%@item~%~A~%" (trim-ws item)))))
+                . ,(lambda (tag . x) (string-join x "")))
+
+               ;; The glossary.
+               (glossary
+                ((title . ,(lambda _'())))
+                . ,(lambda (tag . terms)
+                     (let ((titel (cadar ((sxpath '(article glossary title)) sxml))))
+                       (cons (format-node '@subsection titel up1 subtitles fsubtitles)
+                             (list (format "~%@table @dfn~%")
+                                   terms
+                                   (format "~%@end table~%"))))))
+               (glossentry . ,(lambda (tag . entry) entry))
+               (glossterm
+                . ,(lambda (tag term)
+                     (format "~%@item ~A" term)))
+               (glossdef
+                . ,(lambda (tag def) def))
+
+               ;; Lisp examples
+               ;; We rewrite the *text* rule so code stays the way it's writen.
+               (programlisting
+                ((*text*
+                  . ,(lambda (tag exampl)
+                       (normalize-example exampl))))
+                . ,(lambda (tag . exampl)
+                     (format "~%@example~%~A~%@end example~%@noindent~%" (string-join exampl ""))))
+
+               ;; The link handling
+               ;; Here we are interested in the attributes, so we rewrite the @
+               ;; rule.  If we find a value we look if it's an email or http
+               ;; uri.
+               (ulink
+                ((@
+                  . ,(lambda (at val) val)))
+                . ,(lambda (tag uri name)
+                     (if (pregexp-match "^http:|^ftp:" uri)
+			 (if (equal? uri name)
+			     (format "@uref{~A}"  uri)
+			     (format "@uref{~A, ~A}"  uri name))
+			 (format "@email{~A, ~A}" (substring uri 7) name))))
+               (url
+                . ,(lambda (tag val) val))
+
+               ;; userinput
+               (userinput
+                . ,(lambda (tag val)
+                     (format "@samp{~A}" val)))
+               )))
+      (pre-post-order sxml style-sheet)))
+
+;;;; We call main with infile and outfile as arguments
+(define main
+    (lambda (in out)
+      (with-output-to-file out
+        (lambda ()
+          (call-with-input-file in
+            (lambda (port)
+              (SRV:send-reply (transform (ssax:xml->sxml port '()))))))
+        'replace)))
+
+;; Local Variables:
+;; coding: iso-8859-1
+;; End:
+
+;; arch-tag: cdd948f7-def9-4ea1-b5ae-b57c308097d7
+;;; xml2texi.scm ends here
Index: gnus/texi/xml2texi.sh
diff -u /dev/null gnus/texi/xml2texi.sh:7.2
--- /dev/null	Sun May  1 19:05:05 2005
+++ gnus/texi/xml2texi.sh	Thu Mar 24 10:14:37 2005
@@ -0,0 +1,78 @@
+#! /bin/sh
+#|
+exec mzscheme -mr $0 ${1+"$@"}
+|#
+;; Copyright (C) 2005  Free Software Foundation, Inc.
+;; 
+;;  Author:  Karl Pflästerer <sigurd@12move.de>
+;;  Keywords: tools
+;; 
+;;  This file is not part of GNU Emacs.
+;; 
+;;  GNU Emacs is free software; you can redistribute it and/or modify
+;;  it under the terms of the GNU General Public License as published by
+;;  the Free Software Foundation; either version 2, or (at your option)
+;;  any later version.
+;; 
+;;  GNU Emacs is distributed in the hope that it will be useful,
+;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;  GNU General Public License for more details.
+;; 
+;;  You should have received a copy of the GNU General Public License
+;;  along with GNU Emacs; see the file COPYING.  If not, write to the
+;;  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;;  Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+;;
+;; Requirements:
+;;
+;; To run this scheme program you need MzScheme and DrScheme.
+;;
+;; Some URLs:
+;; http://www.plt-scheme.org/software/mzscheme/
+;; http://www.drscheme.org/
+;; http://www.plt-scheme.org/software/
+;; 
+;; ,----[ http://www.plt-scheme.org/license/ ]
+;; | PLT software is distributed under the
+;; |  GNU Lesser General Public License (LGPL).
+;; `----
+
+;;; Code:
+
+(require (lib "cmdline.ss"))
+(define +scmfile+ "xml2texi.scm")
+(define +in+ "gnus-faq.xml")
+(define +out+ "gnus-faq.texi")
+
+(command-line
+ "xml2texi"
+ (current-command-line-arguments)
+ (once-each
+  (("-i" "--input") in "Name of XML data file (default gnus-faq.xml)"
+   (set! +in+ in))
+  (("-o" "--output") out "Name of output file (default gnus-faq.texi)"
+   (set! +out+ out))
+  (("-l" "--library") lib "Name of Scheme library to load (default xml2texi.scm)"
+   (set! +scmfile+ lib)))
+ (help-labels "The first (or only) remaining argument is used as the name of the Input file"
+              "The second argument is used as the name of the Output file")
+ (args infile+outfile
+       (cond ((= (length infile+outfile) 2)
+               (set! +in+ (car infile+outfile))
+               (set! +out+ (cadr infile+outfile)))
+             ((= (length infile+outfile) 1)
+               (set! +in+ (car infile+outfile)))
+             (else #f))))
+
+(load +scmfile+)
+(main +in+ +out+)
+
+;; Local Variables:
+;; mode: scheme
+;; coding: iso-8859-1
+;; End:
+
+;; arch-tag: 582279c5-b7bf-44b0-ba09-d243a7d7f6e0
