From: yamaoka Date: Tue, 25 Sep 2001 05:19:05 +0000 (+0000) Subject: Synch with Oort Gnus. X-Git-Tag: t-gnus-6_15_4-07-quimby~1 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=39e9fe5670ea76bf6fd1f199f8f903aa79b0da3e;p=elisp%2Fgnus.git- Synch with Oort Gnus. --- diff --git a/ChangeLog b/ChangeLog index 3959a4f..e3e69db 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2001-09-25 Katsumi Yamaoka + + * lisp/gnus-vers.el (gnus-revision-number): Increment to 07. + +2001-09-24 19:00:00 ShengHuo ZHU + + * configure.in: Generate texi/ps/Makefile. + 2001-09-21 Kai Gro,A_(Bjohann * make.bat: Use parameter "/copy" rather than "copy" for increased diff --git a/Makefile.in b/Makefile.in index 9a70c03..687a288 100644 --- a/Makefile.in +++ b/Makefile.in @@ -173,7 +173,7 @@ xsome: distclean: clean rm -rf *~ - for i in lisp texi etc; do (cd $$i; $(MAKE) distclean); done + for i in lisp texi etc texi/ps; do (cd $$i; $(MAKE) distclean); done rm -f config.log config.status config.cache Makefile config.status: $(srcdir)/configure diff --git a/configure b/configure index d93cbb7..bebf1d0 100755 --- a/configure +++ b/configure @@ -1433,7 +1433,8 @@ done ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" -trap 'rm -fr `echo "Makefile lisp/Makefile lisp/dgnuspath.el texi/Makefile etc/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +trap 'rm -fr `echo "Makefile lisp/Makefile texi/Makefile etc/Makefile texi/ps/Makefile \ + lisp/dgnuspath.el" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS <> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then diff --git a/configure.in b/configure.in index 839c1cf..512ca81 100644 --- a/configure.in +++ b/configure.in @@ -10,4 +10,5 @@ AC_CHECK_URL AC_CHECK_W3 AC_PATH_PACKAGEDIR AC_ADD_LOAD_PATH -AC_OUTPUT(Makefile lisp/Makefile lisp/dgnuspath.el texi/Makefile etc/Makefile) +AC_OUTPUT(Makefile lisp/Makefile texi/Makefile etc/Makefile texi/ps/Makefile \ + lisp/dgnuspath.el) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 67dda69..3b0a85f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,35 @@ +2001-09-22 Simon Josefsson + + * 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 + + * gnus-sum.el (gnus-summary-mode-hook): Add gnus-pick-mode as + custom option. + +2001-09-23 Simon Josefsson + + * gnus-draft.el (gnus-draft-setup): Add mark in backend as well. + +2001-09-23 02:00:00 ShengHuo ZHU + + * gnus-msg.el (gnus-button-mailto): Hack save-selected-window-window. + +2001-09-22 Per Abrahamsen + + * gnus-group.el (gnus-group-sort-function): Fix customize type to + accept lists of functions. + 2001-09-20 Simon Josefsson * gnus-group.el (gnus-group-catchup): Update expire marks in diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index 4704739..4491dcf 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -256,7 +256,10 @@ (gnus-post-method arg ,(car ga)))) (unless (equal (cadr ga) "") (message-add-action - `(gnus-add-mark ,(car ga) 'replied ,(cadr ga)) + `(progn + (gnus-add-mark ,(car ga) 'replied ,(cadr ga)) + (gnus-request-set-mark ,(car ga) (list (list (list ,(cadr ga)) + 'add '(reply))))) 'send))))) (defvar gnus-draft-send-draft-buffer " *send draft*") diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 4295279..1aeb242 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -126,15 +126,20 @@ the most significant sort function should be the last function in the list." :group 'gnus-group-listing :link '(custom-manual "(gnus)Sorting Groups") - :type '(radio (function-item gnus-group-sort-by-alphabet) - (function-item gnus-group-sort-by-real-name) - (function-item gnus-group-sort-by-unread) - (function-item gnus-group-sort-by-level) - (function-item gnus-group-sort-by-score) - (function-item gnus-group-sort-by-method) - (function-item gnus-group-sort-by-server) - (function-item gnus-group-sort-by-rank) - (function :tag "other" nil))) + :type '(repeat :value-to-internal (lambda (widget value) + (if (listp value) value (list value))) + :match (lambda (widget value) + (or (symbolp value) + (widget-editable-list-match widget value))) + (choice (function-item gnus-group-sort-by-alphabet) + (function-item gnus-group-sort-by-real-name) + (function-item gnus-group-sort-by-unread) + (function-item gnus-group-sort-by-level) + (function-item gnus-group-sort-by-score) + (function-item gnus-group-sort-by-method) + (function-item gnus-group-sort-by-server) + (function-item gnus-group-sort-by-rank) + (function :tag "other" nil)))) (defcustom gnus-group-line-format "%M\%S\%p\%P\%5y: %(%g%)%l\n" "*Format of group lines. diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index ad0fef6..ad49ee2 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -329,19 +329,27 @@ Gcc: header for archiving purposes." ;; COMPOSEFUNC should return t if succeed. Undocumented ??? t) +(defvar save-selected-window-window) + ;;;###autoload (defun gnus-button-mailto (address) "Mail to ADDRESS." (set-buffer (gnus-copy-article-buffer)) (gnus-setup-message 'message - (message-reply address))) + (message-reply address)) + (and (boundp 'save-selected-window-window) + (not (window-live-p save-selected-window-window)) + (setq save-selected-window-window (selected-window)))) ;;;###autoload (defun gnus-button-reply (&optional to-address wide) "Like `message-reply'." (interactive) (gnus-setup-message 'message - (message-reply to-address wide))) + (message-reply to-address wide)) + (and (boundp 'save-selected-window-window) + (not (window-live-p save-selected-window-window)) + (setq save-selected-window-window (selected-window)))) ;;;###autoload (define-mail-user-agent 'gnus-user-agent diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index aba444f..2454b3c 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -724,7 +724,7 @@ This variable is local to the summary buffers." (defcustom gnus-summary-mode-hook nil "*A hook for Gnus summary mode. This hook is run before any variables are set in the summary buffer." - :options '(turn-on-gnus-mailing-list-mode) + :options '(turn-on-gnus-mailing-list-mode gnus-pick-mode) :group 'gnus-summary-various :type 'hook) @@ -4841,6 +4841,10 @@ If SELECT-ARTICLES, only select those articles from GROUP." (or (cadr (assq mark gnus-article-special-mark-lists)) 'list)) +(defun gnus-article-unpropagatable-p (mark) + "Return whether MARK should be propagated to backend." + (memq mark gnus-article-unpropagated-mark-lists)) + (defun gnus-adjust-marked-articles (info) "Set all article lists and remove all marks that are no longer valid." (let* ((marked-lists (gnus-info-marks info)) @@ -4900,7 +4904,6 @@ If SELECT-ARTICLES, only select those articles from GROUP." "Enter the various lists of marked articles into the newsgroup info list." (let ((types gnus-article-mark-lists) (info (gnus-get-info gnus-newsgroup-name)) - (uncompressed '(score bookmark killed seen)) type list newmarked symbol delta-marks) (when info ;; Add all marks lists to the list of marks lists. @@ -4932,27 +4935,20 @@ If SELECT-ARTICLES, only select those articles from GROUP." (gnus-add-to-range list gnus-newsgroup-unseen) (gnus-compress-sequence gnus-newsgroup-articles)))) - (unless (memq (cdr type) uncompressed) + (when (eq (gnus-article-mark-to-type (cdr type)) 'list) (setq list (gnus-compress-sequence (set symbol (sort list '<)) t))) - (when (gnus-check-backend-function - 'request-set-mark gnus-newsgroup-name) - ;; propagate flags to server, with the following exceptions: - ;; uncompressed:s are not proper flags (they are cons cells) - ;; cache is a internal gnus flag - ;; download are local to one gnus installation (well) - ;; unsend are for nndraft groups only - ;; xxx: generality of this? this suits nnimap anyway - (unless (memq (cdr type) (append '(cache download unsend) - uncompressed)) - (let* ((old (cdr (assq (cdr type) (gnus-info-marks info)))) - (del (gnus-remove-from-range (gnus-copy-sequence old) list)) - (add (gnus-remove-from-range - (gnus-copy-sequence list) old))) - (when add - (push (list add 'add (list (cdr type))) delta-marks)) - (when del - (push (list del 'del (list (cdr type))) delta-marks))))) + (when (and (gnus-check-backend-function + 'request-set-mark gnus-newsgroup-name) + (not (gnus-article-unpropagatable-p (cdr type)))) + (let* ((old (cdr (assq (cdr type) (gnus-info-marks info)))) + (del (gnus-remove-from-range (gnus-copy-sequence old) list)) + (add (gnus-remove-from-range + (gnus-copy-sequence list) old))) + (when add + (push (list add 'add (list (cdr type))) delta-marks)) + (when del + (push (list del 'del (list (cdr type))) delta-marks)))) (when list (push (cons (cdr type) list) newmarked))) diff --git a/lisp/gnus-vers.el b/lisp/gnus-vers.el index 08c6ff3..3826ed6 100644 --- a/lisp/gnus-vers.el +++ b/lisp/gnus-vers.el @@ -34,7 +34,7 @@ (require 'product) (provide 'gnus-vers) -(defconst gnus-revision-number "06" +(defconst gnus-revision-number "07" "Revision number for this version of gnus.") ;; Product information of this gnus. diff --git a/lisp/gnus.el b/lisp/gnus.el index a75e43d..dc810a1 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -1841,9 +1841,23 @@ covered by that variable." (defconst gnus-article-special-mark-lists '((seen range) + (killed range) (bookmark tuple) (score tuple))) +;; Propagate flags to server, with the following exceptions: +;; `seen' is private to each gnus installation +;; `cache' is a internal gnus flag for each gnus installation +;; `download' is a agent flag private to each gnus installation +;; `unsend' are for nndraft groups only +;; `score' is not a proper mark +(defconst gnus-article-unpropagated-mark-lists + '(seen cache download unsend score) + "Marks that shouldn't be propagated to backends. +Typical marks are those that make no sense in a standalone backend, +such as a mark that says whether an article is stored in the cache +(which doesn't make sense in a standalone backend).") + (defvar gnus-headers-retrieved-by nil) (defvar gnus-article-reply nil) (defvar gnus-override-method nil) diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index 979dfab..b5abcda 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -1225,16 +1225,17 @@ This command does not work if you use short group names." (defun nnfolder-open-marks (group server) (let ((file (nnfolder-group-marks-pathname group))) (if (file-exists-p file) - (setq nnfolder-marks (condition-case err - (with-temp-buffer - (gnus-sethash file - (nth 5 (file-attributes file)) - nnfolder-marks-modtime) - (nnheader-insert-file-contents file) - (read (current-buffer))) - (error (or (gnus-yes-or-no-p - (format "Error reading nnfolder marks file %s (%s). Continuing will use marks from .newsrc.eld. Continue? " file err)) - (error "Cannot read nnfolder marks file %s (%s)" file err))))) + (condition-case err + (with-temp-buffer + (gnus-sethash file (nth 5 (file-attributes file)) + nnfolder-marks-modtime) + (nnheader-insert-file-contents file) + (setq nnfolder-marks (read (current-buffer))) + (dolist (el gnus-article-unpropagated-mark-lists) + (setq nnfolder-marks (gnus-remassoc el nnfolder-marks)))) + (error (or (gnus-yes-or-no-p + (format "Error reading nnfolder marks file %s (%s). Continuing will use marks from .newsrc.eld. Continue? " file err)) + (error "Cannot read nnfolder 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 @@ -1244,6 +1245,8 @@ This command does not work if you use short group names." (nnheader-message 7 "Bootstrapping marks for %s..." group) (setq nnfolder-marks (gnus-info-marks info)) (push (cons 'read (gnus-info-read info)) nnfolder-marks) + (dolist (el gnus-article-unpropagated-mark-lists) + (setq nnfolder-marks (gnus-remassoc el nnfolder-marks))) (nnfolder-save-marks group server))))) (provide 'nnfolder) diff --git a/lisp/nnml.el b/lisp/nnml.el index e5927b2..f6e78e4 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -1007,16 +1007,17 @@ Use the nov database for the current group if available." nnml-marks-file-name (nnmail-group-pathname group nnml-directory)))) (if (file-exists-p file) - (setq nnml-marks (condition-case err - (with-temp-buffer - (gnus-sethash file - (nth 5 (file-attributes file)) - nnml-marks-modtime) - (nnheader-insert-file-contents file) - (read (current-buffer))) - (error (or (gnus-yes-or-no-p - (format "Error reading nnml marks file %s (%s). Continuing will use marks from .newsrc.eld. Continue? " file err)) - (error "Cannot read nnml marks file %s (%s)" file err))))) + (condition-case err + (with-temp-buffer + (gnus-sethash file (nth 5 (file-attributes file)) + nnml-marks-modtime) + (nnheader-insert-file-contents file) + (setq nnml-marks (read (current-buffer))) + (dolist (el gnus-article-unpropagated-mark-lists) + (setq nnml-marks (gnus-remassoc el nnml-marks)))) + (error (or (gnus-yes-or-no-p + (format "Error reading nnml marks file %s (%s). Continuing will use marks from .newsrc.eld. Continue? " file err)) + (error "Cannot read nnml 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 @@ -1026,6 +1027,8 @@ Use the nov database for the current group if available." (nnheader-message 7 "Bootstrapping marks for %s..." group) (setq nnml-marks (gnus-info-marks info)) (push (cons 'read (gnus-info-read info)) nnml-marks) + (dolist (el gnus-article-unpropagated-mark-lists) + (setq nnml-marks (gnus-remassoc el nnml-marks))) (nnml-save-marks group server))))) (provide 'nnml) diff --git a/texi/ChangeLog b/texi/ChangeLog index cfa09d2..27b5b9b 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,48 @@ +2001-09-24 19:00:00 ShengHuo ZHU + + * gnus.texi: eps path fix. + * postamble.tex: Ditto. + * texi2latex.el: Ditto. + + * Makefile.in: Move some to ps/Makefile.in. + +2001-09-24 Simon Josefsson + + * etc/*, herds/*, misc/*, picons/*, screen/*, smilies/*, xface/*: + New files, from pspackage.tar.gz. + + * Makefile.in (distclean): Make veryclean. + + * gnus.texi (Summary Mail Commands): Fix. + (Summary Post Commands): Fix. + (The Manual): Fix. + +2001-09-23 02:00:00 ShengHuo ZHU + + * gnus.texi: Use "back end". + +2001-09-23 Simon Josefsson + + * gnus.texi (Top): Move IMAP up from "Other Sources" to "Select + Methods". + (Charsets): Update default value. + (Finding the Parent): Add nnimap. + (Security): Add. + (Mailing List): Add. + (Archived Messages): Comment out XEmacs 19 stuff. + (Using GPG): Add reference to message manual. + (Direct Functions): Mention OpenSSL as well as SSLeay. + (Mail Source Specifiers): Add recent IMAP :stream and + :authentication. + (Agent Commands): Fix. + (GroupLens): Add URL and note about this being historical. + (Wide Characters): Update default value. + (Picon Requirements): Remove old XEmacs 19 stuff. + +2001-09-22 Simon Josefsson + + * gnus.texi (Other Marks): Add Recent. + 2001-09-14 Simon Josefsson * gnus.texi (Mail Folders): Add. diff --git a/texi/Makefile.in b/texi/Makefile.in index 0e42c1b..6beaf92 100644 --- a/texi/Makefile.in +++ b/texi/Makefile.in @@ -54,7 +54,7 @@ most: texi2latex.elc latex latexps $(MAKEINFO) -I $(srcdir) -o $@ $<; \ fi -.SUFFIXES: .texi .dvi .ps .pdf +.SUFFIXES: .texi .dvi .ps .pdf .latexi .dvi-x .pdf-x .texi: if test "x$(MAKEINFO)" = "xno" \ @@ -65,9 +65,9 @@ most: texi2latex.elc latex latexps $(MAKEINFO) -I $(srcdir) -o $* $<; \ fi -dvi: gnus.dvi message.dvi refcard.dvi emacs-mime.dvi +dvi: tmps gnus.dvi message.dvi refcard.dvi emacs-mime.dvi -pdf: gnus.pdf message.pdf refcard.pdf emacs-mime.pdf +pdf: tmps gnus.pdf message.pdf refcard.pdf emacs-mime.pdf .texi.dvi : sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi @@ -90,18 +90,12 @@ refcard.pdf: refcard.tex gnuslogo.refcard gnusref.tex TEXINPUTS=$(srcdir):$$TEXINPUTS $(PDFLATEX) refcard.tex clean: - rm -f *.orig *.rej *.elc *~ gnus-[0-9] gnus-[0-9][0-9] - rm -f message-[0-9] - rm -f $(INFO_DEPS) - rm -f gnus-ja-[0-9] gnus-ja-[0-9][0-9] - rm -f message-ja-[0-9] - rm -f $(INFO_DEPS_JA) - rm -f gnus.info-[0-9] gnus.info-[0-9][0-9] - rm -f message.info-[0-9] - rm -f $(INFO_DEPS_INFO) - rm -f gnus-ja.info-[0-9] gnus-ja.info-[0-9][0-9] - rm -f message-ja.info-[0-9] - rm -f $(INFO_DEPS_JA_INFO) + rm -f gnus.*.bak *.ky *.cp *.fn *.cps *.kys *.log *.aux *.dvi *.vr \ + *.pdf *.tp *.toc *.pg gnus.latexi *.aux *.[cgk]idx \ + gnus.ilg gnus.ind gnus.[cgk]ind gnus.idx \ + gnustmp.texi *.tmplatexi gnus.tmplatexi1 texput.log *.orig *.rej \ + gnus.latexi*~* xface.tex picons.tex smiley.tex *.latexi *.dvi-x \ + *.pdf-x makeinfo: makeinfo -o gnus gnus.texi @@ -110,45 +104,75 @@ makeinfo: texi2latex.elc: texi2latex.el srcdir=$(srcdir)/../lisp $(EMACSCOMP) -l $(srcdir)/../lisp/dgnushack.el --eval '(byte-compile-file "$(srcdir)/texi2latex.el")' -latex gnus.latexi gnus-faq.latexi: $(srcdir)/gnus.texi $(srcdir)/gnus-faq.texi texi2latex.elc +latex: gnus.latexi gnus-faq.latexi + +gnus.latexi gnus-faq.latexi: $(srcdir)/gnus.texi $(srcdir)/gnus-faq.texi texi2latex.elc srcdir=$(srcdir) $(EMACSCOMP) -l ./texi2latex.elc -f latexi-translate -latexps: gnus.latexi tmps - $(MAKE) texi2latex.elc +.latexi.dvi-x: + make tmps rm -f gnus.aux - egrep -v "label.*Index|chapter.*Index" gnus.latexi > gnus.tmplatexi1 + egrep -v "label.*Index|chapter.*Index" $< > gnus.tmplatexi1 TEXINPUTS=$(srcdir):$$TEXINPUTS $(LATEX) gnus.tmplatexi1 - ./splitindex + $(srcdir)/splitindex makeindex -o gnus.kind gnus.kidx makeindex -o gnus.cind gnus.cidx makeindex -o gnus.gind gnus.gidx sed 's/\\char 5E\\relax {}/\\symbol{"5E}/' < gnus.kind > gnus.tmpkind mv gnus.tmpkind gnus.kind egrep -v "end\{document\}" gnus.tmplatexi1 > gnus.tmplatexi - cat postamble.tex >> gnus.tmplatexi - $(LATEX) gnus.tmplatexi - $(LATEX) gnus.tmplatexi - $(DVIPS) -t $(PAPERTYPE) -f gnus.dvi > gnus.ps - -pss: - $(MAKE) latex - $(MAKE) latexps - -psout: tmps - $(MAKE) latex - $(MAKE) latexboth - $(MAKE) out - -latexboth: - rm -f gnus-manual-a4.ps.gz gnus-manual-standard.ps.gz - $(MAKE) latexps - mv gnus.ps gnus-manual-a4.ps - gzip gnus-manual-a4.ps - sed 's/,a4paper/,letterpaper/' gnus.latexi > gnus-standard.latexi - mv gnus-standard.latexi gnus.latexi - $(MAKE) latexps PAPERTYPE=letter - mv gnus.ps gnus-manual-standard.ps - gzip gnus-manual-standard.ps + cat $(srcdir)/postamble.tex >> gnus.tmplatexi + TEXINPUTS=$(srcdir):$$TEXINPUTS $(LATEX) gnus.tmplatexi + TEXINPUTS=$(srcdir):$$TEXINPUTS $(LATEX) gnus.tmplatexi + mv gnus.dvi $@ + +.latexi.pdf-x: + make tmps + cd ps; make pdf + rm -f gnus.aux + egrep -v "label.*Index|chapter.*Index" $< > gnus.tmplatexi1 + TEXINPUTS=$(srcdir):$$TEXINPUTS $(PDFLATEX) gnus.tmplatexi1 + $(srcdir)/splitindex + makeindex -o gnus.kind gnus.kidx + makeindex -o gnus.cind gnus.cidx + makeindex -o gnus.gind gnus.gidx + sed 's/\\char 5E\\relax {}/\\symbol{"5E}/' < gnus.kind > gnus.tmpkind + mv gnus.tmpkind gnus.kind + egrep -v "end\{document\}" gnus.tmplatexi1 > gnus.tmplatexi + cat $(srcdir)/postamble.tex >> gnus.tmplatexi + TEXINPUTS=$(srcdir):$$TEXINPUTS $(PDFLATEX) gnus.tmplatexi + TEXINPUTS=$(srcdir):$$TEXINPUTS $(PDFLATEX) gnus.tmplatexi + mv gnus.pdf $@ + +latexps: gnus.dvi-x + TEXINPUTS=$(srcdir):$$TEXINPUTS $(DVIPS) -t a4 -f $< > gnus.ps + +latexpdf: gnus.pdf-x + mv gnus.pdf-x gnus.pdf + +gnus-manual-a4.latexi: gnus.latexi + cp $< $@ + +gnus-manual-standard.latexi: gnus.latexi + sed 's/,a4paper/,letterpaper/' $< > $@ + +gnus-manual-a4.ps.gz: gnus-manual-a4.dvi-x + TEXINPUTS=$(srcdir):$$TEXINPUTS $(DVIPS) -t a4 -f $< | gzip -c > $@ + +gnus-manual-standard.ps.gz: gnus-manual-standard.dvi-x + TEXINPUTS=$(srcdir):$$TEXINPUTS $(DVIPS) -t letter -f $< | gzip -c > $@ + +pdfs: gnus-manual-a4.pdf-x gnus-manual-standard.pdf-x + mv gnus-manual-a4.pdf-x gnus-manual-a4.pdf + mv gnus-manual-standard.pdf-x gnus-manual-standard.pdf + +pss: latexps + +complete: pss + +psout: latexboth out + +latexboth: gnus-manual-a4.ps.gz gnus-manual-standard.ps.gz out: cp gnus-manual-standard.ps.gz \ @@ -160,9 +184,16 @@ out: veryclean: clean rm -f gnus.dvi gnus.ps texi2latex.elc + rm -f gnus-manual-a4.* gnus-manual-standard.* -distclean: clean - rm -f Makefile +distclean: veryclean + rm -f *.orig *.rej *.elc *~ gnus-[0-9] gnus-[0-9][0-9] Makefile + rm -f message-[0-9] + rm -f $(INFO_DEPS) + rm -f gnus-ja-[0-9] gnus-ja-[0-9][0-9] message-ja-[0-9] + rm -f gnus.info-[0-9] gnus.info-[0-9][0-9] message.info-[0-9] + rm -f gnus-ja.info-[0-9] gnus-ja.info-[0-9][0-9] message-ja.info-[0-9] + rm -f $(INFO_DEPS_JA) $(INFO_DEPS_INFO) $(INFO_DEPS_JA_INFO) install: $(INFO_DEPS) $(SHELL) $(top_srcdir)/mkinstalldirs $(infodir) @@ -196,61 +227,24 @@ install-ja-info: $(INFO_DEPS_JA_INFO) infodir="$(infodir)" install tmps: - if [ ! -e tmp ]; then mkdir tmp; fi - $(MAKE) screens - $(MAKE) herdss - $(MAKE) etcs - $(MAKE) piconss - $(MAKE) xfaces - $(MAKE) smiley - $(MAKE) miscs - -herdss: - cd herds ; for i in new-herd-[0-9]*.gif; do echo $$i; giftopnm $$i | pnmcrop -white | pnmmargin -white 9 | pnmscale 2 | pnmconvol convol5.pnm | ppmtopgm | pnmdepth 255 | pnmtops -width 100 -height 100 -noturn > ../tmp/`basename $$i .gif`.ps; done - cd herds ; giftopnm new-herd-section.gif | pnmscale 4 | pnmconvol convol11.pnm | ppmtopgm | pnmdepth 255 | pnmtops -noturn -width 100 -height 100 > ../tmp/new-herd-section.ps - - -screens: - cd screen ; for i in *.gif; do echo $$i; giftopnm $$i | pnmmargin -black 1 | ppmtopgm | pnmtops -width 100 -height 100 -noturn > ../tmp/`basename $$i .gif`.ps; done - -miscs: - giftopnm misc/larsi.gif | ppmtopgm | pnmtops -noturn > tmp/larsi.ps - tifftopnm misc/eseptember.tif | pnmscale 4 | ppmtopgm | pnmtops -noturn -width 100 -height 100 > tmp/september.ps - tifftopnm misc/fseptember.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn -width 100 -height 100 > tmp/fseptember.ps - tifftopnm misc/fred.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn -width 100 -height 100 > tmp/fred.ps - tifftopnm misc/ered.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn -width 100 -height 100 > tmp/red.ps - -etcs: - cd etc; for i in gnus-*.xpm; do echo $$i; xpmtoppm $$i | ppmtopgm | pnmdepth 255 | pnmtops -noturn > ../tmp/`basename $$i .xpm`.ps; done - -piconss: - cd picons; for i in *.xbm; do echo $$i; xbmtopbm $$i | pnmtops -noturn > ../tmp/picons-`basename $$i .xbm`.ps; done - cd picons; for i in *.gif; do echo $$i; giftopnm $$i | ppmtopgm | pnmtops -noturn > ../tmp/picons-`basename $$i .gif`.ps; done - for i in tmp/picons-*.ps; do echo "\\gnuspicon{$$i}"; done > picons.tex - -xfaces: - cd xface; for i in *.gif; do echo $$i; giftopnm $$i | ppmtopgm | pnmtops -noturn > ../tmp/xface-`basename $$i .gif`.ps; done - for i in tmp/xface-*.ps; do \ + cd ps; make all + for j in ps/picons-*.ps; do \ + i=ps/`basename $$j .ps`; \ + echo "\\gnuspicon{$$i}"; done > picons.tex + for j in ps/xface-*.ps; do \ + i=ps/`basename $$j .ps`; \ if [ -n "$$a" ]; then a=""; echo "{$$i}"; else \ a="h"; echo -n "\\gnusxface{$$i}"; fi done > xface.tex; \ if [ -n "$$a" ]; then echo "{$$i}" >> xface.tex; fi - -smiley: - cd smilies; tifftopnm BigFace.tif | ppmtopgm | pnmtops > ../tmp/BigFace.ps - cd smilies; for i in *.xpm; do echo $$i; sed "s/none/#FFFFFF/" $$i | xpmtoppm | ppmtopgm | pnmdepth 255 | pnmtops > ../tmp/smiley-`basename $$i .xpm`.ps; done - for i in tmp/smiley-*.ps; do \ + for j in ps/smiley-*.ps; do \ + i=ps/`basename $$j .ps`; \ if [ -n "$$a" ]; then a=""; echo "{$$i}"; else \ a="h"; echo -n "\\gnussmiley{$$i}"; fi done > smiley.tex; \ if [ -n "$$a" ]; then echo "{$$i}" >> smiley.tex; fi - pspackage: + cd ps; make clean tar czvf pspackage.tar.gz gnus-faq.texi gnus.texi herds misc pagestyle.sty picons pixidx.sty postamble.tex ps screen smilies splitindex texi2latex.el xface Makefile README etc -complete: - $(MAKE) texi2latex.elc - $(MAKE) tmps - $(MAKE) pss - Makefile: $(srcdir)/Makefile.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status diff --git a/texi/etc/bar.xpm b/texi/etc/bar.xpm new file mode 100644 index 0000000..2985065 --- /dev/null +++ b/texi/etc/bar.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char * picon-bar_xpm[] = { +"6 48 2 1", +" c white s background", +". c black", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. ", +" .. "}; diff --git a/texi/etc/gnus-group-catchup-current-up.xpm b/texi/etc/gnus-group-catchup-current-up.xpm new file mode 100644 index 0000000..0504f9d --- /dev/null +++ b/texi/etc/gnus-group-catchup-current-up.xpm @@ -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"}; diff --git a/texi/etc/gnus-group-catchup-current.xpm b/texi/etc/gnus-group-catchup-current.xpm new file mode 100644 index 0000000..bea4643 --- /dev/null +++ b/texi/etc/gnus-group-catchup-current.xpm @@ -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"}; diff --git a/texi/etc/gnus-group-describe-group-up.xpm b/texi/etc/gnus-group-describe-group-up.xpm new file mode 100644 index 0000000..e0ffde7 --- /dev/null +++ b/texi/etc/gnus-group-describe-group-up.xpm @@ -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......................", +" ..........................."}; diff --git a/texi/etc/gnus-group-exit-up.xpm b/texi/etc/gnus-group-exit-up.xpm new file mode 100644 index 0000000..1b8982f --- /dev/null +++ b/texi/etc/gnus-group-exit-up.xpm @@ -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"}; diff --git a/texi/etc/gnus-group-get-new-news-this-group-up.xpm b/texi/etc/gnus-group-get-new-news-this-group-up.xpm new file mode 100644 index 0000000..918fd2e --- /dev/null +++ b/texi/etc/gnus-group-get-new-news-this-group-up.xpm @@ -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. "}; diff --git a/texi/etc/gnus-group-get-new-news-up.xpm b/texi/etc/gnus-group-get-new-news-up.xpm new file mode 100644 index 0000000..d324784 --- /dev/null +++ b/texi/etc/gnus-group-get-new-news-up.xpm @@ -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. "}; diff --git a/texi/etc/gnus-group-kill-group-up.xpm b/texi/etc/gnus-group-kill-group-up.xpm new file mode 100644 index 0000000..e728bf5 --- /dev/null +++ b/texi/etc/gnus-group-kill-group-up.xpm @@ -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. ", +" .................... ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-group-subscribe-up.xpm b/texi/etc/gnus-group-subscribe-up.xpm new file mode 100644 index 0000000..15f7d43 --- /dev/null +++ b/texi/etc/gnus-group-subscribe-up.xpm @@ -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. ", +" .................... ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-group-unsubscribe-up.xpm b/texi/etc/gnus-group-unsubscribe-up.xpm new file mode 100644 index 0000000..7c7ce5b --- /dev/null +++ b/texi/etc/gnus-group-unsubscribe-up.xpm @@ -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. ", +" .................... ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-caesar-message-up.xpm b/texi/etc/gnus-summary-caesar-message-up.xpm new file mode 100644 index 0000000..6f56aa9 --- /dev/null +++ b/texi/etc/gnus-summary-caesar-message-up.xpm @@ -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. ", +" .................... ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-cancel-article-up.xpm b/texi/etc/gnus-summary-cancel-article-up.xpm new file mode 100644 index 0000000..fa7c639 --- /dev/null +++ b/texi/etc/gnus-summary-cancel-article-up.xpm @@ -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. ... ... ... ...", +"................................", +"................................", +"................................", +" ... ... ... ... ... ... ... ...", +"................................", +"................................", +"................................", +" ... ... ... ... ... ... ... ...", +"................................", +"................................", +"................................", +" ... ... ... ... ... ... ... ...", +"................................", +"................................", +"................................"}; diff --git a/texi/etc/gnus-summary-catchup-and-exit-up.xpm b/texi/etc/gnus-summary-catchup-and-exit-up.xpm new file mode 100644 index 0000000..a5d8ba6 --- /dev/null +++ b/texi/etc/gnus-summary-catchup-and-exit-up.xpm @@ -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"}; diff --git a/texi/etc/gnus-summary-catchup-up.xpm b/texi/etc/gnus-summary-catchup-up.xpm new file mode 100644 index 0000000..9de9baf --- /dev/null +++ b/texi/etc/gnus-summary-catchup-up.xpm @@ -0,0 +1,37 @@ +/* XPM */ +static char * icon-catchup2_xpm[] = { +"32 32 2 1", +" c #000000000000", +". c #BFBFBFBFBFBF s backgroundToolBarColor", +" ... ... ... ... ... ... ... ...", +"................................", +"................................", +"................................", +" ... ... ... ... ... ... ... ...", +"................................", +"................................", +"................. .............", +" ... ... ... ... . ... ... ...", +"................ ..............", +"............... ................", +"................................", +" ... ... ... ... ... ... ... ...", +"................................", +"................................", +"............. .......... .....", +" ... ... ... . ... ... . ...", +"............ .......... ......", +"........... ........... ........", +"............ .......... .......", +" ... ... ... . . ... ... ... ...", +"............... ..... ", +"................ ... ......", +"........ ..... ... ...... .....", +" ... .. .. . . . . .. . .", +"....... .... .... ... .. . ... ", +"...... ...... ... ..... ... ...", +"...... .. .... ...... .. ..", +" ... ... . ... .. .. ..", +"........... .... . .... .", +".......... ..... ..... .. .", +".......... ..... ....... ... "}; diff --git a/texi/etc/gnus-summary-exit-up.xpm b/texi/etc/gnus-summary-exit-up.xpm new file mode 100644 index 0000000..d1ab26a --- /dev/null +++ b/texi/etc/gnus-summary-exit-up.xpm @@ -0,0 +1,37 @@ +/* XPM */ +static char * icon-exit-summary_xpm[] = { +"32 32 2 1", +" c #000000000000", +". c #BFBFBFBFBFBF s backgroundToolBarColor", +" ... ... ... ... ... ... ... ...", +"................................", +"................................", +"................................", +" ... ...... ... ...", +"........ ....... .......", +"........ ........... .......", +"........ .......... .......", +" ... ... ... ....... ... ...", +"................ ... .......", +".................... .......", +"........ .......... .......", +" ... ... ... ....... ... ...", +"........ ....... . .......", +"........ ....... . .......", +"........ ....... . .......", +" ... ... ... ....... ... ...", +"........ .......... .......", +"........ ........... .......", +"................ ... .......", +" ... ....... ....... ... ...", +"........ .......... .......", +"........ ........ . . .......", +"........ .... . . . . ........", +" ... .. .. . . . . ... ...", +"................................", +"................................", +"................................", +" ... ... ... ... ... ... ... ...", +"................................", +"................................", +"................................"}; diff --git a/texi/etc/gnus-summary-followup-up.xpm b/texi/etc/gnus-summary-followup-up.xpm new file mode 100644 index 0000000..3cee12e --- /dev/null +++ b/texi/etc/gnus-summary-followup-up.xpm @@ -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. "}; diff --git a/texi/etc/gnus-summary-followup-with-original-up.xpm b/texi/etc/gnus-summary-followup-with-original-up.xpm new file mode 100644 index 0000000..baffb6b --- /dev/null +++ b/texi/etc/gnus-summary-followup-with-original-up.xpm @@ -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. "}; diff --git a/texi/etc/gnus-summary-mail-copy-up.xpm b/texi/etc/gnus-summary-mail-copy-up.xpm new file mode 100644 index 0000000..e73e6d5 --- /dev/null +++ b/texi/etc/gnus-summary-mail-copy-up.xpm @@ -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... ", +" .......................... ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-mail-delete-up.xpm b/texi/etc/gnus-summary-mail-delete-up.xpm new file mode 100644 index 0000000..932d8f2 --- /dev/null +++ b/texi/etc/gnus-summary-mail-delete-up.xpm @@ -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 ", +" ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-mail-forward-up.xpm b/texi/etc/gnus-summary-mail-forward-up.xpm new file mode 100644 index 0000000..19db803 --- /dev/null +++ b/texi/etc/gnus-summary-mail-forward-up.xpm @@ -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. ", +" ... ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-mail-get-up.xpm b/texi/etc/gnus-summary-mail-get-up.xpm new file mode 100644 index 0000000..ffdb84c --- /dev/null +++ b/texi/etc/gnus-summary-mail-get-up.xpm @@ -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... ", +" .......................... ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-mail-originate-up.xpm b/texi/etc/gnus-summary-mail-originate-up.xpm new file mode 100644 index 0000000..8ba8bc2 --- /dev/null +++ b/texi/etc/gnus-summary-mail-originate-up.xpm @@ -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... ", +" .......................... ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-mail-reply-up.xpm b/texi/etc/gnus-summary-mail-reply-up.xpm new file mode 100644 index 0000000..20fe672 --- /dev/null +++ b/texi/etc/gnus-summary-mail-reply-up.xpm @@ -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... ", +" .......................... ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-mail-save-up.xpm b/texi/etc/gnus-summary-mail-save-up.xpm new file mode 100644 index 0000000..fd4824b --- /dev/null +++ b/texi/etc/gnus-summary-mail-save-up.xpm @@ -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. ", +" ................ ", +" "}; diff --git a/texi/etc/gnus-summary-next-unread-up.xpm b/texi/etc/gnus-summary-next-unread-up.xpm new file mode 100644 index 0000000..e525816 --- /dev/null +++ b/texi/etc/gnus-summary-next-unread-up.xpm @@ -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. "}; diff --git a/texi/etc/gnus-summary-post-news-up.xpm b/texi/etc/gnus-summary-post-news-up.xpm new file mode 100644 index 0000000..46be7c1 --- /dev/null +++ b/texi/etc/gnus-summary-post-news-up.xpm @@ -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... ", +" .... ", +" ", +" . . . . . . . . ", +" ", +" "}; diff --git a/texi/etc/gnus-summary-prev-unread-up.xpm b/texi/etc/gnus-summary-prev-unread-up.xpm new file mode 100644 index 0000000..b2088fb --- /dev/null +++ b/texi/etc/gnus-summary-prev-unread-up.xpm @@ -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. "}; diff --git a/texi/etc/gnus-summary-reply-up.xpm b/texi/etc/gnus-summary-reply-up.xpm new file mode 100644 index 0000000..255f7a1 --- /dev/null +++ b/texi/etc/gnus-summary-reply-up.xpm @@ -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"}; diff --git a/texi/etc/gnus-summary-reply-with-original-up.xpm b/texi/etc/gnus-summary-reply-with-original-up.xpm new file mode 100644 index 0000000..1135bfa --- /dev/null +++ b/texi/etc/gnus-summary-reply-with-original-up.xpm @@ -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"}; diff --git a/texi/etc/gnus-summary-save-article-file-up.xpm b/texi/etc/gnus-summary-save-article-file-up.xpm new file mode 100644 index 0000000..ea30122 --- /dev/null +++ b/texi/etc/gnus-summary-save-article-file-up.xpm @@ -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. ", +" ................ ", +" "}; diff --git a/texi/etc/gnus-summary-save-article-up.xpm b/texi/etc/gnus-summary-save-article-up.xpm new file mode 100644 index 0000000..fd4824b --- /dev/null +++ b/texi/etc/gnus-summary-save-article-up.xpm @@ -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. ", +" ................ ", +" "}; diff --git a/texi/etc/gnus-uu-decode-uu-up.xpm b/texi/etc/gnus-uu-decode-uu-up.xpm new file mode 100644 index 0000000..568315c --- /dev/null +++ b/texi/etc/gnus-uu-decode-uu-up.xpm @@ -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. ", +" ................... ", +" ", +" ", +" "}; diff --git a/texi/etc/gnus-uu-post-news-up.xpm b/texi/etc/gnus-uu-post-news-up.xpm new file mode 100644 index 0000000..f4a7e3a --- /dev/null +++ b/texi/etc/gnus-uu-post-news-up.xpm @@ -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 .. ...", +"....... ......", +"................................", +"................................"}; diff --git a/texi/etc/gnus.xpm b/texi/etc/gnus.xpm new file mode 100644 index 0000000..b51c903 --- /dev/null +++ b/texi/etc/gnus.xpm @@ -0,0 +1,283 @@ +/* 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 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" +}; diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 4adb478..2fe566d 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -26,6 +26,7 @@ \makeindex \begin{document} +\newcommand{\gnusversionname}{T-gnus v.} \newcommand{\gnuschaptername}{} \newcommand{\gnussectionname}{} @@ -52,6 +53,7 @@ \newcommand{\gnusvar}[1]{{\fontsize{10pt}{10}\selectfont\textsl{\textsf{#1}}}} \newcommand{\gnussc}[1]{\textsc{#1}} \newcommand{\gnustitle}[1]{{\huge\textbf{#1}}} +\newcommand{\gnusversion}[1]{{\small\textit{#1}}} \newcommand{\gnusauthor}[1]{{\large\textbf{#1}}} \newcommand{\gnusresult}[1]{\gnustt{=> #1}} @@ -69,7 +71,7 @@ \newcommand{\gnusbraceleft}{{$>$}} \newcommand{\gnusbraceright}{{$>$}} -\newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}} +\newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head,height=1cm}}} \newcommand{\gnusinteresting}{ \marginpar[\mbox{}\hfill\gnushead]{\gnushead} } @@ -108,7 +110,7 @@ } \newcommand{\gnusicon}[1]{ -\marginpar[\mbox{}\hfill\raisebox{-1.5cm}{\epsfig{figure=tmp/#1-up.ps,height=1.5cm}}]{\raisebox{-1cm}{\epsfig{figure=tmp/#1-up.ps,height=1cm}}} +\marginpar[\mbox{}\hfill\raisebox{-1.5cm}{\epsfig{figure=ps/#1-up,height=1.5cm}}]{\raisebox{-1cm}{\epsfig{figure=ps/#1-up,height=1cm}}} } \newcommand{\gnuspicon}[1]{ @@ -188,9 +190,9 @@ { \ifodd\count0 \mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \hfill \mbox{} \fi } @@ -212,9 +214,9 @@ { \ifodd\count0 \mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \hfill \mbox{} \fi } @@ -236,9 +238,9 @@ { \ifodd\count0 \mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \hfill \mbox{} \fi } @@ -259,10 +261,10 @@ \parindent=0cm \addtolength{\textheight}{2cm} -\gnustitle{\gnustitlename}\\ +\gnustitle{\gnustitlename}\hfill\gnusversion{\gnusversionname}\\ \rule{15cm}{1mm}\\ \vfill -\hspace*{0cm}\epsfig{figure=ps/gnus-big-logo.eps,height=15cm} +\hspace*{0cm}\epsfig{figure=ps/gnus-big-logo,height=15cm} \vfill \rule{15cm}{1mm}\\ \gnusauthor{by Lars Magne Ingebrigtsen} @@ -274,7 +276,7 @@ \thispagestyle{empty} -Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000 +Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. @@ -322,7 +324,8 @@ This file documents gnus, the GNU Emacs newsreader. $B$3$N%U%!%$%k$O(B GNU Emacs $B$N%K%e!<%9%j!<%@$G$"$k(B gnus $B$K4X$9$k@bL@=q$G$9!#(B -Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 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 @@ -369,7 +372,8 @@ license to the document, as described in section 6 of the license. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 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 @@ -712,6 +716,7 @@ Select Methods * Getting Mail:: $B8D?ME*$J%a!<%k$r(B gnus $B$GFI$`(B * Browsing the Web:: $B2a>j$J%&%'%V$N;q8;$+$i%a%C%;!<%8$r$N%U%!%$%k$rFI$`$?$a$K%a!<%k%P%C%/%((B $B%s%I$r;H$&(B -* Choosing a Mail Backend:: Gnus $B$O?'!9$J%a!<%kMM<0$rFI$`;v$,$G$-$k(B +* Choosing a Mail Back End:: Gnus $B$O?'!9$J%a!<%kMM<0$rFI$`;v$,$G$-$k(B * Archiving Mail:: $B%a!<%k$r%P%C%/%"%C%W$9$k$K$O(B Mail Sources @@ -766,7 +771,7 @@ Mail Sources * Mail Source Customization:: $B@$$NCf$K1F6A$9$k$$$/$D$+$NJQ?t(B * Fetching Mail:: $B%a!<%k%=!<%9;X<(;R$r;HMQ$9$k(B -Choosing a Mail Backend +Choosing a Mail Back End * Unix Mail Box:: ($B$H$F$b(B) $BI8=`E*$J(B Un*x mbox $B$r;H$&(B * Rmail Babyl:: Emacs $B$N%W%m%0%i%`$O(B rmail $B$N(B babyl $B%U%)!<(B @@ -775,7 +780,7 @@ Choosing a Mail Backend * MH Spool:: mhspool $B$N$h$&$J%P%C%/%(%s%I(B * Mail Folders:: $B$=$l$>$l$N%0%k!<%W$KBP$7$F0l$D$N%U%!%$%k(B $B$r;}$D(B -* Comparing Mail Backends:: $BF@<:$N?<$$F6;!(B +* Comparing Mail Back Ends:: $BF@<:$N?<$$F6;!(B Browsing the Web @@ -787,6 +792,13 @@ Browsing the Web * RSS:: RDF Site Summary $B$rFI$`(B * Customizing w3:: Gnus $B$+$i(B Emacs/w3 $B$rA`:n$9$k(B +@sc{imap} + +* Splitting in IMAP:: nnimap $B$G%a!<%k$rJ,3d$9$k(B +* Editing IMAP ACLs:: $B%a!<%k%\%C%/%9$X$NB>$NMxMQ$NMxMQe$K$G$-$??7$7$$%K%e!<%9%0%k!<%W$O85!9(B $B$N%0%k!<%W$HF1$8$h$&$K9XFI(B ($B$b$7$/$OHs9XFI(B) $B$5$l$^$9!#(B -$B$?$H$($P!"%a!<%k$rFI$`$?$a$K(B @code{nnmbox} $B%P%C%/%(%s%I(B (backend) $B$r;H$$(B -$B$?$$$H$-$O!"IaDL!"$3$NJQ?t$r!"(B +$B$?$H$($P!"%a!<%k$rFI$`$?$a$K(B @code{nnmbox} $B%P%C%/%(%s%I(B (back end) $B$r;H(B +$B$$$?$$$H$-$O!"IaDL!"$3$NJQ?t$r!"(B @lisp (setq gnus-secondary-select-methods '((nnmbox ""))) @@ -1748,7 +1752,7 @@ Gnus $B$N5/F0$K@.8y$7$?8e$K!"0lHV:G8e$KpJs$,$"$j$^$9!#(B +$B$^$?(B @xref{Header Commands, ,$B%X%C%@!pJs$,$"$j$^$9!#(B @node Summary Post Commands @subsection $B35N,$NEj9FL?Na(B @@ -4978,7 +4983,8 @@ gnus $B$O$=$N%a!<%k$rpJs$,$"$j$^$9!#(B +$B$^$?(B @xref{Header Commands, ,$B%X%C%@!pJs$,$"$j$^$9!#(B @c FIXME this is not implemented @node Summary Message Commands @@ -5308,11 +5314,6 @@ gnus $B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s(B) $B$N$G!"1J1s$K5-;v$rJ]B8$7$F$* $BE>Aw$7$?5-;v$O$9$Y$FFs7eL\$K(B @samp{F} $B$N0u$,$D$-$^(B $B$9(B (@code{gnus-forwarded-mark})$B!#(B -@vindex gnus-recent-mark -$B$=$N%0%k!<%W$G(B ``$B:G6a(B'' (``recently'') $BFO$$$?5-;v$OFs7eL\$K(B @samp{N} $B$N(B -$B$N0u$,$D$-$^$9(B (@code{gnus-recent-mark})$B!#$?$$$F$$$N%P%C%/%(%s%I$O$3$N0u(B -$B$r%5%]!<%H$;$:!"$=$N>l9g$OI=<($5$l$^$;$s!#(B - @item @vindex gnus-cached-mark $B5-;v%-%c%C%7%e$KCy$a$i$l$F$$$k5-;v$OFs7eL\$K(B @samp{*} $B$N0u$,$D$-$^(B @@ -5323,6 +5324,11 @@ gnus $B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s(B) $B$N$G!"1J1s$K5-;v$rJ]B8$7$F$* ($B2?$i$+$NJ}K!$K$h$C$F!(I,$:$7$b=!65E*$H$$$&$o$1$G$O$J$/(B) $B!XJ]B8$5$l$?!Y(B $B5-;v$OFs7eL\$K(B @samp{S} $B$N0u$,$D$-$^$9(B (@code{gnus-saved-mark})$B!#(B +@vindex gnus-recent-mark +$B$=$N%0%k!<%W$G(B ``$B:G6a(B'' (``recently'') $BFO$$$?5-;v$OFs7eL\$K(B @samp{N} $B$N(B +$B$N0u$,$D$-$^$9(B (@code{gnus-recent-mark})$B!#$?$$$F$$$N%P%C%/%(%s%I$O$3$N0u(B +$B$r%5%]!<%H$;$:!"$=$N>l9g$OI=<($5$l$^$;$s!#(B + @item @vindex gnus-unseen-mark $B$^$@FI$^$l$?$3$H$,$J$$5-;v$OFs7eL\$K(B @samp{.} $B$N0u$,$D$-$^(B @@ -5851,10 +5857,10 @@ Gnus $B$O=i4|@_Dj$G5-;v$r%9%l%C%I$K$7$^$9!#(B@dfn{$B%9%l%C%I$K$9$k(B} $B$H$ @iftex @iflatex \gnusfigure{The Summary Buffer}{390}{ -\put(0,0){\epsfig{figure=tmp/summary-adopt.ps,width=7.5cm}} -\put(445,0){\makebox(0,0)[br]{\epsfig{figure=tmp/summary-empty.ps,width=7.5cm}}} -\put(0,400){\makebox(0,0)[tl]{\epsfig{figure=tmp/summary-none.ps,width=7.5cm}}} -\put(445,400){\makebox(0,0)[tr]{\epsfig{figure=tmp/summary-dummy.ps,width=7.5cm}}} +\put(0,0){\epsfig{figure=ps/summary-adopt,width=7.5cm}} +\put(445,0){\makebox(0,0)[br]{\epsfig{figure=ps/summary-empty,width=7.5cm}}} +\put(0,400){\makebox(0,0)[tl]{\epsfig{figure=ps/summary-none,width=7.5cm}}} +\put(445,400){\makebox(0,0)[tr]{\epsfig{figure=ps/summary-dummy,width=7.5cm}}} } @end iflatex @end iftex @@ -6015,10 +6021,10 @@ Gnus $B$O(B @code{Subject} $BMs$r8+$k$3$H$K$h$C$F%9%l%C%I$r=8$a$^$9!#$3$l$O!" $B%I$K@\B3$7$F$*$-$?$$$H$-$O!"$3$NJQ?t$r(B @code{some} $B$+?t;z$K@_Dj$9$k$3$H(B $B$,$G$-$^$9!#$b$7?t;z$K@_Dj$7$?$H$-$O!"$=$l$h$jB?$$DI2C$N%X%C%@!<$Ol9g$G$b!"8E$$%X%C%@!<$NrM}$KCV$-(B $B$[$H$s$I$N%a!<%k%P%C%/%(%s%I$O(B @code{Message-ID} $B$G$N$N$b$N$O;~4V$,$+$+$j$9$.$^$9!#(B) -@code{nnmh} $B$G$OA4$/IT2DG=$G$9!#(B +$B$,$G$-$^$9$,!"(B@code{nnml}, @code{nnfolder} $B$*$h$S(B @code{nnimap} $B$O8=:_$N(B +$B%0%k!<%W$KEj9F$7$?5-;v$N0LCV$7$+F@$k;v$,$G$-$^$;$s!#(B($B$=$NB>$N$b$N$O;~4V(B +$B$,$+$+$j$9$.$^$9!#(B) @code{nnmh} $B$G$OA4$/IT2DG=$G$9!#(B @node Alternative Approaches @section $BBeBX'$($l$PNI$$$G$7$g$&!#$3$l$K$h$C$F35N,%P%C%U%!$G$N0J2<$NL?Na$,;H$($k$h(B +$B$&$K$J$j$^$9!#(B + +@table @kbd @item C-c C-n h @kindex C-c C-n h (Summary) @findex gnus-mailing-list-help @@ -9765,9 +9787,9 @@ Gnus $B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0(B "%Y-%m" (current-time)))))) @end lisp -(XEmacs 19.13 $B$K$O(B @code{format-time-string} $B$O$"$j$^$;$s$N$G!"$=(B -$B$N(B @code{gnus-message-archive-group} $B$N$?$a$K0c$C$?CM$r;H$o$J$1$l$P$J$j(B -$B$^$;$s!#(B) +@c (XEmacs 19.13 $B$K$O(B @code{format-time-string} $B$O$"$j$^$;$s$N$G!"$=(B +@c $B$N(B @code{gnus-message-archive-group} $B$N$?$a$K0c$C$?CM$r;H$o$J$1$l$P$J$j(B +@c $B$^$;$s!#(B) $B:#$d!"%a%C%;!<%8$rAw$k$H!"$=$l$OE,@Z$J%0%k!<%W$KJ]B8$5$l$^$9!#(B($B$b$7FCDj(B $B$N%a%C%;!<%8$KBP$7$FJ]B8$r$7$?$/$J$$$N$G$"$l$P!"A^F~$5$l$?(B @code{Gcc} $BMs(B @@ -10031,10 +10053,11 @@ your @file{~/.emacs} or @file{~/.gnus}: @end lisp To sign or encrypt your message you may choose to use the MML Security -menu or @kbd{C-c C-m s p} to sign your message using PGP/MIME, @kbd{C-c -C-m s s} to sign your message using S/MIME. There's also @kbd{C-c C-m c -p} to encrypt your message with PGP/MIME and @kbd{C-c C-m c s} to -encrypt using S/MIME. +menu or @kbd{C-c C-m s p} to sign your message using PGP/MIME, +@kbd{C-c C-m s s} to sign your message using S/MIME. There's also +@kbd{C-c C-m c p} to encrypt your message with PGP/MIME and @kbd{C-c +C-m c s} to encrypt using S/MIME. @xref{Security, ,Security, message, +The Message Manual}. Gnus will ask for your passphrase and then it will send your message, if you've typed it correctly. @@ -10077,6 +10100,7 @@ you've typed it correctly. * Getting Mail:: $B8D?ME*$J%a!<%k$r(B gnus $B$GFI$`(B * Browsing the Web:: $B2a>j$J%&%'%V$N;q8;$+$i%a%C%;!<%8$rC5n$7$^(B @node Getting News @section $B%K%e!<%9$N$N%U%!%$%k$rFI$`$?$a$K%a!<%k%P%C%/%((B $B%s%I$r;H$&(B -* Choosing a Mail Backend:: Gnus $B$O?'!9$J%a!<%kMM<0$rFI$`;v$,$G$-$k(B +* Choosing a Mail Back End:: Gnus $B$O?'!9$J%a!<%kMM<0$rFI$`;v$,$G$-$k(B * Archiving Mail:: $B%a!<%k$r%P%C%/%"%C%W$9$k$K$O(B @end menu @@ -11081,7 +11105,7 @@ Gnus $B$r;H$C$F?7$7$$%a!<%k$rFI$`;v$OHs>o$K4JC1$G$9!#$"$J$?$N%a!<%k%P%C%/(B $B$3$l$O(B gnus $B$G%a!<%k$rFI$`$?$a$K=$N9`$r=OFI$7$?$$$H;W$&$+$b$7$l$^$;$s$,!#FC(B -$B$K(B @pxref{Choosing a Mail Backend} $B$H(B @pxref{Expiring Mail} $B$r!#(B +$B$K(B @pxref{Choosing a Mail Back End} $B$H(B @pxref{Expiring Mail} $B$r!#(B @node Splitting Mail @subsection $B%a!<%k$NJ,3d(B @@ -11441,14 +11465,15 @@ IMAP $B%5!<%P!<$KEO$9%Q%9%o!<%I$G$9!#;XDj$5$l$F$$$J$$$H$-$O!"MxMQu$G$O!"(B -@samp{kerberos4} $B$+(B @samp{ssl} $B$+=i4|CM$N(B @samp{network} $B$K$J$j$^$9!#(B +$B%7%s%\%k$NCf$N$R$H$D$r@_Dj$7$^$9!#8=>u$G$O(B @samp{gssapi}, +@samp{kerberos4}, @samp{starttls}, @samp{ssl}, @samp{shell} $B$^$?$O=i4|CM(B +$B$N(B @samp{network} $B$K$J$j$^$9!#(B @item :authentication $B%5!<%P!<$G$NG'>Z$K$I$NG'>ZK!$r;H$&$+!#$3$l(B $B$O(B @code{imap-authenticator-alist} $B$N%7%s%\%k$N0l$D$r@_Dj$7$^$9!#8=>u$G(B -$B$O!"(B@samp{kerberos4}, @samp{cram-md5}, @samp{anonymous} $B$+=i4|CM(B -$B$N(B @samp{login} $B$K$J$j$^$9!#(B +$B$O(B @samp{gssapi}, @samp{kerberos4}, @samp{digest-md5}, @samp{cram-md5}, +@samp{anonymous} $B$^$?$O=i4|CM$N(B @samp{login} $B$K$J$j$^$9!#(B @item :program :stream $B$K(B `shell' $B$,@_Dj$5$l$F$$$k$H$-$O!"$3$NCM$,JQ(B @@ -11667,7 +11692,7 @@ www.my-deja.com $B$J$I$N%&%'%V%a!<%k%5!<%P!<$+$i%a!<%k$rl9g(B) $BA4$F$N0c$C$?%a!<%k%P%C%/%(%s%I$K4XO"$7$^(B @@ -12402,7 +12427,7 @@ Quoted Readable $BId9f2=$rI|9f2=$7$^$9!#(B $BA4$F$N%a!<%k%P%C%/%(%s%I$OF~$C$F$/$k%a!<%k$rFI$_9~$`$H$-$K!"J]B8$5$l$k$Y(B $B$-5-;v$KHO0O$r69$a$F(B @code{nn}*@code{-prepare-save-mail-hook} $B$r8F$S$^$9!#(B -@node Choosing a Mail Backend +@node Choosing a Mail Back End @subsection $B%a!<%k%P%C%/%(%s%I$rA*$V(B Gnus $B$O%a!<%k%0%k!<%W$rF0:n$9$k$h$&$K$9$k$H%a!<%k%9%W!<%k$rFI$_9~$_$^$9!#(B @@ -12421,7 +12446,7 @@ Gnus $B$O%a!<%k%0%k!<%W$rF0:n$9$k$h$&$K$9$k$H%a!<%k%9%W!<%k$rFI$_9~$_$^$9!#(B * MH Spool:: mhspool $B$N$h$&$J%P%C%/%(%s%I(B * Mail Folders:: $B$=$l$>$l$N%0%k!<%W$KBP$7$F0l$D$N%U%!%$%k(B $B$r;}$D(B -* Comparing Mail Backends:: $BF@<:$N?<$$F6;!(B +* Comparing Mail Back Ends:: $BF@<:$N?<$$F6;!(B @end menu @node Unix Mail Box @@ -12716,10 +12741,10 @@ rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM(B $B%$%k$K5$IU$+$;$k$?$a$K!"L?Na(B @kbd{M-x nnfolder-generate-active-file} $B$r(B $B;H$&;v$,$G$-$^$9!#$3$l$OD9$$%U%!%$%kL>$r;H$C$F$$$k$H$-$K$N$_F0:n$7$^$9$,!#(B -@node Comparing Mail Backends +@node Comparing Mail Back Ends @subsubsection $B%a!<%k%P%C%/%(%s%I$NHf3S(B -$B$^$:!"MQ8l$H$7$F!"(B@dfn{$B%P%C%/%(%s%I(B} (backend) $B$ODc$`$J$i!"F)2aE*$G$"$j!"$=$l$O2?$+$r@.$7?k$2$k$b$N$G(B $B$9!#$=$N$3$3$m$O!"%a!<%k$O$I$3$+$i$+Mh$J$1$l$P$J$i$:!"E,@Z$J%P%C%/%(%s%I(B $B$NA*Br$O!"%a!<%k$r(B gnus $B$N$9$06a$/$KH(B $B$9$k$h$&$K$J$k$G$7$g$&!#(B -@node Other Sources -@section $B$=$NB>$N%0%k!<%W8;(B - -Gnus $B$O$?$@C1$K%K%e!<%9$d%a!<%k$rFI$`0J>e$N$3$H$,$G$-$^$9!#0J2<(B -$B$K<($9J}K!$K$h$C$F!"(Bgnus $B$G%G%#%l%/%H%j!<$d%U%!%$%k$r!"$"$?$+$b(B -$B%K%e!<%9%0%k!<%W$G$"$k$+$N$h$&$K1\Mw$9$k$3$H$,$G$-$k$h$&$K$J$j$^(B -$B$9!#(B - -@menu -* Directory Groups:: $B%G%#%l%/%H%j!<$r%K%e!<%9%0%k!<%W$N$h$&$K(B - $BFI$`(B -* Anything Groups:: Dired? $BC/$,(B dired $B$J$s$F;H$&$N(B? -* Document Groups:: $B8DJL$N%U%!%$%k72$O%0%k!<%W$NAG(B -* SOUP:: @sc{soup} $B%Q%1%C%H$r(B ``$B%*%U%i%$%s(B'' $B$GFI$`(B -* Mail-To-News Gateways:: $B%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$$rDL$7(B - $B$F5-;v$rEj9F$9$k(B -* IMAP:: Gnus $B$r(B IMAP $B$N%/%i%$%"%s%H$H$7$F;H$&(B -@end menu - -@node Directory Groups -@subsection $B%G%#%l%/%H%j!<%0%k!<%W(B -@cindex nndir -@cindex directory groups - -$B$b$7!"$?$/$5$s$N5-;v$,8DJL$N%U%!%$%k$H$7$FF~$C$F$$$k%G%#%l%/%H%j!<$,$"$l(B -$B$P!"$=$l$r%K%e!<%9%0%k!<%W$H$7$F07$&$3$H$,$G$-$^$9!#$b$A$m$s!"%U%!%$%k$O(B -$B?t;z$N%U%!%$%kL>$r$b$C$F$$$J$1$l$P$J$j$^$;$s!#(B - -$B$3$3$G(B Emacs $B$NAG@2$i$7$$%Q%C%1!<%8$NCf$G$b:G$bAG@2$i$7(B -$B$$(B @code{ange-ftp} ($B$H$=$N8e7Q$N(B @code{efs}) $B$K$D$$$F?($l$kNI$$5!2q$G$7$g(B -$B$&!#;d$,(B @code{nndir} $B$r=q$$$?$H$-$O!"$3$l(B --- $B%G%#%l%/%H%j!<$rFI$`%P%C(B -$B%/%(%s%I$K$D$$$F$O$"$^$j9M$($F$$$^$;$s$G$7$?!#$H$s$G$b$J$$$3$H$@$M!#(B - -@code{ange-ftp} $B$O$3$N>p67$r7`E*$KJQ2=$5$;$^$7$?!#Nc$($P!"(B -@code{ange-ftp} $B%U%!%$%k(B -$BL>(B @file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} $B$r%G%#%l%/%H%j!$H$7$F(B -$BF~NO$7$?$H$9$k$H!"(B@code{ange-ftp} $B$"$k$$$O(B @code{efs} $B$OC5n$r9T$J$&$3$H$O$G$-$^$;$s!#(B@code{nndir} $B$,;H$($k(B -$B$b$N$J$i2?$G$b(B @code{nnmh} $B$"$k$$$O(B @code{nnml} $B$r;H$&$3$H$,$G$-$k$N$G!"(B -$B$b$7FI$_=P$7@lMQ$G$O$J$$(B @code{nndir} $B$,I,MW$@$H;W$C$?$i!"$3$l$i$N$I$A$i(B -$B$+$NJ}K!$K@Z$jBX$($k$3$H$b$G$-$^$9!#(B +@node IMAP +@section @sc{imap} +@cindex nnimap +@cindex IMAP -@node Anything Groups -@subsection $B$J$s$G$b%0%k!<%W(B -@cindex nneething +IMAP $B$O%a!<%k(B ($B$b$7$/$O!"%K%e!<%9!"$b$7$/$O(B ...) $B$rFI$`$?$a$N%M%C%H%o!<(B +$B%/%W%m%H%3%k$G$9!#8=BeIw$N(B NNTP $B$H9M$($F$/$@$5$$!#(BIMAP $B%5!<%P!<$X$N@\B3(B +$B$O%K%e!<%9%5!<%P!<$X$N@\B3$HHs>o$K;w$F$$$F!"$=$N%5!<%P!<$N%M%C%H%o!<%/%"(B +$B%I%l%9$r;XDj$9$k$@$1$K$J$C$F$$$^$9!#(B -($B0l$D$N%9%W!<%kIw%G%#%l%/%H%j!<$H2r$lA':w$7$F$^$o$j$^$9!#$b$7$=$N%U%!%$%k$,5-;v$N$h$&$K8+$((B -$B$?$J$i(B ($B$9$J$o$A!":G=i$N?t9T$,%X%C%@!<$N$h$&$K8+$($?$i(B) $B$=$l$r%X%C%@$H$7(B -$B$F;H$$$^$9!#$b$7$=$l$,%X%C%@!<$N$J$$$?$@$NE,Ev$J%U%!%$%k(B ($BNc$($P(B C $B$N%=!<(B -$B%9%U%!%$%k(B) $B$G$"$C$?$J$i!"(B@code{nneething} $B$O%X%C%@!<$r5u6u$+$i:n$j=P$7(B -$B$^$9!#$3$l$O%U%!%$%k$N=jM-A0!"F|IU$r;H$$!"$3$l$i$NMWAG$KBP$7$F$G$-(B -$B$k$3$H$r2?$G$b$d$j$^$9!#(B +@sc{imap} $B$r(B POP++ $B$N$h$&$K;H$$$?$$$H$-$O!"%a!<%k%=!<%9$K(B imap $B$rEPO?$7(B +$B$F2<$5$$!#$3$l$K$h$C$F(B gnus $B$O(B @sc{imap} $B%5!<%P!<$+$i%a!<%k$rH$7$F2<$5$$!#(B -$B$3$l$O$"$J$?$K$H$C$F$OA4$F<+F0E*$K5/$3$k$3$H$G!"$"$J$?$O%K%e!<%9%0%k!<%W(B -$B$K$H$F$bNI$/;w$?2?$+$r8+$;$i$l$k$3$H$K$J$k$G$7$g$&!#$[$s$H$&$K@#J,0c$o$J(B -$B$$!"%K%e!<%9%0%k!<%W$N$h$&$J$b$N$r!#5-;v$rA*Br$9$k$H!"$=$l$O$$$D$b$N$h$&(B -$B$K!"5-;v%P%C%U%!$KI=<($5$l$k$G$7$g$&!#(B +@sc{imap} $B$r%a!<%k$rCyB"$9$k%W%m%H%3%k$H$7$F;H$$$?$$$H$-$O!"(B +gnus-secondary-select-methods $B$K(B nnimap $B$rEPO?$7$F2<$5$$!#$3$l$K$h$C(B +$B$F(B gnus $B$O(B @sc{imap} $B%5!<%P!<$KCyB"$5$l$F$$$k%a!<%k$rA`:n$9$k$h$&$K$J$j(B +$B$^$9!#$3$l$,$3$3$G@bL@$9$k;H$$J}$G$9!#(B -$B%G%#%l%/%H%j!<$rI=$o$7$F$$$k9T$rA*Br$9$k$H!"(Bgnus $B$O$"$J$?$r$3(B -$B$N(B @code{nneething} $B%0%k!<%W$N$?$a$N?7$7$$35N,%P%C%U%!$KO"$l$F9T$/$G$7$g(B -$B$&!#0J2pJs$r21$($F$*$-$^$;$s!#$b$7(B @kbd{G m} $B$GIaDL$K8G(B -$BDj(B @code{nneething} $B%0%k!<%W$r:n$k$H!"(Bgnus $B$O5-;vHV9f$H%U%!%$%kL>$NBP1~(B -$BI=$r21$($F$*$-!"$3$N%0%k!<%W$rB>$N%0%k!<%W$HF1MM$K07$&$3$H$,$G$-$k$h$&$K(B -$B$J$j$^$9!#8GDj(B @code{nneething} $B%0%k!<%W$r:nF0$5$;$k$H!"L$FI5-;v$,$$$/$D(B -$B4^$^$l$F$$$k$+$rCN$i$5$l$?$j!"$J$I$J$I!#(B +@lisp +(setq gnus-secondary-select-methods + '((nnimap "simpleserver") ; $BIaDL$N@_Dj(B + ; SSH $B%]!<%H$r%U%)%o!<%I$7$?%5!<%P!<(B: + (nnimap "dolk" + (nnimap-address "localhost") + (nnimap-server-port 1430)) + ; $B%m!<%+%k%[%9%H$G1?E>$7$F$$$k(B UW $B%5!<%P!<(B: + (nnimap "barbar" + (nnimap-server-port 143) + (nnimap-address "localhost") + (nnimap-list-pattern ("INBOX" "mail/*"))) + ; $BF?L>$G;H$($k(B cyrus $B$N8x=0%5!<%P!<(B: + (nnimap "cyrus.andrew.cmu.edu" + (nnimap-authenticator anonymous) + (nnimap-list-pattern "archive.*") + (nnimap-stream network)) + ; $BI8=`$G$O$J$$%]!<%H$N(B SSL $B%5!<%P!<(B: + (nnimap "vic20" + (nnimap-address "vic20.somewhere.com") + (nnimap-server-port 9930) + (nnimap-stream ssl)))) +@end lisp -$B$$$/$D$+$NJQ?t$,$"$j$^$9!#(B +$B0J2<$NJQ?t$O2>A[(B @code{nnimap} $B%5!<%P!<$r:n@.$9$k$?$a$K;H$&$3$H$,$G$-$^(B +$B$9!#(B @table @code -@item nneething-map-file-directory -@vindex nneething-map-file-directory -$BA4$F$N8GDj(B @code{nneething} $B%0%k!<%W$NBP1~I=$O$3$N%G%#%l%/%H%j!<$K3JG<$5(B -$B$l$^$9!#$3$N=i4|@_DjCM$O(B @file{~/.nneething/} $B$G$9!#(B - -@item nneething-exclude-files -@vindex nneething-exclude-files -$B$3$N@55,I=8=$K%^%C%A$9$k%U%!%$%k$O$9$Y$FL5;k$5$l$^$9!#<+F0J]B8%U%!%$%k$J(B -$B$I$r=|$/$N$KJXMx$K;H$($^$9!#$=$7$F$=$l$,$^$5$K=i4|@_Dj$G9T$J$o$l$kF0:n$G(B -$B$9!#(B +@item nnimap-address +@vindex nnimap-address -@item nneething-include-files -@vindex nneething-include-files -$B$=$N%U%!%$%k$r%0%k!<%W$K4^$a$k$+$r<($9@55,I=8=$G$9!#$3$NJQ?t(B -$B$,(B @code{nil} $B$G$J$1$l$P!"$3$N@55,I=8=$K9gCW$9$k%U%!%$%k$@$1$,4^$^$l$^$9!#(B +$B1s3V(B IMAP $B%5!<%P!<$N%"%I%l%9$G$9!#;XDj$5$l$F$$$J$$>l9g$O2>A[%5!<%P!<$N$b(B +$B$N$K$J$j$^$9!#(B -@item nneething-map-file -@vindex nneething-map-file -$BBP1~I=%U%!%$%k$NL>A0!#(B -@end table +@item nnimap-server-port +@vindex nnimap-server-port +$B@\B3$r;n$_$k%5!<%P!<$N%]!<%H$G$9!#=i4|CM$G$O!"%]!<%H(B 143 $B$+!"(BSSL $B$G(B +$B$O(B 993 $B$G$9!#(B -@node Document Groups -@subsection $BJ8=q%0%k!<%W(B -@cindex nndoc -@cindex documentation group -@cindex help group +$B$3$l$O@0?t$G$J$1$l$P$J$j$^$;$s!#0J2<$O%5!<%P!<;XDj$NNc$G$9!#(B -@code{nndoc} $B$O0l$D$N%U%!%$%k$r%K%e!<%9%0%k!<%W$H$7$FFI$`$3$H$r$G$-$k$h(B -$B$&$K$9$k!"$A$g$C$H5$$NMx$$$?$d$D$G$9!#$$$/$D$+$N%U%!%$%ko$KB?$/$N%a!<%k%\%C%/%9$,$"$k$1$l$I!"6=L#$N$"$k$b$N$O>/$7$@$1$G(B +$B$"$k$H$-$K;HMQ$7$^$9!#%5!<%P!<$K$O%[!<%`%G%#%l%/%H%j!<$r(B IMAP $B7PM3$G=P$9(B +$B$b$N$b$"$j$^$9$N$G!"$=$N>l9g$O$*$=$i$/%a!<%k%\%C%/%9(B +$B$r(B @file{~/Mail/*} $B$K@)8B$7$?$$$G$7$g$&!#(B -@item babyl -babyl (rmail) $B7A<0$N%a!<%k%\%C%/%9!#(B -@cindex mbox -@cindex Unix mbox +$BJ8;zNs$O(B REFERENCE $B$H>e$NJ8;zNs$H$N(B cons $B$G$"$k$3$H$b$G$-$^$9!#$I(B +$B$N(B REFERENCE $B$,;HMQ$5$l$k$+$O%5!<%P!Aw7A<0!#(B -@cindex forwarded messages +$B0J2<$O%5!<%P!<;XDj$NNc$G$9!#(B -@item forward -$BE>Aw$5$l$?5-;v!#(B +@lisp +(nnimap "mail.server.com" + (nnimap-stream ssl)) +@end lisp -@item nsmail -Netscape mail box$B!#(B +@code{nnimap-stream} $B$NCM$O%7%s%\%k$G$J$1$l$P$J$i$J$$$3$H$KCm0U$7$F2<$5(B +$B$$(B! -@item mime-digest -@item mime-parts -MIME $BB>ItJ,%a%C%;!<%8(B (multipart) $B$G$9!#(B +@itemize @bullet +@item +@dfn{gssapi:} GSSAPI ($BIaDL$O(B kerberos 5) $B$r;H$$$^$9!#(B@samp{imtest} $B%W%m(B +$B%0%i%`$,I,MW$G$9!#(B +@item +@dfn{kerberos4:} kerberos 4 $B$r;H$$$^$9!#(B@samp{imtest} $B%W%m%0%i%`$,I,MW$G(B +$B$9!#(B +@item +@dfn{starttls:} STARTTLS (SSL $B$KN`;w(B) $B$r;H$$$^$9!#30It%i%$%V%i(B +$B%j(B @samp{starttls.el} $B$H(B @samp{starttls} $B%W%m%0%i%`$,I,MW$G$9!#(B +@item +@dfn{ssl:} SSL $B$r;H$$$^$9!#(BOpenSSL (@samp{openssl} $B%W%m%0%i(B +$B%`(B) $B$+(B SSLeay (@samp{s_client}) $B$,I,MW$G$9!#(B +@item +@dfn{shell:} $B%7%'%kL?Na$r;H$C$F(B @sc{imap} $B@\B3$r3+;O$7$^$9!#(B +@item +@dfn{network:} $B@8$N!"(BTCP/IP $B$N%M%C%H%o!<%/@\B3$G$9!#(B +@end itemize -@item standard-digest -$BI8=`(B (RFC 1153) $B$^$H$aAw$j7A<0!#(B +@vindex imap-kerberos4-program +@samp{imtest} $B%W%m%0%i%`$O(B Cyrus IMAPD $B$K4^$^$l$F$$$^$9!#$b$7$"$J$?(B +$B$,(B 2.0.14 $BL$K~$N(B Cyrus IMAPD $B$K4^$^$l$F$$$k(B @samp{imtest} ($B%P!<%8%g(B +$B%s(B 1.5.x $B$H(B 1.6.x) $B$r;H$C$F$$$k$J$i!"(B +@code{imap-process-connection-type} $B$r$$$8$j2s$7$F!"(B +@code{imap.el} $B$,(B @samp{imtest} $B$HDL?.$9$k$H$-$K%Q%$%W$G$O$J$/(B +$B$F(B pty $B$r;H$&$h$&$K$5$;$kI,MW$,$"$j$^$9!#$=$&$9$k$H$"$J$?$O(B IMAP $B%3%^%s(B +$B%I$N9T$ND9$5$N@)8B$KG:$^$5$l$k$G$7$g$&!#$=$l$O%a!<%k%\%C%/%9$K$?$/$5$s$N(B +$B5-;v$,$"$k$H$-$K(B Gnus $B$rL54|8B$K%O%s%0$5$;$F$7$^$&$+$b$7$l$^$;$s!#JQ(B +$B?t(B @code{imap-kerberos4-program} $B$O(B imtest $B%W%m%0%i%`$KEO$9%Q%?%a!<%?$r(B +$B4^$_$^$9!#(B -@item slack-digest -$BHsI8=`$^$H$aAw$j7A<0(B --- $B$@$$$?$$$O$&$^$/%^%C%A$9$k$,!"$G$b07$$$O2<l9g!"JQ(B +$B?t(B @code{imap-shell-program} $B$O2?$N%W%m%0%i%`$r8F$V$+$r;XDj$7$^$9!#(B -@code{nndoc} $B$O%U%!%$%k$r=q$-49$($h$&$H$7$?$j!"M>J,$J%X%C%@!<$rA^F~$7$h(B -$B$&$H$7$?$j$O$7$^$;$s(B --- $BC1=c$K!"%U%!%$%k$r$=$N%0%k!<%W$NZ$G$9!#=i4|@_Dj$G$O!"(Bnnimap $B$O%5!<%P!<(B +$B$,;HMQ2DG=$J0lHV0BA4$JG'>Z$r;HMQ$7$^$9!#(B -$B2>A[%5!<%P!Z$G$9!#30It%W%m%0%i(B +$B%`(B @code{imtest} $B$,I,MW$G$9!#(B +@item +@dfn{kerberos4:} Kerberos $BG'>Z$G$9!#30It%W%m%0%i%`(B @code{imtest} $B$,I,MW(B +$B$G$9!#(B +@item +@dfn{digest-md5:} DIGEST-MD5 $B$G0E9f2=$5$l$?(B $BMxMQ(B/$B%Q%9%o!<%I(B $B$G$9!#30(B +$BIt%i%$%V%i%j(B @code{digest-md5.el} $B$,I,MW$G$9!#(B +@item +@dfn{cram-md5:} CRAM-MD5 $B$G0E9f2=$5$l$?(B $BMxMQ(B/$B%Q%9%o!<%I(B $B$G$9!#(B +@item +@dfn{login:} LOGIN $B7PM3$G$N@8$N(B $BMxMQ(B/$B%Q%9%o!<%I(B $B$G$9!#(B +@item +@dfn{anonymous:} $BEE;R%a!<%k%"%I%l%9$r%Q%9%o!<%I$H$7!"(B`anonymous' $B$H$7$F(B +$B%m%0%$%s$7$^$9!#(B +@end itemize -@node Document Server Internals -@subsubsection $BJ8=q%5!<%P!<$NFbIt(B +@item nnimap-expunge-on-close +@cindex Expunging +@vindex nnimap-expunge-on-close -@code{nndoc} $B$GG'<1$5$l$k?7$7$$J8=q\$7$/@bL@$9$k$H!"(BIMAP $B$OC(B +$B5n$7$J$$!"5-;v$K(B @code{Deleted} $B$H$$$&0u$rIU$1$k35G0$,$"$j!"$3$l(B ($B$($C(B +$B$H!"(B@code{Deleted} $B$H$$$&0u$rIU$1$k$3$H$G$9(B) $B$,(B nnimap $B$,(B Gnus $B$G5-;v$r(B +$B>C5n$9$k$H$-$K$9$k$3$H$G$9(B (@kbd{G DEL} $B$J$I$G(B)$B!#(B +($BLuCm(B: $B%Q%k%a%K%G%9$O5*85A0(B 5 $B@$5*$N%.%j%7%"$N(B Elea $BGI$NE/3XC5n$5$l$F$$$J$$$N(B +$B$G!"C5n$9$k$?$a$NJ}K!$,I,MW$H$J$j$^$9!#=[4D$7$F$$$k$h$&$K46$8$^$9(B +$B$+(B? -@example -(mmdf - (article-begin . "^\^A\^A\^A\^A\n") - (body-end . "^\^A\^A\^A\^A\n")) -@end example +$BEAE}E*$K!"(Bnnimap $B$O%a!<%k%\%C%/%9$rJD$8$k$H$-$K(B @code{Deleted} $B$H$$$&0u(B +$B$NIU$$$?A4$F$N5-;v$r>C5n$7$F$-$^$7$?$,!":#$O%5!<%P!A0(B (@dfn{name}) $B$H$=$l$KB3$/@55,I=8=$H2>A[JQ?t@_(B -$BDj$NNs$+$i$J$j$^$9!#0J2<$,$3$l$K;H$($kJQ?t$G$9(B --- $BJQ?t$N?t$K05E]$5$l$J(B -$B$$$G$/$@$5$$!#$[$H$s$I$NJ8=qC5n$7$^$9!#(B +@item never +$B7h$7$F5-;v$r>C5n$7$^$;$s!#8=:_$O!">C5n$N0u$,IU$$$?5-;v$r(B nnimap $B$GI=<($9(B +$B$kJ}K!$O$"$j$^$;$s$,!"B>$N(B IMAP $B%/%i%$%"%s%H$O$G$O$G$-$k$+$b$7$l$^$;$s!#(B +$BC5n$5$l$?5-;v$r:o=|$9$k$+$I$&$+(B +$B$r?R$M$^$9!#(B +@end table -@item article-begin -$B$3$N@_Dj$OA4$F$NJ8=ql9g!"$3$l$O5-;v$N@hF,$K%]%$%s%H$r0\F0$5$;$k4X?t$G$J$/$F$O$J$j(B -$B$^$;$s!#(B +$BHs(B nil $B$@$C$?$i!"B>$N(B IMAP $B%/%i%$%"%s%H$N$?$a$KJ]N15-;v$r0uIU$-$H$7$F$b(B +$B0u$rIU$1$^$9!#(Bgnus $B$NFbIt$G$O!"J]N15-;v$O85!9$9$G$K0uIU$-$H$7$F$N$_0u$,(B +$BIU$1$i$l$F$$$^$9!#$3$l$O!"B>$N(B IMAP $B%/%i%$%"%s%H$K$*$1$kJ]N15-;v$r!"$"$?(B +$B$+$b0uIU$-$N$h$&$K$-$oN)$?$;$^$9!#(B($BJL$N8@$$J}$r$9$k$H!"(Bgnus $B$OFs$D$N0u$r(B +$BIU$1!"(BIMAP $B$O$?$C$?0l$D$@$H$$$&$3$H$G$9!#(B) -@item nndoc-head-begin -$B$3$l$,$"$k>l9g!"$3$l$O5-;v$N%X%C%@!<$K%^%C%A$9$k@55,I=8=$G$J$/$F$O$J$j$^(B -$B$;$s!#(B +$B$?$V$s$3$l$r$$$8$j$^$o$9$N$O!"$"$J$?$,%f!<%6C10L$NJ]N1%U%i%0$rIU$1$h$&$H(B +$B$9$k$@$1$NM}M3$K$h$k$G$7$g$&!#$3$s$J46$8$G(B: -@item nndoc-head-end -$B$3$l$O5-;v$N%X%C%@!<$N:G8e$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#$3$N=i4|@_DjCM(B -$B$O(B @samp{^$} --- $B6u9T$G$9!#(B +@lisp +(setcdr (assq 'dormant nnimap-mark-to-flag-alist) + (format "gnus-dormant-%s" (user-login-name))) +(setcdr (assq 'dormant nnimap-mark-to-predicate-alist) + (format "KEYWORD gnus-dormant-%s" (user-login-name))) +@end lisp -@item body-begin-function -$B$3$l$,$"$k>l9g!"$3$N4X?t$O5-;v$N%\%G%#$N3+;O0LCV$K%]%$%s%H$r0\F0$5$;$k4X(B -$B?t$G$J$/$F$O$J$j$^$;$s!#(B +$B$3$N>l9g!"$"$J$?$O%f!<%6C10L$NJ]N1%U%i%0$r!"B>$N%f!<%6$K0uIU$-$H$7$F8+$i(B +$B$l$?$/$J$$$H;W$C$F$$$^$9!#(B -@item body-begin -$B$3$l$O5-;v$N%\%G%#$N3+;O0LCV$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#$3$N=i4|@_DjCM(B -$B$O(B @samp{^\n} $B$G$9!#(B +@item nnimap-expunge-search-string +@cindex Expunging +@vindex nnimap-expunge-search-string -@item body-end-function -$B$3$l$,$"$k>l9g!"$3$N4X?t$O5-;v$N%\%G%#$N:G8e$N0LCV$K%]%$%s%H$r0\F0$5$;$k(B -$B4X?t$G$J$/$F$O$J$j$^$;$s!#(B +$B$3$NJQ?t$K$O!"4|8B@Z$l>C5n$9$k$N$,K>$^$7$$5-;v$rC5$9$H$-$K%5!<%P!<$KAw$C(B +$B$?(B IMAP $B$N8!:w%3%^%s%I$,F~$C$F$$$^$9!#%G%#%U%)%k%H(B +$B$O(B @code{"UID %s NOT SINCE %s"} $B$G!"$3$3$G:G=i$N(B @code{%s} $B$O(B UID $B$GCV$-(B +$B49$($i$l!"FsHVL\$N(B @code{%s} $B$OF|IU$GCV$-49$($i$l$^$9!#(B -@item body-end -$B$3$l$,$"$l$P!"5-;v$N%\%G%#$N:G8e$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#(B +$B$?$V$s;H$$$b$N$K$J$kJL$NCM$O(B @code{"UID %s NOT SENTSINCE %s"} $B$G!"(B +nnimap $B$K5-;v$NFbItE*$JF|IU$NBe$o$j$K(B Date: $B$r;H$&$h$&$K$5$;$^$9!#$5$i$J(B +$B$k>pJs$d;H$&$3$H$,$G$-$kJ8;zNs$K$D$$$F$O!"(BRFC 2060 $B$N%;%/%7%g%s(B 6.4.4 $B$r(B +$B8+$F$/$@$5$$!#(B -@item file-end -$B$3$l$,$"$k>l9g!"$3$l$O%U%!%$%k$N:G8e$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#$3$N@5(B -$B5,I=8=$N8e$m$N%F%-%9%H$OA4$F!"40A4$KL5;k$5$l$^$9!#(B +@item nnimap-authinfo-file +@vindex nnimap-authinfo-file + +$B%5!<%P$K%m%0%$%s$9$k$?$a$K;H$&G'>Z>pJs(B (authinfo) $B$r4^$`%U%!%$%k$G$9!#$=(B +$B$N7A<0$O(B ($B$[$H$s$I(B) @code{ftp} $B$N(B @file{~/.netrc} $B%U%!%$%k$HF1$8$G$9!#87(B +$BL)$JDj5A$O!"JQ?t(B @code{nntp-authinfo-file} $B$r8+$F2<$5$$!#$=$7(B +$B$F(B @ref{NNTP} $B$b8+$F2<$5$$!#(B @end table -$B$3$N$h$&$K!"$3$l$i$NJQ?t$r;H$C$F(B @code{nndoc} $B$OJ8=q%U%!%$%k$r!"$=$l$>$l(B -$B%X%C%@!<$H%\%G%#$r;}$C$?5-;v$NO"$J$j$H$7$F2rK6$9$k$3$H$,$G$-$^$9!#$7$+$7!"(B -$BA4$F$NJ8=q$NMxMQl9g$KM-MQ$G$9!#(B +@node Splitting in IMAP +@subsection IMAP $B$G$NJ,3d(B +@cindex splitting imap mail -@item article-transform-function -$B$3$l$,$"$l$P!"$3$N4X?t$O5-;v$,MW5a$5$l$?$H$-$K8F$S=P$5$l$^$9!#$3$l$O!"5-(B -$B;v$N%X%C%@!<$H%\%G%#$NN>J}$K$h$j9-HO0O$JJQ7A$r9T$J$&$?$a$K;H$o$l$k$b$N$G(B -$B$9!#(B +$BJ,3d$O(B gnus $B$NMxMQJN,2DG=$J(B) $B%Q%i%a!<%?$O$3$NDj(B -$B5A$r!"J8=ql9g$O(B @code{nil} $B$rJV$7!"$=(B -$B$Nl9g$O(B @code{t} $B$rJV$7!"$=$N$_$=$K3Z$r$5$;$kJ}$r$9$k$N$b;~$K$OJXMx$G$9!#(B +$BJ,3d$N85$H$J$k(B IMAP $B$N%a!<%k%\%C%/%9$NL>A0$r;XDj$7$?J8;zNs$+J8;zNs$N%j%9(B +$B%H$G$9!#=i4|CM$O(B @code{nil} $B$G!"J,3d$O;HMQ$7$J$$$h$&$K$J$C$F$$$^$9(B! -@sc{soup} $B$H8F$P$l$k%U%!%$%k7A<0$O%K%e!<%9$H%a!<%k$r%5!<%P!<$+$i2H$N%^%7(B -$B%s$X$HE>Aw$7!"$=$l$r$^$?La$9$?$a$K3+H/$5$l$^$7$?!#$A$g$C$HLLE]$/$5$$$+$b(B -$B$7$l$J$$$1$I$M!#(B +@lisp +(setq nnimap-split-inbox + '("INBOX" ("~/friend/Mail" . "lists/*") "lists.imap")) +@end lisp -$B$O$8$a$K$$$/$D$+MQ8l$r!#(B +Nnmail $B$KBP1~$9$k$b$N$O$"$j$^$;$s!#(B -@table @dfn -@item server -$B$3$l$O30$N@$3&$K7R$,$C$F$$$F!"$"$J$?$,%K%e!<%9$H%a!<%k$rAw$N@$3&$H$$$+$J$k7A$G$b@\B3$5$l$F$$$^$;$s!#(B +@code{nnimap-split-inbox} $B$G8+$D$+$C$??7$7$$%a!<%k$O$3$NJQ?t$K=>$C$FJ,3d(B +$B$5$l$^$9!#(B -@item packet -$B%a%C%;!<%8$HL?Na$r4^$s$@$b$N!#%Q%1%C%H$K$OFsA0$G$9!#$3$3$G(B @var{x} $B$O?t;z$G$9!#(B +@lisp +(setq nnimap-split-rule + '(("INBOX.nnimap" + "^Sender: owner-nnimap@@vic20.globalcom.se") + ("INBOX.junk" "^Subject:.*MAKE MONEY") + ("INBOX.private" ""))) +@end lisp -@item response packets -($BJV?.%Q%1%C%H(B) $B$3$N%Q%1%C%H$O<+Bp%^%7%s$G:n$i$l$k%Q%1%C%H$G!"IaDL$O$"$J(B -$B$?$N=q$$$?JV;v$,4^$^$l$F$$$^$9!#$3$l$i$O=i4|@_Dj$G(B -$B$O(B @file{SoupinX.tgz} $B$H$$$&L>A0$G$9!#$3$3$G(B @var{x} $B$O?t;z$G$9!#(B -@end table -@end table +$B$3$l$O(B nnimap $B%a!<%j%s%0%j%9%H$+$i$NA4$F$N5-;v$r%a!<%k%\%C%/(B +$B%9(B INBOX.nnimap $B$KF~$l!"(BSubject: $B9T$K(B MAKE MONEY $B$N$"$kA4$F$N5-;v(B +$B$r(B INBOX.junk $B$KF~$l!"$=$NB>A4$F$N$b$N$r(B INBOX.private $B$KF~$l$^$9!#(B -@enumerate +$B:G=i$NJ8;zNs$O!"(Breplace-match $B$G9gCW$7$?%F%-%9%H$+$iI{I=8=$rA^F~$9$k$H$-(B +$B$K;HMQ$5$l$k$N$HF1$8$h$&$J!"(B`\\1' $B7A<0$r4^$`$3$H$,$G$-$^$9!#Nc$($P(B: -@item -$B$^$:(B @sc{soup} $B%Q%1%C%H$r:n$k$?$a$K%5!<%P!<$K%m%0%$%s$7$^$9!#(B -@sc{soup} $B$N$?$a$N@lMQ$N%V%D(B (@code{awk} $B%W%m%0%i%`$N$h$&$J(B) $B$r;H$C$F$b(B -$BNI$$$7!"(Bgnus $B$N(B @sc{soup} $BL?Na$r;H$C$F%Q%1%C%H$r:n$C$F$bNI$$$G(B -$B$9(B (@kbd{O s} $B$"$k$$$O(B @kbd{G s b} $B$=$7$F(B @kbd{G s p}) +@lisp +("INBOX.lists.\\1" "^Sender: owner-\\([a-z-]+\\)@@") +@end lisp -(@pxref{SOUP Commands})$B!#(B +$BFs$DL\$NMWAG$O4X?t$G$"$k$3$H$b$G$-$^$9!#$=$N>l9g$O!"5-;v$N%X%C%@!<$,$"$k(B +$B%P%C%U%!$G!"$=$N5,B'$N:G=i$NMWAG$r0z?t$H$7$F8F$P$l$^$9!#%a!<%k$,$=$N%0%k!<(B +$B%W$KB0$9$k$H9M$($k>l9g$O!"(B@code{nil} $B$G$J$$CM$rJV$9I,MW$,$"$j$^$9!#(B -@item -$B%Q%1%C%H$r<+Bp$KE>Aw$7$^$9!#EEe$NNc$N$h$&$K(B)$B!#$3$l(B +$B$O(B nnimap $B$G$OI,MW$G$O$"$j$^$;$s!#@55,I=8=$N$I$l$K$b9gCW$7$J$$5-;v(B +$B$O(B inbox $B$+$i0\F0$5$l$^$;$s!#(B(inbox $B$KL$FI5-;v$rBgNL$KCV$$$F$*$/$H!"J,3d(B +$B$N%3!<%I$O?7$7$$%a!<%k$r!$A(B" $B$^$9!#Aj8_Ej9F(B +$B$r$7$F$$$k>l9g$O!"A4$F$N9gCW$7$?5,B'$,(B "$B>!$A(B" $B$^$9!#(B -@item -Gnus $B$r$"$J$?$N<+Bp%^%7%s$G$+$CHt$P$7$F!"(B@code{nnsoup} $B%P%C%/%(%s%I$r4p(B -$BK\%5!<%P!<$"$k$$$OFsuBV$G8F$P$l!"5-;v$N0\F0@h$@$H;W$&%0%k!<%W$rJV$9$b(B +$B$N$G$J$1$l$P$J$j$^$;$s!#(B@code{nnimap-split-fancy} $B$r;2>H$7$F2<$5$$!#(B -@item -$B5-;v$d%a!<%k$rFI$s$GI,MW$J$d$D$KJV;v$r=q$$$F%U%)%m!<%"%C%W5-;v$r=q$-$^(B -$B$9(B (@pxref{SOUP Replies})$B!#(B +$BJ,3d%3!<%I$OI,MW$J$i%a!<%k%\%C%/%9$r:n@.$7$^$9!#(B -@item -@kbd{G s r} $BL?Na$rA[%5!<%P!Aw$7$^$9!#(B +@lisp +(setq nnimap-split-rule + '(("my1server" (".*" (("ding" "ding@@gnus.org") + ("junk" "From:.*Simon"))) + ("my2server" ("INBOX" nnimap-split-fancy)) + ("my[34]server" (".*" (("private" "To:.*Simon") + ("junk" my-junk-func))))) +@end lisp -@item -Gnus $B$+$i(B @kbd{G s s} $BL?Na$r;H$C$F$3$N%Q%1%C%H$+$i%a!<%k$r=P$7$^$9!#(B +$B2>A[%5!<%P!$Oe5-$NJ,3d$N5,B'$NJ}$G$9!#(B -@item -$B$"$H$O$3$l$r;`$L$^$GB3$1$^$9!#(B +Nnmail $B$GBP1~$9$k$b$N(B: @code{nnmail-split-methods}. -@end enumerate +@item nnimap-split-predicate +@cindex splitting +@vindex nnimap-split-predicate -$B$D$^$j4pK\E*$KFsl9g$O(B @samp{UNDELETED} $B$KJQ$($l$PNI$$(B +$B$G$7$g$&!#(B -@node SOUP Commands -@subsubsection SOUP $BL?Na(B +@item nnimap-split-fancy +@cindex splitting, fancy +@findex nnimap-split-fancy +@vindex nnimap-split-fancy -$B$3$l$i$NL?Na$O(B @sc{soup} $B%Q%1%C%H$N:n@.$HA`:n$r9T$J$&$b$N$G$9!#(B +$B$b$7$"$J$?$,FC5iJ,3d$r;H$$$?$$$J$i$P!"(B@code{nnimap-split-rule} $B$NCM(B +$B$r(B @code{nnmail-split-fancy} $B$K@_Dj$9$k$3$H$,$G$-$^$9!#(B +@xref{Fancy Mail Splitting}$B!#(B -@table @kbd -@item G s b -@kindex G s b (Group) -@findex gnus-group-brew-soup -$B8=:_$N%0%k!<%W$NA4$F$NL$FI5-;v$r:-Jq$9(B -$B$k(B (@code{gnus-group-brew-soup})$B!#$3$N%3%^%s%I$O%W%m%;%9(B/$B@\F,0z?t$N=,47(B -$B$K=>$$$^$9!#(B +$B$7$+$7(B nnmail $B$H(B nnimap $B$H$G0[$J$kFC5iJ,3dJ}<0$r;}$D$h$&$K$9$k$K$O!"(B +@code{nnimap-split-rule} $B$NCM$r(B @code{nnimap-split-fancy} $B$K@_Dj$7$F!"(B +nnimap $BFCM-$NFC5iJ,3dJ}<0$r(B @code{nnimap-split-fancy} $B$KDj5A$7$F2<$5$$!#(B -@item G s w -@kindex G s w (Group) -@findex gnus-soup-save-areas -$BA4$F$N(B @sc{soup} $B%G!<%?%U%!%$%k$rJ]B8$7$^(B -$B$9(B (@code{gnus-soup-save-areas})$B!#(B +$BNc(B: -@item G s s -@kindex G s s (Group) -@findex gnus-soup-send-replies -$BJV?.%Q%1%C%H$+$iA4$F$NJV?.$rAw=P$9$k(B (@code{gnus-soup-send-replies})$B!#(B +@lisp +(setq nnimap-split-rule 'nnimap-split-fancy + nnimap-split-fancy ...) +@end lisp -@item G s p -@kindex G s p (Group) -@findex gnus-soup-pack-packet -$BA4$F$N%U%!%$%k$r(B @sc{soup} $B%Q%1%C%H$K:-Jq$9(B -$B$k(B (@code{gnus-soup-pack-packet})$B!#(B +Nnmail $B$GBP1~$9$k$b$N(B: @code{nnmail-split-fancy}. +@end table -@item G s r -@kindex G s r (Group) -@findex nnsoup-pack-replies -$BA4$F$NJV?.$rJV?.%Q%1%C%H$K:-Jq$9$k(B (@code{nnsoup-pack-replies})$B!#(B +@node Editing IMAP ACLs +@subsection IMAP $B$N(B ACL $B$rJT=8$9$k!#(B +@cindex editing imap acls +@cindex Access Control Lists +@cindex Editing IMAP ACLs +@kindex G l +@findex gnus-group-nnimap-edit-acl -@item O s -@kindex O s (Summary) -@findex gnus-soup-add-article -$B$3$N35N,%b!<%IL?Na$O!"8=:_$N5-;v$r(B @sc{soup} $B%Q%1%C%H$KDI2C$7$^(B -$B$9(B (@code{gnus-soup-add-article})$B!#$3$l$O%W%m%;%9(B/$B@\F,0z?t$N=,47$K=>$$$^(B -$B$9(B (@pxref{Process/Prefix})$B!#(B -@end table +ACL $B$O(B Access Control List ($B;HMQ@)8B0lMw(B) $B$NN,$G$9!#(BIMAP $B$G$O(B ACL $B$OB>$N(B +$BMxMQ\$7$$;X<($H$H$b$K(B ACL $BJT=8%&%#%s%I%&$,8=$l$^$9!#(B -@table @code -@item gnus-soup-directory -@vindex gnus-soup-directory -@sc{soup} $B%Q%1%C%H$r:n@.Cf$K(B gnus $B$,Cf4V%U%!%$%k$rJ]B8$9$k%G%#%l%/%H%j!!#=i4|@_DjCM(B -$B$O(B @samp{gnus-prefix}$B!#(B - -@item gnus-soup-packer -@vindex gnus-soup-packer -@sc{soup} $B%Q%1%C%H$r:-Jq$9$kL?NaJ8;zNs$N7A<0!#=i4|@_DjCM(B -$B$O(B @samp{tar cf - %s | gzip > $HOME/Soupout%d.tgz}$B!#(B - -@item gnus-soup-unpacker -@vindex gnus-soup-unpacker -@sc{soup} $B%Q%1%C%H$r$NMxMQ/$J$/$H$b(B Cyrus $B$N%5!<%P!<$K$*$$$F$O!"(B"plussing" $B$,F0:n$9$k$?$a$K(B ($B$D$^(B +$B$j!"(Buser+mail@@domain $B$,(B INBOX.mailbox $B$H$$$&(B IMAP $B$N%a!<%k%\%C%/%9$K$J(B +$B$k(B)$B!"MxMQl=j!#=i4|@_DjCM$O(B @file{~/}$B!#(B +@node Expunging mailboxes +@subsection $B%a!<%k%\%C%/%9$N:o=|(B +@cindex expunging -@item gnus-soup-packet-regexp -@vindex gnus-soup-packet-regexp -@code{gnus-soup-packet-directory} $BFb$N(B @sc{soup} $B%Q%1%C%H$K%^%C%A$9$k@5(B -$B5,I=8=!#(B -@end table +@cindex Expunge +@cindex Manual expunging +@kindex G x +@findex gnus-group-nnimap-expunge -@node SOUP Groups -@subsubsection @sc{soup} $B%0%k!<%W(B -@cindex nnsoup +@code{nnimap-expunge-on-close} $B$K(B @code{never} $B$r@_Dj$7$F$$$l$P!"%a!<%k(B +$B%\%C%/%9$NA4$F$N>C5n$5$l$?5-;v$rC5n$5$l$?5-;v$rI=<($9$kJ}K!$O$"$j$^$;$s!#$?$@>C5n$G$-$k$@$1(B +$B$G$9!#(B -$B$3$l$i$O$3$N?6$kIq$$$r%+%9%?%^%$%:$G$-$kJQ?t$G$9!#(B +@node Other Sources +@section $B$=$NB>$N%0%k!<%W8;(B -@table @code -@item nnsoup-tmp-directory -@vindex nnsoup-tmp-directory -@code{nnsoup} $B$,(B @sc{soup} $B%Q%1%C%H$re$N$3$H$,$G$-$^$9!#0J2<(B +$B$K<($9J}K!$K$h$C$F!"(Bgnus $B$G%G%#%l%/%H%j!<$d%U%!%$%k$r!"$"$?$+$b(B +$B%K%e!<%9%0%k!<%W$G$"$k$+$N$h$&$K1\Mw$9$k$3$H$,$G$-$k$h$&$K$J$j$^(B +$B$9!#(B -@item nnsoup-directory -@vindex nnsoup-directory -$B$=$7$F(B @code{nnsoup} $B$,$=$l$>$l$N%a%C%;!<%8$H:w0z%U%!%$%k$r$3$N%G%#%l%/(B -$B%H%j!<$K0\F0$5$;$k!#=i4|@_Dj$O(B @file{~/SOUP/}$B!#(B +@menu +* Directory Groups:: $B%G%#%l%/%H%j!<$r%K%e!<%9%0%k!<%W$N$h$&$K(B + $BFI$`(B +* Anything Groups:: Dired? $BC/$,(B dired $B$J$s$F;H$&$N(B? +* Document Groups:: $B8DJL$N%U%!%$%k72$O%0%k!<%W$NAG(B +* SOUP:: @sc{soup} $B%Q%1%C%H$r(B ``$B%*%U%i%$%s(B'' $B$GFI$`(B +* Mail-To-News Gateways:: $B%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$$rDL$7(B + $B$F5-;v$rEj9F$9$k(B +@end menu -@item nnsoup-replies-directory -@vindex nnsoup-replies-directory -$BA4$F$NJV?.$O!"JV?.%Q%1%C%H$K:-Jq$5$l$kA0$K$3$N%G%#%l%/%H%j!<$K3JG<$5$l$k!#(B -$B=i4|@_Dj$O(B @file{~/SOUP/replies/"}$B!#(B +@node Directory Groups +@subsection $B%G%#%l%/%H%j!<%0%k!<%W(B +@cindex nndir +@cindex directory groups -@item nnsoup-replies-format-type -@vindex nnsoup-replies-format-type -$BJV?.%Q%1%C%H$N(B @sc{soup} $B7A<0!#=i4|@_DjCM(B -$B$O(B @samp{?n} (rnews) $B$G!"$3$NJQ?t$K$O?($k$Y$-$G$O$J$$$H;d$O;W$$$^$9!#$?(B -$B$V$sJ8=q$KL@5-$9$Y$-$G$5$($J$+$C$?$M!#$A$'$C(B! $B$b$&$r$b$C$F$$$J$1$l$P$J$j$^$;$s!#(B -@item nnsoup-replies-index-type -@vindex nnsoup-replies-index-type -$BJV?.%Q%1%C%H$N:w0z$NpJs$r3JG<$9$k>l=j!#$3$l$O(B @code{nntp} $B$N0UL#(B -$B$G$N(B ``$B%"%/%F%#%V%U%!%$%k(B'' $B$G$O$J$/!"(BEmacs Lisp $B$N%U%!%$%k$G$9!#$3$N%U%!(B -$B%$%k$rL5$/$7$F$7$^$C$?$j!"2?$+2u$7$F$7$^$C$?$i!"$"$J$?$O;`$K$^$9!#=i4|@_(B -$BDjCM$O(B @file{~/SOUP/active} $B$G$9!#(B +@code{ange-ftp} $B$O$3$N>p67$r7`E*$KJQ2=$5$;$^$7$?!#Nc$($P!"(B +@code{ange-ftp} $B%U%!%$%k(B +$BL>(B @file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} $B$r%G%#%l%/%H%j!$H$7$F(B +$BF~NO$7$?$H$9$k$H!"(B@code{ange-ftp} $B$"$k$$$O(B @code{efs} $B$O $HOME/Soupin%d.tgz}$B!#(B +@code{nndir} $B$O(B @sc{nov} $B%U%!%$%k$,B8:_$9$l$P$=$l$rMxMQ$7$^$9!#(B -@item nnsoup-unpacker -@vindex nnsoup-unpacker -$BF~$C$F$/$k(B @sc{soup} $B%Q%1%C%H$rC5n$r9T$J$&$3$H$O$G$-$^$;$s!#(B@code{nndir} $B$,;H$($k(B +$B$b$N$J$i2?$G$b(B @code{nnmh} $B$"$k$$$O(B @code{nnml} $B$r;H$&$3$H$,$G$-$k$N$G!"(B +$B$b$7FI$_=P$7@lMQ$G$O$J$$(B @code{nndir} $B$,I,MW$@$H;W$C$?$i!"$3$l$i$N$I$A$i(B +$B$+$NJ}K!$K@Z$jBX$($k$3$H$b$G$-$^$9!#(B -@item nnsoup-packet-directory -@vindex nnsoup-packet-directory -$BF~$C$F$-$?%Q%1%C%H$r(B @code{nnsoup} $B$,C5$9>l=j!#=i4|@_DjCM$O(B @file{~/}$B!#(B +@node Anything Groups +@subsection $B$J$s$G$b%0%k!<%W(B +@cindex nneething -@item nnsoup-packet-regexp -@vindex nnsoup-packet-regexp -$BF~$C$F$-$?(B @sc{soup} $B%Q%1%C%H$K%^%C%A$9$k@55,I=8=!#=i4|@_DjCM(B -$B$O(B @samp{Soupout}$B!#(B +($B0l$D$N%9%W!<%kIw%G%#%l%/%H%j!<$H2r$lA':w$7$F$^$o$j$^$9!#$b$7$=$N%U%!%$%k$,5-;v$N$h$&$K8+$((B +$B$?$J$i(B ($B$9$J$o$A!":G=i$N?t9T$,%X%C%@!<$N$h$&$K8+$($?$i(B) $B$=$l$r%X%C%@$H$7(B +$B$F;H$$$^$9!#$b$7$=$l$,%X%C%@!<$N$J$$$?$@$NE,Ev$J%U%!%$%k(B ($BNc$($P(B C $B$N%=!<(B +$B%9%U%!%$%k(B) $B$G$"$C$?$J$i!"(B@code{nneething} $B$O%X%C%@!<$r5u6u$+$i:n$j=P$7(B +$B$^$9!#$3$l$O%U%!%$%k$N=jM-A0!"F|IU$r;H$$!"$3$l$i$NMWAG$KBP$7$F$G$-(B +$B$k$3$H$r2?$G$b$d$j$^$9!#(B -@node SOUP Replies -@subsubsection SOUP $BJV?.(B +$B$3$l$O$"$J$?$K$H$C$F$OA4$F<+F0E*$K5/$3$k$3$H$G!"$"$J$?$O%K%e!<%9%0%k!<%W(B +$B$K$H$F$bNI$/;w$?2?$+$r8+$;$i$l$k$3$H$K$J$k$G$7$g$&!#$[$s$H$&$K@#J,0c$o$J(B +$B$$!"%K%e!<%9%0%k!<%W$N$h$&$J$b$N$r!#5-;v$rA*Br$9$k$H!"$=$l$O$$$D$b$N$h$&(B +$B$K!"5-;v%P%C%U%!$KI=<($5$l$k$G$7$g$&!#(B -$BC1$K(B @code{nnsoup} $B$r;H$&$@$1$G$O!"(B@sc{soup} $BJV?.%Q%1%C%HCf$N$"$J$?$NEj(B -$B9F$H%a!<%k$NAw?.$,!"KbK!$N$h$&$K<+F0E*$K=*N;$9$k$o$1$G$O$"$j$^$;$s!#$=$l(B -$B$r5/$3$9$K$O$b$&$A$g$C$HF/$+$J$/$F$O$$$1$^$;$s!#(B +$B%G%#%l%/%H%j!<$rI=$o$7$F$$$k9T$rA*Br$9$k$H!"(Bgnus $B$O$"$J$?$r$3(B +$B$N(B @code{nneething} $B%0%k!<%W$N$?$a$N?7$7$$35N,%P%C%U%!$KO"$l$F9T$/$G$7$g(B +$B$&!#0J2pJs$r21$($F$*$-$^$;$s!#$b$7(B @kbd{G m} $B$GIaDL$K8G(B +$BDj(B @code{nneething} $B%0%k!<%W$r:n$k$H!"(Bgnus $B$O5-;vHV9f$H%U%!%$%kL>$NBP1~(B +$BI=$r21$($F$*$-!"$3$N%0%k!<%W$rB>$N%0%k!<%W$HF1MM$K07$&$3$H$,$G$-$k$h$&$K(B +$B$J$j$^$9!#8GDj(B @code{nneething} $B%0%k!<%W$r:nF0$5$;$k$H!"L$FI5-;v$,$$$/$D(B +$B4^$^$l$F$$$k$+$rCN$i$5$l$?$j!"$J$I$J$I!#(B -$BFCJL$K!"$3$l$,A0!#(B +@end table -$B$3$N%P%C%/%(%s%I$+$i$O2?$bFI$_=P$;$J$$$3$H$KCm0U$7$F$/$@$5$$(B --- $B$3$l$O(B -$BEj9F$9$k$?$a$@$1$K;H$o$l$^$9!#(B +@node Document Groups +@subsection $BJ8=q%0%k!<%W(B +@cindex nndoc +@cindex documentation group +@cindex help group -$B0J2<$O%5!<%P!Aw7A<0!#(B +@cindex forwarded messages -$B0J2<$N4{@=4X?t$,B8:_$7$^$9(B: +@item forward +$BE>Aw$5$l$?5-;v!#(B -@findex nngateway-simple-header-transformation +@item nsmail +Netscape mail box$B!#(B -@table @code -@item nngateway-simple-header-transformaton -@var{newsgroup}@@@code{nngateway-address} $B$N$h$&$J(B @code{To} $B%X%C%@!<$r(B -$B$D$/$j$^$9!#(B +@item mime-digest +@item mime-parts +MIME $BB>ItJ,%a%C%;!<%8(B (multipart) $B$G$9!#(B -@findex nngateway-mail2news-header-transformation +@item standard-digest +$BI8=`(B (RFC 1153) $B$^$H$aAw$j7A<0!#(B -@item nngateway-mail2news-header-transformation -@code{nngateway-address} $B$N$h$&$J(B @code{To} $B%X%C%@!<$r$D$/$j$^$9!#(B +@item slack-digest +$BHsI8=`$^$H$aAw$j7A<0(B --- $B$@$$$?$$$O$&$^$/%^%C%A$9$k$,!"$G$b07$$$O2<J,$J%X%C%@!<$rA^F~$7$h(B +$B$&$H$7$?$j$O$7$^$;$s(B --- $BC1=c$K!"%U%!%$%k$r$=$N%0%k!<%W$NA[%5!<%P!o$K;w$F$$$F!"$=$N%5!<%P!<$N%M%C%H%o!<%/%"(B -$B%I%l%9$r;XDj$9$k$@$1$K$J$C$F$$$^$9!#(B +@item nndoc-post-type +@vindex nndoc-post-type +$B$3$NJQ?t$O(B gnus $B$K$=$N%0%k!<%W$,%K%e!<%9%0%k!<%W$+%a!<%k%0%k!<%W$+$r65$((B +$B$^$9!#@5Ev$JCM$OFs$D$"$j$^$9!#(B@code{mail} ($B=i4|@_Dj(B)$B$+(B @code{news}$B$G$9!#(B +@end table -@sc{imap} $B$K$OFs$D$NFCH$7$F2<$5$$!#(B +@node Document Server Internals +@subsubsection $BJ8=q%5!<%P!<$NFbIt(B -@sc{imap} $B$r%a!<%k$rCyB"$9$k%W%m%H%3%k$H$7$F;H$$$?$$$H$-$O!"(B -gnus-secondary-select-methods $B$K(B nnimap $B$rEPO?$7$F2<$5$$!#$3$l$K$h$C(B -$B$F(B gnus $B$O(B @sc{imap} $B%5!<%P!<$KCyB"$5$l$F$$$k%a!<%k$rA`:n$9$k$h$&$K$J$j(B -$B$^$9!#$3$l$,$3$3$G@bL@$9$k;H$$J}$G$9!#(B +@code{nndoc} $B$GG'<1$5$l$k?7$7$$J8=q$7$F$$$k(B UW $B%5!<%P!<(B: - (nnimap "barbar" - (nnimap-server-port 143) - (nnimap-address "localhost") - (nnimap-list-pattern ("INBOX" "mail/*"))) - ; $BF?L>$G;H$($k(B cyrus $B$N8x=0%5!<%P!<(B: - (nnimap "cyrus.andrew.cmu.edu" - (nnimap-authenticator anonymous) - (nnimap-list-pattern "archive.*") - (nnimap-stream network)) - ; $BI8=`$G$O$J$$%]!<%H$N(B SSL $B%5!<%P!<(B: - (nnimap "vic20" - (nnimap-address "vic20.somewhere.com") - (nnimap-server-port 9930) - (nnimap-stream ssl)))) -@end lisp +@example +(mmdf + (article-begin . "^\^A\^A\^A\^A\n") + (body-end . "^\^A\^A\^A\^A\n")) +@end example -$B0J2<$NJQ?t$O2>A[(B @code{nnimap} $B%5!<%P!<$r:n@.$9$k$?$a$K;H$&$3$H$,$G$-$^(B -$B$9!#(B +$B$3$NDj5A$OC1$K!"M#0l$NL>A0(B (@dfn{name}) $B$H$=$l$KB3$/@55,I=8=$H2>A[JQ?t@_(B +$BDj$NNs$+$i$J$j$^$9!#0J2<$,$3$l$K;H$($kJQ?t$G$9(B --- $BJQ?t$N?t$K05E]$5$l$J(B +$B$$$G$/$@$5$$!#$[$H$s$I$NJ8=ql9g$O2>A[%5!<%P!<$N$b(B -$B$N$K$J$j$^$9!#(B +@item first-article +$B$3$l$,$"$l$P!"(B@code{nndoc} $B$O$3$N@55,I=8=$K%^%C%A$9$k2?$+$,8+$D$+$k$^$G!"(B +$BA4$F$N%F%-%9%H$rFI$_Ht$P$7$^$9!#%^%C%A$9$kA0$NA4$F$N%F%-%9%H$O40A4$KL5;k(B +$B$5$l$^$9!#(B -@item nnimap-server-port -@vindex nnimap-server-port -$B@\B3$r;n$_$k%5!<%P!<$N%]!<%H$G$9!#=i4|CM$G$O!"%]!<%H(B 143 $B$+!"(BSSL $B$G(B -$B$O(B 993 $B$G$9!#(B +@item article-begin +$B$3$N@_Dj$OA4$F$NJ8=ql9g!"$3$l$O5-;v$N@hF,$K%]%$%s%H$r0\F0$5$;$k4X?t$G$J$/$F$O$J$j(B +$B$^$;$s!#(B -@lisp -(nnimap "mail.server.com" - (nnimap-server-port 4711)) -@end lisp +@item nndoc-head-begin +$B$3$l$,$"$k>l9g!"$3$l$O5-;v$N%X%C%@!<$K%^%C%A$9$k@55,I=8=$G$J$/$F$O$J$j$^(B +$B$;$s!#(B -@item nnimap-list-pattern -@vindex nnimap-list-pattern -$B;HMQ2DG=$J%a!<%k%\%C%/%9$r@)8B$9$k$?$a$NJ8;zNs$+%j%9%H$G$9!#$3$l$O!"%5!<(B -$B%P!<$KHs>o$KB?$/$N%a!<%k%\%C%/%9$,$"$k$1$l$I!"6=L#$N$"$k$b$N$O>/$7$@$1$G(B -$B$"$k$H$-$K;HMQ$7$^$9!#%5!<%P!<$K$O%[!<%`%G%#%l%/%H%j!<$r(B IMAP $B7PM3$G=P$9(B -$B$b$N$b$"$j$^$9$N$G!"$=$N>l9g$O$*$=$i$/%a!<%k%\%C%/%9(B -$B$r(B @file{~/Mail/*} $B$K@)8B$7$?$$$G$7$g$&!#(B +@item nndoc-head-end +$B$3$l$O5-;v$N%X%C%@!<$N:G8e$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#$3$N=i4|@_DjCM(B +$B$O(B @samp{^$} --- $B6u9T$G$9!#(B -$BJ8;zNs$O(B REFERENCE $B$H>e$NJ8;zNs$H$N(B cons $B$G$"$k$3$H$b$G$-$^$9!#$I(B -$B$N(B REFERENCE $B$,;HMQ$5$l$k$+$O%5!<%P!l9g!"$3$N4X?t$O5-;v$N%\%G%#$N3+;O0LCV$K%]%$%s%H$r0\F0$5$;$k4X(B +$B?t$G$J$/$F$O$J$j$^$;$s!#(B -$B0J2<$O%5!<%P!<;XDj$NNc$G$9!#(B +@item body-begin +$B$3$l$O5-;v$N%\%G%#$N3+;O0LCV$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#$3$N=i4|@_DjCM(B +$B$O(B @samp{^\n} $B$G$9!#(B -@lisp -(nnimap "mail.server.com" - (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" - ("~friend/Mail/" . "list/*")))) -@end lisp +@item body-end-function +$B$3$l$,$"$k>l9g!"$3$N4X?t$O5-;v$N%\%G%#$N:G8e$N0LCV$K%]%$%s%H$r0\F0$5$;$k(B +$B4X?t$G$J$/$F$O$J$j$^$;$s!#(B -@item nnimap-stream -@vindex nnimap-stream -$B%5!<%P!<$K@\B3$9$k$H$-$K;H$o$l$k%9%H%j!<%`$N7?$G$9!#=i4|@_Dj$G(B -$B$O(B nnimap $B$O(B SSL $B$r=|$/0J2<$N$9$Y$F$r<+F0E*$K8!CN$7$F$=$l$r;H$$$^$9!#(B -(SSL $B$O(B STARTTLS $B$GCV$-49$($i$l$F$$$^$9!#$3$l$O<+F08!=P$G$-$^$9$,!"$^$@(B -$B9-HO0O$KG[Hw$5$l$F$$$^$;$s!#(B) +@item body-end +$B$3$l$,$"$l$P!"5-;v$N%\%G%#$N:G8e$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#(B -$B0J2<$O%5!<%P!<;XDj$NNc$G$9!#(B +@item file-end +$B$3$l$,$"$k>l9g!"$3$l$O%U%!%$%k$N:G8e$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#$3$N@5(B +$B5,I=8=$N8e$m$N%F%-%9%H$OA4$F!"40A4$KL5;k$5$l$^$9!#(B +@end table -@lisp -(nnimap "mail.server.com" - (nnimap-stream ssl)) -@end lisp +$B$3$N$h$&$K!"$3$l$i$NJQ?t$r;H$C$F(B @code{nndoc} $B$OJ8=q%U%!%$%k$r!"$=$l$>$l(B +$B%X%C%@!<$H%\%G%#$r;}$C$?5-;v$NO"$J$j$H$7$F2rK6$9$k$3$H$,$G$-$^$9!#$7$+$7!"(B +$BA4$F$NJ8=ql9g$KM-MQ$G$9!#(B -@itemize @bullet -@item -@dfn{gssapi:} GSSAPI ($BIaDL$O(B kerberos 5) $B$r;H$$$^$9!#(B@samp{imtest} $B%W%m(B -$B%0%i%`$,I,MW$G$9!#(B -@item -@dfn{kerberos4:} kerberos 4 $B$r;H$$$^$9!#(B@samp{imtest} $B%W%m%0%i%`$,I,MW$G(B +@item article-transform-function +$B$3$l$,$"$l$P!"$3$N4X?t$O5-;v$,MW5a$5$l$?$H$-$K8F$S=P$5$l$^$9!#$3$l$O!"5-(B +$B;v$N%X%C%@!<$H%\%G%#$NN>J}$K$h$j9-HO0O$JJQ7A$r9T$J$&$?$a$K;H$o$l$k$b$N$G(B $B$9!#(B -@item -@dfn{starttls:} STARTTLS (SSL $B$KN`;w(B) $B$r;H$$$^$9!#30It%i%$%V%i(B -$B%j(B @samp{starttls.el} $B$H(B @samp{starttls} $B%W%m%0%i%`$,I,MW$G$9!#(B -@item -@dfn{ssl:} SSL $B$r;H$$$^$9!#(BOpenSSL (@samp{openssl} $B%W%m%0%i(B -$B%`(B) $B$+(B SSLeay (@samp{s_client}) $B$,I,MW$G$9!#(B -@item -@dfn{shell:} $B%7%'%kL?Na$r;H$C$F(B @sc{imap} $B@\B3$r3+;O$7$^$9!#(B -@item -@dfn{network:} $B@8$N!"(BTCP/IP $B$N%M%C%H%o!<%/@\B3$G$9!#(B -@end itemize -@vindex imap-kerberos4-program -@samp{imtest} $B%W%m%0%i%`$O(B Cyrus IMAPD $B$K4^$^$l$F$$$^$9!#$b$7$"$J$?(B -$B$,(B 2.0.14 $BL$K~$N(B Cyrus IMAPD $B$K4^$^$l$F$$$k(B @samp{imtest} ($B%P!<%8%g(B -$B%s(B 1.5.x $B$H(B 1.6.x) $B$r;H$C$F$$$k$J$i!"(B -@code{imap-process-connection-type} $B$r$$$8$j2s$7$F!"(B -@code{imap.el} $B$,(B @samp{imtest} $B$HDL?.$9$k$H$-$K%Q%$%W$G$O$J$/(B -$B$F(B pty $B$r;H$&$h$&$K$5$;$kI,MW$,$"$j$^$9!#$=$&$9$k$H$"$J$?$O(B IMAP $B%3%^%s(B -$B%I$N9T$ND9$5$N@)8B$KG:$^$5$l$k$G$7$g$&!#$=$l$O%a!<%k%\%C%/%9$K$?$/$5$s$N(B -$B5-;v$,$"$k$H$-$K(B Gnus $B$rL54|8B$K%O%s%0$5$;$F$7$^$&$+$b$7$l$^$;$s!#JQ(B -$B?t(B @code{imap-kerberos4-program} $B$O(B imtest $B%W%m%0%i%`$KEO$9%Q%?%a!<%?$r(B -$B4^$_$^$9!#(B +@item generate-head-function +$B$3$l$,$"$l$P!"$3$N4X?t$O(B gnus $B$,M}2r$G$-$k%X%C%@!<$r@8@.$9$k$?$a$K8F$S=P(B +$B$5$l$^$9!#$3$l$O5-;vHV9f$r%Q%i%a!<%?$H$7$F8F$S=P$5$l!"LdBj$N5-;v$N$-$l$$(B +$B$J%X%C%@!<$r@8@.$9$k$3$H$r5a$a$i$l$^$9!#$3$l$OA4$F$N5-;v$N%X%C%@!<$,MW5a(B +$B$5$l$k$H$-$K8F$S=P$5$l$^$9!#(B +@end table -@vindex imap-ssl-program -SSL $B@\B3$N$?$a$N(B OpenSSL $B%W%m%0%i%`$O(B @uref{http://www.openssl.org/} $B$+(B -$B$iF~JN,2DG=$J(B) $B%Q%i%a!<%?$O$3$NDj(B +$B5A$r!"J8=ql9g$O(B @code{nil} $B$rJV$7!"$=(B +$B$Nl9g$O(B @code{t} $B$rJV$7!"$=$Nl9g!"JQ(B -$B?t(B @code{imap-shell-program} $B$O2?$N%W%m%0%i%`$r8F$V$+$r;XDj$7$^$9!#(B +@node SOUP +@subsection SOUP +@cindex SOUP +@cindex offline -@item nnimap-authenticator -@vindex nnimap-authenticator +PC $B$N@$3&$N?M!9$O$h$/!"(B``$B%*%U%i%$%s(B'' $B%K%e!<%9%j!<%@$K$D$$$FOC$r$7$F$$$^(B +$B$9!#$3$l$O%j!<%@$H%K%e!<%9G[Aw$r9gBN$5$;$?!"Z$G$9!#=i4|@_Dj$G$O!"(Bnnimap $B$O%5!<%P!<(B -$B$,;HMQ2DG=$J0lHV0BA4$JG'>Z$r;HMQ$7$^$9!#(B +$B$b$A$m$s!"2f$i$,(B Unix $B%-%A%,%$$N?M4V6!$O(B @code{uucp} $B$@$H(B +$B$+(B @code{nntpd} $B$N$h$&$J$b$N$r;H$$!"?@$NNN0h$?$k%a!<%k!"%K%e!<%9$NG[Aw$r(B +$B@5$7$/@_Dj$9$k$N$G$9!#$=$7$FKM$?$A$O$?$@IaDL$N%K%e!<%9%j!<%@$r;H$$$^$9!#(B -$B0J2<$O%5!<%P!<;XDj$NNc$G$9!#(B +$B$7$+$7!"$"$J$?$,$H$F$bCY$$%b%G%`$r;}$C$F$$$F$3$l$i$r@5$7$/@_Dj$9$k$3$H$K(B +$B6=L#$,L5$1$l$P!"G>$_$=$K3Z$r$5$;$kJ}$r$9$k$N$b;~$K$OJXMx$G$9!#(B -@lisp -(nnimap "mail.server.com" - (nnimap-authenticator anonymous)) -@end lisp +@sc{soup} $B$H8F$P$l$k%U%!%$%k7A<0$O%K%e!<%9$H%a!<%k$r%5!<%P!<$+$i2H$N%^%7(B +$B%s$X$HE>Aw$7!"$=$l$r$^$?La$9$?$a$K3+H/$5$l$^$7$?!#$A$g$C$HLLE]$/$5$$$+$b(B +$B$7$l$J$$$1$I$M!#(B -@code{nnimap-authenticator} $B$NCM$O%7%s%\%k$G$J$1$l$P$J$i$J$$$3$H$KCm0U$7(B -$B$F2<$5$$(B! +$B$O$8$a$K$$$/$D$+MQ8l$r!#(B -@itemize @bullet -@item -@dfn{gssapi:} GSSAPI ($BIaDL$O(B kerberos 5) $BG'>Z$G$9!#30It%W%m%0%i(B -$B%`(B @code{imtest} $B$,I,MW$G$9!#(B -@item -@dfn{kerberos4:} Kerberos $BG'>Z$G$9!#30It%W%m%0%i%`(B @code{imtest} $B$,I,MW(B +@table @dfn +@item server +$B$3$l$O30$N@$3&$K7R$,$C$F$$$F!"$"$J$?$,%K%e!<%9$H%a!<%k$rAw$N@$3&$H$$$+$J$k7A$G$b@\B3$5$l$F$$$^$;$s!#(B + +@item packet +$B%a%C%;!<%8$HL?Na$r4^$s$@$b$N!#%Q%1%C%H$K$OFsA0$G$9!#$3$3$G(B @var{x} $B$O?t;z$G$9!#(B + +@item response packets +($BJV?.%Q%1%C%H(B) $B$3$N%Q%1%C%H$O<+Bp%^%7%s$G:n$i$l$k%Q%1%C%H$G!"IaDL$O$"$J(B +$B$?$N=q$$$?JV;v$,4^$^$l$F$$$^$9!#$3$l$i$O=i4|@_Dj$G(B +$B$O(B @file{SoupinX.tgz} $B$H$$$&L>A0$G$9!#$3$3$G(B @var{x} $B$O?t;z$G$9!#(B +@end table +@end table + +@enumerate + @item -@dfn{digest-md5:} DIGEST-MD5 $B$G0E9f2=$5$l$?(B $BMxMQ(B/$B%Q%9%o!<%I(B $B$G$9!#30(B -$BIt%i%$%V%i%j(B @code{digest-md5.el} $B$,I,MW$G$9!#(B +$B$^$:(B @sc{soup} $B%Q%1%C%H$r:n$k$?$a$K%5!<%P!<$K%m%0%$%s$7$^$9!#(B +@sc{soup} $B$N$?$a$N@lMQ$N%V%D(B (@code{awk} $B%W%m%0%i%`$N$h$&$J(B) $B$r;H$C$F$b(B +$BNI$$$7!"(Bgnus $B$N(B @sc{soup} $BL?Na$r;H$C$F%Q%1%C%H$r:n$C$F$bNI$$$G(B +$B$9(B (@kbd{O s} $B$"$k$$$O(B @kbd{G s b} $B$=$7$F(B @kbd{G s p}) + +(@pxref{SOUP Commands})$B!#(B + @item -@dfn{cram-md5:} CRAM-MD5 $B$G0E9f2=$5$l$?(B $BMxMQ(B/$B%Q%9%o!<%I(B $B$G$9!#(B +$B%Q%1%C%H$r<+Bp$KE>Aw$7$^$9!#EE(B/$B%Q%9%o!<%I(B $B$G$9!#(B +$B%Q%1%C%H$r$"$J$?$N%[!<%`%G%#%l%/%H%j!<$KCV$-$^$9!#(B + @item -@dfn{anonymous:} $BEE;R%a!<%k%"%I%l%9$r%Q%9%o!<%I$H$7!"(B`anonymous' $B$H$7$F(B -$B%m%0%$%s$7$^$9!#(B -@end itemize +Gnus $B$r$"$J$?$N<+Bp%^%7%s$G$+$CHt$P$7$F!"(B@code{nnsoup} $B%P%C%/%(%s%I$r4p(B +$BK\%5!<%P!<$"$k$$$OFs\$7$/@bL@$9$k$H!"(BIMAP $B$OC(B -$B5n$7$J$$!"5-;v$K(B @code{Deleted} $B$H$$$&0u$rIU$1$k35G0$,$"$j!"$3$l(B ($B$($C(B -$B$H!"(B@code{Deleted} $B$H$$$&0u$rIU$1$k$3$H$G$9(B) $B$,(B nnimap $B$,(B Gnus $B$G5-;v$r(B -$B>C5n$9$k$H$-$K$9$k$3$H$G$9(B (@kbd{G DEL} $B$J$I$G(B)$B!#(B -($BLuCm(B: $B%Q%k%a%K%G%9$O5*85A0(B 5 $B@$5*$N%.%j%7%"$N(B Elea $BGI$NE/3XC5n$5$l$F$$$J$$$N(B -$B$G!"C5n$9$k$?$a$NJ}K!$,I,MW$H$J$j$^$9!#=[4D$7$F$$$k$h$&$K46$8$^$9(B -$B$+(B? +@item +$B$3$N%Q%1%C%H$r%5!<%P!<$KE>Aw$7$^$9!#(B -$BEAE}E*$K!"(Bnnimap $B$O%a!<%k%\%C%/%9$rJD$8$k$H$-$K(B @code{Deleted} $B$H$$$&0u(B -$B$NIU$$$?A4$F$N5-;v$r>C5n$7$F$-$^$7$?$,!":#$O%5!<%P!C5n$7$^$9!#(B -@item never -$B7h$7$F5-;v$r>C5n$7$^$;$s!#8=:_$O!">C5n$N0u$,IU$$$?5-;v$r(B nnimap $B$GI=<($9(B -$B$kJ}K!$O$"$j$^$;$s$,!"B>$N(B IMAP $B%/%i%$%"%s%H$O$G$O$G$-$k$+$b$7$l$^$;$s!#(B -$BC5n$5$l$?5-;v$r:o=|$9$k$+$I$&$+(B -$B$r?R$M$^$9!#(B -@end table +@end enumerate -@item nnimap-importantize-dormant -@vindex nnimap-importantize-dormant +$B$D$^$j4pK\E*$KFs$N(B IMAP $B%/%i%$%"%s%H$N$?$a$KJ]N15-;v$r0uIU$-$H$7$F$b(B -$B0u$rIU$1$^$9!#(Bgnus $B$NFbIt$G$O!"J]N15-;v$O85!9$9$G$K0uIU$-$H$7$F$N$_0u$,(B -$BIU$1$i$l$F$$$^$9!#$3$l$O!"B>$N(B IMAP $B%/%i%$%"%s%H$K$*$1$kJ]N15-;v$r!"$"$?(B -$B$+$b0uIU$-$N$h$&$K$-$oN)$?$;$^$9!#(B($BJL$N8@$$J}$r$9$k$H!"(Bgnus $B$OFs$D$N0u$r(B -$BIU$1!"(BIMAP $B$O$?$C$?0l$D$@$H$$$&$3$H$G$9!#(B) +@menu +* SOUP Commands:: @sc{soup} $B%Q%1%C%H$r:n@.!"Aw=P$9$kL?Na(B +* SOUP Groups:: @sc{soup} $B%Q%1%C%H$rFI$`%P%C%/%(%s%I(B +* SOUP Replies:: @code{nnsoup} $B$K%a!<%k$H%K%e!<%9$r0z$-7Q$,$;(B + $B$kJ}K!(B +@end menu -$B$?$V$s$3$l$r$$$8$j$^$o$9$N$O!"$"$J$?$,%f!<%6C10L$NJ]N1%U%i%0$rIU$1$h$&$H(B -$B$9$k$@$1$NM}M3$K$h$k$G$7$g$&!#$3$s$J46$8$G(B: +@node SOUP Commands +@subsubsection SOUP $BL?Na(B -@lisp -(setcdr (assq 'dormant nnimap-mark-to-flag-alist) - (format "gnus-dormant-%s" (user-login-name))) -(setcdr (assq 'dormant nnimap-mark-to-predicate-alist) - (format "KEYWORD gnus-dormant-%s" (user-login-name))) -@end lisp +$B$3$l$i$NL?Na$O(B @sc{soup} $B%Q%1%C%H$N:n@.$HA`:n$r9T$J$&$b$N$G$9!#(B -$B$3$N>l9g!"$"$J$?$O%f!<%6C10L$NJ]N1%U%i%0$r!"B>$N%f!<%6$K0uIU$-$H$7$F8+$i(B -$B$l$?$/$J$$$H;W$C$F$$$^$9!#(B +@table @kbd +@item G s b +@kindex G s b (Group) +@findex gnus-group-brew-soup +$B8=:_$N%0%k!<%W$NA4$F$NL$FI5-;v$r:-Jq$9(B +$B$k(B (@code{gnus-group-brew-soup})$B!#$3$N%3%^%s%I$O%W%m%;%9(B/$B@\F,0z?t$N=,47(B +$B$K=>$$$^$9!#(B -@item nnimap-expunge-search-string -@cindex Expunging -@vindex nnimap-expunge-search-string +@item G s w +@kindex G s w (Group) +@findex gnus-soup-save-areas +$BA4$F$N(B @sc{soup} $B%G!<%?%U%!%$%k$rJ]B8$7$^(B +$B$9(B (@code{gnus-soup-save-areas})$B!#(B -$B$3$NJQ?t$K$O!"4|8B@Z$l>C5n$9$k$N$,K>$^$7$$5-;v$rC5$9$H$-$K%5!<%P!<$KAw$C(B -$B$?(B IMAP $B$N8!:w%3%^%s%I$,F~$C$F$$$^$9!#%G%#%U%)%k%H(B -$B$O(B @code{"UID %s NOT SINCE %s"} $B$G!"$3$3$G:G=i$N(B @code{%s} $B$O(B UID $B$GCV$-(B -$B49$($i$l!"FsHVL\$N(B @code{%s} $B$OF|IU$GCV$-49$($i$l$^$9!#(B +@item G s s +@kindex G s s (Group) +@findex gnus-soup-send-replies +$BJV?.%Q%1%C%H$+$iA4$F$NJV?.$rAw=P$9$k(B (@code{gnus-soup-send-replies})$B!#(B -$B$?$V$s;H$$$b$N$K$J$kJL$NCM$O(B @code{"UID %s NOT SENTSINCE %s"} $B$G!"(B -nnimap $B$K5-;v$NFbItE*$JF|IU$NBe$o$j$K(B Date: $B$r;H$&$h$&$K$5$;$^$9!#$5$i$J(B -$B$k>pJs$d;H$&$3$H$,$G$-$kJ8;zNs$K$D$$$F$O!"(BRFC 2060 $B$N%;%/%7%g%s(B 6.4.4 $B$r(B -$B8+$F$/$@$5$$!#(B +@item G s p +@kindex G s p (Group) +@findex gnus-soup-pack-packet +$BA4$F$N%U%!%$%k$r(B @sc{soup} $B%Q%1%C%H$K:-Jq$9(B +$B$k(B (@code{gnus-soup-pack-packet})$B!#(B -@item nnimap-authinfo-file -@vindex nnimap-authinfo-file +@item G s r +@kindex G s r (Group) +@findex nnsoup-pack-replies +$BA4$F$NJV?.$rJV?.%Q%1%C%H$K:-Jq$9$k(B (@code{nnsoup-pack-replies})$B!#(B -$B%5!<%P$K%m%0%$%s$9$k$?$a$K;H$&G'>Z>pJs(B (authinfo) $B$r4^$`%U%!%$%k$G$9!#$=(B -$B$N7A<0$O(B ($B$[$H$s$I(B) @code{ftp} $B$N(B @file{~/.netrc} $B%U%!%$%k$HF1$8$G$9!#87(B -$BL)$JDj5A$O!"JQ?t(B @code{nntp-authinfo-file} $B$r8+$F2<$5$$!#$=$7(B -$B$F(B @ref{NNTP} $B$b8+$F2<$5$$!#(B +@item O s +@kindex O s (Summary) +@findex gnus-soup-add-article +$B$3$N35N,%b!<%IL?Na$O!"8=:_$N5-;v$r(B @sc{soup} $B%Q%1%C%H$KDI2C$7$^(B +$B$9(B (@code{gnus-soup-add-article})$B!#$3$l$O%W%m%;%9(B/$B@\F,0z?t$N=,47$K=>$$$^(B +$B$9(B (@pxref{Process/Prefix})$B!#(B @end table -@menu -* Splitting in IMAP:: nnimap $B$G%a!<%k$rJ,3d$9$k(B -* Editing IMAP ACLs:: $B%a!<%k%\%C%/%9$X$NB>$NMxMQ!#=i4|@_DjCM(B +$B$O(B @samp{gnus-prefix}$B!#(B -$B4XO"$9$kJQ?t$O;0$D$G$9(B: +@item gnus-soup-packer +@vindex gnus-soup-packer +@sc{soup} $B%Q%1%C%H$r:-Jq$9$kL?NaJ8;zNs$N7A<0!#=i4|@_DjCM(B +$B$O(B @samp{tar cf - %s | gzip > $HOME/Soupout%d.tgz}$B!#(B -@table @code -@item nnimap-split-crosspost -@cindex splitting, crosspost -@cindex crosspost -@vindex nnimap-split-crosspost +@item gnus-soup-unpacker +@vindex gnus-soup-unpacker +@sc{soup} $B%Q%1%C%H$rl=j!#=i4|@_DjCM$O(B @file{~/}$B!#(B + +@item gnus-soup-packet-regexp +@vindex gnus-soup-packet-regexp +@code{gnus-soup-packet-directory} $BFb$N(B @sc{soup} $B%Q%1%C%H$K%^%C%A$9$k@5(B +$B5,I=8=!#(B +@end table -Nnmail $B$GBP1~$9$k$b$N(B: @code{nnmail-crosspost}. +@node SOUP Groups +@subsubsection @sc{soup} $B%0%k!<%W(B +@cindex nnsoup -@item nnimap-split-inbox -@cindex splitting, inbox -@cindex inbox -@vindex nnimap-split-inbox +@code{nnsoup} $B$O(B @sc{soup} $B%Q%1%C%H$rFI$`$?$a$N%P%C%/%(%s%I$G$9!#$3$l$O(B +$BF~$C$F$-$?%Q%1%C%H$rFI$_!"$=$l$rA0$r;XDj$7$?J8;zNs$+J8;zNs$N%j%9(B -$B%H$G$9!#=i4|CM$O(B @code{nil} $B$G!"J,3d$O;HMQ$7$J$$$h$&$K$J$C$F$$$^$9(B! +$B$3$l$i$O$3$N?6$kIq$$$r%+%9%?%^%$%:$G$-$kJQ?t$G$9!#(B -@lisp -(setq nnimap-split-inbox - '("INBOX" ("~/friend/Mail" . "lists/*") "lists.imap")) -@end lisp +@table @code +@item nnsoup-tmp-directory +@vindex nnsoup-tmp-directory +@code{nnsoup} $B$,(B @sc{soup} $B%Q%1%C%H$r$l$N%a%C%;!<%8$H:w0z%U%!%$%k$r$3$N%G%#%l%/(B +$B%H%j!<$K0\F0$5$;$k!#=i4|@_Dj$O(B @file{~/SOUP/}$B!#(B -@item nnimap-split-rule -@cindex Splitting, rules -@vindex nnimap-split-rule +@item nnsoup-replies-directory +@vindex nnsoup-replies-directory +$BA4$F$NJV?.$O!"JV?.%Q%1%C%H$K:-Jq$5$l$kA0$K$3$N%G%#%l%/%H%j!<$K3JG<$5$l$k!#(B +$B=i4|@_Dj$O(B @file{~/SOUP/replies/"}$B!#(B -@code{nnimap-split-inbox} $B$G8+$D$+$C$??7$7$$%a!<%k$O$3$NJQ?t$K=>$C$FJ,3d(B -$B$5$l$^$9!#(B +@item nnsoup-replies-format-type +@vindex nnsoup-replies-format-type +$BJV?.%Q%1%C%H$N(B @sc{soup} $B7A<0!#=i4|@_DjCM(B +$B$O(B @samp{?n} (rnews) $B$G!"$3$NJQ?t$K$O?($k$Y$-$G$O$J$$$H;d$O;W$$$^$9!#$?(B +$B$V$sJ8=q$KL@5-$9$Y$-$G$5$($J$+$C$?$M!#$A$'$C(B! $B$b$&pJs$r3JG<$9$k>l=j!#$3$l$O(B @code{nntp} $B$N0UL#(B +$B$G$N(B ``$B%"%/%F%#%V%U%!%$%k(B'' $B$G$O$J$/!"(BEmacs Lisp $B$N%U%!%$%k$G$9!#$3$N%U%!(B +$B%$%k$rL5$/$7$F$7$^$C$?$j!"2?$+2u$7$F$7$^$C$?$i!"$"$J$?$O;`$K$^$9!#=i4|@_(B +$BDjCM$O(B @file{~/SOUP/active} $B$G$9!#(B -$B$3$l$O(B nnimap $B%a!<%j%s%0%j%9%H$+$i$NA4$F$N5-;v$r%a!<%k%\%C%/(B -$B%9(B INBOX.nnimap $B$KF~$l!"(BSubject: $B9T$K(B MAKE MONEY $B$N$"$kA4$F$N5-;v(B -$B$r(B INBOX.junk $B$KF~$l!"$=$NB>A4$F$N$b$N$r(B INBOX.private $B$KF~$l$^$9!#(B +@item nnsoup-packer +@vindex nnsoup-packer +$BJV?.(B @sc{soup} $B%Q%1%C%H$r:-Jq$9$kL?NaJ8;zNs$N7A<0!#=i4|@_DjCM(B +$B$O(B @samp{tar cf - %s | gzip > $HOME/Soupin%d.tgz}$B!#(B -$B:G=i$NJ8;zNs$O!"(Breplace-match $B$G9gCW$7$?%F%-%9%H$+$iI{I=8=$rA^F~$9$k$H$-(B -$B$K;HMQ$5$l$k$N$HF1$8$h$&$J!"(B`\\1' $B7A<0$r4^$`$3$H$,$G$-$^$9!#Nc$($P(B: +@item nnsoup-unpacker +@vindex nnsoup-unpacker +$BF~$C$F$/$k(B @sc{soup} $B%Q%1%C%H$rl=j!#=i4|@_DjCM$O(B @file{~/}$B!#(B -$BFs$DL\$NMWAG$O4X?t$G$"$k$3$H$b$G$-$^$9!#$=$N>l9g$O!"5-;v$N%X%C%@!<$,$"$k(B -$B%P%C%U%!$G!"$=$N5,B'$N:G=i$NMWAG$r0z?t$H$7$F8F$P$l$^$9!#%a!<%k$,$=$N%0%k!<(B -$B%W$KB0$9$k$H9M$($k>l9g$O!"(B@code{nil} $B$G$J$$CM$rJV$9I,MW$,$"$j$^$9!#(B +@item nnsoup-packet-regexp +@vindex nnsoup-packet-regexp +$BF~$C$F$-$?(B @sc{soup} $B%Q%1%C%H$K%^%C%A$9$k@55,I=8=!#=i4|@_DjCM(B +$B$O(B @samp{Soupout}$B!#(B -Nnmail $B$NMxMQe$NNc$N$h$&$K(B)$B!#$3$l(B -$B$O(B nnimap $B$G$OI,MW$G$O$"$j$^$;$s!#@55,I=8=$N$I$l$K$b9gCW$7$J$$5-;v(B -$B$O(B inbox $B$+$i0\F0$5$l$^$;$s!#(B(inbox $B$KL$FI5-;v$rBgNL$KCV$$$F$*$/$H!"J,3d(B -$B$N%3!<%I$O?7$7$$%a!<%k$r!$A(B" $B$^$9!#Aj8_Ej9F(B -$B$r$7$F$$$k>l9g$O!"A4$F$N9gCW$7$?5,B'$,(B "$B>!$A(B" $B$^$9!#(B +@node SOUP Replies +@subsubsection SOUP $BJV?.(B -$B$3$NJQ?t$O$=$NCM$H$7$F4X?t$r;}$D$3$H$b$G$-$^$9!#$=$N4X?t$O5-;v$N%X%C%@$N(B -$BItJ,$KHO0O$,69$a$i$l$?>uBV$G8F$P$l!"5-;v$N0\F0@h$@$H;W$&%0%k!<%W$rJV$9$b(B -$B$N$G$J$1$l$P$J$j$^$;$s!#(B@code{nnimap-split-fancy} $B$r;2>H$7$F2<$5$$!#(B +$BC1$K(B @code{nnsoup} $B$r;H$&$@$1$G$O!"(B@sc{soup} $BJV?.%Q%1%C%HCf$N$"$J$?$NEj(B +$B9F$H%a!<%k$NAw?.$,!"KbK!$N$h$&$K<+F0E*$K=*N;$9$k$o$1$G$O$"$j$^$;$s!#$=$l(B +$B$r5/$3$9$K$O$b$&$A$g$C$HF/$+$J$/$F$O$$$1$^$;$s!#(B -$BJ,3d%3!<%I$OI,MW$J$i%a!<%k%\%C%/%9$r:n@.$7$^$9!#(B +@findex nnsoup-set-variables +@code{nnsoup-set-variables} $BL?Na$O!"$"$J$?$NA4$F$N%U%)%m!<%"%C%W5-;v$HJV(B +$B?.$r(B @sc{soup} $B%7%9%F%`$K3NA[%5!<%P!A[%5!<%P!$Oe5-$NJ,3d$N5,B'$NJ}$G$9!#(B +$B$=$l$@$1$G$9!"$[$s$H$K!#$b$7(B @sc{soup} $B%7%9%F%`$K%K%e!<%9$@$1$rF~$l$?$+$C(B +$B$?$i!":G=i$N9T$@$1$r;H$C$F$/$@$5$$!#$b$7%a!<%k$@$1$r(B @sc{soup} $B$5$;$?$+$C(B +$B$?$i!"FsHVL\$r;H$C$F$/$@$5$$!#(B -Nnmail $B$GBP1~$9$k$b$N(B: @code{nnmail-split-methods}. +@node Mail-To-News Gateways +@subsection $B%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$(B +@cindex mail-to-news gateways +@cindex gateways -@item nnimap-split-predicate -@cindex splitting -@vindex nnimap-split-predicate +$B$b$7$"$J$?$N%m!<%+%k$N(B @code{nntp} $B%5!<%P!<$,!"2?$i$+$NM}M3$GEj9F$r5v2D(B +$B$7$F$$$J$1$l$P!"?t$"$k%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$$r;H$C$FEj9F$9$k(B +$B$3$H$,$G$-$^$9!#(B@code{nngateway} $B%P%C%/%(%s%I$O$3$N%$%s%?!<%U%'!<%9$rDs(B +$B6!$7$^$9!#(B -$B$3$N=R8l$K%^%C%A$9$k(B @code{nnimap-split-inbox} $B$K$"$k%a!<%k$OJ,3d$5$l$^(B -$B$9!#$3$l$OJ8;zNs$G4{DjCM$O(B @samp{UNSEEN UNDELETED} $B$G$9!#(B +$B$3$N%P%C%/%(%s%I$+$i$O2?$bFI$_=P$;$J$$$3$H$KCm0U$7$F$/$@$5$$(B --- $B$3$l$O(B +$BEj9F$9$k$?$a$@$1$K;H$o$l$^$9!#(B -$B$b$7$"$J$?$,(B inbox $B$K$"$k%a!<%k$rFI$`$?$a$KJL$N(B @sc{imap} $B%/%i%$%"%s%H$r(B -$B;H$C$F$$$k$,!"9XFIEY$K4X$o$i$:$K$9$Y$F$N5-;v$r(B gnus $B$KJ,3d$5$;$?$$$J$i$P!"(B -$B$3$l$OLr$KN)$D$+$b$7$l$^$;$s!#$=$N>l9g$O(B @samp{UNDELETED} $B$KJQ$($l$PNI$$(B -$B$G$7$g$&!#(B +$B0J2<$O%5!<%P!$N(B -$BMxMQ\$7$$;X<($H$H$b$K(B ACL $BJT=8%&%#%s%I%&$,8=$l$^$9!#(B +@table @code +@item nngateway-simple-header-transformaton +@var{newsgroup}@@@code{nngateway-address} $B$N$h$&$J(B @code{To} $B%X%C%@!<$r(B +$B$D$/$j$^$9!#(B -$B;HMQ$NNc(B: +@findex nngateway-mail2news-header-transformation -@itemize @bullet -@item -$B%a!<%j%s%0%j%9%H$N%a!<%k%\%C%/%9$G(B "anyone" $B$K(B "lrs" $B5v(B -$B2D(B (lookup, read, seen/unseen $B%U%i%0$NJ];}(B) $B$rM?$($k$3$H$G!"F1$8%5!<%P!<(B -$B$NB>$NMxMQ/$J$/$H$b(B Cyrus $B$N%5!<%P!<$K$*$$$F$O!"(B"plussing" $B$,F0:n$9$k$?$a$K(B ($B$D$^(B -$B$j!"(Buser+mail@@domain $B$,(B INBOX.mailbox $B$H$$$&(B IMAP $B$N%a!<%k%\%C%/%9$K$J(B -$B$k(B)$B!"MxMQC5n$5$l$?5-;v$rC5n$5$l$?5-;v$rI=<($9$kJ}K!$O$"$j$^$;$s!#$?$@>C5n$G$-$k$@$1(B -$B$G$9!#(B +@lisp +(setq gnus-post-method '(nngateway "GATEWAY.ADDRESS")) +@end lisp @node Combined Groups @section $B7k9g%0%k!<%W(B @@ -17100,8 +17124,9 @@ GNUS $B>C5n%U%!%$%k$rJT=8$9$k$?$a$NFs$D$N35N,%P%C%U%!4X?t$,$"$j$^$9!#(B @section GroupLens @cindex GroupLens -GoupLens $B$O!"KhF|:n@.$5$l$kB?$/$NNL$N%K%e!<%95-;v$+$i$N(B -$B?M$H6&$K8+$D$1$k$N$r=u$1$k$?$a$N6&F1A*JL5!9=$G$9!#(B +GoupLens (@uref{http://www.cs.umn.edu/Research/GroupLens/}) $B$O!"KhF|:n@.(B +$B$5$l$kB?$/$NNL$N%K%e!<%95-;v$+$i$N?M$H6&$K8+$D$1$k$N$r=u(B +$B$1$k$?$a$N6&F1A*JL5!9=$G$9!#(B $B$3$l$rC#@.$9$k$?$a$K!"(BGroupLens $B5!9=$O$"$J$?$,4{$KFI$s$@5-;v$KBP$9$k0U8+(B $B$r!"F1$8$h$&$J;v$r$7$?B>$N?M$N0U8+$H7k9g$7$F!"$=$l$>$l$NL$FI%K%e!<%95-;v(B @@ -17111,6 +17136,12 @@ GoupLens $B$O!"KhF|:n@.$5$l$kB?$/$NNL$N%K%e!<%95-;v$+$i$N(B $B$l$P!"M=8@$N7A$G!"$=$l$i$N?M$,5-;v$r$I$&;W$&$+$r$"$J$?$K9p$2$^$9!#$"$J$?(B $B$O$3$NM=8@$r5-;v$rFI$_$?$$$+$I$&$+$r7hDj$9$k$N$KLrN)$F$k;v$,$G$-$^$9!#(B +@sc{Note:} Unfortunately the GroupLens system seems to have shut down, +so this section is mostly of historical interest. + +@sc{$BCm0U(B:} $B;DG0$J$3$H$K(B GroupLens $B5!9=$OJD:?$5$l$F$$$k$h$&$J$N$G!"$3$N9`(B +$B$Or7o(B -Gnus $B$K(B picon $B$rI=<($5$;$k$K$O!"(BXEmacs 19.13 $B$+$=$l0J9_$r$NHG$N(B Emacs $B$G$O$I$l$b$^$@2hA|$rI=<($G$-$J$$$+$i$G$9!#(B - -$B$5$i$K!"(B@code{x} $B%5%]!<%HIU$-$G(B XEmacs $B$r%3%s%Q%$%k$7$F$$$J$/$F$O$J$j$^(B -$B$;$s!#Gr9u$h$j$b$b$C$H4qNo$J?'IU$-$N(B picon $B$rI=<($9$k$?$a$K$O!"(B -@code{xpm} $B$+(B @code{gif} $B$I$A$i$+$r(B XEmacs $B$H0l=o$K%3%s%Q%$%k$7$F$$$kI,(B -$BMW$b$"$j$^$9!#(B +Gnus $B$K(B picon $B$rI=<($5$;$k$K$O(B @code{x} $B%5%]!<%HIU$-$G(B XEmacs $B$r%3%s%Q%$(B +$B%k$7$F$$$J$/$F$O$J$j$^$;$s!#Gr9u$h$j$b$b$C$H4qNo$J?'IU$-$N(B picon $B$rI=<((B +$B$9$k$?$a$K$O!"(B@code{xpm} $B$+(B @code{gif} $B$N$I$A$i$+$,;H$($k$h$&$K%3%s%Q%$(B +$B%k$5$l$?(B XEmacs $B$G$"$kI,MW$b$"$j$^$9!#(B @vindex gnus-picons-convert-x-face @code{X-Face} $B%X%C%@!<$N4i$rI=<($7$?$$$N$J$i!"(BXEmacs $B$r(B @code{xface} $B%5(B @@ -18955,7 +18983,7 @@ Gnus $B$r=*N;$9$k$H$-$K(B picon $B%-%c%C%7%e$r>C$75n$k$+$I$&$+!#(BGnus $B$O @iftex @iflatex -\gnusfig{-3cm}{0.5cm}{\epsfig{figure=tmp/BigFace.ps,height=20cm}} +\gnusfig{-3cm}{0.5cm}{\epsfig{figure=ps/BigFace,height=20cm}} \input{smiley} @end iflatex @end iftex @@ -20117,7 +20145,7 @@ Gnus $B$N%&%#%s%I%&$H%U%l!<%`$N@_Dj$G$?$/$5$s$NJQ$J;v$r$G$-$k$h$&$K$J$j$^(B @iftex @iflatex -\gnusfig{-28cm}{0cm}{\epsfig{figure=tmp/september.ps,height=20cm}} +\gnusfig{-28cm}{0cm}{\epsfig{figure=ps/september,height=20cm}} @end iflatex @end iftex @@ -20265,7 +20293,7 @@ Washing})$B!#(B $B$?(B (@pxref{Daemons})$B!#(B @iftex @iflatex -\marginpar[\mbox{}\hfill\epsfig{figure=tmp/fseptember.ps,height=5cm}]{\epsfig{figure=tmp/fseptember.ps,height=5cm}} +\marginpar[\mbox{}\hfill\epsfig{figure=ps/fseptember,height=5cm}]{\epsfig{figure=ps/fseptember,height=5cm}} @end iflatex @end iftex @@ -20362,7 +20390,7 @@ Gnus 5.4/5.5 $B$N?7$7$$5!G=(B: @iftex @iflatex -\gnusfig{-5.5cm}{-4cm}{\epsfig{figure=tmp/red.ps,height=20cm}} +\gnusfig{-5.5cm}{-4cm}{\epsfig{figure=ps/red,height=20cm}} @end iflatex @end iftex @@ -20486,7 +20514,7 @@ Process Marks})$B!#(B $B$?(B (@pxref{Summary Generation Commands})$B!#(B @iftex @iflatex -\marginpar[\mbox{}\hfill\epsfig{figure=tmp/fred.ps,width=3cm}]{\epsfig{figure=tmp/fred.ps,width=3cm}} +\marginpar[\mbox{}\hfill\epsfig{figure=ps/fred,width=3cm}]{\epsfig{figure=ps/fred,width=3cm}} @end iflatex @end iftex @@ -20701,7 +20729,7 @@ nnweb $B$O:F$S2~:n$5$l!">o$KJQ2=$9$k9=@.$rB3$1$^$9!#(B @iftex @page -@node History +@node The Manual @section $B%^%K%e%"%k(B @cindex colophon @cindex manual @@ -20805,8 +20833,8 @@ nnweb $B$O:F$S2~:n$5$l!">o$KJQ2=$9$k9=@.$rB3$1$^$9!#(B $B$"$J$?$,FI$s$G$$$k5-;v$K1~Ez$7$F8=:_$N%K%e!<%9%0%k!<%W$K5-;v$rEj9F$9$k;v(B $B$G$9!#(B -@item $B%P%C%/%(%s%I(B (backend) -@cindex backend +@item $B%P%C%/%(%s%I(B (back end) +@cindex back end Gnus $B$O%K%e!<%9$H%a!<%k$NN>J}$N$$$m$$$m$J%P%C%/%(%s%I$,M?$($?5-;v$rF@$^(B $B$9!#(BGnus $B$O!"$$$o$f$k2<$K2#$?$o$C$F$$$k%a%G%#%"$r07$&;v$O$7$^$;$s(B---$B$3$l(B $B$O$9$Y$F%P%C%/%(%s%I$K$h$C$F$J$5$l$^$9!#(B @@ -21179,7 +21207,7 @@ gnus $B$H$=$N%P%C%/%(%s%I4V$N%$%s%?!<%U%'!<%9(B ($B$3$l$O40A4$K5-=R$5$l$F$$( @menu * Gnus Utility Functions:: $B;HMQ$G$-$k6&DL$N4X?t$HJQ?t(B -* Backend Interface:: Gnus $B$O$I$&$d$C$F%5!<%P!<$HDL?.$9$k$N$+(B +* Back End Interface:: Gnus $B$O$I$&$d$C$F%5!<%P!<$HDL?.$9$k$N$+(B * Score File Syntax:: $B%9%3%"%U%!%$%k5,3J$N(B BNF $BDj5A(B * Headers:: Gnus $B$O%X%C%@!<$rFbItE*$K$I$N$h$&$K3JG<(B $B$9$k$+(B @@ -21307,13 +21335,13 @@ Gnus $B=*N;;~$K>C5n$9$k%P%C%U%!$N0lMw$K8=:_$N%P%C%U%!$rDI2C$7$^$9!#(B $BMxMQA[%0%k!<%W$K$D$$$F$O2?$K$bCN$j$^(B $B$;$s!#$?$@2>A[%5!<%P!<(B @dfn{virtual servers} $B$HBPOC$9$kJ}K!$rCN$C$F$$$k(B -$B$@$1$G$9!#2>A[%5!<%P!<$O%P%C%/%(%s%I(B @dfn{backend} $B$H$$$/$D$+$N%P%C%/%((B -$B%s%IJQ?t(B @dfn{backend variables} $B$+$i$J$j$^$9!#A0A[%5!<%P!<$O%P%C%/%(%s%I(B @dfn{back end} $B$H$$$/$D$+$N%P%C%/%((B +$B%s%IJQ?t(B @dfn{back end variables} $B$+$i$J$j$^$9!#A0$H5-;vHV9f$K$h$C$F$=$l$>$l$N%a%C%;!<%8$rFCDj$7$^$9!#$=(B $B$+$D$F(B 42 $BHV$N5-;v$r;}$C$F$$$?$H$7$?$i!"$=$NHV9f$GB>$N5-;v$r;}$D$3$H$O$G(B $B$-$J$$$+!"$^$?$O(B Gnus $B$,:.Mp$7$F$7$^$&$+$b$7$l$J$$$H$$$&$3$H$G$9!#(B @footnote{See the function @code{nnchoke-request-update-info}, -@ref{Optional Backend Functions}$B!#(B} $BBh;0$K!"5-;vHV9f$O$=$N%0%k!<%W$G$NE~(B -$BCe=g$K$J$C$F$$$J$1$l$P$J$i$J$$$3$H$G$9!#$H$O8@$(%a%C%;!<%8$NF|IU$bE~Ce=g(B -$B$G$"$kI,MW$O$"$j$^$;$s$,!#(B +@ref{Optional Back End Functions}$B!#(B} $BBh;0$K!"5-;vHV9f$O$=$N%0%k!<%W$G$N(B +$BE~Ce=g$K$J$C$F$$$J$1$l$P$J$i$J$$$3$H$G$9!#$H$O8@$(%a%C%;!<%8$NF|IU$bE~Ce(B +$B=g$G$"$kI,MW$O$"$j$^$;$s$,!#(B $B$9$G$KA0$N@a$G!"5-;vHV9f$O0l2s;H$o$l$?$@$1$GLrL\$r=*$o$i$J$1$l$P$J$i$J(B $B$$(B `$B87$7$$(B' $B@)8B$K$D$$$F@bL@$7$^$7$?!#$7$+$7!"5-;vHV9f$NJB$S$KH4$1$,$"$k(B @@ -21382,15 +21410,15 @@ Gnus $B$O%0%k!<%WL>$H5-;vHV9f$K$h$C$F$=$l$>$l$N%a%C%;!<%8$rFCDj$7$^$9!#$=(B @cindex @code{nnchoke} @menu -* Required Backend Functions:: $B$N%P%C%/%(%s%I$KBP$7$F0l@~$r2h$7$F$$$kE@$O!"%a!<(B @@ -22088,15 +22116,15 @@ description-buffer = *description-line @end table @code{nnmail-get-new-mail} $B$O3F5-;v$rJ]B8$9$k$?$a(B -$B$K(B @var{backend}@code{-save-mail} $B$r8F$S=P$7$^$9!#(B -@var{backend}@code{-active-number} $B$O$3$N5-;v$K3d$jEv$F$i$l$?5-;vHV9f$r(B +$B$K(B @var{back-end}@code{-save-mail} $B$r8F$S=P$7$^$9!#(B +@var{back-end}@code{-active-number} $B$O$3$N5-;v$K3d$jEv$F$i$l$?5-;vHV9f$r(B $BD4$Y$k$?$a$K8F$S=P$5$l$^$9!#(B $B$3$N4X?t$O #1}} @@ -69,7 +71,7 @@ \newcommand{\gnusbraceleft}{{$>$}} \newcommand{\gnusbraceright}{{$>$}} -\newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}} +\newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head,height=1cm}}} \newcommand{\gnusinteresting}{ \marginpar[\mbox{}\hfill\gnushead]{\gnushead} } @@ -108,7 +110,7 @@ } \newcommand{\gnusicon}[1]{ -\marginpar[\mbox{}\hfill\raisebox{-1.5cm}{\epsfig{figure=tmp/#1-up.ps,height=1.5cm}}]{\raisebox{-1cm}{\epsfig{figure=tmp/#1-up.ps,height=1cm}}} +\marginpar[\mbox{}\hfill\raisebox{-1.5cm}{\epsfig{figure=ps/#1-up,height=1.5cm}}]{\raisebox{-1cm}{\epsfig{figure=ps/#1-up,height=1cm}}} } \newcommand{\gnuspicon}[1]{ @@ -188,9 +190,9 @@ { \ifodd\count0 \mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \hfill \mbox{} \fi } @@ -212,9 +214,9 @@ { \ifodd\count0 \mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \hfill \mbox{} \fi } @@ -236,9 +238,9 @@ { \ifodd\count0 \mbox{} \hfill -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \else -\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}} +\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo,height=1cm}} \hfill \mbox{} \fi } @@ -259,10 +261,10 @@ \parindent=0cm \addtolength{\textheight}{2cm} -\gnustitle{\gnustitlename}\\ +\gnustitle{\gnustitlename}\hfill\gnusversion{\gnusversionname}\\ \rule{15cm}{1mm}\\ \vfill -\hspace*{0cm}\epsfig{figure=ps/gnus-big-logo.eps,height=15cm} +\hspace*{0cm}\epsfig{figure=ps/gnus-big-logo,height=15cm} \vfill \rule{15cm}{1mm}\\ \gnusauthor{by Lars Magne Ingebrigtsen} @@ -274,7 +276,7 @@ \thispagestyle{empty} -Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000 +Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. @@ -303,7 +305,8 @@ license to the document, as described in section 6 of the license. This file documents gnus, the GNU Emacs newsreader. -Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 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 @@ -332,7 +335,8 @@ license to the document, as described in section 6 of the license. @page @vskip 0pt plus 1filll -Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 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 @@ -581,14 +585,14 @@ Decoding Variables Article Treatment -* Article Highlighting:: You want to make the article look like fruit salad. -* Article Fontisizing:: Making emphasized text look nice. -* Article Hiding:: You also want to make certain info go away. -* Article Washing:: Lots of way-neat functions to make life better. -* Article Buttons:: Click on URLs, Message-IDs, addresses and the like. -* Article Date:: Grumble, UT! -* Article Signature:: What is a signature? -* Article Miscellania:: Various other stuff. +* Article Highlighting:: You want to make the article look like fruit salad. +* Article Fontisizing:: Making emphasized text look nice. +* Article Hiding:: You also want to make certain info go away. +* Article Washing:: Lots of way-neat functions to make life better. +* Article Buttons:: Click on URLs, Message-IDs, addresses and the like. +* Article Date:: Grumble, UT! +* Article Signature:: What is a signature? +* Article Miscellania:: Various other stuff. Alternative Approaches @@ -627,6 +631,7 @@ Select Methods * Getting News:: Reading USENET news with Gnus. * Getting Mail:: Reading your personal mail with Gnus. * Browsing the Web:: Getting messages from a plethora of Web sources. +* IMAP:: Using Gnus as a @sc{imap} client. * Other Sources:: Reading directories, files, SOUP packets. * Combined Groups:: Combining groups into one group. * Gnus Unplugged:: Reading news and mail offline. @@ -658,15 +663,15 @@ Getting Mail * Getting Started Reading Mail:: A simple cookbook example. * Splitting Mail:: How to create mail groups. * Mail Sources:: How to tell Gnus where to get mail from. -* Mail Backend Variables:: Variables for customizing mail handling. +* Mail Back End Variables:: Variables for customizing mail handling. * Fancy Mail Splitting:: Gnus can do hairy splitting of incoming mail. * Group Mail Splitting:: Use group customize to drive mail splitting. * Incorporating Old Mail:: What about the old mail you have? * Expiring Mail:: Getting rid of unwanted mail. * Washing Mail:: Removing gruft from the mail you get. * Duplicates:: Dealing with duplicated mail. -* Not Reading Mail:: Using mail backends for reading other files. -* Choosing a Mail Backend:: Gnus can read a variety of mail formats. +* Not Reading Mail:: Using mail back ends for reading other files. +* Choosing a Mail Back End:: Gnus can read a variety of mail formats. * Archiving Mail:: How to backup your mail. Mail Sources @@ -675,14 +680,14 @@ Mail Sources * Mail Source Customization:: Some variables that influence things. * Fetching Mail:: Using the mail source specifiers. -Choosing a Mail Backend +Choosing a Mail Back End * Unix Mail Box:: Using the (quite) standard Un*x mbox. * Rmail Babyl:: Emacs programs use the rmail babyl format. * Mail Spool:: Store your mail in a private spool? -* MH Spool:: An mhspool-like backend. +* MH Spool:: An mhspool-like back end. * Mail Folders:: Having one file for each group. -* Comparing Mail Backends:: An in-depth looks at pros and cons. +* Comparing Mail Back Ends:: An in-depth looks at pros and cons. Browsing the Web @@ -693,6 +698,12 @@ Browsing the Web * RSS:: Reading RDF site summary. * Customizing w3:: Doing stuff to Emacs/w3 from Gnus. +@sc{imap} + +* Splitting in IMAP:: Splitting mail with nnimap. +* Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox. +* Expunging mailboxes:: Equivalent of a "compress mailbox" button. + Other Sources * Directory Groups:: You can read a directory as if it was a newsgroup. @@ -700,7 +711,6 @@ Other Sources * Document Groups:: Single files can be the basis of a group. * SOUP:: Reading @sc{soup} packets ``offline''. * Mail-To-News Gateways:: Posting articles via mail-to-news gateways. -* IMAP:: Using Gnus as a @sc{imap} client. Document Groups @@ -709,15 +719,9 @@ Document Groups SOUP * SOUP Commands:: Commands for creating and sending @sc{soup} packets -* SOUP Groups:: A backend for reading @sc{soup} packets. +* SOUP Groups:: A back end for reading @sc{soup} packets. * SOUP Replies:: How to enable @code{nnsoup} to take over mail and news. -@sc{imap} - -* Splitting in IMAP:: Splitting mail with nnimap. -* Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox. -* Expunging mailboxes:: Equivalent of a "compress mailbox" button. - Combined Groups * Virtual Groups:: Combining articles from many groups. @@ -868,7 +872,7 @@ Customization Gnus Reference Guide * Gnus Utility Functions:: Common functions and variable to use. -* Backend Interface:: How Gnus communicates with the servers. +* Back End Interface:: How Gnus communicates with the servers. * Score File Syntax:: A BNF definition of the score file standard. * Headers:: How Gnus stores headers internally. * Ranges:: A handy format for storing mucho numbers. @@ -877,14 +881,14 @@ Gnus Reference Guide * Emacs/XEmacs Code:: Gnus can be run under all modern Emacsen. * Various File Formats:: Formats of files that Gnus use. -Backend Interface +Back End Interface -* Required Backend Functions:: Functions that must be implemented. -* Optional Backend Functions:: Functions that need not be implemented. +* Required Back End Functions:: Functions that must be implemented. +* Optional Back End Functions:: Functions that need not be implemented. * Error Messaging:: How to get messages and report errors. -* Writing New Backends:: Extending old backends. -* Hooking New Backends Into Gnus:: What has to be done on the Gnus end. -* Mail-like Backends:: Some tips on mail backends. +* Writing New Back Ends:: Extending old back ends. +* Hooking New Back Ends Into Gnus:: What has to be done on the Gnus end. +* Mail-like Back Ends:: Some tips on mail back ends. Various File Formats @@ -1008,8 +1012,8 @@ files during startup (if that's required), and new newsgroups that appear on these servers will be subscribed (or not) just as native groups are. -For instance, if you use the @code{nnmbox} backend to read your mail, you -would typically set this variable to +For instance, if you use the @code{nnmbox} back end to read your mail, +you would typically set this variable to @lisp (setq gnus-secondary-select-methods '((nnmbox ""))) @@ -1126,7 +1130,7 @@ also save you some time at startup. Even if this variable is @code{nil}, you can always subscribe to the new groups just by pressing @kbd{U} in the group buffer (@pxref{Group Maintenance}). This variable is @code{ask-server} by default. If you set this variable to -@code{always}, then gnus will query the backends for new groups even +@code{always}, then Gnus will query the back ends for new groups even when you do the @kbd{g} command (@pxref{Scanning New Messages}). @menu @@ -1288,7 +1292,7 @@ Yet another variable that meddles here is thought it would be nice to have two of these. This variable is more meant for setting some ground rules, while the other variable is used more for user fiddling. By default this variable makes all new groups -that come from mail backends (@code{nnml}, @code{nnbabyl}, +that come from mail back ends (@code{nnml}, @code{nnbabyl}, @code{nnfolder}, @code{nnmbox}, and @code{nnmh}) subscribed. If you don't like that, just set this variable to @code{nil}. @@ -1620,7 +1624,7 @@ long as gnus is active. @iftex @iflatex \gnusfigure{The Group Buffer}{320}{ -\put(75,50){\epsfig{figure=tmp/group.ps,height=9cm}} +\put(75,50){\epsfig{figure=ps/group,height=9cm}} \put(120,37){\makebox(0,0)[t]{Buffer name}} \put(120,38){\vector(1,2){10}} \put(40,60){\makebox(0,0)[r]{Mode line}} @@ -1734,10 +1738,10 @@ minus @var{min-number} plus 1.) Gnus uses this estimation because the NNTP protocol provides efficient access to @var{max-number} and @var{min-number} but getting the true unread message count is not possible efficiently. For hysterical -raisins, even the mail backends, where the true number of unread +raisins, even the mail back ends, where the true number of unread messages might be available efficiently, use the same limited interface. To remove this restriction from Gnus means that the -backend interface has to be changed, which is not an easy job. If you +back end interface has to be changed, which is not an easy job. If you want to work on this, please contact the Gnus mailing list. @item y @@ -2437,7 +2441,7 @@ to subscribe to @sc{nntp} groups, @pxref{Browse Foreign Server}. Rename the current group to something else (@code{gnus-group-rename-group}). This is valid only on some groups---mail groups mostly. This command might very well be quite slow -on some backends. +on some back ends. @item G c @kindex G c (Group) @@ -2503,7 +2507,7 @@ strings to match on headers (@code{gnus-group-make-kiboze-group}). @findex gnus-group-enter-directory @cindex nneething Read an arbitrary directory as if it were a newsgroup with the -@code{nneething} backend (@code{gnus-group-enter-directory}). +@code{nneething} back end (@code{gnus-group-enter-directory}). @xref{Anything Groups}. @item G f @@ -3103,7 +3107,7 @@ Sort the group buffer by group rank @item G S m @kindex G S m (Group) @findex gnus-group-sort-groups-by-method -Sort the group buffer alphabetically by backend name +Sort the group buffer alphabetically by back end name (@code{gnus-group-sort-groups-by-method}). @end table @@ -3150,7 +3154,7 @@ Sort the groups by group rank @item G P m @kindex G P m (Group) @findex gnus-group-sort-selected-groups-by-method -Sort the groups alphabetically by backend name +Sort the groups alphabetically by back end name (@code{gnus-group-sort-selected-groups-by-method}). @end table @@ -3324,7 +3328,7 @@ groups or the sex groups---or both! Go wild! @iftex @iflatex \gnusfigure{Group Topics}{400}{ -\put(75,50){\epsfig{figure=tmp/group-topic.ps,height=9cm}} +\put(75,50){\epsfig{figure=ps/group-topic,height=9cm}} } @end iflatex @end iftex @@ -3664,7 +3668,7 @@ Sort the current topic by group rank @item T S m @kindex T S m (Topic) @findex gnus-topic-sort-groups-by-method -Sort the current topic alphabetically by backend name +Sort the current topic alphabetically by back end name (@code{gnus-topic-sort-groups-by-method}). @end table @@ -3874,7 +3878,7 @@ Check the server(s) for new articles. If the numerical prefix is used, this command will check only groups of level @var{arg} and lower (@code{gnus-group-get-new-news}). If given a non-numerical prefix, this command will force a total re-reading of the active file(s) from the -backend(s). +back end(s). @item M-g @kindex M-g (Group) @@ -4099,8 +4103,8 @@ You can have as many summary buffers open as you wish. @iftex @iflatex \gnusfigure{The Summary Buffer}{180}{ -\put(0,0){\epsfig{figure=tmp/summary.ps,width=7.5cm}} -\put(445,0){\makebox(0,0)[br]{\epsfig{figure=tmp/summary-article.ps,width=7.5cm}}} +\put(0,0){\epsfig{figure=ps/summary,width=7.5cm}} +\put(445,0){\makebox(0,0)[br]{\epsfig{figure=ps/summary-article,width=7.5cm}}} } @end iflatex @end iftex @@ -4899,7 +4903,8 @@ command understands the process/prefix convention @end table -Also @pxref{(message)Header Commands} for more information. +Also @xref{Header Commands, ,Header Commands, message, The Message +Manual}, for more information. @node Summary Post Commands @@ -4975,7 +4980,8 @@ Uuencode a file, split it into parts, and post it as a series (@code{gnus-uu-post-news}). (@pxref{Uuencoding and Posting}). @end table -Also @pxref{(message)Header Commands} for more information. +Also @xref{Header Commands, ,Header Commands, message, The Message +Manual}, for more information. @node Summary Message Commands @@ -5320,7 +5326,7 @@ the second column (@code{gnus-forwarded-mark}). @vindex gnus-recent-mark Articles that are ``recently'' arrived in the group will be marked with an @samp{N} in the second column (@code{gnus-recent-mark}). Most -backend doesn't support the mark, in which case it's not shown. +back end doesn't support the mark, in which case it's not shown. @item @vindex gnus-cached-mark @@ -5334,6 +5340,13 @@ religiously) are marked with an @samp{S} in the second column (@code{gnus-saved-mark}). @item +@vindex gnus-recent-mark +Articles that according to the back end haven't been seen by the user +before are marked with a @samp{N} in the second column +(@code{gnus-recent-mark}). Note that not all back ends support this +mark, in which case it simply never appear. + +@item @vindex gnus-unseen-mark Articles that haven't been seen by the user before are marked with a @samp{.} in the second column (@code{gnus-unseen-mark}). @@ -5890,10 +5903,10 @@ There are four possible values: @iftex @iflatex \gnusfigure{The Summary Buffer}{390}{ -\put(0,0){\epsfig{figure=tmp/summary-adopt.ps,width=7.5cm}} -\put(445,0){\makebox(0,0)[br]{\epsfig{figure=tmp/summary-empty.ps,width=7.5cm}}} -\put(0,400){\makebox(0,0)[tl]{\epsfig{figure=tmp/summary-none.ps,width=7.5cm}}} -\put(445,400){\makebox(0,0)[tr]{\epsfig{figure=tmp/summary-dummy.ps,width=7.5cm}}} +\put(0,0){\epsfig{figure=ps/summary-adopt,width=7.5cm}} +\put(445,0){\makebox(0,0)[br]{\epsfig{figure=ps/summary-empty,width=7.5cm}}} +\put(0,400){\makebox(0,0)[tl]{\epsfig{figure=ps/summary-none,width=7.5cm}}} +\put(445,400){\makebox(0,0)[tr]{\epsfig{figure=ps/summary-dummy,width=7.5cm}}} } @end iflatex @end iftex @@ -6064,7 +6077,7 @@ would like to display as few summary lines as possible, but still connect as many loose threads as possible, you should set this variable to @code{some} or a number. If you set it to a number, no more than that number of extra old headers will be fetched. In either case, -fetching old headers only works if the backend you are using carries +fetching old headers only works if the back end you are using carries overview files---this would normally be @code{nntp}, @code{nnspool} and @code{nnml}. Also remember that if the root of the thread has been expired by the server, there's not much gnus can do about that. @@ -6091,7 +6104,7 @@ off sparse leaf nodes that don't lead anywhere. This variable is @item gnus-read-all-available-headers @vindex gnus-read-all-available-headers This is a rather obscure variable that few will find useful. It's -intended for those non-news newsgroups where the backend has to fetch +intended for those non-news newsgroups where the back end has to fetch quite a lot to present the summary buffer, and where it's impossible to go back to parents of articles. This is mostly the case in the web-based groups, like the @code{nnultimate} groups. @@ -6463,8 +6476,8 @@ happen automatically. @vindex gnus-use-article-prefetch You can control how many articles are to be pre-fetched by setting @code{gnus-use-article-prefetch}. This is 30 by default, which means -that when you read an article in the group, the backend will pre-fetch -the next 30 articles. If this variable is @code{t}, the backend will +that when you read an article in the group, the back end will pre-fetch +the next 30 articles. If this variable is @code{t}, the back end will pre-fetch all the articles it can without bound. If it is @code{nil}, no pre-fetching will be done. @@ -8411,13 +8424,13 @@ variable, which is an alist of regexps (use the first item to match full group names) and default charsets to be used when reading these groups. In addition, some people do use soi-disant @sc{mime}-aware agents that -aren't. These blithely mark messages as being in @code{iso-8859-1} even -if they really are in @code{koi-8}. To help here, the +aren't. These blithely mark messages as being in @code{iso-8859-1} +even if they really are in @code{koi-8}. To help here, the @code{gnus-newsgroup-ignored-charsets} variable can be used. The -charsets that are listed here will be ignored. The variable can be set -on a group-by-group basis using the group parameters (@pxref{Group -Parameters}). The default value is @code{(unknown-8bit)}, which is -something some agents insist on having in there. +charsets that are listed here will be ignored. The variable can be +set on a group-by-group basis using the group parameters (@pxref{Group +Parameters}). The default value is @code{(unknown-8bit x-unknown)}, +which includes values some agents insist on having in there. @vindex gnus-group-posting-charset-alist When posting, @code{gnus-group-posting-charset-alist} is used to @@ -8623,7 +8636,7 @@ The current select method will be used when fetching by by giving this command a prefix. @vindex gnus-refer-article-method -If the group you are reading is located on a backend that does not +If the group you are reading is located on a back end that does not support fetching by @code{Message-ID} very well (like @code{nnspool}), you can set @code{gnus-refer-article-method} to an @sc{nntp} method. It would, perhaps, be best if the @sc{nntp} server you consult is the one @@ -8644,12 +8657,13 @@ then ask Deja if that fails: (nnweb "refer" (nnweb-type dejanews)))) @end lisp -Most of the mail backends support fetching by @code{Message-ID}, but do -not do a particularly excellent job at it. That is, @code{nnmbox} and -@code{nnbabyl} are able to locate articles from any groups, while -@code{nnml} and @code{nnfolder} are only able to locate articles that -have been posted to the current group. (Anything else would be too time -consuming.) @code{nnmh} does not support this at all. +Most of the mail back ends support fetching by @code{Message-ID}, but +do not do a particularly excellent job at it. That is, @code{nnmbox} +and @code{nnbabyl} are able to locate articles from any groups, while +@code{nnml}, @code{nnfolder} and @code{nnimap}1 are only able to locate +articles that have been posted to the current group. (Anything else +would be too time consuming.) @code{nnmh} does not support this at +all. @node Alternative Approaches @@ -9518,16 +9532,24 @@ to you to figure out, I think. @node Security @section Security -Gnus is able to verify PGP or S/MIME signed messages or decrypt PGP -encrypted messages. +Gnus is able to verify signed messages or decrypt encrypted messages. +The formats that are supported are PGP and S/MIME, however you need +some external programs to get things to work: @enumerate @item To verify or decrypt PGP messages, you have to install mailcrypt or -gpg.el. +gpg.el as well as a OpenPGP implementation (such as GnuPG). @xref{Using GPG}. + +@item +To verify or decrypt S/MIME message, you need to install OpenSSL. +OpenSSL 0.9.6 or newer is recommended. @end enumerate +More information on how to set things up can be found in the message +manual. @xref{Security, ,Security, message, The Message Manual}. + @table @code @item mm-verify-option @vindex mm-verify-option @@ -9546,7 +9568,15 @@ protocols. Otherwise, ask user. @node Mailing List @section Mailing List -Gnus understands some mailing list fields of RFC 2369. +Gnus understands some mailing list fields of RFC 2369. To enable it, +either add a `to-list' group parameter (@pxref{Group Parameters}), +possibly using @kbd{A M} in the summary buffer, or say: + +@lisp +(add-hook 'gnus-summary-mode-hook 'turn-on-gnus-mailing-list-mode) +@end lisp + +That enables the following commands to the summary buffer: @table @kbd @@ -10264,8 +10294,8 @@ messages in one file per month: (concat "mail." (format-time-string "%Y-%m"))))) @end lisp -(XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to -use a different value for @code{gnus-message-archive-group} there.) +@c (XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to +@c use a different value for @code{gnus-message-archive-group} there.) Now, when you send a message off, it will be stored in the appropriate group. (If you want to disable storing for just one particular message, @@ -10540,10 +10570,11 @@ your @file{~/.emacs} or @file{~/.gnus}: @end lisp To sign or encrypt your message you may choose to use the MML Security -menu or @kbd{C-c C-m s p} to sign your message using PGP/MIME, @kbd{C-c -C-m s s} to sign your message using S/MIME. There's also @kbd{C-c C-m c -p} to encrypt your message with PGP/MIME and @kbd{C-c C-m c s} to -encrypt using S/MIME. +menu or @kbd{C-c C-m s p} to sign your message using PGP/MIME, +@kbd{C-c C-m s s} to sign your message using S/MIME. There's also +@kbd{C-c C-m c p} to encrypt your message with PGP/MIME and @kbd{C-c +C-m c s} to encrypt using S/MIME. @xref{Security, ,Security, message, +The Message Manual}. Gnus will ask for your passphrase and then it will send your message, if you've typed it correctly. @@ -10560,22 +10591,22 @@ personal mail group. A foreign group (or any group, really) is specified by a @dfn{name} and a @dfn{select method}. To take the latter first, a select method is a -list where the first element says what backend to use (e.g. @code{nntp}, +list where the first element says what back end to use (e.g. @code{nntp}, @code{nnspool}, @code{nnml}) and the second element is the @dfn{server name}. There may be additional elements in the select method, where the -value may have special meaning for the backend in question. +value may have special meaning for the back end in question. One could say that a select method defines a @dfn{virtual server}---so we do just that (@pxref{Server Buffer}). -The @dfn{name} of the group is the name the backend will recognize the +The @dfn{name} of the group is the name the back end will recognize the group as. For instance, the group @samp{soc.motss} on the @sc{nntp} server @samp{some.where.edu} will have the name @samp{soc.motss} and select method @code{(nntp "some.where.edu")}. Gnus will call this group @samp{nntp+some.where.edu:soc.motss}, even though the @code{nntp} -backend just knows this group as @samp{soc.motss}. +back end just knows this group as @samp{soc.motss}. The different methods all have their peculiarities, of course. @@ -10584,6 +10615,7 @@ The different methods all have their peculiarities, of course. * Getting News:: Reading USENET news with Gnus. * Getting Mail:: Reading your personal mail with Gnus. * Browsing the Web:: Getting messages from a plethora of Web sources. +* IMAP:: Using Gnus as a @sc{imap} client. * Other Sources:: Reading directories, files, SOUP packets. * Combined Groups:: Combining groups into one group. * Gnus Unplugged:: Reading news and mail offline. @@ -10596,13 +10628,13 @@ The different methods all have their peculiarities, of course. Traditionally, a @dfn{server} is a machine or a piece of software that one connects to, and then requests information from. Gnus does not connect directly to any real servers, but does all transactions through -one backend or other. But that's just putting one layer more between +one back end or other. But that's just putting one layer more between the actual media and Gnus, so we might just as well say that each -backend represents a virtual server. +back end represents a virtual server. -For instance, the @code{nntp} backend may be used to connect to several +For instance, the @code{nntp} back end may be used to connect to several different actual @sc{nntp} servers, or, perhaps, to many different ports -on the same actual @sc{nntp} server. You tell Gnus which backend to +on the same actual @sc{nntp} server. You tell Gnus which back end to use, and what parameters to set by specifying a @dfn{select method}. These select method specifications can sometimes become quite @@ -10642,7 +10674,7 @@ variable, with some simple extensions: @table @samp @item h -How the news is fetched---the backend name. +How the news is fetched---the back end name. @item n The name of this server. @@ -10728,7 +10760,7 @@ servers. @findex gnus-server-regenerate-server Request that the server regenerate all its data structures (@code{gnus-server-regenerate-server}). This can be useful if you have -a mail backend that has gotten out of sync. +a mail back end that has gotten out of sync. @end table @@ -10749,7 +10781,7 @@ Reading directly from the spool is even simpler: @end lisp As you can see, the first element in a select method is the name of the -backend, and the second is the @dfn{address}, or @dfn{name}, if you +back end, and the second is the @dfn{address}, or @dfn{name}, if you will. After these two elements, there may be an arbitrary number of @@ -10763,10 +10795,10 @@ look like then: (nntp "news.funet.fi" (nntp-port-number 15)) @end lisp -You should read the documentation to each backend to find out what +You should read the documentation to each back end to find out what variables are relevant, but here's an @code{nnmh} example: -@code{nnmh} is a mail backend that reads a spool-like structure. Say +@code{nnmh} is a mail back end that reads a spool-like structure. Say you have two structures that you wish to access: One is your private mail spool, and the other is a public one. Here's the possible spec for your private mail: @@ -10867,7 +10899,7 @@ buffer, and you should be able to enter any of the groups displayed. @node Server Variables @subsection Server Variables -One sticky point when defining variables (both on backends and in Emacs +One sticky point when defining variables (both on back ends and in Emacs in general) is that some variables are typically initialized from other variables when the definition of the variables is being loaded. If you change the "base" variable after the variables have been loaded, you @@ -10880,7 +10912,7 @@ directory variables are initialized from that variable, so new virtual @code{nnml} server, it will @emph{not} suffice to set just @code{nnml-directory}---you have to explicitly set all the file variables to be what you want them to be. For a complete list of -variables for each backend, see each backend's section later in this +variables for each back end, see each back end's section later in this manual, but here's an example @code{nnml} definition: @lisp @@ -10969,7 +11001,7 @@ Remove all marks to whether Gnus was denied connection from any servers @node Getting News @section Getting News @cindex reading news -@cindex news backends +@cindex news back ends A newsreader is normally used for reading news. Gnus currently provides only two methods of getting news---it can read from an @sc{nntp} server, @@ -11103,9 +11135,9 @@ nntpd 1.5.11t, since that command chokes that server, I've been told. @item nntp-maximum-request @vindex nntp-maximum-request -If the @sc{nntp} server doesn't support @sc{nov} headers, this backend +If the @sc{nntp} server doesn't support @sc{nov} headers, this back end will collect headers by sending a series of @code{head} commands. To -speed things up, the backend sends lots of these commands without +speed things up, the back end sends lots of these commands without waiting for reply, and then reads all the replies. This is controlled by the @code{nntp-maximum-request} variable, and is 400 by default. If your network is buggy, you should set this to 1. @@ -11117,7 +11149,7 @@ regularly, you're sure to have problems with @sc{nntp} servers not responding properly, or being too loaded to reply within reasonable time. This is can lead to awkward problems, which can be helped somewhat by setting @code{nntp-connection-timeout}. This is an integer -that says how many seconds the @code{nntp} backend should wait for a +that says how many seconds the @code{nntp} back end should wait for a connection before giving up. If it is @code{nil}, which is the default, no timeouts are done. @@ -11270,10 +11302,10 @@ remote system. @findex nntp-open-ssl-stream @item nntp-open-ssl-stream -Opens a connection to a server over a @dfn{secure} channel. To use this -you must have SSLay installed -(@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need -@file{ssl.el} (from the W3 distribution, for instance). You then +Opens a connection to a server over a @dfn{secure} channel. To use +this you must have OpenSSL (@uref{http://www.openssl.org}) or SSLeay +installed (@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also +need @file{ssl.el} (from the W3 distribution, for instance). You then define a server as follows: @lisp @@ -11519,15 +11551,15 @@ course. * Getting Started Reading Mail:: A simple cookbook example. * Splitting Mail:: How to create mail groups. * Mail Sources:: How to tell Gnus where to get mail from. -* Mail Backend Variables:: Variables for customizing mail handling. +* Mail Back End Variables:: Variables for customizing mail handling. * Fancy Mail Splitting:: Gnus can do hairy splitting of incoming mail. * Group Mail Splitting:: Use group customize to drive mail splitting. * Incorporating Old Mail:: What about the old mail you have? * Expiring Mail:: Getting rid of unwanted mail. * Washing Mail:: Removing gruft from the mail you get. * Duplicates:: Dealing with duplicated mail. -* Not Reading Mail:: Using mail backends for reading other files. -* Choosing a Mail Backend:: Gnus can read a variety of mail formats. +* Not Reading Mail:: Using mail back ends for reading other files. +* Choosing a Mail Back End:: Gnus can read a variety of mail formats. * Archiving Mail:: How to backup your mail. @end menu @@ -11601,17 +11633,17 @@ You Do.) @subsection Getting Started Reading Mail It's quite easy to use Gnus to read your new mail. You just plonk the -mail backend of your choice into @code{gnus-secondary-select-methods}, +mail back end of your choice into @code{gnus-secondary-select-methods}, and things will happen automatically. For instance, if you want to use @code{nnml} (which is a "one file per -mail" backend), you could put the following in your @file{.gnus} file: +mail" back end), you could put the following in your @file{.gnus} file: @lisp (setq gnus-secondary-select-methods '((nnml ""))) @end lisp -Now, the next time you start Gnus, this backend will be queried for new +Now, the next time you start Gnus, this back end will be queried for new articles, and it will move all the messages in your spool file to its directory, which is @code{~/Mail/} by default. The new group that will be created (@samp{mail.misc}) will be subscribed, and you can read it @@ -11633,7 +11665,7 @@ last group. This should be sufficient for reading mail with Gnus. You might want to give the other sections in this part of the manual a perusal, though. -Especially @pxref{Choosing a Mail Backend} and @pxref{Expiring Mail}. +Especially @pxref{Choosing a Mail Back End} and @pxref{Expiring Mail}. @node Splitting Mail @@ -11682,13 +11714,13 @@ arguments in a buffer narrowed to the headers of an incoming mail message. The function should return a list of group names that it thinks should carry this mail message. -Note that the mail backends are free to maul the poor, innocent, +Note that the mail back ends are free to maul the poor, innocent, incoming headers all they want to. They all add @code{Lines} headers; some add @code{X-Gnus-Group} headers; most rename the Unix mbox @code{From} line to something else. @vindex nnmail-crosspost -The mail backends all support cross-posting. If several regexps match, +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. @@ -12013,13 +12045,14 @@ prompted. @item :stream What stream to use for connecting to the server, this is one of the symbols in @code{imap-stream-alist}. Right now, this means -@samp{kerberos4}, @samp{ssl} or the default @samp{network}. +@samp{gssapi}, @samp{kerberos4}, @samp{starttls}, @samp{ssl}, +@samp{shell} or the default @samp{network}. @item :authentication -Which authenticator to use for authenticating to the server, this is one -of the symbols in @code{imap-authenticator-alist}. Right now, this -means @samp{kerberos4}, @samp{cram-md5}, @samp{anonymous} or the default -@samp{login}. +Which authenticator to use for authenticating to the server, this is +one of the symbols in @code{imap-authenticator-alist}. Right now, +this means @samp{gssapi}, @samp{kerberos4}, @samp{digest-md5}, +@samp{cram-md5}, @samp{anonymous} or the default @samp{login}. @item :program When using the `shell' :stream, the contents of this variable is @@ -12213,7 +12246,7 @@ The way to actually tell Gnus where to get new mail from is to set (@pxref{Mail Source Specifiers}). If this variable (and the obsolescent @code{nnmail-spool-file}) is -@code{nil}, the mail backends will never attempt to fetch mail by +@code{nil}, the mail back ends will never attempt to fetch mail by themselves. If you want to fetch mail both from your local spool as well as a POP @@ -12238,25 +12271,25 @@ Or, if you don't want to use any of the keyword defaults: @end lisp -When you use a mail backend, Gnus will slurp all your mail from your +When you use a mail back end, Gnus will slurp all your mail from your inbox and plonk it down in your home directory. Gnus doesn't move any -mail if you're not using a mail backend---you have to do a lot of magic +mail if you're not using a mail back end---you have to do a lot of magic invocations first. At the time when you have finished drawing the pentagram, lightened the candles, and sacrificed the goat, you really shouldn't be too surprised when Gnus moves your mail. -@node Mail Backend Variables -@subsection Mail Backend Variables +@node Mail Back End Variables +@subsection Mail Back End Variables These variables are (for the most part) pertinent to all the various -mail backends. +mail back ends. @table @code @vindex nnmail-read-incoming-hook @item nnmail-read-incoming-hook -The mail backends all call this hook after reading new mail. You can +The mail back ends all call this hook after reading new mail. You can use this hook to notify any mail watch programs, if you want to. @vindex nnmail-split-hook @@ -12293,10 +12326,10 @@ default file modes the new mail files get: @item nnmail-use-long-file-names @vindex nnmail-use-long-file-names -If non-@code{nil}, the mail backends will use long file and directory +If non-@code{nil}, the mail back ends will use long file and directory names. Groups like @samp{mail.misc} will end up in directories -(assuming use of @code{nnml} backend) or files (assuming use of -@code{nnfolder} backend) like @file{mail.misc}. If it is @code{nil}, +(assuming use of @code{nnml} back end) or files (assuming use of +@code{nnfolder} back end) like @file{mail.misc}. If it is @code{nil}, the same group will end up in @file{mail/misc}. @item nnmail-delete-file-function @@ -12307,7 +12340,7 @@ Function called to delete files. It is @code{delete-file} by default. @item nnmail-cache-accepted-message-ids @vindex nnmail-cache-accepted-message-ids If non-@code{nil}, put the @code{Message-ID}s of articles imported into -the backend (via @code{Gcc}, for instance) into the mail duplication +the back end (via @code{Gcc}, for instance) into the mail duplication discovery cache. The default is @code{nil}. @end table @@ -12631,7 +12664,7 @@ by @code{gnus-group-split-update}, this function will run Most people have lots of old mail stored in various file formats. If you have set up Gnus to read mail using one of the spiffy Gnus mail -backends, you'll probably wish to have that old mail incorporated into +back ends, you'll probably wish to have that old mail incorporated into your mail groups. Doing so can be quite easy. @@ -12671,8 +12704,8 @@ deleting the mbox file, but I wouldn't do that unless I was absolutely sure that all the mail has ended up where it should be. Respooling is also a handy thing to do if you're switching from one mail -backend to another. Just respool all the mail in the old mail groups -using the new mail backend. +back end to another. Just respool all the mail in the old mail groups +using the new mail back end. @node Expiring Mail @@ -12983,12 +13016,12 @@ received. Think of all the fun! She'll never see any of it! Whee! @node Not Reading Mail @subsection Not Reading Mail -If you start using any of the mail backends, they have the annoying +If you start using any of the mail back ends, they have the annoying habit of assuming that you want to read mail with them. This might not be unreasonable, but it might not be what you want. If you set @code{mail-sources} and @code{nnmail-spool-file} to -@code{nil}, none of the backends will ever attempt to read incoming +@code{nil}, none of the back ends will ever attempt to read incoming mail, which should help. @vindex nnbabyl-get-new-mail @@ -12998,25 +13031,25 @@ mail, which should help. @vindex nnfolder-get-new-mail This might be too much, if, for instance, you are reading mail quite happily with @code{nnml} and just want to peek at some old @sc{rmail} -file you have stashed away with @code{nnbabyl}. All backends have -variables called backend-@code{get-new-mail}. If you want to disable +file you have stashed away with @code{nnbabyl}. All back ends have +variables called back-end-@code{get-new-mail}. If you want to disable the @code{nnbabyl} mail reading, you edit the virtual server for the group to have a setting where @code{nnbabyl-get-new-mail} to @code{nil}. -All the mail backends will call @code{nn}*@code{-prepare-save-mail-hook} +All the mail back ends will call @code{nn}*@code{-prepare-save-mail-hook} narrowed to the article to be saved before saving it when reading incoming mail. -@node Choosing a Mail Backend -@subsection Choosing a Mail Backend +@node Choosing a Mail Back End +@subsection Choosing a Mail Back End Gnus will read the mail spool when you activate a mail group. The mail file is first copied to your home directory. What happens after that depends on what format you want to store your mail in. -There are five different mail backends in the standard Gnus, and more -backends are available separately. The mail backend most people use +There are five different mail back ends in the standard Gnus, and more +back ends are available separately. The mail back end most people use (because it is the fastest and most flexible) is @code{nnml} (@pxref{Mail Spool}). @@ -13024,9 +13057,9 @@ backends are available separately. The mail backend most people use * Unix Mail Box:: Using the (quite) standard Un*x mbox. * Rmail Babyl:: Emacs programs use the rmail babyl format. * Mail Spool:: Store your mail in a private spool? -* MH Spool:: An mhspool-like backend. +* MH Spool:: An mhspool-like back end. * Mail Folders:: Having one file for each group. -* Comparing Mail Backends:: An in-depth looks at pros and cons. +* Comparing Mail Back Ends:: An in-depth looks at pros and cons. @end menu @@ -13037,7 +13070,7 @@ backends are available separately. The mail backend most people use @vindex nnmbox-active-file @vindex nnmbox-mbox-file -The @dfn{nnmbox} backend will use the standard Un*x mbox file to store +The @dfn{nnmbox} back end will use the standard Un*x mbox file to store mail. @code{nnmbox} will add extra headers to each mail article to say which group it belongs in. @@ -13068,7 +13101,7 @@ into groups. Default is @code{t}. @vindex nnbabyl-active-file @vindex nnbabyl-mbox-file -The @dfn{nnbabyl} backend will use a babyl mail box (aka. @dfn{rmail +The @dfn{nnbabyl} back end will use a babyl mail box (aka. @dfn{rmail mbox}) to store mail. @code{nnbabyl} will add extra headers to each mail article to say which group it belongs in. @@ -13100,7 +13133,7 @@ The @dfn{nnml} spool mail format isn't compatible with any other known format. It should be used with some caution. @vindex nnml-directory -If you use this backend, Gnus will split all incoming mail into files, +If you use this back end, Gnus will split all incoming mail into files, one file for each mail, and put the articles into the corresponding directories under the directory specified by the @code{nnml-directory} variable. The default value is @file{~/Mail/}. @@ -13109,7 +13142,7 @@ You do not have to create any directories beforehand; Gnus will take care of all that. If you have a strict limit as to how many files you are allowed to store -in your account, you should not use this backend. As each mail gets its +in your account, you should not use this back end. As each mail gets its own file, you might very well occupy thousands of inodes within a few weeks. If this is no problem for you, and it isn't a problem for you having your friendly systems administrator walking around, madly, @@ -13117,10 +13150,10 @@ shouting ``Who is eating all my inodes?! Who? Who!?!'', then you should know that this is probably the fastest format to use. You do not have to trudge through a big mbox file just to read your new mail. -@code{nnml} is probably the slowest backend when it comes to article +@code{nnml} is probably the slowest back end when it comes to article splitting. It has to create lots of files, and it also generates @sc{nov} databases for the incoming mails. This makes it the fastest -backend when it comes to reading mail. +back end when it comes to reading mail. @cindex self contained nnml servers When the marks file is used (which it is by default), @code{nnml} @@ -13159,7 +13192,7 @@ If non-@code{nil}, @code{nnml} will read incoming mail. The default is @item nnml-nov-is-evil @vindex nnml-nov-is-evil -If non-@code{nil}, this backend will ignore any @sc{nov} files. The +If non-@code{nil}, this back end will ignore any @sc{nov} files. The default is @code{nil}. @item nnml-nov-file-name @@ -13172,7 +13205,7 @@ Hook run narrowed to an article before saving. @item nnml-marks-is-evil @vindex nnml-marks-is-evil -If non-@code{nil}, this backend will ignore any @sc{marks} files. The +If non-@code{nil}, this back end will ignore any @sc{marks} files. The default is @code{nil}. @item nnml-marks-file-name @@ -13198,7 +13231,7 @@ Commands}). @code{nnmh} is just like @code{nnml}, except that is doesn't generate @sc{nov} databases and it doesn't keep an active file or marks file. -This makes @code{nnmh} a @emph{much} slower backend than @code{nnml}, +This makes @code{nnmh} a @emph{much} slower back end than @code{nnml}, but it also makes it easier to write procmail scripts for. Virtual server settings: @@ -13232,7 +13265,7 @@ to set this variable to @code{t}. The default is @code{nil}. @cindex mbox folders @cindex mail folders -@code{nnfolder} is a backend for storing each mail group in a separate +@code{nnfolder} is a back end for storing each mail group in a separate file. Each file is in the standard Un*x mbox format. @code{nnfolder} will add extra headers to keep track of article numbers and arrival dates. @@ -13295,7 +13328,7 @@ extract some information from it before removing it. @item nnfolder-nov-is-evil @vindex nnfolder-nov-is-evil -If non-@code{nil}, this backend will ignore any @sc{nov} files. The +If non-@code{nil}, this back end will ignore any @sc{nov} files. The default is @code{nil}. @item nnfolder-nov-file-suffix @@ -13309,7 +13342,7 @@ The directory where the @sc{nov} files should be stored. If nil, @item nnfolder-marks-is-evil @vindex nnfolder-marks-is-evil -If non-@code{nil}, this backend will ignore any @sc{marks} files. The +If non-@code{nil}, this back end will ignore any @sc{marks} files. The default is @code{nil}. @item nnfolder-marks-file-suffix @@ -13332,13 +13365,13 @@ command to make @code{nnfolder} aware of all likely files in @code{nnfolder-directory}. This only works if you use long file names, though. -@node Comparing Mail Backends -@subsubsection Comparing Mail Backends +@node Comparing Mail Back Ends +@subsubsection Comparing Mail Back Ends -First, just for terminology, the @dfn{backend} is the common word for a +First, just for terminology, the @dfn{back end} is the common word for a low-level access method---a transport, if you will, by which something is acquired. The sense is that one's mail has to come from somewhere, -and so selection of a suitable backend is required in order to get that +and so selection of a suitable back end is required in order to get that mail within spitting distance of Gnus. The same concept exists for Usenet itself: Though access to articles is @@ -13347,11 +13380,11 @@ in the world got at Usenet by running a reader on the machine where the articles lay (the machine which today we call an @sc{nntp} server), and access was by the reader stepping into the articles' directory spool area directly. One can still select between either the @code{nntp} or -@code{nnspool} backends, to select between these methods, if one happens +@code{nnspool} back ends, to select between these methods, if one happens actually to live on the server (or can see its spool directly, anyway, via NFS). -The goal in selecting a mail backend is to pick one which +The goal in selecting a mail back end is to pick one which simultaneously represents a suitable way of dealing with the original format plus leaving mail in a form that is convenient to use in the future. Here are some high and low points on each: @@ -13367,7 +13400,7 @@ to make it clear in this instance that this is not the RFC-specified @samp{From:} header.) Because Emacs and therefore Gnus emanate historically from the Unix environment, it is simplest if one does not mess a great deal with the original mailbox format, so if one chooses -this backend, Gnus' primary activity in getting mail from the real spool +this back end, Gnus' primary activity in getting mail from the real spool area to Gnus' preferred directory is simply to copy it, with no (appreciable) format change in the process. It is the ``dumbest'' way to move mail into availability in the Gnus environment. This makes it @@ -13397,7 +13430,7 @@ look at your mail. @item nnml -@code{nnml} is the backend which smells the most as though you were +@code{nnml} is the back end which smells the most as though you were actually operating with an @code{nnspool}-accessed Usenet system. (In fact, I believe @code{nnml} actually derived from @code{nnspool} code, lo these years ago.) One's mail is taken from the original spool file, @@ -13419,7 +13452,7 @@ tight, shared filesystems. But if you live on a personal machine where the filesystem is your own and space is not at a premium, @code{nnml} wins big. -It is also problematic using this backend if you are living in a +It is also problematic using this back end if you are living in a FAT16-based Windows world, since much space will be wasted on all these tiny files. @@ -13448,7 +13481,7 @@ out how many messages there are in each separate group. If you have groups that are expected to have a massive amount of messages, @code{nnfolder} is not the best choice, but if you receive only a moderate amount of mail, @code{nnfolder} is probably the most -friendly mail backend all over. +friendly mail back end all over. @end table @@ -13477,7 +13510,7 @@ you mad in the end. So---if web browsers suck at reading discussion forums, why not use Gnus to do it instead? -Gnus has been getting a bit of a collection of backends for providing +Gnus has been getting a bit of a collection of back ends for providing interfaces to these sources. @menu @@ -13493,8 +13526,8 @@ All the web sources require Emacs/w3 and the url library to work. The main caveat with all these web sources is that they probably won't work for a very long time. Gleaning information from the @sc{html} data -is guesswork at best, and when the layout is altered, the Gnus backend -will fail. If you have reasonably new versions of these backends, +is guesswork at best, and when the layout is altered, the Gnus back end +will fail. If you have reasonably new versions of these back ends, though, you should be ok. One thing all these Web methods have in common is that the Web sources @@ -13508,7 +13541,7 @@ leisure from your local disk. No more World Wide Wait for you. @cindex archiving mail @cindex backup of mail -Some of the backends, notably nnml and nnfolder, now actually store +Some of the back ends, notably nnml and nnfolder, now actually store the article marks with each group. For these servers, archiving and restoring a group while preserving marks is fairly simple. @@ -13548,7 +13581,7 @@ those, like, Web browsers, and you, like, have to, rilly, like, look at the commercials, so, like, with Gnus you can do @emph{rad}, rilly, searches without having to use a browser. -The @code{nnweb} backend allows an easy interface to the mighty search +The @code{nnweb} back end allows an easy interface to the mighty search engine. You create an @code{nnweb} group, enter a search pattern, and then enter the group and read the articles like you would any normal group. The @kbd{G w} command in the group buffer (@pxref{Foreign @@ -13639,7 +13672,7 @@ following in your @file{.gnus.el} file: '((nnslashdot ""))) @end lisp -This will make Gnus query the @code{nnslashdot} backend for new comments +This will make Gnus query the @code{nnslashdot} back end for new comments and groups. The @kbd{F} command will subscribe each new news article as a new Gnus group, and you can read the comments by entering these groups. (Note that the default subscription method is to subscribe new @@ -13757,7 +13790,7 @@ gnus-group-make-warchive-group RET an_egroup RET egroups RET www.egroups.com RET your@@email.address RET}. (Substitute the @sc{an_egroup} with the mailing list you subscribed, the @sc{your@@email.address} with your email address.), or to browse the -backend by @kbd{B nnwarchive RET mail-archive RET}. +back end by @kbd{B nnwarchive RET mail-archive RET}. The following @code{nnwarchive} variables can be altered: @@ -13865,1172 +13898,1170 @@ Put that in your @file{.emacs} file, and hitting links in w3-rendered @sc{html} in the Gnus article buffers will use @code{browse-url} to follow the link. +@node IMAP +@section @sc{imap} +@cindex nnimap +@cindex @sc{imap} -@node Other Sources -@section Other Sources +@sc{imap} is a network protocol for reading mail (or news, or ...), +think of it as a modernized @sc{nntp}. Connecting to a @sc{imap} +server is much similar to connecting to a news server, you just +specify the network address of the server. -Gnus can do more than just read news or mail. The methods described -below allow Gnus to view directories and files as if they were -newsgroups. +@sc{imap} has two properties. First, @sc{imap} can do everything that +POP can, it can hence be viewed as POP++. Secondly, @sc{imap} is a +mail storage protocol, similar to @sc{nntp} being a news storage +protocol. (@sc{imap} offers more features than @sc{nntp} because news +is more or less read-only whereas mail is read-write.) -@menu -* Directory Groups:: You can read a directory as if it was a newsgroup. -* Anything Groups:: Dired? Who needs dired? -* Document Groups:: Single files can be the basis of a group. -* SOUP:: Reading @sc{soup} packets ``offline''. -* Mail-To-News Gateways:: Posting articles via mail-to-news gateways. -* IMAP:: Using Gnus as a @sc{imap} client. -@end menu +If you want to use @sc{imap} as POP++, use an imap entry in +mail-sources. With this, Gnus will fetch mails from the @sc{imap} +server and store them on the local disk. This is not the usage +described in this section. @xref{Mail Sources}. +If you want to use @sc{imap} as a mail storage protocol, use an nnimap +entry in gnus-secondary-select-methods. With this, Gnus will +manipulate mails stored on the @sc{imap} server. This is the kind of +usage explained in this section. -@node Directory Groups -@subsection Directory Groups -@cindex nndir -@cindex directory groups +A server configuration in @code{~/.gnus} with a few @sc{imap} servers +might look something like this: -If you have a directory that has lots of articles in separate files in -it, you might treat it as a newsgroup. The files have to have numerical -names, of course. +@lisp +(setq gnus-secondary-select-methods + '((nnimap "simpleserver") ; no special configuration + ; perhaps a ssh port forwarded server: + (nnimap "dolk" + (nnimap-address "localhost") + (nnimap-server-port 1430)) + ; a UW server running on localhost + (nnimap "barbar" + (nnimap-server-port 143) + (nnimap-address "localhost") + (nnimap-list-pattern ("INBOX" "mail/*"))) + ; anonymous public cyrus server: + (nnimap "cyrus.andrew.cmu.edu" + (nnimap-authenticator anonymous) + (nnimap-list-pattern "archive.*") + (nnimap-stream network)) + ; a ssl server on a non-standard port: + (nnimap "vic20" + (nnimap-address "vic20.somewhere.com") + (nnimap-server-port 9930) + (nnimap-stream ssl)))) +@end lisp -This might be an opportune moment to mention @code{ange-ftp} (and its -successor @code{efs}), that most wonderful of all wonderful Emacs -packages. When I wrote @code{nndir}, I didn't think much about it---a -backend to read directories. Big deal. +The following variables can be used to create a virtual @code{nnimap} +server: -@code{ange-ftp} changes that picture dramatically. For instance, if you -enter the @code{ange-ftp} file name -@file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} as the directory name, -@code{ange-ftp} or @code{efs} will actually allow you to read this -directory over at @samp{sina} as a newsgroup. Distributed news ahoy! +@table @code -@code{nndir} will use @sc{nov} files if they are present. +@item nnimap-address +@vindex nnimap-address -@code{nndir} is a ``read-only'' backend---you can't delete or expire -articles with this method. You can use @code{nnmh} or @code{nnml} for -whatever you use @code{nndir} for, so you could switch to any of those -methods if you feel the need to have a non-read-only @code{nndir}. +The address of the remote @sc{imap} server. Defaults to the virtual +server name if not specified. +@item nnimap-server-port +@vindex nnimap-server-port +Port on server to contact. Defaults to port 143, or 993 for SSL. -@node Anything Groups -@subsection Anything Groups -@cindex nneething +Note that this should be a integer, example server specification: -From the @code{nndir} backend (which reads a single spool-like -directory), it's just a hop and a skip to @code{nneething}, which -pretends that any arbitrary directory is a newsgroup. Strange, but -true. +@lisp +(nnimap "mail.server.com" + (nnimap-server-port 4711)) +@end lisp -When @code{nneething} is presented with a directory, it will scan this -directory and assign article numbers to each file. When you enter such -a group, @code{nneething} must create ``headers'' that Gnus can use. -After all, Gnus is a newsreader, in case you're forgetting. -@code{nneething} does this in a two-step process. First, it snoops each -file in question. If the file looks like an article (i.e., the first -few lines look like headers), it will use this as the head. If this is -just some arbitrary file without a head (e.g. a C source file), -@code{nneething} will cobble up a header out of thin air. It will use -file ownership, name and date and do whatever it can with these -elements. +@item nnimap-list-pattern +@vindex nnimap-list-pattern +String or list of strings of mailboxes to limit available groups to. +This is used when the server has very many mailboxes and you're only +interested in a few -- some servers export your home directory via +@sc{imap}, you'll probably want to limit the mailboxes to those in +@file{~/Mail/*} then. -All this should happen automatically for you, and you will be presented -with something that looks very much like a newsgroup. Totally like a -newsgroup, to be precise. If you select an article, it will be displayed -in the article buffer, just as usual. +The string can also be a cons of REFERENCE and the string as above, what +REFERENCE is used for is server specific, but on the University of +Washington server it's a directory that will be concatenated with the +mailbox. -If you select a line that represents a directory, Gnus will pop you into -a new summary buffer for this @code{nneething} group. And so on. You can -traverse the entire disk this way, if you feel like, but remember that -Gnus is not dired, really, and does not intend to be, either. +Example server specification: -There are two overall modes to this action---ephemeral or solid. When -doing the ephemeral thing (i.e., @kbd{G D} from the group buffer), Gnus -will not store information on what files you have read, and what files -are new, and so on. If you create a solid @code{nneething} group the -normal way with @kbd{G m}, Gnus will store a mapping table between -article numbers and file names, and you can treat this group like any -other groups. When you activate a solid @code{nneething} group, you will -be told how many unread articles it contains, etc., etc. +@lisp +(nnimap "mail.server.com" + (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" + ("~friend/Mail/" . "list/*")))) +@end lisp -Some variables: +@item nnimap-stream +@vindex nnimap-stream +The type of stream used to connect to your server. By default, nnimap +will detect and automatically use all of the below, with the exception +of SSL. (SSL is being replaced by STARTTLS, which can be automatically +detected, but it's not widely deployed yet). -@table @code -@item nneething-map-file-directory -@vindex nneething-map-file-directory -All the mapping files for solid @code{nneething} groups will be stored -in this directory, which defaults to @file{~/.nneething/}. +Example server specification: -@item nneething-exclude-files -@vindex nneething-exclude-files -All files that match this regexp will be ignored. Nice to use to exclude -auto-save files and the like, which is what it does by default. +@lisp +(nnimap "mail.server.com" + (nnimap-stream ssl)) +@end lisp -@item nneething-include-files -@vindex nneething-include-files -Regexp saying what files to include in the group. If this variable is -non-@code{nil}, only files matching this regexp will be included. +Please note that the value of @code{nnimap-stream} is a symbol! -@item nneething-map-file -@vindex nneething-map-file -Name of the map files. -@end table +@itemize @bullet +@item +@dfn{gssapi:} Connect with GSSAPI (usually kerberos 5). Requires the +@samp{imtest} program. +@item +@dfn{kerberos4:} Connect with kerberos 4. Requires the @samp{imtest} program. +@item +@dfn{starttls:} Connect via the STARTTLS extension (similar to +SSL). Requires the external library @samp{starttls.el} and program +@samp{starttls}. +@item +@dfn{ssl:} Connect through SSL. Requires OpenSSL (the +program @samp{openssl}) or SSLeay (@samp{s_client}). +@item +@dfn{shell:} Use a shell command to start @sc{imap} connection. +@item +@dfn{network:} Plain, TCP/IP network connection. +@end itemize +@vindex imap-kerberos4-program +The @samp{imtest} program is shipped with Cyrus IMAPD. If you're +using @samp{imtest} from Cyrus IMAPD < 2.0.14 (which includes version +1.5.x and 1.6.x) you need to frob @code{imap-process-connection-type} +to make @code{imap.el} use a pty instead of a pipe when communicating +with @samp{imtest}. You will then suffer from a line length +restrictions on IMAP commands, which might make Gnus seem to hang +indefinitely if you have many articles in a mailbox. The variable +@code{imap-kerberos4-program} contain parameters to pass to the imtest +program. -@node Document Groups -@subsection Document Groups -@cindex nndoc -@cindex documentation group -@cindex help group +@vindex imap-ssl-program +For SSL connections, the OpenSSL program is available from +@uref{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay, +and nnimap support it too - altough the most recent versions of +SSLeay, 0.9.x, are known to have serious bugs making it +useless. Earlier versions, especially 0.8.x, of SSLeay are known to +work. The variable @code{imap-ssl-program} contain parameters to pass +to OpenSSL/SSLeay. -@code{nndoc} is a cute little thing that will let you read a single file -as a newsgroup. Several files types are supported: +@vindex imap-shell-program +@vindex imap-shell-host +For @sc{imap} connections using the @code{shell} stream, the variable +@code{imap-shell-program} specify what program to call. -@table @code -@cindex babyl -@cindex rmail mbox +@item nnimap-authenticator +@vindex nnimap-authenticator -@item babyl -The babyl (rmail) mail box. -@cindex mbox -@cindex Unix mbox - -@item mbox -The standard Unix mbox file. - -@cindex MMDF mail box -@item mmdf -The MMDF mail box format. - -@item news -Several news articles appended into a file. - -@item rnews -@cindex rnews batch files -The rnews batch transport format. -@cindex forwarded messages - -@item forward -Forwarded articles. +The authenticator used to connect to the server. By default, nnimap +will use the most secure authenticator your server is capable of. -@item nsmail -Netscape mail boxes. +Example server specification: -@item mime-parts -MIME multipart messages. +@lisp +(nnimap "mail.server.com" + (nnimap-authenticator anonymous)) +@end lisp -@item standard-digest -The standard (RFC 1153) digest format. +Please note that the value of @code{nnimap-authenticator} is a symbol! -@item slack-digest -Non-standard digest format---matches most things, but does it badly. -@end table +@itemize @bullet +@item +@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Require +external program @code{imtest}. +@item +@dfn{kerberos4:} Kerberos authentication. Require external program +@code{imtest}. +@item +@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5. Require +external library @code{digest-md5.el}. +@item +@dfn{cram-md5:} Encrypted username/password via CRAM-MD5. +@item +@dfn{login:} Plain-text username/password via LOGIN. +@item +@dfn{anonymous:} Login as `anonymous', supplying your emailadress as password. +@end itemize -You can also use the special ``file type'' @code{guess}, which means -that @code{nndoc} will try to guess what file type it is looking at. -@code{digest} means that @code{nndoc} should guess what digest type the -file is. +@item nnimap-expunge-on-close +@cindex Expunging +@vindex nnimap-expunge-on-close +Unlike Parmenides the @sc{imap} designers has decided that things that +doesn't exist actually does exist. More specifically, @sc{imap} has +this concept of marking articles @code{Deleted} which doesn't actually +delete them, and this (marking them @code{Deleted}, that is) is what +nnimap does when you delete a article in Gnus (with @kbd{G DEL} or +similar). -@code{nndoc} will not try to change the file or insert any extra headers into -it---it will simply, like, let you use the file as the basis for a -group. And that's it. +Since the articles aren't really removed when we mark them with the +@code{Deleted} flag we'll need a way to actually delete them. Feel like +running in circles yet? -If you have some old archived articles that you want to insert into your -new & spiffy Gnus mail backend, @code{nndoc} can probably help you with -that. Say you have an old @file{RMAIL} file with mail that you now want -to split into your new @code{nnml} groups. You look at that file using -@code{nndoc} (using the @kbd{G f} command in the group buffer -(@pxref{Foreign Groups})), set the process mark on all the articles in -the buffer (@kbd{M P b}, for instance), and then re-spool (@kbd{B r}) -using @code{nnml}. If all goes well, all the mail in the @file{RMAIL} -file is now also stored in lots of @code{nnml} directories, and you can -delete that pesky @file{RMAIL} file. If you have the guts! +Traditionally, nnimap has removed all articles marked as @code{Deleted} +when closing a mailbox but this is now configurable by this server +variable. -Virtual server variables: +The possible options are: @table @code -@item nndoc-article-type -@vindex nndoc-article-type -This should be one of @code{mbox}, @code{babyl}, @code{digest}, -@code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934}, -@code{rfc822-forward}, @code{mime-parts}, @code{standard-digest}, -@code{slack-digest}, @code{clari-briefs}, @code{nsmail} or @code{guess}. -@item nndoc-post-type -@vindex nndoc-post-type -This variable says whether Gnus is to consider the group a news group or -a mail group. There are two valid values: @code{mail} (the default) -and @code{news}. -@end table +@item always +The default behavior, delete all articles marked as "Deleted" when +closing a mailbox. +@item never +Never actually delete articles. Currently there is no way of showing +the articles marked for deletion in nnimap, but other @sc{imap} clients +may allow you to do this. If you ever want to run the EXPUNGE command +manually, @xref{Expunging mailboxes}. +@item ask +When closing mailboxes, nnimap will ask if you wish to expunge deleted +articles or not. -@menu -* Document Server Internals:: How to add your own document types. -@end menu +@end table +@item nnimap-importantize-dormant +@vindex nnimap-importantize-dormant -@node Document Server Internals -@subsubsection Document Server Internals +If non-nil, marks dormant articles as ticked (as well), for other IMAP +clients. Within Gnus, dormant articles will naturally still (only) be +marked as ticked. This is to make dormant articles stand out, just +like ticked articles, in other IMAP clients. (In other words, Gnus has +two ``Tick'' marks and IMAP has only one.) -Adding new document types to be recognized by @code{nndoc} isn't -difficult. You just have to whip up a definition of what the document -looks like, write a predicate function to recognize that document type, -and then hook into @code{nndoc}. +Probably the only reason for frobing this would be if you're trying +enable per-user persistant dormant flags, using something like: -First, here's an example document type definition: +@lisp +(setcdr (assq 'dormant nnimap-mark-to-flag-alist) + (format "gnus-dormant-%s" (user-login-name))) +(setcdr (assq 'dormant nnimap-mark-to-predicate-alist) + (format "KEYWORD gnus-dormant-%s" (user-login-name))) +@end lisp -@example -(mmdf - (article-begin . "^\^A\^A\^A\^A\n") - (body-end . "^\^A\^A\^A\^A\n")) -@end example +In this case, you would not want the per-user dormant flag showing up +as ticked for other users. -The definition is simply a unique @dfn{name} followed by a series of -regexp pseudo-variable settings. Below are the possible -variables---don't be daunted by the number of variables; most document -types can be defined with very few settings: +@item nnimap-expunge-search-string +@cindex Expunging +@vindex nnimap-expunge-search-string -@table @code -@item first-article -If present, @code{nndoc} will skip past all text until it finds -something that match this regexp. All text before this will be -totally ignored. +This variable contain the IMAP search command sent to server when +searching for articles eligible for expiring. The default is +@code{"UID %s NOT SINCE %s"}, where the first @code{%s} is replaced by +UID set and the second @code{%s} is replaced by a date. -@item article-begin -This setting has to be present in all document type definitions. It -says what the beginning of each article looks like. +Probably the only useful value to change this to is +@code{"UID %s NOT SENTSINCE %s"}, which makes nnimap use the Date: in +messages instead of the internal article date. See section 6.4.4 of +RFC 2060 for more information on valid strings. -@item head-begin-function -If present, this should be a function that moves point to the head of -the article. +@item nnimap-authinfo-file +@vindex nnimap-authinfo-file -@item nndoc-head-begin -If present, this should be a regexp that matches the head of the -article. +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}. -@item nndoc-head-end -This should match the end of the head of the article. It defaults to -@samp{^$}---the empty line. +@end table -@item body-begin-function -If present, this function should move point to the beginning of the body -of the article. +@menu +* Splitting in IMAP:: Splitting mail with nnimap. +* Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox. +* Expunging mailboxes:: Equivalent of a "compress mailbox" button. +@end menu -@item body-begin -This should match the beginning of the body of the article. It defaults -to @samp{^\n}. -@item body-end-function -If present, this function should move point to the end of the body of -the article. -@item body-end -If present, this should match the end of the body of the article. +@node Splitting in IMAP +@subsection Splitting in @sc{imap} +@cindex splitting imap mail -@item file-end -If present, this should match the end of the file. All text after this -regexp will be totally ignored. +Splitting is something Gnus users has loved and used for years, and now +the rest of the world is catching up. Yeah, dream on, not many +@sc{imap} server has server side splitting and those that have splitting +seem to use some non-standard protocol. This means that @sc{imap} +support for Gnus has to do it's own splitting. -@end table +And it does. -So, using these variables @code{nndoc} is able to dissect a document -file into a series of articles, each with a head and a body. However, a -few more variables are needed since not all document types are all that -news-like---variables needed to transform the head or the body into -something that's palatable for Gnus: +Here are the variables of interest: @table @code -@item prepare-body-function -If present, this function will be called when requesting an article. It -will be called with point at the start of the body, and is useful if the -document has encoded some parts of its contents. -@item article-transform-function -If present, this function is called when requesting an article. It's -meant to be used for more wide-ranging transformation of both head and -body of the article. +@item nnimap-split-crosspost +@cindex splitting, crosspost +@cindex crosspost +@vindex nnimap-split-crosspost -@item generate-head-function -If present, this function is called to generate a head that Gnus can -understand. It is called with the article number as a parameter, and is -expected to generate a nice head for the article in question. It is -called when requesting the headers of all articles. +If non-nil, do crossposting if several split methods match the mail. If +nil, the first match in @code{nnimap-split-rule} found will be used. -@end table +Nnmail equivalent: @code{nnmail-crosspost}. -Let's look at the most complicated example I can come up with---standard -digests: +@item nnimap-split-inbox +@cindex splitting, inbox +@cindex inbox +@vindex nnimap-split-inbox -@example -(standard-digest - (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+")) - (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+")) - (prepare-body-function . nndoc-unquote-dashes) - (body-end-function . nndoc-digest-body-end) - (head-end . "^ ?$") - (body-begin . "^ ?\n") - (file-end . "^End of .*digest.*[0-9].*\n\\*\\*\\|^End of.*Digest *$") - (subtype digest guess)) -@end example +A string or a list of strings that gives the name(s) of @sc{imap} +mailboxes to split from. Defaults to nil, which means that splitting is +disabled! -We see that all text before a 70-width line of dashes is ignored; all -text after a line that starts with that @samp{^End of} is also ignored; -each article begins with a 30-width line of dashes; the line separating -the head from the body may contain a single space; and that the body is -run through @code{nndoc-unquote-dashes} before being delivered. +@lisp +(setq nnimap-split-inbox + '("INBOX" ("~/friend/Mail" . "lists/*") "lists.imap")) +@end lisp -To hook your own document definition into @code{nndoc}, use the -@code{nndoc-add-type} function. It takes two parameters---the first is -the definition itself and the second (optional) parameter says where in -the document type definition alist to put this definition. The alist is -traversed sequentially, and @code{nndoc-TYPE-type-p} is called for a given type @code{TYPE}. So @code{nndoc-mmdf-type-p} is called to see whether a document -is of @code{mmdf} type, and so on. These type predicates should return -@code{nil} if the document is not of the correct type; @code{t} if it is -of the correct type; and a number if the document might be of the -correct type. A high number means high probability; a low number means -low probability with @samp{0} being the lowest valid number. +No nnmail equivalent. +@item nnimap-split-rule +@cindex Splitting, rules +@vindex nnimap-split-rule -@node SOUP -@subsection SOUP -@cindex SOUP -@cindex offline +New mail found in @code{nnimap-split-inbox} will be split according to +this variable. -In the PC world people often talk about ``offline'' newsreaders. These -are thingies that are combined reader/news transport monstrosities. -With built-in modem programs. Yecchh! +This variable contains a list of lists, where the first element in the +sublist gives the name of the @sc{imap} mailbox to move articles +matching the regexp in the second element in the sublist. Got that? +Neither did I, we need examples. -Of course, us Unix Weenie types of human beans use things like -@code{uucp} and, like, @code{nntpd} and set up proper news and mail -transport things like Ghod intended. And then we just use normal -newsreaders. +@lisp +(setq nnimap-split-rule + '(("INBOX.nnimap" + "^Sender: owner-nnimap@@vic20.globalcom.se") + ("INBOX.junk" "^Subject:.*MAKE MONEY") + ("INBOX.private" ""))) +@end lisp -However, it can sometimes be convenient to do something that's a bit -easier on the brain if you have a very slow modem, and you're not really -that interested in doing things properly. +This will put all articles from the nnimap mailing list into mailbox +INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line +into INBOX.junk and everything else in INBOX.private. -A file format called @sc{soup} has been developed for transporting news -and mail from servers to home machines and back again. It can be a bit -fiddly. +The first string may contain `\\1' forms, like the ones used by +replace-match to insert sub-expressions from the matched text. For +instance: -First some terminology: +@lisp +("INBOX.lists.\\1" "^Sender: owner-\\([a-z-]+\\)@@") +@end lisp -@table @dfn +The second element can also be a function. In that case, it will be +called with the first element of the rule as the argument, in a buffer +containing the headers of the article. It should return a non-nil value +if it thinks that the mail belongs in that group. -@item server -This is the machine that is connected to the outside world and where you -get news and/or mail from. +Nnmail users might recollect that the last regexp had to be empty to +match all articles (like in the example above). This is not required in +nnimap. Articles not matching any of the regexps will not be moved out +of your inbox. (This might affect performance if you keep lots of +unread articles in your inbox, since the splitting code would go over +them every time you fetch new mail.) -@item home machine -This is the machine that you want to do the actual reading and responding -on. It is typically not connected to the rest of the world in any way. +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". -@item packet -Something that contains messages and/or commands. There are two kinds -of packets: +This variable can also have a function as its value, the function will +be called with the headers narrowed and should return a group where it +thinks the article should be split to. See @code{nnimap-split-fancy}. -@table @dfn -@item message packets -These are packets made at the server, and typically contain lots of -messages for you to read. These are called @file{SoupoutX.tgz} by -default, where @var{x} is a number. +The splitting code tries to create mailboxes if it need too. -@item response packets -These are packets made at the home machine, and typically contains -replies that you've written. These are called @file{SoupinX.tgz} by -default, where @var{x} is a number. +To allow for different split rules on different virtual servers, and +even different split rules in different inboxes on the same server, +the syntax of this variable have been extended along the lines of: -@end table +@lisp +(setq nnimap-split-rule + '(("my1server" (".*" (("ding" "ding@@gnus.org") + ("junk" "From:.*Simon"))) + ("my2server" ("INBOX" nnimap-split-fancy)) + ("my[34]server" (".*" (("private" "To:.*Simon") + ("junk" my-junk-func))))) +@end lisp -@end table +The virtual server name is in fact a regexp, so that the same rules +may apply to several servers. In the example, the servers +@code{my3server} and @code{my4server} both use the same rules. +Similarly, the inbox string is also a regexp. The actual splitting +rules are as before, either a function, or a list with group/regexp or +group/function elements. +Nnmail equivalent: @code{nnmail-split-methods}. -@enumerate +@item nnimap-split-predicate +@cindex splitting +@vindex nnimap-split-predicate -@item -You log in on the server and create a @sc{soup} packet. You can either -use a dedicated @sc{soup} thingie (like the @code{awk} program), or you -can use Gnus to create the packet with its @sc{soup} commands (@kbd{O -s} and/or @kbd{G s b}; and then @kbd{G s p}) (@pxref{SOUP Commands}). +Mail matching this predicate in @code{nnimap-split-inbox} will be +split, it is a string and the default is @samp{UNSEEN UNDELETED}. -@item -You transfer the packet home. Rail, boat, car or modem will do fine. +This might be useful if you use another @sc{imap} client to read mail in +your inbox but would like Gnus to split all articles in the inbox +regardless of readedness. Then you might change this to +@samp{UNDELETED}. -@item -You put the packet in your home directory. +@item nnimap-split-fancy +@cindex splitting, fancy +@findex nnimap-split-fancy +@vindex nnimap-split-fancy -@item -You fire up Gnus on your home machine using the @code{nnsoup} backend as -the native or secondary server. +It's possible to set @code{nnimap-split-rule} to +@code{nnmail-split-fancy} if you want to use fancy +splitting. @xref{Fancy Mail Splitting}. -@item -You read articles and mail and answer and followup to the things you -want (@pxref{SOUP Replies}). +However, to be able to have different fancy split rules for nnmail and +nnimap back ends you can set @code{nnimap-split-rule} to +@code{nnimap-split-fancy} and define the nnimap specific fancy split +rule in @code{nnimap-split-fancy}. -@item -You do the @kbd{G s r} command to pack these replies into a @sc{soup} -packet. +Example: -@item -You transfer this packet to the server. +@lisp +(setq nnimap-split-rule 'nnimap-split-fancy + nnimap-split-fancy ...) +@end lisp -@item -You use Gnus to mail this packet out with the @kbd{G s s} command. +Nnmail equivalent: @code{nnmail-split-fancy}. -@item -You then repeat until you die. +@end table -@end enumerate +@node Editing IMAP ACLs +@subsection Editing @sc{imap} ACLs +@cindex editing imap acls +@cindex Access Control Lists +@cindex Editing @sc{imap} ACLs +@kindex G l +@findex gnus-group-nnimap-edit-acl -So you basically have a bipartite system---you use @code{nnsoup} for -reading and Gnus for packing/sending these @sc{soup} packets. +ACL stands for Access Control List. ACLs are used in @sc{imap} for +limiting (or enabling) other users access to your mail boxes. Not all +@sc{imap} servers support this, this function will give an error if it +doesn't. -@menu -* SOUP Commands:: Commands for creating and sending @sc{soup} packets -* SOUP Groups:: A backend for reading @sc{soup} packets. -* SOUP Replies:: How to enable @code{nnsoup} to take over mail and news. -@end menu +To edit a ACL for a mailbox, type @kbd{G l} +(@code{gnus-group-edit-nnimap-acl}) and you'll be presented with a ACL +editing window with detailed instructions. +Some possible uses: -@node SOUP Commands -@subsubsection SOUP Commands +@itemize @bullet +@item +Giving "anyone" the "lrs" rights (lookup, read, keep seen/unseen flags) +on your mailing list mailboxes enables other users on the same server to +follow the list without subscribing to it. +@item +At least with the Cyrus server, you are required to give the user +"anyone" posting ("p") capabilities to have "plussing" work (that is, +mail sent to user+mailbox@@domain ending up in the @sc{imap} mailbox +INBOX.mailbox). +@end itemize -These are commands for creating and manipulating @sc{soup} packets. +@node Expunging mailboxes +@subsection Expunging mailboxes +@cindex expunging -@table @kbd -@item G s b -@kindex G s b (Group) -@findex gnus-group-brew-soup -Pack all unread articles in the current group -(@code{gnus-group-brew-soup}). This command understands the -process/prefix convention. +@cindex Expunge +@cindex Manual expunging +@kindex G x +@findex gnus-group-nnimap-expunge -@item G s w -@kindex G s w (Group) -@findex gnus-soup-save-areas -Save all @sc{soup} data files (@code{gnus-soup-save-areas}). +If you're using the @code{never} setting of @code{nnimap-expunge-on-close}, +you may want the option of expunging all deleted articles in a mailbox +manually. This is exactly what @kbd{G x} does. -@item G s s -@kindex G s s (Group) -@findex gnus-soup-send-replies -Send all replies from the replies packet -(@code{gnus-soup-send-replies}). +Currently there is no way of showing deleted articles, you can just +delete them. -@item G s p -@kindex G s p (Group) -@findex gnus-soup-pack-packet -Pack all files into a @sc{soup} packet (@code{gnus-soup-pack-packet}). -@item G s r -@kindex G s r (Group) -@findex nnsoup-pack-replies -Pack all replies into a replies packet (@code{nnsoup-pack-replies}). -@item O s -@kindex O s (Summary) -@findex gnus-soup-add-article -This summary-mode command adds the current article to a @sc{soup} packet -(@code{gnus-soup-add-article}). It understands the process/prefix -convention (@pxref{Process/Prefix}). +@node Other Sources +@section Other Sources + +Gnus can do more than just read news or mail. The methods described +below allow Gnus to view directories and files as if they were +newsgroups. -@end table +@menu +* Directory Groups:: You can read a directory as if it was a newsgroup. +* Anything Groups:: Dired? Who needs dired? +* Document Groups:: Single files can be the basis of a group. +* SOUP:: Reading @sc{soup} packets ``offline''. +* Mail-To-News Gateways:: Posting articles via mail-to-news gateways. +@end menu -There are a few variables to customize where Gnus will put all these -thingies: +@node Directory Groups +@subsection Directory Groups +@cindex nndir +@cindex directory groups -@table @code +If you have a directory that has lots of articles in separate files in +it, you might treat it as a newsgroup. The files have to have numerical +names, of course. -@item gnus-soup-directory -@vindex gnus-soup-directory -Directory where Gnus will save intermediate files while composing -@sc{soup} packets. The default is @file{~/SoupBrew/}. +This might be an opportune moment to mention @code{ange-ftp} (and its +successor @code{efs}), that most wonderful of all wonderful Emacs +packages. When I wrote @code{nndir}, I didn't think much about it---a +back end to read directories. Big deal. -@item gnus-soup-replies-directory -@vindex gnus-soup-replies-directory -This is what Gnus will use as a temporary directory while sending our -reply packets. @file{~/SoupBrew/SoupReplies/} is the default. +@code{ange-ftp} changes that picture dramatically. For instance, if you +enter the @code{ange-ftp} file name +@file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} as the directory name, +@code{ange-ftp} or @code{efs} will actually allow you to read this +directory over at @samp{sina} as a newsgroup. Distributed news ahoy! -@item gnus-soup-prefix-file -@vindex gnus-soup-prefix-file -Name of the file where Gnus stores the last used prefix. The default is -@samp{gnus-prefix}. +@code{nndir} will use @sc{nov} files if they are present. -@item gnus-soup-packer -@vindex gnus-soup-packer -A format string command for packing a @sc{soup} packet. The default is -@samp{tar cf - %s | gzip > $HOME/Soupout%d.tgz}. +@code{nndir} is a ``read-only'' back end---you can't delete or expire +articles with this method. You can use @code{nnmh} or @code{nnml} for +whatever you use @code{nndir} for, so you could switch to any of those +methods if you feel the need to have a non-read-only @code{nndir}. -@item gnus-soup-unpacker -@vindex gnus-soup-unpacker -Format string command for unpacking a @sc{soup} packet. The default is -@samp{gunzip -c %s | tar xvf -}. -@item gnus-soup-packet-directory -@vindex gnus-soup-packet-directory -Where Gnus will look for reply packets. The default is @file{~/}. +@node Anything Groups +@subsection Anything Groups +@cindex nneething -@item gnus-soup-packet-regexp -@vindex gnus-soup-packet-regexp -Regular expression matching @sc{soup} reply packets in -@code{gnus-soup-packet-directory}. +From the @code{nndir} back end (which reads a single spool-like +directory), it's just a hop and a skip to @code{nneething}, which +pretends that any arbitrary directory is a newsgroup. Strange, but +true. -@end table +When @code{nneething} is presented with a directory, it will scan this +directory and assign article numbers to each file. When you enter such +a group, @code{nneething} must create ``headers'' that Gnus can use. +After all, Gnus is a newsreader, in case you're forgetting. +@code{nneething} does this in a two-step process. First, it snoops each +file in question. If the file looks like an article (i.e., the first +few lines look like headers), it will use this as the head. If this is +just some arbitrary file without a head (e.g. a C source file), +@code{nneething} will cobble up a header out of thin air. It will use +file ownership, name and date and do whatever it can with these +elements. +All this should happen automatically for you, and you will be presented +with something that looks very much like a newsgroup. Totally like a +newsgroup, to be precise. If you select an article, it will be displayed +in the article buffer, just as usual. -@node SOUP Groups -@subsubsection @sc{soup} Groups -@cindex nnsoup +If you select a line that represents a directory, Gnus will pop you into +a new summary buffer for this @code{nneething} group. And so on. You can +traverse the entire disk this way, if you feel like, but remember that +Gnus is not dired, really, and does not intend to be, either. -@code{nnsoup} is the backend for reading @sc{soup} packets. It will -read incoming packets, unpack them, and put them in a directory where -you can read them at leisure. +There are two overall modes to this action---ephemeral or solid. When +doing the ephemeral thing (i.e., @kbd{G D} from the group buffer), Gnus +will not store information on what files you have read, and what files +are new, and so on. If you create a solid @code{nneething} group the +normal way with @kbd{G m}, Gnus will store a mapping table between +article numbers and file names, and you can treat this group like any +other groups. When you activate a solid @code{nneething} group, you will +be told how many unread articles it contains, etc., etc. -These are the variables you can use to customize its behavior: +Some variables: @table @code +@item nneething-map-file-directory +@vindex nneething-map-file-directory +All the mapping files for solid @code{nneething} groups will be stored +in this directory, which defaults to @file{~/.nneething/}. -@item nnsoup-tmp-directory -@vindex nnsoup-tmp-directory -When @code{nnsoup} unpacks a @sc{soup} packet, it does it in this -directory. (@file{/tmp/} by default.) +@item nneething-exclude-files +@vindex nneething-exclude-files +All files that match this regexp will be ignored. Nice to use to exclude +auto-save files and the like, which is what it does by default. -@item nnsoup-directory -@vindex nnsoup-directory -@code{nnsoup} then moves each message and index file to this directory. -The default is @file{~/SOUP/}. +@item nneething-include-files +@vindex nneething-include-files +Regexp saying what files to include in the group. If this variable is +non-@code{nil}, only files matching this regexp will be included. -@item nnsoup-replies-directory -@vindex nnsoup-replies-directory -All replies will be stored in this directory before being packed into a -reply packet. The default is @file{~/SOUP/replies/"}. +@item nneething-map-file +@vindex nneething-map-file +Name of the map files. +@end table -@item nnsoup-replies-format-type -@vindex nnsoup-replies-format-type -The @sc{soup} format of the replies packets. The default is @samp{?n} -(rnews), and I don't think you should touch that variable. I probably -shouldn't even have documented it. Drats! Too late! -@item nnsoup-replies-index-type -@vindex nnsoup-replies-index-type -The index type of the replies packet. The default is @samp{?n}, which -means ``none''. Don't fiddle with this one either! +@node Document Groups +@subsection Document Groups +@cindex nndoc +@cindex documentation group +@cindex help group -@item nnsoup-active-file -@vindex nnsoup-active-file -Where @code{nnsoup} stores lots of information. This is not an ``active -file'' in the @code{nntp} sense; it's an Emacs Lisp file. If you lose -this file or mess it up in any way, you're dead. The default is -@file{~/SOUP/active}. +@code{nndoc} is a cute little thing that will let you read a single file +as a newsgroup. Several files types are supported: -@item nnsoup-packer -@vindex nnsoup-packer -Format string command for packing a reply @sc{soup} packet. The default -is @samp{tar cf - %s | gzip > $HOME/Soupin%d.tgz}. +@table @code +@cindex babyl +@cindex rmail mbox -@item nnsoup-unpacker -@vindex nnsoup-unpacker -Format string command for unpacking incoming @sc{soup} packets. The -default is @samp{gunzip -c %s | tar xvf -}. +@item babyl +The babyl (rmail) mail box. +@cindex mbox +@cindex Unix mbox -@item nnsoup-packet-directory -@vindex nnsoup-packet-directory -Where @code{nnsoup} will look for incoming packets. The default is -@file{~/}. +@item mbox +The standard Unix mbox file. -@item nnsoup-packet-regexp -@vindex nnsoup-packet-regexp -Regular expression matching incoming @sc{soup} packets. The default is -@samp{Soupout}. +@cindex MMDF mail box +@item mmdf +The MMDF mail box format. -@item nnsoup-always-save -@vindex nnsoup-always-save -If non-@code{nil}, save the replies buffer after each posted message. +@item news +Several news articles appended into a file. -@end table +@item rnews +@cindex rnews batch files +The rnews batch transport format. +@cindex forwarded messages +@item forward +Forwarded articles. -@node SOUP Replies -@subsubsection SOUP Replies +@item nsmail +Netscape mail boxes. -Just using @code{nnsoup} won't mean that your postings and mailings end -up in @sc{soup} reply packets automagically. You have to work a bit -more for that to happen. +@item mime-parts +MIME multipart messages. -@findex nnsoup-set-variables -The @code{nnsoup-set-variables} command will set the appropriate -variables to ensure that all your followups and replies end up in the -@sc{soup} system. +@item standard-digest +The standard (RFC 1153) digest format. -In specific, this is what it does: +@item slack-digest +Non-standard digest format---matches most things, but does it badly. +@end table -@lisp -(setq message-send-news-function 'nnsoup-request-post) -(setq message-send-mail-function 'nnsoup-request-mail) -@end lisp +You can also use the special ``file type'' @code{guess}, which means +that @code{nndoc} will try to guess what file type it is looking at. +@code{digest} means that @code{nndoc} should guess what digest type the +file is. -And that's it, really. If you only want news to go into the @sc{soup} -system you just use the first line. If you only want mail to be -@sc{soup}ed you use the second. +@code{nndoc} will not try to change the file or insert any extra headers into +it---it will simply, like, let you use the file as the basis for a +group. And that's it. + +If you have some old archived articles that you want to insert into your +new & spiffy Gnus mail back end, @code{nndoc} can probably help you with +that. Say you have an old @file{RMAIL} file with mail that you now want +to split into your new @code{nnml} groups. You look at that file using +@code{nndoc} (using the @kbd{G f} command in the group buffer +(@pxref{Foreign Groups})), set the process mark on all the articles in +the buffer (@kbd{M P b}, for instance), and then re-spool (@kbd{B r}) +using @code{nnml}. If all goes well, all the mail in the @file{RMAIL} +file is now also stored in lots of @code{nnml} directories, and you can +delete that pesky @file{RMAIL} file. If you have the guts! +Virtual server variables: -@node Mail-To-News Gateways -@subsection Mail-To-News Gateways -@cindex mail-to-news gateways -@cindex gateways +@table @code +@item nndoc-article-type +@vindex nndoc-article-type +This should be one of @code{mbox}, @code{babyl}, @code{digest}, +@code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934}, +@code{rfc822-forward}, @code{mime-parts}, @code{standard-digest}, +@code{slack-digest}, @code{clari-briefs}, @code{nsmail} or @code{guess}. -If your local @code{nntp} server doesn't allow posting, for some reason -or other, you can post using one of the numerous mail-to-news gateways. -The @code{nngateway} backend provides the interface. +@item nndoc-post-type +@vindex nndoc-post-type +This variable says whether Gnus is to consider the group a news group or +a mail group. There are two valid values: @code{mail} (the default) +and @code{news}. +@end table -Note that you can't read anything from this backend---it can only be -used to post with. +@menu +* Document Server Internals:: How to add your own document types. +@end menu -Server variables: -@table @code -@item nngateway-address -@vindex nngateway-address -This is the address of the mail-to-news gateway. +@node Document Server Internals +@subsubsection Document Server Internals -@item nngateway-header-transformation -@vindex nngateway-header-transformation -News headers often have to be transformed in some odd way or other -for the mail-to-news gateway to accept it. This variable says what -transformation should be called, and defaults to -@code{nngateway-simple-header-transformation}. The function is called -narrowed to the headers to be transformed and with one parameter---the -gateway address. +Adding new document types to be recognized by @code{nndoc} isn't +difficult. You just have to whip up a definition of what the document +looks like, write a predicate function to recognize that document type, +and then hook into @code{nndoc}. -This default function just inserts a new @code{To} header based on the -@code{Newsgroups} header and the gateway address. -For instance, an article with this @code{Newsgroups} header: +First, here's an example document type definition: @example -Newsgroups: alt.religion.emacs +(mmdf + (article-begin . "^\^A\^A\^A\^A\n") + (body-end . "^\^A\^A\^A\^A\n")) @end example -will get this @code{From} header inserted: +The definition is simply a unique @dfn{name} followed by a series of +regexp pseudo-variable settings. Below are the possible +variables---don't be daunted by the number of variables; most document +types can be defined with very few settings: -@example -To: alt-religion-emacs@@GATEWAY -@end example +@table @code +@item first-article +If present, @code{nndoc} will skip past all text until it finds +something that match this regexp. All text before this will be +totally ignored. -The following pre-defined functions exist: +@item article-begin +This setting has to be present in all document type definitions. It +says what the beginning of each article looks like. -@findex nngateway-simple-header-transformation -@table @code +@item head-begin-function +If present, this should be a function that moves point to the head of +the article. -@item nngateway-simple-header-transformation -Creates a @code{To} header that looks like -@var{newsgroup}@@@code{nngateway-address}. +@item nndoc-head-begin +If present, this should be a regexp that matches the head of the +article. -@findex nngateway-mail2news-header-transformation +@item nndoc-head-end +This should match the end of the head of the article. It defaults to +@samp{^$}---the empty line. -@item nngateway-mail2news-header-transformation -Creates a @code{To} header that looks like -@code{nngateway-address}. +@item body-begin-function +If present, this function should move point to the beginning of the body +of the article. -Here's an example: +@item body-begin +This should match the beginning of the body of the article. It defaults +to @samp{^\n}. -@lisp -(setq gnus-post-method - '(nngateway - "mail2news@@replay.com" - (nngateway-header-transformation - nngateway-mail2news-header-transformation))) -@end lisp +@item body-end-function +If present, this function should move point to the end of the body of +the article. -@end table +@item body-end +If present, this should match the end of the body of the article. +@item file-end +If present, this should match the end of the file. All text after this +regexp will be totally ignored. @end table -So, to use this, simply say something like: - -@lisp -(setq gnus-post-method '(nngateway "GATEWAY.ADDRESS")) -@end lisp +So, using these variables @code{nndoc} is able to dissect a document +file into a series of articles, each with a head and a body. However, a +few more variables are needed since not all document types are all that +news-like---variables needed to transform the head or the body into +something that's palatable for Gnus: +@table @code +@item prepare-body-function +If present, this function will be called when requesting an article. It +will be called with point at the start of the body, and is useful if the +document has encoded some parts of its contents. +@item article-transform-function +If present, this function is called when requesting an article. It's +meant to be used for more wide-ranging transformation of both head and +body of the article. -@node IMAP -@subsection @sc{imap} -@cindex nnimap -@cindex @sc{imap} +@item generate-head-function +If present, this function is called to generate a head that Gnus can +understand. It is called with the article number as a parameter, and is +expected to generate a nice head for the article in question. It is +called when requesting the headers of all articles. -@sc{imap} is a network protocol for reading mail (or news, or ...), -think of it as a modernized @sc{nntp}. Connecting to a @sc{imap} -server is much similar to connecting to a news server, you just -specify the network address of the server. +@end table -@sc{imap} has two properties. First, @sc{imap} can do everything that -POP can, it can hence be viewed as POP++. Secondly, @sc{imap} is a -mail storage protocol, similar to @sc{nntp} being a news storage -protocol. (@sc{imap} offers more features than @sc{nntp} because news -is more or less read-only whereas mail is read-write.) +Let's look at the most complicated example I can come up with---standard +digests: -If you want to use @sc{imap} as POP++, use an imap entry in -mail-sources. With this, Gnus will fetch mails from the @sc{imap} -server and store them on the local disk. This is not the usage -described in this section. @xref{Mail Sources}. +@example +(standard-digest + (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+")) + (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+")) + (prepare-body-function . nndoc-unquote-dashes) + (body-end-function . nndoc-digest-body-end) + (head-end . "^ ?$") + (body-begin . "^ ?\n") + (file-end . "^End of .*digest.*[0-9].*\n\\*\\*\\|^End of.*Digest *$") + (subtype digest guess)) +@end example -If you want to use @sc{imap} as a mail storage protocol, use an nnimap -entry in gnus-secondary-select-methods. With this, Gnus will -manipulate mails stored on the @sc{imap} server. This is the kind of -usage explained in this section. +We see that all text before a 70-width line of dashes is ignored; all +text after a line that starts with that @samp{^End of} is also ignored; +each article begins with a 30-width line of dashes; the line separating +the head from the body may contain a single space; and that the body is +run through @code{nndoc-unquote-dashes} before being delivered. -A server configuration in @code{~/.gnus} with a few @sc{imap} servers -might look something like this: +To hook your own document definition into @code{nndoc}, use the +@code{nndoc-add-type} function. It takes two parameters---the first is +the definition itself and the second (optional) parameter says where in +the document type definition alist to put this definition. The alist is +traversed sequentially, and @code{nndoc-TYPE-type-p} is called for a given type @code{TYPE}. So @code{nndoc-mmdf-type-p} is called to see whether a document +is of @code{mmdf} type, and so on. These type predicates should return +@code{nil} if the document is not of the correct type; @code{t} if it is +of the correct type; and a number if the document might be of the +correct type. A high number means high probability; a low number means +low probability with @samp{0} being the lowest valid number. -@lisp -(setq gnus-secondary-select-methods - '((nnimap "simpleserver") ; no special configuration - ; perhaps a ssh port forwarded server: - (nnimap "dolk" - (nnimap-address "localhost") - (nnimap-server-port 1430)) - ; a UW server running on localhost - (nnimap "barbar" - (nnimap-server-port 143) - (nnimap-address "localhost") - (nnimap-list-pattern ("INBOX" "mail/*"))) - ; anonymous public cyrus server: - (nnimap "cyrus.andrew.cmu.edu" - (nnimap-authenticator anonymous) - (nnimap-list-pattern "archive.*") - (nnimap-stream network)) - ; a ssl server on a non-standard port: - (nnimap "vic20" - (nnimap-address "vic20.somewhere.com") - (nnimap-server-port 9930) - (nnimap-stream ssl)))) -@end lisp -The following variables can be used to create a virtual @code{nnimap} -server: +@node SOUP +@subsection SOUP +@cindex SOUP +@cindex offline -@table @code +In the PC world people often talk about ``offline'' newsreaders. These +are thingies that are combined reader/news transport monstrosities. +With built-in modem programs. Yecchh! -@item nnimap-address -@vindex nnimap-address +Of course, us Unix Weenie types of human beans use things like +@code{uucp} and, like, @code{nntpd} and set up proper news and mail +transport things like Ghod intended. And then we just use normal +newsreaders. -The address of the remote @sc{imap} server. Defaults to the virtual -server name if not specified. +However, it can sometimes be convenient to do something that's a bit +easier on the brain if you have a very slow modem, and you're not really +that interested in doing things properly. -@item nnimap-server-port -@vindex nnimap-server-port -Port on server to contact. Defaults to port 143, or 993 for SSL. +A file format called @sc{soup} has been developed for transporting news +and mail from servers to home machines and back again. It can be a bit +fiddly. -Note that this should be a integer, example server specification: +First some terminology: -@lisp -(nnimap "mail.server.com" - (nnimap-server-port 4711)) -@end lisp +@table @dfn -@item nnimap-list-pattern -@vindex nnimap-list-pattern -String or list of strings of mailboxes to limit available groups to. -This is used when the server has very many mailboxes and you're only -interested in a few -- some servers export your home directory via -@sc{imap}, you'll probably want to limit the mailboxes to those in -@file{~/Mail/*} then. +@item server +This is the machine that is connected to the outside world and where you +get news and/or mail from. -The string can also be a cons of REFERENCE and the string as above, what -REFERENCE is used for is server specific, but on the University of -Washington server it's a directory that will be concatenated with the -mailbox. +@item home machine +This is the machine that you want to do the actual reading and responding +on. It is typically not connected to the rest of the world in any way. -Example server specification: +@item packet +Something that contains messages and/or commands. There are two kinds +of packets: -@lisp -(nnimap "mail.server.com" - (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" - ("~friend/Mail/" . "list/*")))) -@end lisp +@table @dfn +@item message packets +These are packets made at the server, and typically contain lots of +messages for you to read. These are called @file{SoupoutX.tgz} by +default, where @var{x} is a number. -@item nnimap-stream -@vindex nnimap-stream -The type of stream used to connect to your server. By default, nnimap -will detect and automatically use all of the below, with the exception -of SSL. (SSL is being replaced by STARTTLS, which can be automatically -detected, but it's not widely deployed yet). +@item response packets +These are packets made at the home machine, and typically contains +replies that you've written. These are called @file{SoupinX.tgz} by +default, where @var{x} is a number. -Example server specification: +@end table -@lisp -(nnimap "mail.server.com" - (nnimap-stream ssl)) -@end lisp +@end table -Please note that the value of @code{nnimap-stream} is a symbol! -@itemize @bullet +@enumerate + @item -@dfn{gssapi:} Connect with GSSAPI (usually kerberos 5). Requires the -@samp{imtest} program. +You log in on the server and create a @sc{soup} packet. You can either +use a dedicated @sc{soup} thingie (like the @code{awk} program), or you +can use Gnus to create the packet with its @sc{soup} commands (@kbd{O +s} and/or @kbd{G s b}; and then @kbd{G s p}) (@pxref{SOUP Commands}). + @item -@dfn{kerberos4:} Connect with kerberos 4. Requires the @samp{imtest} program. +You transfer the packet home. Rail, boat, car or modem will do fine. + @item -@dfn{starttls:} Connect via the STARTTLS extension (similar to -SSL). Requires the external library @samp{starttls.el} and program -@samp{starttls}. +You put the packet in your home directory. + @item -@dfn{ssl:} Connect through SSL. Requires OpenSSL (the -program @samp{openssl}) or SSLeay (@samp{s_client}). +You fire up Gnus on your home machine using the @code{nnsoup} back end as +the native or secondary server. + @item -@dfn{shell:} Use a shell command to start @sc{imap} connection. +You read articles and mail and answer and followup to the things you +want (@pxref{SOUP Replies}). + @item -@dfn{network:} Plain, TCP/IP network connection. -@end itemize +You do the @kbd{G s r} command to pack these replies into a @sc{soup} +packet. -@vindex imap-kerberos4-program -The @samp{imtest} program is shipped with Cyrus IMAPD. If you're -using @samp{imtest} from Cyrus IMAPD < 2.0.14 (which includes version -1.5.x and 1.6.x) you need to frob @code{imap-process-connection-type} -to make @code{imap.el} use a pty instead of a pipe when communicating -with @samp{imtest}. You will then suffer from a line length -restrictions on IMAP commands, which might make Gnus seem to hang -indefinitely if you have many articles in a mailbox. The variable -@code{imap-kerberos4-program} contain parameters to pass to the imtest -program. +@item +You transfer this packet to the server. -@vindex imap-ssl-program -For SSL connections, the OpenSSL program is available from -@uref{http://www.openssl.org/}. OpenSSL was formerly known as SSLeay, -and nnimap support it too - although the most recent versions of -SSLeay, 0.9.x, are known to have serious bugs making it -useless. Earlier versions, especially 0.8.x, of SSLeay are known to -work. The variable @code{imap-ssl-program} contain parameters to pass -to OpenSSL/SSLeay. +@item +You use Gnus to mail this packet out with the @kbd{G s s} command. -@vindex imap-shell-program -@vindex imap-shell-host -For @sc{imap} connections using the @code{shell} stream, the variable -@code{imap-shell-program} specify what program to call. +@item +You then repeat until you die. -@item nnimap-authenticator -@vindex nnimap-authenticator +@end enumerate -The authenticator used to connect to the server. By default, nnimap -will use the most secure authenticator your server is capable of. +So you basically have a bipartite system---you use @code{nnsoup} for +reading and Gnus for packing/sending these @sc{soup} packets. -Example server specification: +@menu +* SOUP Commands:: Commands for creating and sending @sc{soup} packets +* SOUP Groups:: A back end for reading @sc{soup} packets. +* SOUP Replies:: How to enable @code{nnsoup} to take over mail and news. +@end menu -@lisp -(nnimap "mail.server.com" - (nnimap-authenticator anonymous)) -@end lisp -Please note that the value of @code{nnimap-authenticator} is a symbol! +@node SOUP Commands +@subsubsection SOUP Commands -@itemize @bullet -@item -@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication. Require -external program @code{imtest}. -@item -@dfn{kerberos4:} Kerberos authentication. Require external program -@code{imtest}. -@item -@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5. Require -external library @code{digest-md5.el}. -@item -@dfn{cram-md5:} Encrypted username/password via CRAM-MD5. -@item -@dfn{login:} Plain-text username/password via LOGIN. -@item -@dfn{anonymous:} Login as `anonymous', supplying your emailadress as password. -@end itemize +These are commands for creating and manipulating @sc{soup} packets. -@item nnimap-expunge-on-close -@cindex Expunging -@vindex nnimap-expunge-on-close -Unlike Parmenides the @sc{imap} designers has decided that things that -doesn't exist actually does exist. More specifically, @sc{imap} has -this concept of marking articles @code{Deleted} which doesn't actually -delete them, and this (marking them @code{Deleted}, that is) is what -nnimap does when you delete a article in Gnus (with @kbd{G DEL} or -similar). +@table @kbd +@item G s b +@kindex G s b (Group) +@findex gnus-group-brew-soup +Pack all unread articles in the current group +(@code{gnus-group-brew-soup}). This command understands the +process/prefix convention. -Since the articles aren't really removed when we mark them with the -@code{Deleted} flag we'll need a way to actually delete them. Feel like -running in circles yet? +@item G s w +@kindex G s w (Group) +@findex gnus-soup-save-areas +Save all @sc{soup} data files (@code{gnus-soup-save-areas}). -Traditionally, nnimap has removed all articles marked as @code{Deleted} -when closing a mailbox but this is now configurable by this server -variable. +@item G s s +@kindex G s s (Group) +@findex gnus-soup-send-replies +Send all replies from the replies packet +(@code{gnus-soup-send-replies}). -The possible options are: +@item G s p +@kindex G s p (Group) +@findex gnus-soup-pack-packet +Pack all files into a @sc{soup} packet (@code{gnus-soup-pack-packet}). -@table @code +@item G s r +@kindex G s r (Group) +@findex nnsoup-pack-replies +Pack all replies into a replies packet (@code{nnsoup-pack-replies}). -@item always -The default behavior, delete all articles marked as "Deleted" when -closing a mailbox. -@item never -Never actually delete articles. Currently there is no way of showing -the articles marked for deletion in nnimap, but other @sc{imap} clients -may allow you to do this. If you ever want to run the EXPUNGE command -manually, @xref{Expunging mailboxes}. -@item ask -When closing mailboxes, nnimap will ask if you wish to expunge deleted -articles or not. +@item O s +@kindex O s (Summary) +@findex gnus-soup-add-article +This summary-mode command adds the current article to a @sc{soup} packet +(@code{gnus-soup-add-article}). It understands the process/prefix +convention (@pxref{Process/Prefix}). @end table -@item nnimap-importantize-dormant -@vindex nnimap-importantize-dormant -If non-nil, marks dormant articles as ticked (as well), for other IMAP -clients. Within Gnus, dormant articles will naturally still (only) be -marked as ticked. This is to make dormant articles stand out, just -like ticked articles, in other IMAP clients. (In other words, Gnus has -two ``Tick'' marks and IMAP has only one.) +There are a few variables to customize where Gnus will put all these +thingies: -Probably the only reason for frobing this would be if you're trying -enable per-user persistant dormant flags, using something like: +@table @code -@lisp -(setcdr (assq 'dormant nnimap-mark-to-flag-alist) - (format "gnus-dormant-%s" (user-login-name))) -(setcdr (assq 'dormant nnimap-mark-to-predicate-alist) - (format "KEYWORD gnus-dormant-%s" (user-login-name))) -@end lisp +@item gnus-soup-directory +@vindex gnus-soup-directory +Directory where Gnus will save intermediate files while composing +@sc{soup} packets. The default is @file{~/SoupBrew/}. -In this case, you would not want the per-user dormant flag showing up -as ticked for other users. +@item gnus-soup-replies-directory +@vindex gnus-soup-replies-directory +This is what Gnus will use as a temporary directory while sending our +reply packets. @file{~/SoupBrew/SoupReplies/} is the default. -@item nnimap-expunge-search-string -@cindex Expunging -@vindex nnimap-expunge-search-string +@item gnus-soup-prefix-file +@vindex gnus-soup-prefix-file +Name of the file where Gnus stores the last used prefix. The default is +@samp{gnus-prefix}. -This variable contain the IMAP search command sent to server when -searching for articles eligible for expiring. The default is -@code{"UID %s NOT SINCE %s"}, where the first @code{%s} is replaced by -UID set and the second @code{%s} is replaced by a date. +@item gnus-soup-packer +@vindex gnus-soup-packer +A format string command for packing a @sc{soup} packet. The default is +@samp{tar cf - %s | gzip > $HOME/Soupout%d.tgz}. -Probably the only useful value to change this to is -@code{"UID %s NOT SENTSINCE %s"}, which makes nnimap use the Date: in -messages instead of the internal article date. See section 6.4.4 of -RFC 2060 for more information on valid strings. +@item gnus-soup-unpacker +@vindex gnus-soup-unpacker +Format string command for unpacking a @sc{soup} packet. The default is +@samp{gunzip -c %s | tar xvf -}. -@item nnimap-authinfo-file -@vindex nnimap-authinfo-file +@item gnus-soup-packet-directory +@vindex gnus-soup-packet-directory +Where Gnus will look for reply packets. The default is @file{~/}. -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}. +@item gnus-soup-packet-regexp +@vindex gnus-soup-packet-regexp +Regular expression matching @sc{soup} reply packets in +@code{gnus-soup-packet-directory}. @end table -@menu -* Splitting in IMAP:: Splitting mail with nnimap. -* Editing IMAP ACLs:: Limiting/enabling other users access to a mailbox. -* Expunging mailboxes:: Equivalent of a "compress mailbox" button. -@end menu +@node SOUP Groups +@subsubsection @sc{soup} Groups +@cindex nnsoup +@code{nnsoup} is the back end for reading @sc{soup} packets. It will +read incoming packets, unpack them, and put them in a directory where +you can read them at leisure. -@node Splitting in IMAP -@subsubsection Splitting in @sc{imap} -@cindex splitting imap mail +These are the variables you can use to customize its behavior: + +@table @code + +@item nnsoup-tmp-directory +@vindex nnsoup-tmp-directory +When @code{nnsoup} unpacks a @sc{soup} packet, it does it in this +directory. (@file{/tmp/} by default.) + +@item nnsoup-directory +@vindex nnsoup-directory +@code{nnsoup} then moves each message and index file to this directory. +The default is @file{~/SOUP/}. + +@item nnsoup-replies-directory +@vindex nnsoup-replies-directory +All replies will be stored in this directory before being packed into a +reply packet. The default is @file{~/SOUP/replies/"}. -Splitting is something Gnus users has loved and used for years, and now -the rest of the world is catching up. Yeah, dream on, not many -@sc{imap} server has server side splitting and those that have splitting -seem to use some non-standard protocol. This means that @sc{imap} -support for Gnus has to do it's own splitting. +@item nnsoup-replies-format-type +@vindex nnsoup-replies-format-type +The @sc{soup} format of the replies packets. The default is @samp{?n} +(rnews), and I don't think you should touch that variable. I probably +shouldn't even have documented it. Drats! Too late! -And it does. +@item nnsoup-replies-index-type +@vindex nnsoup-replies-index-type +The index type of the replies packet. The default is @samp{?n}, which +means ``none''. Don't fiddle with this one either! -Here are the variables of interest: +@item nnsoup-active-file +@vindex nnsoup-active-file +Where @code{nnsoup} stores lots of information. This is not an ``active +file'' in the @code{nntp} sense; it's an Emacs Lisp file. If you lose +this file or mess it up in any way, you're dead. The default is +@file{~/SOUP/active}. -@table @code +@item nnsoup-packer +@vindex nnsoup-packer +Format string command for packing a reply @sc{soup} packet. The default +is @samp{tar cf - %s | gzip > $HOME/Soupin%d.tgz}. -@item nnimap-split-crosspost -@cindex splitting, crosspost -@cindex crosspost -@vindex nnimap-split-crosspost +@item nnsoup-unpacker +@vindex nnsoup-unpacker +Format string command for unpacking incoming @sc{soup} packets. The +default is @samp{gunzip -c %s | tar xvf -}. -If non-nil, do crossposting if several split methods match the mail. If -nil, the first match in @code{nnimap-split-rule} found will be used. +@item nnsoup-packet-directory +@vindex nnsoup-packet-directory +Where @code{nnsoup} will look for incoming packets. The default is +@file{~/}. -Nnmail equivalent: @code{nnmail-crosspost}. +@item nnsoup-packet-regexp +@vindex nnsoup-packet-regexp +Regular expression matching incoming @sc{soup} packets. The default is +@samp{Soupout}. -@item nnimap-split-inbox -@cindex splitting, inbox -@cindex inbox -@vindex nnimap-split-inbox +@item nnsoup-always-save +@vindex nnsoup-always-save +If non-@code{nil}, save the replies buffer after each posted message. -A string or a list of strings that gives the name(s) of @sc{imap} -mailboxes to split from. Defaults to nil, which means that splitting is -disabled! +@end table -@lisp -(setq nnimap-split-inbox - '("INBOX" ("~/friend/Mail" . "lists/*") "lists.imap")) -@end lisp -No nnmail equivalent. +@node SOUP Replies +@subsubsection SOUP Replies -@item nnimap-split-rule -@cindex Splitting, rules -@vindex nnimap-split-rule +Just using @code{nnsoup} won't mean that your postings and mailings end +up in @sc{soup} reply packets automagically. You have to work a bit +more for that to happen. -New mail found in @code{nnimap-split-inbox} will be split according to -this variable. +@findex nnsoup-set-variables +The @code{nnsoup-set-variables} command will set the appropriate +variables to ensure that all your followups and replies end up in the +@sc{soup} system. -This variable contains a list of lists, where the first element in the -sublist gives the name of the @sc{imap} mailbox to move articles -matching the regexp in the second element in the sublist. Got that? -Neither did I, we need examples. +In specific, this is what it does: @lisp -(setq nnimap-split-rule - '(("INBOX.nnimap" - "^Sender: owner-nnimap@@vic20.globalcom.se") - ("INBOX.junk" "^Subject:.*MAKE MONEY") - ("INBOX.private" ""))) +(setq message-send-news-function 'nnsoup-request-post) +(setq message-send-mail-function 'nnsoup-request-mail) @end lisp -This will put all articles from the nnimap mailing list into mailbox -INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line -into INBOX.junk and everything else in INBOX.private. - -The first string may contain `\\1' forms, like the ones used by -replace-match to insert sub-expressions from the matched text. For -instance: +And that's it, really. If you only want news to go into the @sc{soup} +system you just use the first line. If you only want mail to be +@sc{soup}ed you use the second. -@lisp -("INBOX.lists.\\1" "^Sender: owner-\\([a-z-]+\\)@@") -@end lisp -The second element can also be a function. In that case, it will be -called with the first element of the rule as the argument, in a buffer -containing the headers of the article. It should return a non-nil value -if it thinks that the mail belongs in that group. +@node Mail-To-News Gateways +@subsection Mail-To-News Gateways +@cindex mail-to-news gateways +@cindex gateways -Nnmail users might recollect that the last regexp had to be empty to -match all articles (like in the example above). This is not required in -nnimap. Articles not matching any of the regexps will not be moved out -of your inbox. (This might affect performance if you keep lots of -unread articles in your inbox, since the splitting code would go over -them every time you fetch new mail.) +If your local @code{nntp} server doesn't allow posting, for some reason +or other, you can post using one of the numerous mail-to-news gateways. +The @code{nngateway} back end provides the interface. -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". +Note that you can't read anything from this back end---it can only be +used to post with. -This variable can also have a function as its value, the function will -be called with the headers narrowed and should return a group where it -thinks the article should be split to. See @code{nnimap-split-fancy}. +Server variables: -The splitting code tries to create mailboxes if it need too. +@table @code +@item nngateway-address +@vindex nngateway-address +This is the address of the mail-to-news gateway. -To allow for different split rules on different virtual servers, and -even different split rules in different inboxes on the same server, -the syntax of this variable have been extended along the lines of: +@item nngateway-header-transformation +@vindex nngateway-header-transformation +News headers often have to be transformed in some odd way or other +for the mail-to-news gateway to accept it. This variable says what +transformation should be called, and defaults to +@code{nngateway-simple-header-transformation}. The function is called +narrowed to the headers to be transformed and with one parameter---the +gateway address. -@lisp -(setq nnimap-split-rule - '(("my1server" (".*" (("ding" "ding@@gnus.org") - ("junk" "From:.*Simon"))) - ("my2server" ("INBOX" nnimap-split-fancy)) - ("my[34]server" (".*" (("private" "To:.*Simon") - ("junk" my-junk-func))))) -@end lisp +This default function just inserts a new @code{To} header based on the +@code{Newsgroups} header and the gateway address. +For instance, an article with this @code{Newsgroups} header: -The virtual server name is in fact a regexp, so that the same rules -may apply to several servers. In the example, the servers -@code{my3server} and @code{my4server} both use the same rules. -Similarly, the inbox string is also a regexp. The actual splitting -rules are as before, either a function, or a list with group/regexp or -group/function elements. +@example +Newsgroups: alt.religion.emacs +@end example -Nnmail equivalent: @code{nnmail-split-methods}. +will get this @code{From} header inserted: -@item nnimap-split-predicate -@cindex splitting -@vindex nnimap-split-predicate +@example +To: alt-religion-emacs@@GATEWAY +@end example -Mail matching this predicate in @code{nnimap-split-inbox} will be -split, it is a string and the default is @samp{UNSEEN UNDELETED}. +The following pre-defined functions exist: -This might be useful if you use another @sc{imap} client to read mail in -your inbox but would like Gnus to split all articles in the inbox -regardless of readedness. Then you might change this to -@samp{UNDELETED}. +@findex nngateway-simple-header-transformation +@table @code -@item nnimap-split-fancy -@cindex splitting, fancy -@findex nnimap-split-fancy -@vindex nnimap-split-fancy +@item nngateway-simple-header-transformation +Creates a @code{To} header that looks like +@var{newsgroup}@@@code{nngateway-address}. -It's possible to set @code{nnimap-split-rule} to -@code{nnmail-split-fancy} if you want to use fancy -splitting. @xref{Fancy Mail Splitting}. +@findex nngateway-mail2news-header-transformation -However, to be able to have different fancy split rules for nnmail and -nnimap backends you can set @code{nnimap-split-rule} to -@code{nnimap-split-fancy} and define the nnimap specific fancy split -rule in @code{nnimap-split-fancy}. +@item nngateway-mail2news-header-transformation +Creates a @code{To} header that looks like +@code{nngateway-address}. -Example: +Here's an example: @lisp -(setq nnimap-split-rule 'nnimap-split-fancy - nnimap-split-fancy ...) +(setq gnus-post-method + '(nngateway + "mail2news@@replay.com" + (nngateway-header-transformation + nngateway-mail2news-header-transformation))) @end lisp -Nnmail equivalent: @code{nnmail-split-fancy}. - @end table -@node Editing IMAP ACLs -@subsubsection Editing @sc{imap} ACLs -@cindex editing imap acls -@cindex Access Control Lists -@cindex Editing @sc{imap} ACLs -@kindex G l -@findex gnus-group-nnimap-edit-acl - -ACL stands for Access Control List. ACLs are used in @sc{imap} for -limiting (or enabling) other users access to your mail boxes. Not all -@sc{imap} servers support this, this function will give an error if it -doesn't. - -To edit a ACL for a mailbox, type @kbd{G l} -(@code{gnus-group-edit-nnimap-acl}) and you'll be presented with a ACL -editing window with detailed instructions. - -Some possible uses: - -@itemize @bullet -@item -Giving "anyone" the "lrs" rights (lookup, read, keep seen/unseen flags) -on your mailing list mailboxes enables other users on the same server to -follow the list without subscribing to it. -@item -At least with the Cyrus server, you are required to give the user -"anyone" posting ("p") capabilities to have "plussing" work (that is, -mail sent to user+mailbox@@domain ending up in the @sc{imap} mailbox -INBOX.mailbox). -@end itemize - -@node Expunging mailboxes -@subsubsection Expunging mailboxes -@cindex expunging -@cindex Expunge -@cindex Manual expunging -@kindex G x -@findex gnus-group-nnimap-expunge +@end table -If you're using the @code{never} setting of @code{nnimap-expunge-on-close}, -you may want the option of expunging all deleted articles in a mailbox -manually. This is exactly what @kbd{G x} does. +So, to use this, simply say something like: -Currently there is no way of showing deleted articles, you can just -delete them. +@lisp +(setq gnus-post-method '(nngateway "GATEWAY.ADDRESS")) +@end lisp @@ -15115,11 +15146,11 @@ you enter it---it'll have much the same effect. @code{nnvirtual} can have both mail and news groups as component groups. When responding to articles in @code{nnvirtual} groups, @code{nnvirtual} -has to ask the backend of the component group the article comes from -whether it is a news or mail backend. However, when you do a @kbd{^}, -there is typically no sure way for the component backend to know this, +has to ask the back end of the component group the article comes from +whether it is a news or mail back end. However, when you do a @kbd{^}, +there is typically no sure way for the component back end to know this, and in that case @code{nnvirtual} tells Gnus that the article came from a -not-news backend. (Just to be on the safe side.) +not-news back end. (Just to be on the safe side.) @kbd{C-c C-t} in the message buffer will insert the @code{Newsgroups} line from the article you respond to in these cases. @@ -15132,7 +15163,7 @@ line from the article you respond to in these cases. @cindex kibozing @dfn{Kibozing} is defined by @sc{oed} as ``grepping through (parts of) -the news feed''. @code{nnkiboze} is a backend that will do this for +the news feed''. @code{nnkiboze} is a back end that will do this for you. Oh joy! Now you can grind any @sc{nntp} server down to a halt with useless requests! Oh happiness! @@ -15292,7 +15323,7 @@ the Agent. @item Decide which servers should be covered by the Agent. If you have a mail -backend, it would probably be nonsensical to have it covered by the +back end, it would probably be nonsensical to have it covered by the Agent. Go to the server buffer (@kbd{^} in the group buffer) and press @kbd{J a} the server (or servers) that you wish to have covered by the Agent (@pxref{Server Agent Commands}). This will typically be only the @@ -15706,7 +15737,7 @@ Articles that have a score higher than this have a high score. Default @subsection Agent Commands All the Gnus Agent commands are on the @kbd{J} submap. The @kbd{J j} -(@code{gnus-agent-toggle-plugged} command works in all modes, and +(@code{gnus-agent-toggle-plugged}) command works in all modes, and toggles the plugged/unplugged state of the Gnus Agent. @@ -15856,7 +15887,7 @@ unread, ticked and dormant articles will be kept indefinitely. @node Agent and IMAP @subsection Agent and IMAP -The Agent work with any Gnus backend, including nnimap. However, +The Agent work with any Gnus back end, including nnimap. However, since there are some conceptual differences between @sc{nntp} and @sc{imap}, this section (should) provide you with some information to make Gnus Agent work smoother as a @sc{imap} Disconnected Mode client. @@ -16633,7 +16664,7 @@ the match, we get the score added if the article has less than 4 lines. (It's easy to get confused and think it's the other way around. But it's not. I think.) -When matching on @code{Lines}, be careful because some backends (like +When matching on @code{Lines}, be careful because some back ends (like @code{nndir}) do not generate @code{Lines} header, so every article ends up being marked as having 0 lines. This can lead to strange results if you happen to lower score of the articles with few lines. @@ -17146,7 +17177,7 @@ is system-dependent. Gnus is quite fast when scoring the ``traditional'' headers---@samp{From}, @samp{Subject} and so on. However, scoring other headers requires writing a @code{head} scoring rule, which means -that Gnus has to request every single article from the backend to find +that Gnus has to request every single article from the back end to find matches. This takes a long time in big groups. Now, there's not much you can do about this for news groups, but for @@ -17437,9 +17468,10 @@ before. @section GroupLens @cindex GroupLens -GroupLens is a collaborative filtering system that helps you work -together with other people to find the quality news articles out of the -huge volume of news articles generated every day. +GroupLens (@uref{http://www.cs.umn.edu/Research/GroupLens/}) is a +collaborative filtering system that helps you work together with other +people to find the quality news articles out of the huge volume of +news articles generated every day. To accomplish this the GroupLens system combines your opinions about articles you have already read with the opinions of others who have done @@ -17451,6 +17483,9 @@ of a prediction, what they thought of the article. You can use this prediction to help you decide whether or not you want to read the article. +@sc{Note:} Unfortunately the GroupLens system seems to have shut down, +so this section is mostly of historical interest. + @menu * Using GroupLens:: How to make Gnus use GroupLens. * Rating Articles:: Letting GroupLens know how you rate articles. @@ -18278,7 +18313,7 @@ these coutries, that's not true. @vindex gnus-use-correct-string-widths To help fix this, you can set @code{gnus-use-correct-string-widths} to @code{t}. This makes buffer generation slower, but the results will be -prettieer. The default value is @code{nil}. +prettieer. The default value is @code{t}. @@ -19177,13 +19212,10 @@ picons to be installed into a location pointed to by @node Picon Requirements @subsubsection Picon Requirements -To have Gnus display Picons for you, you must be running XEmacs -19.13 or greater since all other versions of Emacs aren't yet able to -display images. - -Additionally, you must have @code{x} support compiled into XEmacs. To -display color picons which are much nicer than the black & white one, -you also need one of @code{xpm} or @code{gif} compiled into XEmacs. +To have Gnus display Picons for you, you must have @code{x} support +compiled into XEmacs. To display color picons which are much nicer +than the black & white one, you also need one of @code{xpm} or +@code{gif} compiled into XEmacs. @vindex gnus-picons-convert-x-face If you want to display faces from @code{X-Face} headers, you should have @@ -19388,7 +19420,7 @@ cleared every time you exit Gnus. Defaults to @code{t}. @iftex @iflatex -\gnusfig{-3cm}{0.5cm}{\epsfig{figure=tmp/BigFace.ps,height=20cm}} +\gnusfig{-3cm}{0.5cm}{\epsfig{figure=ps/BigFace,height=20cm}} \input{smiley} @end iflatex @end iftex @@ -19676,16 +19708,16 @@ shut up, but will flash so many messages it will make your head swim. @item gnus-verbose-backends @vindex gnus-verbose-backends This variable works the same way as @code{gnus-verbose}, but it applies -to the Gnus backends instead of Gnus proper. +to the Gnus back ends instead of Gnus proper. @item nnheader-max-head-length @vindex nnheader-max-head-length -When the backends read straight heads of articles, they all try to read +When the back ends read straight heads of articles, they all try to read as little as possible. This variable (default 4096) specifies -the absolute max length the backends will try to read before giving up +the absolute max length the back ends will try to read before giving up on finding a separator line between the head and the body. If this variable is @code{nil}, there is no upper read bound. If it is -@code{t}, the backends won't try to read the articles piece by piece, +@code{t}, the back ends won't try to read the articles piece by piece, but read the entire articles. This makes sense with some versions of @code{ange-ftp} or @code{efs}. @@ -19893,8 +19925,8 @@ keep track of millions of people who post? Gnus offers no real solutions to these questions, but I would very much like to see Gnus being used as a testing ground for new methods of reading and fetching news. Expanding on @sc{Umeda}-san's wise decision -to separate the newsreader from the backends, Gnus now offers a simple -interface for anybody who wants to write new backends for fetching mail +to separate the newsreader from the back ends, Gnus now offers a simple +interface for anybody who wants to write new back ends for fetching mail and news from different sources. I have added hooks for customizations everywhere I could imagine it being useful. By doing so, I'm inviting every one of you to explore and invent. @@ -20057,7 +20089,7 @@ Emacsen. Gnus is developed in a two-phased cycle. The first phase involves much discussion on the @samp{ding@@gnus.org} mailing list, where people -propose changes and new features, post patches and new backends. This +propose changes and new features, post patches and new back ends. This phase is called the @dfn{alpha} phase, since the Gnusae released in this phase are @dfn{alpha releases}, or (perhaps more commonly in other circles) @dfn{snapshots}. During this phase, Gnus is assumed to be @@ -20451,7 +20483,7 @@ You can combine groups into virtual groups (@pxref{Virtual Groups}). @item You can read a number of different mail formats (@pxref{Getting Mail}). -All the mail backends implement a convenient mail expiry scheme +All the mail back ends implement a convenient mail expiry scheme (@pxref{Expiring Mail}). @item @@ -20553,7 +20585,7 @@ You can click on buttons instead of using the keyboard @iftex @iflatex -\gnusfig{-28cm}{0cm}{\epsfig{figure=tmp/september.ps,height=20cm}} +\gnusfig{-28cm}{0cm}{\epsfig{figure=ps/september,height=20cm}} @end iflatex @end iftex @@ -20640,7 +20672,7 @@ news batches, ClariNet briefs collections, and just about everything else (@pxref{Document Groups}). @item -Gnus has a new backend (@code{nnsoup}) to create/read SOUP packets +Gnus has a new back end (@code{nnsoup}) to create/read SOUP packets (@pxref{SOUP}). @item @@ -20678,7 +20710,7 @@ All functions for hiding article elements are now toggles. Article headers can be buttonized (@pxref{Article Washing}). @item -All mail backends support fetching articles by @code{Message-ID}. +All mail back ends support fetching articles by @code{Message-ID}. @item Duplicate mail can now be treated properly (@pxref{Duplicates}). @@ -20695,7 +20727,7 @@ Layout}). Mail can be re-scanned by a daemonic process (@pxref{Daemons}). @iftex @iflatex -\marginpar[\mbox{}\hfill\epsfig{figure=tmp/fseptember.ps,height=5cm}]{\epsfig{figure=tmp/fseptember.ps,height=5cm}} +\marginpar[\mbox{}\hfill\epsfig{figure=ps/fseptember,height=5cm}]{\epsfig{figure=ps/fseptember,height=5cm}} @end iflatex @end iftex @@ -20790,7 +20822,7 @@ New features in Gnus 5.4/5.5: @iftex @iflatex -\gnusfig{-5.5cm}{-4cm}{\epsfig{figure=tmp/red.ps,height=20cm}} +\gnusfig{-5.5cm}{-4cm}{\epsfig{figure=ps/red,height=20cm}} @end iflatex @end iftex @@ -20897,11 +20929,11 @@ Process mark sets can be pushed and popped (@pxref{Setting Process Marks}). @item -A new mail-to-news backend makes it possible to post even when the @sc{nntp} +A new mail-to-news back end makes it possible to post even when the @sc{nntp} server doesn't allow posting (@pxref{Mail-To-News Gateways}). @item -A new backend for reading searches from Web search engines +A new back end for reading searches from Web search engines (@dfn{DejaNews}, @dfn{Alta Vista}, @dfn{InReference}) has been added (@pxref{Web Searches}). @@ -20919,7 +20951,7 @@ Cached articles can be pulled into the groups (@pxref{Summary Generation Commands}). @iftex @iflatex -\marginpar[\mbox{}\hfill\epsfig{figure=tmp/fred.ps,width=3cm}]{\epsfig{figure=tmp/fred.ps,width=3cm}} +\marginpar[\mbox{}\hfill\epsfig{figure=ps/fred,width=3cm}]{\epsfig{figure=ps/fred,width=3cm}} @end iflatex @end iftex @@ -20954,7 +20986,7 @@ added. A plethora of new commands and modes have been added. See @pxref{Gnus Unplugged} for the full story. @item - The @code{nndraft} backend has returned, but works differently than + The @code{nndraft} back end has returned, but works differently than before. All Message buffers are now also articles in the @code{nndraft} group, which is created automatically. @@ -21063,7 +21095,7 @@ been added. updated by the @code{gnus-start-date-timer} command. @item - Web listserv archives can be read with the @code{nnlistserv} backend. + Web listserv archives can be read with the @code{nnlistserv} back end. @item Old dejanews archives can now be read by @code{nnweb}. @@ -21118,7 +21150,7 @@ of variables starting with @code{gnus-treat-} have been added. @item The Gnus posting styles have been redone again and now works in a subtly different manner. -@item New web-based backends have been added: @code{nnslashdot}, +@item New web-based back ends have been added: @code{nnslashdot}, @code{nnwarchive} and @code{nnultimate}. nnweb has been revamped, again, to keep up with ever-changing layouts. @@ -21129,7 +21161,7 @@ again, to keep up with ever-changing layouts. @iftex @page -@node History +@node The Manual @section The Manual @cindex colophon @cindex manual @@ -21241,26 +21273,26 @@ Send a mail to the person who has written what you are reading. Post an article to the current newsgroup responding to the article you are reading. -@item backend -@cindex backend -Gnus gets fed articles from a number of backends, both news and mail -backends. Gnus does not handle the underlying media, so to speak---this -is all done by the backends. +@item back end +@cindex back end +Gnus gets fed articles from a number of back ends, both news and mail +back ends. Gnus does not handle the underlying media, so to speak---this +is all done by the back ends. @item native @cindex native -Gnus will always use one method (and backend) as the @dfn{native}, or +Gnus will always use one method (and back end) as the @dfn{native}, or default, way of getting news. @item foreign @cindex foreign You can also have any number of foreign groups active at the same time. -These are groups that use non-native non-secondary backends for getting +These are groups that use non-native non-secondary back ends for getting news. @item secondary @cindex secondary -Secondary backends are somewhere half-way between being native and being +Secondary back ends are somewhere half-way between being native and being foreign, but they mostly act like they are native. @item article @@ -21296,7 +21328,7 @@ collection of @sc{nov} lines. @item @sc{nov} @cindex nov -When Gnus enters a group, it asks the backend for the headers of all +When Gnus enters a group, it asks the back end for the headers of all unread articles in the group. Most servers support the News OverView format, which is more compact and much faster to read and parse than the normal @sc{head} format. @@ -21343,7 +21375,7 @@ A machine one can connect to and get news (or mail) from. @item select method @cindex select method -A structure that specifies the backend, the server and the virtual +A structure that specifies the back end, the server and the virtual server settings. @item virtual server @@ -21624,13 +21656,13 @@ it. You can never expect the internals of a program not to change, but I will be defining (in some details) the interface between Gnus and its -backends (this is written in stone), the format of the score files +back ends (this is written in stone), the format of the score files (ditto), data structures (some are less likely to change than others) and general methods of operation. @menu * Gnus Utility Functions:: Common functions and variable to use. -* Backend Interface:: How Gnus communicates with the servers. +* Back End Interface:: How Gnus communicates with the servers. * Score File Syntax:: A BNF definition of the score file standard. * Headers:: How Gnus stores headers internally. * Ranges:: A handy format for storing mucho numbers. @@ -21706,7 +21738,7 @@ Says whether @var{group} is read-only or not. @item gnus-news-group-p @findex gnus-news-group-p -Says whether @var{group} came from a news backend. +Says whether @var{group} came from a news back end. @item gnus-ephemeral-group-p @findex gnus-ephemeral-group-p @@ -21747,7 +21779,7 @@ Narrows the current buffer to the body of the article. @item gnus-check-backend-function @findex gnus-check-backend-function -Takes two parameters, @var{function} and @var{group}. If the backend +Takes two parameters, @var{function} and @var{group}. If the back end @var{group} comes from supports @var{function}, return non-@code{nil}. @lisp @@ -21762,19 +21794,19 @@ Prompts the user for a select method. @end table -@node Backend Interface -@subsection Backend Interface +@node Back End Interface +@subsection Back End Interface Gnus doesn't know anything about @sc{nntp}, spools, mail or virtual groups. It only knows how to talk to @dfn{virtual servers}. A virtual -server is a @dfn{backend} and some @dfn{backend variables}. As examples +server is a @dfn{back end} and some @dfn{back end variables}. As examples of the first, we have @code{nntp}, @code{nnspool} and @code{nnmbox}. As examples of the latter we have @code{nntp-port-number} and @code{nnmbox-directory}. -When Gnus asks for information from a backend---say @code{nntp}---on +When Gnus asks for information from a back end---say @code{nntp}---on something, it will normally include a virtual server name in the -function parameters. (If not, the backend should use the ``current'' +function parameters. (If not, the back end should use the ``current'' virtual server.) For instance, @code{nntp-request-list} takes a virtual server as its only (optional) parameter. If this virtual server hasn't been opened, the function should fail. @@ -21791,8 +21823,8 @@ name. Take this example: Here the virtual server name is @samp{odd-one} while the name of the physical server is @samp{ifi.uio.no}. -The backends should be able to switch between several virtual servers. -The standard backends implement this by keeping an alist of virtual +The back ends should be able to switch between several virtual servers. +The standard back ends implement this by keeping an alist of virtual server environments that they pull down/push up when needed. There are two groups of interface functions: @dfn{required functions}, @@ -21807,8 +21839,8 @@ talk about @dfn{return value}, I talk about the function value returned by the function call. Functions that fail should return @code{nil} as the return value. -Some backends could be said to be @dfn{server-forming} backends, and -some might be said not to be. The latter are backends that generally +Some back ends could be said to be @dfn{server-forming} back ends, and +some might be said not to be. The latter are back ends that generally only operate on one group at a time, and have no concept of ``server'' -- they have a group, and they deliver info on that group and nothing more. @@ -21820,7 +21852,7 @@ possible for later articles to `re-use' older article numbers without confusing Gnus. That is, if a group has ever contained a message numbered 42, then no other message may get that number, or Gnus will get mightily confused.@footnote{See the function -@code{nnchoke-request-update-info}, @ref{Optional Backend Functions}.} +@code{nnchoke-request-update-info}, @ref{Optional Back End Functions}.} Third, article numbers must be assigned in order of arrival in the group; this is not necessarily the same as the date of the message. @@ -21832,31 +21864,31 @@ the `no-reuse' restriction, holes cannot be avoided altogether. It's also useful for the article numbers to start at 1 to avoid running out of numbers as long as possible. -In the examples and definitions I will refer to the imaginary backend +In the examples and definitions I will refer to the imaginary back end @code{nnchoke}. @cindex @code{nnchoke} @menu -* Required Backend Functions:: Functions that must be implemented. -* Optional Backend Functions:: Functions that need not be implemented. +* Required Back End Functions:: Functions that must be implemented. +* Optional Back End Functions:: Functions that need not be implemented. * Error Messaging:: How to get messages and report errors. -* Writing New Backends:: Extending old backends. -* Hooking New Backends Into Gnus:: What has to be done on the Gnus end. -* Mail-like Backends:: Some tips on mail backends. +* Writing New Back Ends:: Extending old back ends. +* Hooking New Back Ends Into Gnus:: What has to be done on the Gnus end. +* Mail-like Back Ends:: Some tips on mail back ends. @end menu -@node Required Backend Functions -@subsubsection Required Backend Functions +@node Required Back End Functions +@subsubsection Required Back End Functions @table @code @item (nnchoke-retrieve-headers ARTICLES &optional GROUP SERVER FETCH-OLD) @var{articles} is either a range of article numbers or a list of -@code{Message-ID}s. Current backends do not fully support either---only -sequences (lists) of article numbers, and most backends do not support +@code{Message-ID}s. Current back ends do not fully support either---only +sequences (lists) of article numbers, and most back ends do not support retrieval of @code{Message-ID}s. But they should try for both. The result data should either be HEADs or NOV lines, and the result @@ -21868,7 +21900,7 @@ If @var{fetch-old} is non-@code{nil} it says to try fetching "extra headers", in some meaning of the word. This is generally done by fetching (at most) @var{fetch-old} extra headers less than the smallest article number in @code{articles}, and filling the gaps as well. The -presence of this parameter can be ignored if the backend finds it +presence of this parameter can be ignored if the back end finds it cumbersome to follow the request. If this is non-@code{nil} and not a number, do maximum fetches. @@ -21922,7 +21954,7 @@ For a closer look at what should be in those fields, @var{server} is here the virtual server name. @var{definitions} is a list of @code{(VARIABLE VALUE)} pairs that define this virtual server. -If the server can't be opened, no error should be signaled. The backend +If the server can't be opened, no error should be signaled. The back end may then choose to refuse further attempts at connecting to this server. In fact, it should do so. @@ -21941,8 +21973,8 @@ There should be no data returned. @item (nnchoke-request-close) -Close connection to all servers and free all resources that the backend -have reserved. All buffers that have been created by that backend +Close connection to all servers and free all resources that the back end +have reserved. All buffers that have been created by that back end should be killed. (Not the @code{nntp-server-buffer}, though.) This function is generally only called when Gnus is shutting down. @@ -22020,7 +22052,7 @@ info = "211 " 3* [ " " ] @item (nnchoke-close-group GROUP &optional SERVER) Close @var{group} and free any resources connected to it. This will be -a no-op on most backends. +a no-op on most back ends. There should be no data returned. @@ -22066,8 +22098,8 @@ There should be no result data from this function. @end table -@node Optional Backend Functions -@subsubsection Optional Backend Functions +@node Optional Back End Functions +@subsubsection Optional Back End Functions @table @code @@ -22090,8 +22122,8 @@ group-buffer = *active-line / *group-status @item (nnchoke-request-update-info GROUP INFO &optional SERVER) -A Gnus group info (@pxref{Group Info}) is handed to the backend for -alterations. This comes in handy if the backend really carries all the +A Gnus group info (@pxref{Group Info}) is handed to the back end for +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 the (altered) group info. @@ -22117,7 +22149,7 @@ There should be no result data from this function. Set/remove/add marks on articles. Normally Gnus handles the article marks (such as read, ticked, expired etc) internally, and store them in -@code{~/.newsrc.eld}. Some backends (such as @sc{imap}) however carry +@code{~/.newsrc.eld}. Some back ends (such as @sc{imap}) however carry all information about the articles on the server, so Gnus need to propagate the mark information to the server. @@ -22133,7 +22165,7 @@ RANGE is a range of articles you wish to update marks on. ACTION is each mark is a symbol. Currently used marks are @code{read}, @code{tick}, @code{reply}, @code{expire}, @code{killed}, @code{dormant}, @code{save}, @code{download}, @code{unsend}, -@code{forward} and @code{recent}, but your backend should, if +@code{forward} and @code{recent}, but your back end should, if possible, not limit itself to these. Given contradictory actions, the last action in the list should be the @@ -22156,10 +22188,10 @@ There should be no result data from this function. @item (nnchoke-request-update-mark GROUP ARTICLE MARK) -If the user tries to set a mark that the backend doesn't like, this +If the user tries to set a mark that the back end doesn't like, this function may change the mark. Gnus will use whatever this function returns as the mark for @var{article} instead of the original -@var{mark}. If the backend doesn't care, it must return the original +@var{mark}. If the back end doesn't care, it must return the original @var{mark}, and not @code{nil} or any other type of garbage. The only use for this I can see is what @code{nnvirtual} does with @@ -22173,10 +22205,10 @@ There should be no result data from this function. @item (nnchoke-request-scan &optional GROUP SERVER) This function may be called at any time (by Gnus or anything else) to -request that the backend check for incoming articles, in one way or -another. A mail backend will typically read the spool file or query the +request that the back end check for incoming articles, in one way or +another. A mail back end will typically read the spool file or query the POP server when this function is invoked. The @var{group} doesn't have -to be heeded---if the backend decides that it is too much work just +to be heeded---if the back end decides that it is too much work just scanning for a single group, it may do a total scan of all groups. It would be nice, however, to keep things local if that's practical. @@ -22212,11 +22244,11 @@ created after @samp{date}, which is in normal human-readable date format the function @code{message-make-date} by default). The data should be in the active buffer format. -It is okay for this function to return `too many' groups; some backends +It is okay for this function to return `too many' groups; some back ends might find it cheaper to return the full list of groups, rather than -just the new groups. But don't do this for backends with many groups. +just the new groups. But don't do this for back ends with many groups. Normally, if the user creates the groups herself, there won't be too -many groups, so nnml and the like are probably safe. But for backends +many groups, so nnml and the like are probably safe. But for back ends like nntp, where the groups have been created by the server, it is quite likely that there can be many groups. @@ -22232,7 +22264,7 @@ There should be no return data. This function should run the expiry process on all articles in the @var{articles} range (which is currently a simple list of article -numbers.) It is left up to the backend to decide how old articles +numbers.) It is left up to the back end to decide how old articles should be before they are removed by this function. If @var{force} is non-@code{nil}, all @var{articles} should be deleted, no matter how new they are. @@ -22310,9 +22342,9 @@ There should be no data returned. @findex nnheader-report @findex nnheader-get-report -The backends should use the function @code{nnheader-report} to report +The back ends should use the function @code{nnheader-report} to report error conditions---they should not raise errors when they aren't able to -perform a request. The first argument to this function is the backend +perform a request. The first argument to this function is the back end symbol, and the rest are interpreted as arguments to @code{format} if there are multiple of them, or just a string if there is one of them. This function must always returns @code{nil}. @@ -22325,18 +22357,18 @@ This function must always returns @code{nil}. Gnus, in turn, will call @code{nnheader-get-report} when it gets a @code{nil} back from a server, and this function returns the most -recently reported message for the backend in question. This function +recently reported message for the back end in question. This function takes one argument---the server symbol. -Internally, these functions access @var{backend}@code{-status-string}, -so the @code{nnchoke} backend will have its error message stored in +Internally, these functions access @var{back-end}@code{-status-string}, +so the @code{nnchoke} back end will have its error message stored in @code{nnchoke-status-string}. -@node Writing New Backends -@subsubsection Writing New Backends +@node Writing New Back Ends +@subsubsection Writing New Back Ends -Many backends are quite similar. @code{nnml} is just like +Many back ends are quite similar. @code{nnml} is just like @code{nnspool}, but it allows you to edit the articles on the server. @code{nnmh} is just like @code{nnml}, but it doesn't use an active file, and it doesn't maintain overview databases. @code{nndir} is just like @@ -22344,14 +22376,14 @@ and it doesn't maintain overview databases. @code{nndir} is just like editing articles. It would make sense if it were possible to ``inherit'' functions from -backends when writing new backends. And, indeed, you can do that if you +back ends when writing new back ends. And, indeed, you can do that if you want to. (You don't have to if you don't want to, of course.) -All the backends declare their public variables and functions by using a +All the back ends declare their public variables and functions by using a package called @code{nnoo}. -To inherit functions from other backends (and allow other backends to -inherit functions from the current backend), you should use the +To inherit functions from other back ends (and allow other back ends to +inherit functions from the current back end), you should use the following macros: @table @code @@ -22374,8 +22406,8 @@ a public server variable. Most state-oriented variables should be declared with @code{defvoo} instead of @code{defvar}. In addition to the normal @code{defvar} parameters, it takes a list of -variables in the parent backends to map the variable to when executing -a function in those backends. +variables in the parent back ends to map the variable to when executing +a function in those back ends. @lisp (defvoo nndir-directory nil @@ -22388,7 +22420,7 @@ This means that @code{nnml-current-directory} will be set to of @code{nndir}. (The same with @code{nnmh}.) @item nnoo-define-basics -This macro defines some common functions that almost all backends should +This macro defines some common functions that almost all back ends should have. @example @@ -22398,11 +22430,11 @@ have. @item deffoo This macro is just like @code{defun} and takes the same parameters. In addition to doing the normal @code{defun} things, it registers the -function as being public so that other backends can inherit it. +function as being public so that other back ends can inherit it. @item nnoo-map-functions -This macro allows mapping of functions from the current backend to -functions from the parent backends. +This macro allows mapping of functions from the current back end to +functions from the parent back ends. @example (nnoo-map-functions nndir @@ -22416,7 +22448,7 @@ third, and fourth parameters will be passed on to value of @code{nndir-current-group}. @item nnoo-import -This macro allows importing functions from backends. It should be the +This macro allows importing functions from back ends. It should be the last thing in the source file, since it will only define functions that haven't already been defined. @@ -22435,7 +22467,7 @@ defined now. @end table -Below is a slightly shortened version of the @code{nndir} backend. +Below is a slightly shortened version of the @code{nndir} back end. @lisp ;;; nndir.el --- single directory newsgroup access for Gnus @@ -22504,16 +22536,16 @@ Below is a slightly shortened version of the @code{nndir} backend. @end lisp -@node Hooking New Backends Into Gnus -@subsubsection Hooking New Backends Into Gnus +@node Hooking New Back Ends Into Gnus +@subsubsection Hooking New Back Ends Into Gnus @vindex gnus-valid-select-methods @findex gnus-declare-backend -Having Gnus start using your new backend is rather easy---you just +Having Gnus start using your new back end is rather easy---you just declare it with the @code{gnus-declare-backend} functions. This will -enter the backend into the @code{gnus-valid-select-methods} variable. +enter the back end into the @code{gnus-valid-select-methods} variable. -@code{gnus-declare-backend} takes two parameters---the backend name and +@code{gnus-declare-backend} takes two parameters---the back end name and an arbitrary number of @dfn{abilities}. Here's an example: @@ -22528,32 +22560,32 @@ The abilities can be: @table @code @item mail -This is a mailish backend---followups should (probably) go via mail. +This is a mailish back end---followups should (probably) go via mail. @item post -This is a newsish backend---followups should (probably) go via news. +This is a newsish back end---followups should (probably) go via news. @item post-mail -This backend supports both mail and news. +This back end supports both mail and news. @item none -This is neither a post nor mail backend---it's something completely +This is neither a post nor mail back end---it's something completely different. @item respool It supports respooling---or rather, it is able to modify its source articles and groups. @item address The name of the server should be in the virtual server name. This is -true for almost all backends. +true for almost all back ends. @item prompt-address The user should be prompted for an address when doing commands like -@kbd{B} in the group buffer. This is true for backends like +@kbd{B} in the group buffer. This is true for back ends like @code{nntp}, but not @code{nnmbox}, for instance. @end table -@node Mail-like Backends -@subsubsection Mail-like Backends +@node Mail-like Back Ends +@subsubsection Mail-like Back Ends -One of the things that separate the mail backends from the rest of the -backends is the heavy dependence by the mail backends on common +One of the things that separate the mail back ends from the rest of the +back ends is the heavy dependence by the mail back ends on common functions in @file{nnmail.el}. For instance, here's the definition of @code{nnml-request-scan}: @@ -22571,7 +22603,7 @@ This function takes four parameters. @table @var @item method -This should be a symbol to designate which backend is responsible for +This should be a symbol to designate which back end is responsible for the call. @item exit-function @@ -22585,15 +22617,15 @@ This optional argument should be a group name if the splitting is to be performed for one group only. @end table -@code{nnmail-get-new-mail} will call @var{backend}@code{-save-mail} to -save each article. @var{backend}@code{-active-number} will be called to +@code{nnmail-get-new-mail} will call @var{back-end}@code{-save-mail} to +save each article. @var{back-end}@code{-active-number} will be called to find the article number assigned to this article. The function also uses the following variables: -@var{backend}@code{-get-new-mail} (to see whether to get new mail for -this backend); and @var{backend}@code{-group-alist} and -@var{backend}@code{-active-file} to generate the new active file. -@var{backend}@code{-group-alist} should be a group-active alist, like +@var{back-end}@code{-get-new-mail} (to see whether to get new mail for +this back end); and @var{back-end}@code{-group-alist} and +@var{back-end}@code{-active-file} to generate the new active file. +@var{back-end}@code{-group-alist} should be a group-active alist, like this: @example @@ -23204,8 +23236,8 @@ former). The manual is unambiguous, but it can be confusing. @end iftex @c End: -% LocalWords: Backend BNF mucho Backends backends detailmenu cindex kindex kbd +% LocalWords: BNF mucho detailmenu cindex kindex kbd % LocalWords: findex Gnusae vindex dfn dfn samp nntp setq nnspool nntpserver -% LocalWords: nnmbox backend newusers Blllrph NEWGROUPS dingnusdingnusdingnus +% LocalWords: nnmbox newusers Blllrph NEWGROUPS dingnusdingnusdingnus % LocalWords: pre fab rec comp nnslashdot regex ga ga sci nnml nnbabyl nnmh % LocalWords: nnfolder emph looong eld newsreaders defun init elc pxref diff --git a/texi/herds/convol11.pnm b/texi/herds/convol11.pnm new file mode 100644 index 0000000..2f21812 --- /dev/null +++ b/texi/herds/convol11.pnm @@ -0,0 +1,14 @@ +P2 +11 11 +242 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 +122 122 122 122 122 122 122 122 122 122 122 diff --git a/texi/herds/convol5.pnm b/texi/herds/convol5.pnm new file mode 100644 index 0000000..e164bd9 --- /dev/null +++ b/texi/herds/convol5.pnm @@ -0,0 +1,8 @@ +P2 +5 5 +50 +26 26 26 26 26 +26 26 26 26 26 +26 26 26 26 26 +26 26 26 26 26 +26 26 26 26 26 diff --git a/texi/herds/gnus-herd-bw.gif b/texi/herds/gnus-herd-bw.gif new file mode 100644 index 0000000..6d965e0 Binary files /dev/null and b/texi/herds/gnus-herd-bw.gif differ diff --git a/texi/herds/gnus-herd-new.gif b/texi/herds/gnus-herd-new.gif new file mode 100644 index 0000000..18314b6 Binary files /dev/null and b/texi/herds/gnus-herd-new.gif differ diff --git a/texi/herds/new-herd-1.gif b/texi/herds/new-herd-1.gif new file mode 100644 index 0000000..b68815b Binary files /dev/null and b/texi/herds/new-herd-1.gif differ diff --git a/texi/herds/new-herd-10.gif b/texi/herds/new-herd-10.gif new file mode 100644 index 0000000..fc67fd6 Binary files /dev/null and b/texi/herds/new-herd-10.gif differ diff --git a/texi/herds/new-herd-2.gif b/texi/herds/new-herd-2.gif new file mode 100644 index 0000000..525f0e8 Binary files /dev/null and b/texi/herds/new-herd-2.gif differ diff --git a/texi/herds/new-herd-3.gif b/texi/herds/new-herd-3.gif new file mode 100644 index 0000000..696a41e Binary files /dev/null and b/texi/herds/new-herd-3.gif differ diff --git a/texi/herds/new-herd-4.gif b/texi/herds/new-herd-4.gif new file mode 100644 index 0000000..02e5775 Binary files /dev/null and b/texi/herds/new-herd-4.gif differ diff --git a/texi/herds/new-herd-5.gif b/texi/herds/new-herd-5.gif new file mode 100644 index 0000000..8e065a2 Binary files /dev/null and b/texi/herds/new-herd-5.gif differ diff --git a/texi/herds/new-herd-6.gif b/texi/herds/new-herd-6.gif new file mode 100644 index 0000000..4f13195 Binary files /dev/null and b/texi/herds/new-herd-6.gif differ diff --git a/texi/herds/new-herd-7.gif b/texi/herds/new-herd-7.gif new file mode 100644 index 0000000..44d43f1 Binary files /dev/null and b/texi/herds/new-herd-7.gif differ diff --git a/texi/herds/new-herd-8.gif b/texi/herds/new-herd-8.gif new file mode 100644 index 0000000..b87a90d Binary files /dev/null and b/texi/herds/new-herd-8.gif differ diff --git a/texi/herds/new-herd-9.gif b/texi/herds/new-herd-9.gif new file mode 100644 index 0000000..fc67fd6 Binary files /dev/null and b/texi/herds/new-herd-9.gif differ diff --git a/texi/herds/new-herd-section.gif b/texi/herds/new-herd-section.gif new file mode 100644 index 0000000..e5f0e7e Binary files /dev/null and b/texi/herds/new-herd-section.gif differ diff --git a/texi/herds/new-herd.gif b/texi/herds/new-herd.gif new file mode 100644 index 0000000..04f93d5 Binary files /dev/null and b/texi/herds/new-herd.gif differ diff --git a/texi/herds/new-herd2.gif b/texi/herds/new-herd2.gif new file mode 100644 index 0000000..e06771f Binary files /dev/null and b/texi/herds/new-herd2.gif differ diff --git a/texi/misc/ered.tif b/texi/misc/ered.tif new file mode 100644 index 0000000..4b64018 Binary files /dev/null and b/texi/misc/ered.tif differ diff --git a/texi/misc/eseptember.tif b/texi/misc/eseptember.tif new file mode 100644 index 0000000..b75ae6c Binary files /dev/null and b/texi/misc/eseptember.tif differ diff --git a/texi/misc/fred.tif b/texi/misc/fred.tif new file mode 100644 index 0000000..e04f262 Binary files /dev/null and b/texi/misc/fred.tif differ diff --git a/texi/misc/fseptember.tif b/texi/misc/fseptember.tif new file mode 100644 index 0000000..6583c2b Binary files /dev/null and b/texi/misc/fseptember.tif differ diff --git a/texi/misc/larsi.gif b/texi/misc/larsi.gif new file mode 100644 index 0000000..c81e049 Binary files /dev/null and b/texi/misc/larsi.gif differ diff --git a/texi/misc/red.gif b/texi/misc/red.gif new file mode 100644 index 0000000..41d364a Binary files /dev/null and b/texi/misc/red.gif differ diff --git a/texi/misc/red.ps b/texi/misc/red.ps new file mode 100644 index 0000000..26148e9 --- /dev/null +++ b/texi/misc/red.ps @@ -0,0 +1,2809 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Pages: 1 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentFonts: cmcsc8 cmcsc10 cmcsc9 +%%DocumentPaperSizes: a4 +%%EndComments +%DVIPSCommandLine: dvips -f +%DVIPSParameters: dpi=300, compressed, comments removed +%DVIPSSource: TeX output 1996.10.29:2011 +%%BeginProcSet: texc.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} +forall round exch round exch]setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N +/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id +gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp +add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add +/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ +dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 +adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 +idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string +putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval +adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} +{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ +adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 +chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] +}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict +/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 +0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} +B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ +4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ +p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{SS restore}B end +%%EndProcSet +%%BeginFont: cmcsc8 +% T1FMT-V2.0, Copyright (c) 1993,1994, Basil K. Malyshev. All rights reserved. +12 dict begin +/FontInfo 13 dict dup begin + /version (1.1/12-Nov-94) readonly def + /Notice (Copyright \(C\) 1994, Basil K. Malyshev. All Rights Reserved.\012BaKoMa Fonts Collection, Level-B.) readonly def + /FullName (cmcsc8) readonly def + /FamilyName (cmcsc8) readonly def + /Weight (Regular) readonly def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -133 def + /UnderlineThickness 20 def + /Descender -194 def + /CapHeight 683 def + /XHeight 506 def + /Ascender 694 def +end readonly def +/FontName /cmcsc8 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 32 /space put +dup 33 /exclam put +dup 34 /quotedblright put +dup 35 /numbersign put +dup 36 /dollar put +dup 37 /percent put +dup 38 /ampersand put +dup 39 /quoteright put +dup 40 /parenleft put +dup 41 /parenright put +dup 42 /asterisk put +dup 43 /plus put +dup 44 /comma put +dup 45 /hyphen put +dup 46 /period put +dup 47 /slash put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 55 /seven put +dup 56 /eight put +dup 57 /nine put +dup 58 /colon put +dup 59 /semicolon put +dup 60 /less put +dup 61 /equal put +dup 62 /greater put +dup 63 /question put +dup 64 /at put +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 81 /Q put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 90 /Z put +dup 91 /bracketleft put +dup 92 /quotedblleft put +dup 93 /bracketright put +dup 94 /circumflex put +dup 95 /dotaccent put +dup 96 /quoteleft put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 123 /endash put +dup 124 /emdash put +dup 125 /hungarumlaut put +dup 126 /tilde put +dup 160 /space put +dup 161 /Gamma put +dup 162 /Delta put +dup 163 /Theta put +dup 164 /Lambda put +dup 165 /Xi put +dup 166 /Pi put +dup 167 /Sigma put +dup 168 /Upsilon put +dup 169 /Phi put +dup 170 /Psi put +dup 173 /Omega put +dup 174 /arrowup put +dup 175 /arrowdown put +dup 176 /quotesingle put +dup 177 /exclamdown put +dup 178 /questiondown put +dup 179 /dotlessi put +dup 180 /dotlessj put +dup 181 /grave put +dup 182 /acute put +dup 183 /caron put +dup 184 /breve put +dup 185 /macron put +dup 186 /ring put +dup 187 /cedilla put +dup 188 /germandbls put +dup 189 /ae put +dup 190 /oe put +dup 191 /oslash put +dup 192 /AE put +dup 193 /OE put +dup 194 /Oslash put +dup 195 /suppress put +dup 196 /dieresis put +dup dup 161 10 getinterval 0 exch putinterval dup dup 173 23 getinterval 10 exch putinterval dup dup 127 exch 196 get put readonly def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [0 -250 1142 750] readonly def +/UniqueID 4701552 def +/StrokeWidth 0 def +currentdict end +currentfile eexec +9B9C0887DB83FB1ECD8335B0BB39CEF0AF64F656FC6E5C230CC9D3A7346AAC7A +06BD9A40393CA15D3773A21E06B9B4254D3050E90726BBB09120935A8D448CDB +C799D90205A21291254FA633CC0C2ED88781EF21A5D45B72445C284FA44F8F39 +CF566976075A92E9E2947A6FC93D879C29EB26809ECB4409CBC8666526CCED92 +65DE661A2F8B0A16BE45A9DA17EEAF89B0E023DE2B0373DCAB997D60B7D7DC1B +4F7E650A2A9F13CA0543F3B080AE33D65F2802B8C6F032ED6E6DCCE8BDCA96E0 +7ACBDA80BD4CD2ECDDBA9F2153A5830B911EF4A2B2759509074BBB7EF4647A84 +A7D80486A975F887C24E3B91C13DCA84013E21D22732074711E18BF909EB19E0 +17003B8DDC9A09B7DCA54C0683A0301A22EB83147467E02063122C43B4084720 +DD14D09F869DB8BF36651E182AB50EAABD5374B4765E7BB0DBBAA6F1745B0EAE +3CD63C9913A9AB7ACA280E94078158263D7DA75FBA9944B33A681993B009FFEC +04291CA8E1DCCAF55D1FB9B4C630E378EB500EA97B07B6F3F3A66820CA68656F +AE47789E6C164A26FC1C2525E4247A4AE5D0B9202A92EE3090FB25093B2E68F4 +DDD3DC598A87914782AA1B79AA31505752F8A47D2DCB51ACF6EF0832B9C1020C +2761DB6E6AB9749D4D7993682371D9BEE6684D1EFFCB0F1465672DB9769673E8 +2435B28D8BD3E4AECCBF2B127E146415B15066D39103B20C8B415B3C6A640FE3 +5934F1A1E8256A6FDF9208A56E65A7C94A960923889D592CCD9C94DE37C1448A +09D876F58C506924D478BFE724329AF64157543A5263A8652FD2E852BC07FF57 +E438C93BCE2B0E219EC1A8E2C8A6DC708C990810A536877369A477D7E7D12355 +434A7A99CCECAA340329044B79B33AEA924E95AE898442A7FD06F7E73948F535 +A8556534730B981547A9ED3D5BBAD6AFD08BDC8FCAE6A46F63644D5BFE139A0D +EA380C737C228832FCB4DCD0BB8208D3050E5CDF7C194835E9770D1F60F4B78D +910E195BDC30653EE5BE7DACD166F2BEC6698CD2D355BD9605795E6EDA8462A2 +BA319945113FDF8DF0C629532064726133522021D21B033DFCA23EC2F71CA591 +2ED8FF78703FFB2422C2E38283AAA99B9A7BA72C3124957D172BBD55C6FEAB07 +6CCD143228A63253BA4BE92E32FCB72E150BD00CD5B2A1427B1C4901B0CE4479 +A763497DCE9904F4C02D440646725A28B897AA2524D9CD05C2A2F21919F22378 +88131B729ABF1FEFE219D93FC16C55C37CBF7DBEFF403220AF82CA530052F476 +7C140370CC7E73AF028A152494B4AE330BB66ADD4ABC6D74BA1CAAD743E9969C +7EB9C94D56448B8C1A5D65199C45E746B8D9498C836043282600FF0A4AA0DA2A +93362A65B9AC53679BBE3DF9C46A56B252C39D0E4C6C475AB50B0F6077DF0E51 +6E2B629AB0D7F4B8916309BBFD04EFEB53B2A887CD71E2F2E7C5546FFF3D6807 +2E1700F1FC8BA07F7DB6DA818D981284D05459161CB626165708B665399B0C44 +B20BDDD6FF4747C9539F3A9D1B2F6E198CA21D61F8030C56DB55B72210CEE1BD +783030A32B7109F317B75885C90DED2ED25F1497F9BF7CB750618565D8B9F7BC +B14D5770240396CD2D3E22225E76FD0222F2DE79615ED0EDFE19D7B8940BF147 +974EA060EDE6142D3A98E86F3BF92021D63BC13E79D2D7BF12C4285BC9805E0F +B330DF7CFC283BD744CFA70BA34025E2F9C4F613B4AAD255F7D6493105253E37 +A88678147D7F1B600E611813BE2866B827ACF70FCFFC2BB331639D8B212D48B4 +285BB430B120820CF07C849B8C4742F60408D69E9E5A3A062DDD616AEA5D65F7 +B6BE3CD8672561678462F38142B6DA16BE3E8E1DA1C49E5E1E447F9068ED7813 +C406B262E01434885E0A0EB5EADCCD01D09229C801257F7C400EC7FA7384F138 +816CB2D68571A14FFE15DA71206EAB82A9CCF44CBEB5F1CF80EF5EDFAF70088E +0315677C806D87112A0F1F5387204C2172B3551B48297EC3C0987EA47E561BB0 +D1A59CD20A0A8950420006CE3E8F2E89131ED3BF235753440A31322420321948 +50A91ABF95D81A7333903852994489482C760D8E6ABCB90D4BC76E59A7D77543 +18DF8DA712C2886272C388129B9DE91E139EAA28D4F8E628F66F8CB82EFC63B7 +4DE99680B0A40D2E8D27F2EFC4D3F84B5D4E2664438C23EADD2432A078F0615A +1B168BE016AA5EB1BBAD70B50EB6BBDD98AA46035E177CA3B5D2C0B19430236D +E42DD05E4C5CADAA36F9F2B59163C0AE31FCC8FF0ED40666E7C409F2DE49D54E +9AD3AB0BA8DC7917A5A11D5553F3C5C3AA761C71AF6FA03E74FA0A8CBDC00C58 +5BC44EA557734457D1C3017BD8215486F4A912B6CD5B7F5293641CA5E18CE696 +94439509E39668443555D82D48982CD86A72307F9181561F4A48713B18F7F414 +D62BCC15ED2130C3C3A12147C340C5CF16441C6B1C287D2952EE64D4524C67EC +6685D7110F55DF79006467C567F450C058C47495B54EC7D8AA9E54EAD272A6A6 +3985B7EFFC7F1374EF726AF07995774F42BB910F6B93275C81481E69CBB062D7 +48DFD3A8F7867FBC0777174D1645EFF68737E152BAFFCA6D11E9E047D23B5DC0 +AA510CB028F7BBAEA876B4D80A8863BB0307813D6CB051F001665EAB2AA77687 +F1E5381BC3A60884510091A6C8A065C5255CFF31CD5129A33EF4A2A1F29B0B29 +081076B795D99B052F5152231D63BC2542661943D1771CF0BBD5255851C467E3 +017AB1CF41E127F90AEB0D465E70DF088A1D1B72B8AE8DDD08E72B5C8CCB7CB9 +004B39BAD93E3E8D3EBC1254CE7C047788C46D9826E2C444F1E0FF2401FF7DF7 +6A202BC1878BBC6DCEC3B17DC323125E4D75024B4A08E92F0C1B97D9EBF895E4 +1E384FA8D6C66E19E39C8A26FD1E0E5A5905B152DD7F617058F9A880623A9B4E +9F1737EC61D00C576ED8306ACB625E1AD85A809CDE751A34B83F04F89817D627 +E34844FD56719626BAF81FDF2BC4815F7AD55833E17021161AC6CA9B2393721A +C39323754978C27F0A19D3DB3DC517D4322FB3B673C26B1FFB093590EB133DF2 +3D30AE05EA926A43FD3579EDB1E9D402203ED0A0694E258CFF6B136CFA2BF757 +E7EC2C9C1332B998DD86E7467F522883AB5E9D01C948402E3814415E0DF6362F +D29616D861AB88D3AFF5EFF233552DCCB301AC00C57A8CC3A75544C3F1FA92D1 +D13888FDF0597E8EC842C0C6DAFFA6F5FD36AFD0EE385A87BCE628AD3C963B98 +5E66712EB1EBB886C8C7AAC776C41F4CD1D1B2F1207C2D0499E8911CF17EBF06 +DB261EF1A9F73C487D0B1AF98C26E3ADDE84678CE54F6877440511D21BFBE304 +98A6ACA6AA32775BE50C603EFC86509D1078AD952502E1E0ACBDBB1134F5DCDE +4B423463E37FA01D0233C049CC9A61EC5A0A9373070CB6431798186C116145AC +20AC07CA60DDD0CFAA838674E889ECBA7CDD700CC6FB02C4BF018A0675798A14 +BC3F97B7A0C256711C9983DD7C465364504C1C14C51288692FCD0DE3F26CA406 +7E4D7CFC45D7C4DDE97A61423185C0FE7B9960B396028B532D52016A497CE87B +5A5B35136246646601B5BECE7E380F3F3A2EB428CDBEFD4EDB6018AE34A441DA +7CFD700D66527EDDB47091A64696275096DF98B4B9178159A0FDADADE7515C26 +F97C12422D031F8D230FE2082B11AD582F2BD054053E2E8DA0F4DE167A354241 +F9758A06B11379CD99F3129DD37DCBCA5F765478D682110E848AF83E63B3EF27 +AD0F2F23CEF688EC5A4811D1E73292D940005DBF7DF19524E33593AA0CA9B030 +926DE55A6E8384D006632F5900D00F851708CB7EFA5D0B227DBEAE710F3CA02A +890482C433ADDFACF2960EF914F9651A47FAD819A4C17FEFF30ADA059D9CAECA +C143AA3E92AEADBA92D85BAF433344FC16EC00BCCC90DB42660EFB6EA2D68E42 +37D4083FEA72FEBC845C7814FD8F50A0687F93C26E32661D5C6C5888259FCDF5 +C70464929FA36D2E59FCE1AE85AC3C5D733726DC92600AE606C878CED4706F8B +1ACFD0DCEC65DB23179B3E08E456AF6FDE3027C44F3CA86FD02D30E1FC8F3450 +BFFB18CACB0CA334D6D6C11B4DF63EDE14012995916E9965ACB3575ED07BEE18 +BCEE5D634EFA1E9DBED3817F10957D957900E6AC120D2A0578CEB6FE9888ED01 +BAE8869A8DD42E447E29BAAC8E025F63B64E90F055B7D3D7BA91914B55C58E1A +E6F984CD73413E494BBE8F20A2030B92E103874B7854804744EA67F34BB32D26 +CEB4FFBBF4F5C53ADF745F9F2108F28E6E9BD346B677D7D81D29BE9D41EDC105 +AAAE4C65004BFC8ADE14673D816512A81C1720B2A4FDD19690303A284472BDCD +23D6A1890FB40B476123038F1AF5D2679BEED1C037F5532D32202AA8BCE983C3 +AE95E4A4407AA55ED9365D8326B1BCD5977E4BF09DDF76423E94848331642C6A +3E1F48AC45A3957638ED5E147DEC4C195EFAF416F2A9AB07765F972111D96271 +DF49CD50F562E18E44309B86079A015AEC2654F5D30E387C8222B264428A6C51 +AFB024147B909E6598AA3A6085234A6DF6EE4F8B7C6D9D5A4C7428E7634C13C9 +EBA54B692234201F6DE0DA56ED76D4951D0D89A53431B83089FE196262525784 +F218B390E3FDE1F7DF139E876887A4EC4C7C7337DE070482E60765358688BD73 +61B84BD08A31BF1AB5F833E155079A130F5039DC39970BDA24C9F89206D6BC13 +31BCE613202E817404403EAC748D4BE72CE82B4ED24E33A45F39091E0D33E7AE +D961B0CEBF6A0187769F43BC921AE7FFCF3F933E8D4B6B0896B46FE843E0F783 +8D7531622D72B135F34F5DABAD6120E290CF281A38A1D22FC12FDF58C9655848 +B045CF758DB113D61303EF62C4D9228D58E60726921686B4DA64E64C970AFFCA +63C0D672A9C28B88D1194AF22328E0A4DA9A65C11CB59B5F55F0CABE32AC729E +119AA07D135D97C8FE90A213D466C5A02CB2E0CB78EC1EC67CADA027ED6588EA +17410FF368DF29A2D36E0F2CD43DA29BF6E0BD9FCD56A0F509B4A1BB0D35BA2D +E0A09400BD5E557058E3E168400F2F34E33CDC252E76FC7D252E8CED53A265BF +02B05A11D432E17E5E496A14F7AF41AD237372C22D0FCA183DA4A87B191A282D +ABBAA8C292E9CAEEB5722A98BF39639DA0232F80F624C667DFD9AA8C7B210401 +D65F6D88A8DD33211B1C58D12DE7A6024C6CE7F62C7530C050C35DBDB3E4B7AE +8686CDBB7FC13D2A16A064A00AC7FA37B3DF11D5E6AB7B26D70F7097DD1A463C +F199861DCB273D8BD27DA5E4C01F64D59D6C6301CF85F9C100F182EFE7824A0A +AE6AD44811F9E31F21ABFF320823FF6416F9524C408BEF52D6565AFB590AF48B +787BF5CC4ACD76DB049F807F4AE0C1410446960392EB1F897E308918ED11A2D2 +2165CA9DD631673F608D1D2594D8D2003E9EC77E8B4FBEFDBCD9114E39042556 +EDEB5D66C755966A1EF4607F283B0E604C7A611ED7FB30AFF1AC48A3C9E8443E +AB020C1C274BD90D476076FD1D7119B80CA4BF14AEF63288C58C17D533935EEE +C69CD5F16C27953155C5111E49A8F0BCED4F0638AA63424266037220120AE497 +28C1511E3CDDF8AAB7BD45E32ADB2368A111F4280FA7D77D4331C116578B34CD +DF024F7ECCC04E2A79C5EE039A647AF7F8B6B50CF477CE0F1C6513FED5A4A28E +6919C2507F0FB9B8A1FEAEF739FB2F76B27BC63148FA3893731CD2C07A2EAEF4 +32F8A9E0B60DCCBA2625203285DB22DFE6331D47114CFF282A832B49C6DFA41D +EB713891FAFEFDDD35B8977035FECA00118D0B449C849807F3834AAC455ED857 +E44ECEC289E7C2A97D184E253C24D2DAA1E2D5B5A18DB7013A549C5ADDA2FB58 +AA6FC4E2BF2D66FA37F1D70BDA8BDE834FBF7492EC522A7E7CB1578C47497E16 +6D350795FD7A40BBE85C437B60605AFF8595DB6591BDF61C56588E774227E1E2 +EDDC27AEA4A1CB6EFEB85D4C9CB1BBC60AB12C6452BBD70796F443A86E797E15 +293E6CC2C90245FE60C8039B25DF068C08C0101CFD6D00D1F7035DBB0490C0A1 +30ED4BAB83002DDAF4AF4DD4D00DE5329C79120E11D962F896AAEA17FE0090C2 +7F72A7FAC06374FE210246CA064A418F41BF71DC8B24848D1C8FBB1B7DDBAA66 +E698FCF9C6772A48B2AE1A1C4B48E17BABC6F2ECACED6A2D93C1C88E25B24F35 +B2CEB9791B56FFFF0744D78789F08E6C18F2067B1333B65A1A7D0E17042EF669 +B654DE023F51138863C399367CAF2A24DBA556FC96EF83931B159EDD23936643 +5AC3AEB5B1B0D55970F95574AC6D28221B4C4A6EF2C79245D479B654999FE261 +35D105EB8238D449AA347D0E5C1DDF8E864D64F8B5A30B3BA8D45A056BD44EBA +9D3187EB5A0DE2C180C23A7E67C9D4FC406DD2DD65311D4AEBB248F808250F62 +6554BCE687198D3C7F17E05A135CA32F78653917966DBB5CD1D0A5AC853D21C3 +6E12A327B2C266A6F6E68172B8CB7554EEE21FAEA90CA9B23C3522AAE3DA7A0D +636DD7E95F360524FC45404491F77B86B4C556D291C43EBE93B02470C5AC926F +DE1DF486C33410BA8A180C733198FF6D395CB1FACD0230AC8D4AA0BFED92EC39 +5854F3D9703A22B10797848921BC020ED3DCD1995FD7BB958B5D1C4EBDF64417 +0E6436D6627769786331A57EAD7F8CF003CF9F9B91D67CE861B914F6F76043AA +F98C977CFDD7AE978DB14C1003EFD6E20758D14E89AB901583DD6FEF25AEC853 +2E605D4C061600A63CA2C6EE608E075EC86FDF5A59DF5097FC79C206307CA74F +60C6973E73DC392464A7A367986E55E63BFA4E60FCE12CDAA7751875E2F986A0 +8C6E1B992F925FB8A36BC28A5F2A505E24BE752E7D88F8CFF3A0B9018598050F +D3EC8E2188FBD2264C8676E9CDE54F6E1537BB7F3DC61330ED9E165E5285EFC5 +5209BD7A8AD120015F03A2CF3772FCD1B4AAFD01F080046EDF1970A5024698EA +07CE1F1F98C272DA4DE32232520574727B76C1B1137F9F1934310E7CAFECC814 +27281B334C132764A015C4D1D1DEF7460AAD063228C346896105018A5F78CC4D +AF70ECB26B0C210DBAFF76BF479920809C35120721B2BFE5E95C50CBF3892339 +A78088197FD12BB712138515CCF50D09C6790E0FA678EA80C9B73AAC450280B4 +F6FF5D55F85BF9FE7927F29E74CA6A7023C55D761E7312A842137079A0420095 +9E54938344973FA3F6AACF978E861C800C97103EA952113A79C0088557216D10 +F55EECA021975695F68E36E51F229AF292E40069A167DDB66EFD5E5E5B113F75 +DC4CAE95D6E2F2B46410FC0DF2EDB3C9E4525FB3035D276608805A2410F475C7 +C02FDB7627619F34510299C03E8EF22D82C0F0BA848E4D63DCEB84BC5239E860 +A01980A898E7406F2C2C2683D864182EB055D5401A6BE0C51CA23382A25F3B77 +96FA4AF27212794228074676D53CC7ADE248B87B6DEAA00653DC7515D5D68A12 +E3CAB1CC1D4828ED42132EE31BFA2454DB21DDAB9871588D40153E879CBAA641 +EC670FC30C476BC40843BC52D06B65D3E21206393419C2A3B80EFCAFB9A8D945 +A8865633F5480A44D9E54E4B30A0DEF43D2686ABA55FC2ABE38751ADA14AF090 +AA086B564CDF2AD272700CBE7014C34747EDB454A6E1C3D4F89C1864D12D00AB +980A73884FB915D4BCD7AE17FD70414E1E4156CB64EBEE3C1F1B65C7C07FD457 +528024B5C5F54CF00F5B3003B7819D4F8D52C770B555A428C0D8AEB1ECB5E1AD +56097BB4953D5C4F9071A781B59186C198EB18A55B23B88A8122151F14BBEEBD +AC9F98F7F5C2C98544832514B5F55F38B007463783C8A35A17C3B9643C299D8A +9B3B7B5AC937E5D84C3350FAE832D03EDF33C947001111FA191853F980F94A2F +B0C1B5373E3D8D7812E56D0533CB81105634DBE5A3E1ADAE4892E63C6DD415DF +94FC71C47D50B09A07240AD792B982D2EBE06B07A5DEAEB00111BA1E801D9D47 +A972E4CF59018FC24056BD3312E7F2F0767DD96DBEF430626B4BBB97B1B4795C +A2A07F77E676C019F56BE0D97DE82D9FDB145B6F26B6158D61C308940B41EDDA +49ED20605D0D8CAC1D388F9458C627A791E5D6E214F1BFBA154D0F8FB70FA297 +0E2B98DC3FCE351E8B9F0EE20FE6528856C02FE91DC5D83C8C52B3A1D7AB4025 +F5379C5A590570D228FBD7BDB243A9B95C6D156F7051930F0F112B57242EFCBB +545A55D8568F3272D94BBDBB9B5DAB351C9940B42C11E1D2B860A2ADD4D9F914 +E4C1A513D3EC036D749DB0D652AE6AFD99C886BB65234E75E985ED5775595662 +B3953D1B90C2D841483A4D937352271E311C17ADD47FF0652EC281C30A7E00D5 +95FBD22A2D57B768B1A6402AC2BDA87049F299EF3BE8C76F8472901ECD10ECAE +1F77615A9A76FDCB3ACFC8C1A0BBC9207CEDE059C11B452981DE849AA5361BF9 +EC51F7ACD2C1C3CF2E36C67AB294EC1DF145FDFB87D8FEE3CE8C6F744D089C5E +8CAC6EF70BA2E6862F44F0792426E85DE0F2987AA239B371B00F3E2F4027079C +11D40FC16ABF28EE96848C97B0CD695BEC0F961C96BC744DC6D7D08D2E1B9F97 +78DA68012F7E1DA1F2CA72000B4E807F22A0D77272E00F44478F1EE69882BD4E +3C58EAD4BF9269DB275069750017D84B460772B9F25D6AD78D0B32A33FD9B748 +37E0E166FE9AF15EC12486939626FB4AF31D503F9DD3E71B1D31ABFCED334C4D +F58A03DA6A641D5DF8D6E5CAD1927BDD0C9F32B970C4E7539089C66D107D8757 +31C513230C44FF66883CB7C46EBD1F635F8A2BEB78A08AEDFB8E165050C8BFBF +05A259BD655B2AEE4BA2DD04935BE78AA36151A76D3DEC7B16BEB5C7439FA66C +D18F0EA8B0FD1FDBB2C7718C6D6F60B8B26FE85C808D109C9E4F62DCE099D218 +9CEECA5985E6A930F8A78DC2BFB09CFADE3EE6EE1A71C735DAEC2EB01FAD7C81 +71CBF28E6D4459CBE917D87B80D6ECD20FADE383146A4E75A5AA65E1A8E60AD3 +51E91BF11B524E39C2727A6C0D355F44C913C4DB4243D07532966D5C4D364BB4 +543CD6929DA2B626048DA05A1B7843A4544F855ED61804D0317AF029BAFD2AB4 +876B1513CE3D795808FA0BD050E2DB4630BCF0A3F2AECCC5CCD584B955279170 +8C7F30532110312D0CA374E53E63F68545B7EAD07EC04F1C75539E850E649779 +6F0B5278F1BE0979BA2B969FAC22F6811E0B9133FCFF0CECCADDA634296DE080 +F693EA18A2461D9422E2823C51ABFF572D332909F1752C6312A57ACE6CCCD9FA +17411A598F7E830984DCAE07AC4BB0229D60AA03B0A4D874FED1A864377D6EC3 +6F5B70E2FE39A0EE4B2E8DCC3056216DE2415F6725D54C15C8B2B7B3E4E3E3A7 +6F9E42CFB7FB5CF8AFAFAF8A3FDA4DF46C04EA9AA8F36E1848509F0850B6D221 +6F31A27F335334E79BD776A88B1DFF7CD00EC614CBBD6E53A889A32BBD9111E5 +C7342C9F425147907E55FD1F15E723571952DE7655D43505E38F10BFC81DFE36 +1C62330FF3CDF15E345A089C369E40730AC7A716F79218AB308B12FA82717EBA +693FD49A020D7BC6E19A7FFAA773A9A91BA436579B72D7ECEAB4665F2D00396E +C14BB34699D454AFB879A61380308618855B5502B3EE358BA7AF8F8C7C793DBD +90BC9F4086E996CC98ED5AF7905E46F2B331E1FA496DE6EE4C3805EF90045364 +D9CC995CF2A903A07A05D95F3A070D863962F45B62C911A530A4EF67407F41F9 +4E6AFFC26C752A841FF5057E6D855F120D9D28F5886DE77A2D300A70BF15EF6F +6A5FBCED92F9A01800668B37141405B50D2361A5DDB12537032C000140BB4F55 +40239833345D9A6536CC04D9BBA6F2D3172347E5B9D763553F5F5219E20D3122 +4069388532E29926355F1CB6644713F864B2B62D7611657E1FB52A8E7B4178B3 +766FAFE9CAB2F1BFC41BD2AD1AAA8F44D51C843C75FC23BC48860B04F2C752E8 +BB379C86980ECE56FC5712E98C7C2E7870EB1E878F5D72B1C620A6B46629799D +B341ED8D9E6B830336C4E690626849E1CFFD66DDB2DAC99DB493A5DF24BA7DE1 +C1C88AABBC6AD77E5240B37E42C1F76C640D9554C2A7AD7C214FF2AD422016DB +035CB47A085F195A5EC0D456AE3AFCE12FBBB1487F1A9FC289FC856A855F3B79 +3967F8FBF57C5F5C540D6DF14371B140C0DF167143684CEDF0596F661F3C1E5E +69AB7A3282D918A9DC6165F1D2F04937ACEAD13F50A11485445567C5BDAAFE0F +F00891D2389171D7A62B631FE53A50FE55262B70B2B5E267996316FA2D89B094 +95F0C36181E2BA08180C7DA957C7ADA62B2BDA2F175F620DA7474138B19B691C +2ABD0B87EC5983F28A53B4E1602F656DBDA57484E58FA00E3E1113CAC39A46A8 +D323A4EF0BD4C397C814A148EA3F6BFAA1F1AEFD89FFFC3C0D4CC652A6EED5D2 +0250E59F13B2963996B23F5A202BAB3804F861050A1A68352273B5FC03AA6C98 +A02B4E1A77351A3D22DAB1B863B1CB8EC6A7C30857C661CE7866516D3D4D423C +83B9DB0960FEE729D01F1350932304804E1760CA4318AA8C4172C11A1E370E41 +F0553D4CD81A4009385BD900C7281597795AC3E1588955552935ADB5945333AA +AD58E9664E6CC32BB2E00EFF6C495285B079F4C43D3A4C522A7ACB09EAB4B414 +DAACD32F9FEFB5500B60CEB1A36B865849DD999A42CA0BA0FA143CB5E2526195 +4081072B5519457C5292DE0C9EAB3334CD0B4FE28EB5FA9EEF554DEE92EB4EE9 +54531661F4F89E620A928587ABB62D3E5487AFF152FADF2FA795AB4A15B064F6 +D12F241997234C85504DBBBC087E7D78C3A1D76670AEE02A359ABB380CB660C4 +2282A5151A26D912C47EE8DD6C17F77755A668FC07AD983F14DCE16EC1AAFDCA +14C0A35FC2696DD3639D5465EDCD6141422E98AD6B62337D746DE9AF1396B52E +7A8AE4DAED9A4F7857A8E536AB6902E1C641967570D4272181F25B428CACCE8B +386CB4FD821DBCFA2DFE97D7A16648D6D2256ACF48752B6E4CA82164B1BC574F +171C814D8684206A07976818A428872B24010876B9D491DDD8202B87999D1634 +53ABAA96B7C04D089ECFD3124ED13EC092BEAF8600D4E2FFA48F494A72144BC8 +B26A5CA15776034BCC26026476E62C27DA349F822194E48C42B76195FE81E4A5 +0CB66E8E5E63AB49814B854A1AA3B6488A543AB56152BD814313290DFC3D55B7 +33E61EA591430BE394B95B1C9BC783135394EF1983CA53467E8A32B5D8538655 +365FD7E9B01C77CDCD033A71FD8D122674820BD3A4BA0675CE5C977EA21B08BC +C2F7C1F95D83B43C523C00E66AF5DB996DA1B73CD07DA13B686186DE3292DB9E +663EE1C7A30D6805A678A5B312F9232C934D63F563042C4C7F4C5C4B5CD21E1A +B4474AFC32B431E4D0990378803221116D1C86049F297CAD0DC4E12D0FBDF3B5 +F799FBED0BBE17872DE2CB6C0EF8DD486A29F1993DE0ACB7AF4B7AD9C2A85A69 +1225142F2539C2B2AED28766FE59B80CDA8797210B455C33099CB57AB5FA7FED +1C31D97684EC4AFCCB4C4D60C4F7DB9D865685FDA1E76FF6A5DFB4108D0FC241 +B12B498763CA32F80D6F409BD43905403651A9ED8E96AF0BE8CB1CC8820532AA +C1546708749FCECD26C5D2A945BAD576F05FEDBF218C6B31141591E19DF929B0 +96859553E674BF96790551776BE307FAD2DB22777C96B9A9C79990BC6E3AD6BC +7C20FFF0B0FDBDEC1975AF03BF403D9103C602243A075744BFFFFC2024DF2C20 +BB3D29F6DC452EF438AB28077E811EC9EB5D754446CFA84AEDB7DA8EBF4BD9A0 +3646589848D03478BAD908E2D4C57DDCB79A4FBD1AB25E6252329E0080AB0D19 +D4A46BA8FBCCDA054202DD292B72C1FCCCAF1DF3D4F4C876B90FF0F8D561F258 +4FCF9DF03CA5AE7CB73F693D2823D2330C5045F3DB1177FCF6C942D283A35641 +78B16DC23E77FBD518B7350267B9586048EFAF77ACC9EB7C997184743AFEBDA2 +F256FA18702A7183A71D155FD8830DDDE49B6F87458F529C89BD1E945EBF1DA7 +1EFDE6B4CF75057ADF17D27DB378976546C566710D03B2961B50FFEF8BB1BFF4 +C05788E35E770F8F6C949F611DA80180414F772E69338BFA2C91F6C2145A706E +32005A67C14E81AEDDCC608D976DC9D48D965DDF9A9E49FC698B6978DE5A8272 +4EBDBD28D88F2E6213C5CCB8DE3C41C83D38DE92355914111692A23B79EB6DDD +E77E007AFDA2E05A25899E4DCB623000FE379C01287643A4CAE92766333023C9 +3421919877F8560496B5358A059205B6B6D1BC4583D5AFF288596F5147F10063 +A06FA6B05B7DB4586975C91F0056E5FF02B91FFB592EE7F0DF7D9550C6803A75 +8D67460C8B03D77307B8E78302B763ECE3B6C4FE27B67AC8457E2F8DF4D200D3 +9B16611B64E2CD331B8F305CC4A2539C505E59D74CCB52A0377DFB314E742818 +AFD337E5D63451CC1977C27812F2769CC962EBDE87872EB976B10F0FA39ABC9A +571E179A2E483F6195EFD04C67D8F901513945D7768398D5D7478E0897B11DDB +1EC1E2CF588003F5B607398D8D1D9A72D5E6BA532E88CC0465B8A360801932C6 +8F369F408FB349941BB008B44BAFF709F68F9E2449889E1584A5D2060C337BA7 +AA37BDB8E5F2BD43FED0FB1872DFFDD3C31DEF34450FB51BB82105805C42D8A3 +1F4BBA3D13D7F54B830C4E5F4E273DE222E42AE811CC33458D7B7FE64E4C9737 +47DDF60CB4D69373762FBABF14C823A4AB38C84869C25B5467A427FC6DEEAFA4 +A71F39A4395D774818C0CE55938B9964074E74D6269D08A53AEDE785D4534604 +DF78B7FB9508ED6496BA8ACE6B300818BD98F8F608CC2B5F059999E39EA90DE3 +800A785BBAEE0321A82AE8B961FDA35E7847324546E90FCF4AB8D8E8DAAC0D0D +B097D610511BF1397B0092EE04A4FC63B3780AE89F9985D8A88AE771480E2954 +EDA2E11E90EBCFFCAF67AD39F4B30A07883424B87D8173167F7BD687BD56868E +874466ECD90952640A5500FB8A6D9B0CBB4CB8D3D8D024BBB350E280D9E7C030 +8F696EC68212BFB9F011D4D488047C2C1CC1148BD12D42DCC1502544EC1FFF1C +800718511EE52FD767C7D0A22B029F4FF65C793106B074534B6D1BCBBB3B2C3C +7549844A1B650C8C75841A60715BD200FDC87E307E8560BAE1FC4F0847F3FE75 +AE58F0A450A58359B833BB2294DBE5F4280E25432C75423A8C2DFD44FEE88B48 +462F09E1A2B6C70C18EB90365B83490E7A04019E9EEB5A8C5E58B3A01C8FD097 +BBC859B0A1C8242A7C2B82CD807742109F11DAD2CB5647C63C81F851C2B14795 +E0CEDE0ABDE6707B642C1C4B1F20791571DEC7224C649004575C3E24C6EAAD76 +20CFEDC819AC43646193ACAA5B63B7AF7B1A9729332E52964A987DE0C0D2FA79 +1A96D1EF7BE3B5128FFDB1CCB99CF807D8FD4988E2E500A8C46E2ABA59CC2A7E +801EF8542FEBB42201D4902E6C048D9A4AD5B6E94C12973A84FB9B3EEC507EB2 +06EC66901F9D6611C8F8CA1799DB484DD6F5BEE0EEE8FB1C3CC126177773759B +2111037691278483BED2535C9CDFF72F7E021FF9D8B3B1A0C551996EE303BE7D +5C46941EB329CA3C9B697502A6AC8A31828594C245B97DD5ADFE11CE9EA8D0C7 +9C8CEF26DC2E0BA66448A48C14AB1847DAC1B280A45CDBB22566F4BFA55DAFFD +2A690EE0E3945B3E1A681D567442F9C97E69DF75E02226FEB227DDC03AC61325 +BD610D5AA573FF089B750EA0CE8A40F85CCE600870DF84F8C62B929A87BC6E05 +606D135A4964617A3CCABF68DA95C06945370A99A717B01F58E015E37E61618E +AC70989C4F9AC115144394ABCEEA424A92EBC1E7EFD8A192CF4F0A10AA6E46F6 +EC1B6C43B0A775B10B0FEAAE02BFAE9C6DB22C3E962F1B5C7973CA9ACE819DCB +049FF86A25A8E82AC985F5F5292EC815FE136DDA92F925E2CE07DF5FB7676E7B +4C69FB443DF2EE5B66E740D4FC512AA688638CA3B3FFA24A33523D8363E9B70C +F10A460A87CAD9CFE89A387A4452EA7330FAD5DEFA019C6C8ABC8A125EC2809A +555BF63067F8883CE40A5F1FABF7E3C9E851C097401CE2AC81070D11B0898349 +030C9E0870B2660EC8FF9432F8189940CC98EB41E462675E7FB51FB3FD4170D0 +7082D61DE12AC74AFFF649981F54AEC4E19F5EA6AEEFD49F64DCA9EDC4BE766A +6D10E707F824817F9719696682A365FCF6AD757C3C9E49600F7A545B1762E062 +1A68204E542F97FA1175E3C783CBD94E04FC9940BEB21C5D44FB8D54DAD2BA1A +DE36763C370B130AE75B1775CD356D07B0D62195BC5590B27216DCA74DD58B8C +E54623200578CE733126174E81064C8D23AD976E3E8852ABCED7DB7AAC1FE718 +A8F21683BA14A3631982AC240B4928C144F8D85D1CAF20FF1CDC26D7C5862E99 +E8E95F5A718140D07684F7C64B985C8A09A46925C63256D6FD52B9B8B281949C +0E80954D268ACD63CC83771DCDF145DCE797FCC032C3DE1C800BBCF7888C47DA +74CA25D3728E656B6D8FD74D49EB9A6D7DACB2248A246E8E554D8557F5D3D084 +B324123B3B73D8ABBAF1723B65B1245D66F0BAB39178B78AD9AFC0B5FDC30F79 +B93E93D6866C2C25061D715F9A76E0738E34D4BF913B7E4F32673767AE33C2D9 +4A40BB55AAC77651BB765285CFBF741D107CA559BD7584E0E0550E7CE08FE176 +46A41DD674DC5FA4580A3DA9C240312F90D0FC594B983C3FADA4FFDA483F75B1 +1609CB77FB02D446F1059457FCE06B8A5CA3EC0EE3C0BE1F5AE441625A31C835 +79AD3A0E560B3A37721A8A6BD55BDB82ABECA2F242D59A902297BC968FD5BBFC +F9C26D07A6B9EBFB3E9D1604FD7B959DBDE994CFD70E765C5106C7DE7F413F98 +90BBCB666FE4EAD6ACEB2CAE3A412F0287B44088C24E97CFAB96E18FCEA499D9 +890AD04C419774DF3683D95CC3A67EFFDC717D9094E247AA250DCB6C54BDDEDF +B4FB572A0B8D49790D5DC10F75DE1421149EECD00177AF315A2CEB014DAA9ABD +F117C29C4A029C66D8076AF44D24B4FAC9167C2BD692DA0D53D4C551F69B1E16 +60C6709D70E11544C2322989E83EEDE0F7B23654CCF2E2BE5571F9DC1F97FEDA +3766D62D8DD76D51F8FF9A2C95FA97D72C36F35A4D9B9E1F10FF1451B8A45937 +9C07B6651A171F259F5932457EFE5FA6A760696F56A4135E9947F36557B3FC24 +4C5F534C8FEA30F2F8AC526E5F69C12C2972FBB448E79CD3E2F326EEA2E796A4 +0635A5DB40D18E4095F7DD966C71B9A60A322AD0DB0A2A9AF24BF04B08224ADA +32E394F0165EC9752E7395EF268755888FB73572B1B74A60C7305DAAFDD9F281 +11425CBE9D25DE6573AB27EF3099D51A85DF5EF4C9BE135FA380E945A8D32E35 +3F37E378AC231C48F01BE161A1532FADC9A9AEE85C457EF6BA291DA53EE915A4 +208A681520E770D04CBD5EB0159711A141BED8C410583689BB5760FF00385D89 +656753137F77FAE1ACF3AD77A13EB3136B7F1A16D9D5C33648CCDE23704C4F87 +ADE05DF8CA690B95D66EBDD3F6D05494BB6CB7E67AB22418124E2C8F512B64E7 +07FEA1132401AC327C3413B36B36433C2F40BCB656EB15DCD30BD886CFC46745 +E13F83C491B125848620FADDB360F1CC30F25BA7CE242ED619F8F385898567BF +EF84D301D215E4D508B50A25D4AC9343C947A8BEC153F9470B5B6AA29D2C0391 +535B58F6ACEABA8B5C3B622F992498341C1CF3309FD79C181515F015F46615ED +2F2C1FCAAB740C411DF3F0FCB4EDD2ED62C5EE15BBA256C1E95165A1420E70CA +06B1E41773201B36262DB83A2836BCA7E957ADC940579A916EBECDFA7A677375 +18BA68A70882BACDBF795B95684DF840906409FA57EBA076BFBF1828505C1245 +0AD3B405E2DB8F45C11F9183D58A08570638D95F746DD4849961CDB3D48447C6 +B8023594D21007D5CD223602212F6D8DF8A41540AE32949CDCAD1B27A798E25D +8DDC05BD296F8229AA69FA8B9460D2C2F5630E77EFA90A212DD6910A5B855E02 +86893291441DD506C58CD89927417B077890DC1FF3ADDD4CED8EA9F1BA0EAF98 +873BC628A7AD36349549A217E452D3368E8530795BB77F1E756FCDE2040C5F9E +DCA72CD0D807CA1FD7B607C53B5FED45CCA47DAEDC6927600C1315D2C57D0DCA +6CE850A080CA0B2530D8B33D1424B884BCE550B6AA8BA4EFE6A65656D1C02547 +454E34A790CFC21D3BA6965DFD0B87DF98DDF41D15E5856A3AC663B9369D611A +E2ED221BB8731D2090E2DFAD0CC282903636766D86CE859601DCFAF54662E280 +8347A3FDB3B37F0FE340606EEE2B8E7C93B41C2DE4E845C9952347A8D1A0F194 +4B7E637C48BF2A479844E7BDABA3261EA98B159DB0BED746910D4785ED3287C1 +0F46EFDB4C813E895C5C60B111D2343793F673C57FA42DA5CB401FA1682CE5C3 +4AA9E05901B57004078742A8CCBA353AE845716CF0D5ABA5C255C90408D322D9 +F21F14DCFC28639AF0A884A38C93A2B54402A7161B059608F8A10DE341A684CE +6D225C8A715014413B07104C029F63C8B2A788FA68E6DCA985CE5186EF75C806 +10A23B0B39FDB386CB0B5B1FA847972B79E0645B878F211EEA2A14B4F245C319 +DFD827702307C47117AB2AF7FB207354DE283352C29010241B4F57890314C0FC +9FF918034F77D93F2EECABBE5EE2F421261FA34EF7B40E955EEE55ABA18CD355 +27A99A522FCFBD1D9BEF3BF40C7BA74CAF58ACDD01148345D4E109D6336FABD7 +4BE82B89759A486687EF3D8735422708FE0F80DD1034CA9740B85CEA71A2D9D0 +D0084CDBFDC99E0219A18C69BEFD1DCFFF6B5D97263D1A331AE0DA2A56A4C5D3 +FBAC1DB7289A34157D25A8C41FDA4C3A66BFBE90EA5F6371E94D69427FA0016E +C2E9DC906DBE094A05B35546F28B5DD2BB668AF85F96D00A5556A6DD51E5FD54 +F7F77B6BD39FE1A99FC26B0085E1EDD50912E1F1585DE9C7233942B0AC4E2504 +F5841A727459F80434CEDDD3CF5156B36BE6F4B09AAAECF546B1F6CED3601D94 +28EA6E3EF0456C7398A78380214BA07B7F73091BA85969B07F4EA13F2B294B40 +56F684D834681053266D8466ED3EDAB77E4F93A5BA9F32D8D4DAA968B4C41EDD +317284A980A3ABDE9FC7F153C8BC5C073A47D2BF75B2F724E90E520123A413F7 +80B4CF9BFE0C5BB596331D7E39505582AB6519E34EED28A009B66F8CFAD3E204 +81D12C62A5FDC8DA03D1F8E5301DC6894C4CBD3CEBAAC76CEDB31566FD7545F6 +6A68D2441AB9AB9BD353B51DCEED28DBC90352ABA3D249A05C00C299928AE6E8 +886E8A5DC68D75B642E78D8E16A1B8BBF871381516D1835421533A49FE4EA891 +512FE6949FBBE31256DF1348C3EAE50FC45A865E5725F1ED7D5F50D2A5EF1C1F +5D0E4E86E362C7060D8A3DB71D46B224D5B5868F34084BD408C7EECA270DCBA2 +DB170405493E82AD7E8B31708EF61421EC37DCA5871E39D7FA29E43F6FA45DB4 +68C07CDE5F7549E07A185B095453346351D974462340F64FF04EE1C037871B81 +FC1E8B6BA4F6CB9E486B8A7DB086A59FA4AFE5C74460F08A9163EA3ACD1380FC +A7AF2CA22D2D4CF17FF9870E206CFFD0C5CB90BC4626C74B983536EA9E31F0BB +7B3E9AB8FEC135687C0C1B69AD5134C6CD428DFB9FC8C56829F9D828693DD3AC +9FD5C72378B33696BA7BBE392CE047E06114DE1CD7C9AC966013C65514EB2D60 +6349F094D44C1D248F4BA48DA7C3B8ADBFF14DCEED6B1E8C704464A7045E467F +5E3A7756E2B7971332DE09A2178F46323B8D3C3904FC2814E3E2A21D8BEC6CD6 +C5383201CBE12ECA055417675F8BA96C4E9A799679743E5D012DA2B570CCB7B9 +0BD0520CB34297F64F93B674B7A5D2116B2138B75E7DA175F75F7139296537B0 +1D9595B65CA7AF585CEBE5B5DE485854D9F67DC07D0F6091D98EAF57EC3F8656 +ADEE982416918DAB7B6B7F611F7DF87C9C77755611E91A0A309F05961FD6A43F +4DB6F0714BB448A20DC223DF13CC87DF53220A292F64285A12C8FD0AC7E3D962 +7BBA836968A2EC6BB70B5667A1DD8E218696E105998434E7CD32D31235E0B44F +7A7D65A8FD4D2846F0E36DE450160B7FF81C63C2310372B91DE5D10DF21CE43D +E9D8C3911F0AD72D28110E3D27B71B531FBB6FCF9C1A9B91F84AAF4DFCB2631D +3C2B53E79AB919D5D99BA18B2614A0C8B2D161BB42795B06E53CE266EAEC37A4 +B562A6B036B397227D35AFF001CDAC7107DA54B1CE20DB7624E0EEC86A02EDB2 +B2A5B84018DDD021D05B28C4BB97306C73473CA4C28C8AF6BF2CE161D0E6DE5D +F6F249335C2E34FAA98420B7D8189A00F20910BC96626BA663F4B571B565EEE3 +9A8CAB423E3E17A3F95DFD08F690363986129799E2DC1E7289C50DD3651BA8E2 +F53689FFC4B02C015F34CFA75555FE47E644F44CE9BCFDCC29DCE7E7DC7208B5 +CC3404C23D893B343E7291A10909F9B5FE3D25AD1FB79E82F837DB3AF819792B +4617085B18A6B217954AE93730AEA3FF8D6C6E5579529C02D6DD393AE864285C +1C8E4F8BBB5E958A030B897C43754839029BA98C735A65C55933A0C7983AD8DB +D3B012BB2FD73038960FE1B9E350FAF7E3471288665F360383A15D95350B174C +288E5B4A2F1ACEDB40505A1838444BC3ECBE6B1168B1F7387BAE186C97A06208 +B3A1A738CFEFFA3F65AB9F79B8C8AFC39438B5801BA60DD8C3F2742D902FBF1C +A8074228728D9D58F7FC064EFA50047B7A1C6C88459E0291636F4301E3036309 +78DDF621FA5792483CF8A16306759C464ECBD54421EBB846895DD87183DEA62E +68273455B5FCD7FC6422C8197DEFDCE70F9C115CA0C91D3C77F7C9C36E830047 +7590DE3316BE60FB421E6117D2F8672142805A013FAB0466C2CABAA7D16E972F +D1AD0B8BA1F55CCC039B54050160724ECACC8408AD8C51C9BFC2E9268C110A3F +FEC30ABA268CA1FC27F64EF99DD11524AFFD45A8AE403B825A08692DE234AEEF +26AFBD9E79441D77B945FCDC5A431214D4A96BD49BD129C158110A6E2BC07A86 +E32E552BD34F1AE95A393491783771115DDC38979BC54A63F3E3FFCF033990AE +4A9DD1A72CDC770805906CA92828EAA19D03A0EBCABE364A22F890F594068825 +EA2E6E3040314066813ADED10C18A2A9B0BE5CAA131B690EEA54DA92A25E9B5F +2A2781FBD1BB43DDDFB3FEB28BD448D0E2C799A063A72E9BF3850E2B418BFA5C +8B3A81EE6A2457AACBC6CFF8AC361816C238259E3F58B85FB88B1E36AD752D13 +5CF751ABDA364A09648DCA8E213C1AC42190D511CC94F2C1BB6481DC1EAAF88D +90ADA407872803CE33AFEC63DFD75BF25D8ED8521BA47B4D434891C5FE4C2659 +9AA517D3D5AC7FDE576BB42B2DAD5280D64764AE205A33BC84EAFFAF69AEFCB1 +188BA530C45B2BF97BCE61638429ABC6391D95A8B04006F4B01D8D01A4718976 +005A5EEF09DC4DE93298F0CC4FDDB8C110C3F3D9BB84626777CFEB7EB1AC1C36 +156D7F2B251DA2F0EACC39AE291919B427A075FE6C6A65A4A3836C3D459A9252 +99014F5E7033339393E500D28B832EFDA4B0A9850AB252B3C9EE7ACB3B4CA00A +5598F2609D5625944F7ACD52C51FEC9F64D6F32E38E3BC252BE7AD555D016EA9 +28E77FA9D7C73988C580EA283F82E5297F2F6798AF229B24C8E72F1D1AD0D18A +C09E78E299A4C09C978B4898D7680FC3AB917E6CFEC4911225B2EAA9A116F15F +392FE72F3E1AF52C67A0DD488B2443844AFA127E78E92416ED5A72D61E92B9C4 +F604C63A69CD33237108D1EC3D62CE43404FDA456542C1C21CF0C0646D67F879 +1B1D53BE8D243862C3A86B9F3AA44D327BC5FEDCFDA066153B87EE4FF6F177FC +39711E874CBF31A5984E971F86240F7F4A60C2C81A07E972D7DBD34204F0653D +DA8DC7284A4CBDB19BC6A1CB75E9786568144833682DE7E107D639DE7B293E0E +F08F418C970FEA42075F93C77FAED3DE64B1FD30564937013D36F7980139F968 +06D02F6481577A41414FF4FC9B1C99AAD2B3E9013F6AE7E96F782F3FAB4FB272 +FCC783CA282B79E88608409BBF8AA3DCFAEE4AA0A4F4E143D8D62175D2CC25EF +21CC2E6F0EFAFAE0BE6BE6583B624F35994BB75A886883C4429A154E15315068 +22CEA98F0E9346E1FB0A5C0BC2F5F08547F366367C6AEAF0FA2171FBCDE51EB6 +DC13D8E07798020CF02AE39E860B1E7B5A957214F2E88FB51615FF10CB0FDBDC +4DD3F7E32E4B7F3ED59A15F279C678ACD0DF52FB6A376453124FB9E911941496 +A1C95943D464B633EC8F8003182D4E3705D4C3C12D2D8A6D2E85EBFC38507CEA +4CBBC55843A9687E012894D9486F76EC3455B92702BE56E68B47AB3EAE17FE59 +83789C8714CF93C38AE2D10F71EAE95E275A007073B4495329DF0E6F625FEF0C +8FE78B98F219D7428EAA2BE973612F80A0EF2577FAF84CD3D33CCC9B8C9E2E46 +1A3884A6D69A044DA7AC615E7756880D9F91ECF9CF24F64F15AD989CF31AA443 +8AE71ED33BABE92A2CEB2EE12037AEEC7DFEDB8ADB45ABC1E85BB021153F4977 +DC71F5C38099B9D7AA63D8569FE519B523843FB8241F80113C6498ECE38D92A8 +5199F8A0BDA219D9CD946D41E0BCA398B63442FBDF3548C7B0F46AD4DABF54FB +D0B0835EA5341476510BF67481C40FF5CDC918A128AAE12C8F0D02B1F058A283 +7E5A09279F8B9E0F0E0549386C3C6DABDB173D30E9D3B07EDE6A7D406CFAE95C +AE2FF542AB24BF4E96CB7097C38A5DD350FE9FED91CD5F6316B64BEB6D4AD015 +DB75B25AB2280FA089FED6A5CB57A24E404CC12951B2746345977A58CD25C32D +FF9474A3EB149536C07620C74122F5F54FE24735B35A34478A5D721F15C1BB43 +BD57FB09175F2F24997BED9DF769507F0BB9B87D8396C8CED5DBD4F175789AA2 +511FF8E569F3F2DBF7C0EEDBD447E20EBB09ED273DF7632720672C19204D9813 +C965B05D0C11EEADD78B291A5D8F3CE48302BB4DEEC92C5D679F1D23696F4832 +A0064CF3462EC8D6AC28980641DCB2681ECE09EF60A62BA321260BAF201FEC58 +CCFB371B9041BB950AE000B329E877A54B4B83F52E98D26C531556D53E0806B2 +37CC3AE746B108D927DBC45ED2123D46BC46E0772810A4EE3E8FC8809372493C +22D7991EB737BF28C6D7887F74D344A26E79F6D1156952A377B9AC0B66211173 +7AABE45A309A546406ABDBFA7431E1CCBDF11214F77D10D352B54CE23B14D88A +688CEBAA621A014EFD89D5B905D39CD2BD85D6804141A58A2C38E861963CFF5D +C7BB188E879A541A302C3A4D99BF2B1778398ACE1DC335BAFD7D7643DACB1E3B +781BE43BFCBA8BBEC6BF280F76DB418D4FBE3C36A2F9ECDEAC32E3602B01D7EC +47CBF2427EFD8EBB5E4F7CC16884A67C8ACEDFD3397CA8C2943FB0F5050DE719 +5F45D15DB1AF12BEC29ED5DA5A987B384D2EC7B432C6BDB3F6D22D4A4FECCA71 +CD1ABA35626C274AF44F748DD9DA3763E6E1BD19A7C07822DA6211193DBB375E +AEE59CD426FC9F42D569E75164AEAAE43D2940E18BE46C23FE5722F51D4F42A4 +1F560EF7A01B4F2EBBF2A61FAEE03CFA912E644A7BC7BEEBC5724415BA43C322 +70705C5159EDF059AC6CF2DC896EBC3F35C3DD5A29DB44CB86E4F6BE9670AF74 +6319337435A00688940B3C24475870D2F46F91379E5F3CEEF23073E44C02BC51 +905FFB8E529521DA74FC123C31F4745999BF51D38B0AA7CAF9C169455CDD05AB +0913159BB7E28F6D0106B50E32CCD0340A2E41B2C66ED74DD370AB5E0EB5B0CB +93A07EB9182ECC683E6503832680CF2914D054D3BB768A3F0E3693F5402B120F +C0941273A0E3D6E620A90B94E186097965E5B2EA44D0F8CE8CF0CF290AD96228 +A26E6CA3CDD35B919FAE5798E55493640EDEB67FACBEE713A0EE055D9A18C3EB +9D90E7869E36B749F58C0B5AE89DA856DEA4122B05A35A863FB6BB74AFAAA182 +052AB4D8F033F9F800200B547F736D32018BB4B64157D12C8268FB2C6E9C60ED +C3902382BAF7E12A562048E9B28563E70D4A52121B40AC2171592A710A9EA19D +1A0FA11A0E9A6FCE9FD2BCD8CA488F65B45EBD61F17EB8C6213B3077B6A9295F +B184234F6B37C4760BEDFE16A31CDEB901480A556186CDA8F4A623F8352E29AB +9FC29DA356817866C11AB07202AB6C2034D8E463E026CF59FEC872BEB71E64DB +0A79022780C38ED86FC17A2EB552E9D6C23C55F205A05E4E198F560F7C1A277B +3B4EFA96655F8A5E9D8E7E257EE59C734445E864598A74B7F6400E05EB0264FD +DC3AF61560ACAF131DD490B2FE9DA7DC956182B5CDCC177F3CB48FB6E7D8D47F +F984C53A1104D657BDC7723E995FF55B87FEC6A0DF25D87987BBEBFFFDD9E6AC +A945B06553668DDEF15CB7298E4BE637FAD0AF624171EF49345464A266CF2BE1 +544588BAC063DACDD4691111ED9C754A4E0D8AE88AD4DD3100DB9C0C9E1BA676 +61AC53AB391E9C9BCD240C9A9D565DB67D0169B90C629CD46600687E93A544F2 +0A67B9E084D40B657F259F1C500D7D05CE3F059DB9084B8C9B492C4908E38199 +9F6E1E625D7FC73505B47D4335A7ABDDA2F196C1AE0C41870B7A38C09644641E +6EE2686B487D9CE20239EBF677CFDF215190EE0A1CB439A13AA4CEAD30A4FB31 +25B9039B7AFEA7345D3DD1F321B61D4D52FD3ED5642F98DB54A848F838E340E1 +0490E93101C49B734294D14E714ED2A7B0CD79CEC04AE6B69EC188C252B98E00 +DECF96DAF3A8614294968F426CA0F5DD945EFEE6449E2EBBDF124452AD854E3E +B58FFCF836944A34B90540073A745658B426CF444B36F335DC2CDC9866F906CB +E4CDA4A7A3334D764CB27B2B4CDF8EF5F466ED44DD6C6CFF642F252B24A267B8 +B8788E1272EB5DE03CDD7D02ABDEDCD22A18441DBDDFC77284E88AE70E1521F4 +7C49CEC8C25BEA8EF8C160B9A6C75E8B12D9DDC391E60CF7D6CF02EECD7630DD +24393C4DA80B1F3EB35CFCCEE03675514A9E110946E65B123E19427D8FFE99D4 +19E440CCA4BD1834CBBA0178F9C98BC97F5C7FE1DB69DA5946B0464E9E333E75 +8F0E46DDD9D7BC7A8939463AF2EE83B387F14A3CF49F80F62BF8667E23F702B0 +3E6F507420BF6EB2C5C37BA7B24332BE2A34F3274184F544311BD53ED0560BBC +3991A25AD90C14181A274F84CA7DD21741167F2B38A54C80B61DD740A4F6384D +42695C64DE34E0073E390550599C26B6DCB8557D09C1287CB90575993AF500E4 +CD3F8EAB3B908A3EF3D49B0DDCE08490BCFDAA4CA491F7EB9177400487C58FC2 +1EA33E22D11600F2E752738BE59936B8E911BD8820D4F7F687667B32CE884EA3 +7569A82B0C53A3213848D6C973B9C3293FF022491E40F0A5BEFA80DB18531FC6 +7CB7A19B7A7E46AB761618BE20FC4742E7BE854071C3F7BB7F6F23DA29B0FC27 +9348A6E9D29B8949C1085AE229902A95A672DB5410DD239A4DE9B2A7B2A499D8 +4B3D82EAF8A8BE17151086314C9F07BBF1E0443BC59F82126658057BED615C69 +7D23057253F8561D11C6270BE79912E6240BA5E6DB8CD7D7E86103BF5068DB42 +6D1F769CBBF97DFF3BC3F5F0E64F133D0F3D4DBBC55B7EA5641F0D8F2F7B7467 +7F1211238EC7062C69951E0A25A77A7E7FA45660182BCB1B0EC3950735C1C539 +708A37BE3B4D617FC2D7C4D5BED4E1103D70923AD70FB028E23C11046DD5141D +CE3BB80A706F2D66068A8B8CDAF22CBE1CE71925825A10829193B8F1C6F5675B +5311B57E876E70CDD11D1212DE8833C5F44E07701C7E2E63605AEF8BD30F81C1 +1B88B6EDCB47B6DCDF3E466FEC04680A83250145C0ADFF58CED2EF0006371568 +854831945C23BE79C2655E512C967DD3924EA56B8F99368F32379924FFE75680 +C8C31A75B2733359DA01FEA8634B5396A3AD53601FEB7B897BF927812A2F5614 +7C65D725DD636C20EA6E69F3214D37E461605D6C42C024F69201C8BF91B3BE00 +75D73471A2A6BC927F2F91A183AEBC0CA04A2ABF291A0F10DE90EBD6C34EAB53 +F31F148FC4EFB7C68AAA772414D9C114088476B504886D3FDBBB664E56536621 +639060388A3E98431C06F9CED067AB46695486E2C88F2BDF55D7ACC588EB7F49 +02630F2A0852C8243B9D2ECB518BC69C547764D612A60EEAD68F3C06AD2E221B +CA8C4F56FC8ED071C5F074F90809A344F58D01CB89CC467BB90F4C400D11E515 +032D783C341BEDD3B1C08125196731805033B3769DBA1A62478E0224FD81C7A4 +0458E97E0E4620371EF311E740825B3A499A1C2FEEB4CB0644526E66FABA78E1 +AB93208CB5BF6E78D32331F55DC98C11A1F56592CF133BD05C8E4AF0AB80F1B4 +BA021BE93BA047B7EEDD39EF35441D2EE71F0CEADE691DBD0077A34AAA5BA616 +69410DD5A4D71DBD12EE5981C06A14CCE062ECFAC63C37DF155F9D5E7BFED397 +E0B51DBAECA7347F70E7B68157B0D2615C661F5F791C9439A934EB2C60C53EF9 +9A300F2531FE810C143DE75C50222CF7A540A9F2E443BC5474A80FF59339E6A9 +E90C6386C7B54A266FCE858121DA7F4BF33D46844E0A8CB60A002B204AEFCC42 +2410ECA4EA45869CA0956607156FE879ECA490A6E839FB735E20F11FDBC24CAE +B300F6771E7DCBCEFB3AC249E0B521946438E56FEF6050289B40A9B3FDDB659D +721704D110DE1FABB9851A703B34ACD49516B00C44EB17C30A8BE7CA8442FFE4 +3FDB259233CC0468E9F3548D4086A955CC1854B9D12D42E799659BA8381BDD7D +FA07D1F08701D584701AD888F86D86D7F11A1AAA21A92CE24C125CEA937C3C4C +923422498D766E050E0E75AFAD1DBCC9CF3B812FAA5C9CCD2326FB8A0C171FE9 +1637A15145FFD0A10085BBD051A92E5625817CB6DFC30880604BA6E124F4DD80 +2DE36A68F0C5D015B8E58B5EF991DD9D41FD823BE3652515A75959F5A991C5E5 +BA8E0649E15F231ED5C5B02E2EE1B5A478DE7DFDFFE1A604F3AA191B6A03ED1C +7AC466B8B0BAC7154165273202DAB004F72CCB18192EA9AE584F1F19DB8DF12D +5A6D9BED63F0E1155ED35B92A262D8851BE35570F5FA295AD30B28585F680306 +0791BA62FB631F7CBC850FA21D81E471B866F2037AD63E055953D2901AD88826 +854440E87D587F49854812962EC7C0B97DB8997C8EE0DE9C79F93D2BCFF8ED3A +309F3D204B86DF1643C49FBD97EB6D3B0AA2B216CA0A9FD37D3A6F77C8E6AC98 +FA4C1A31BE6346E6E44FFF1B490C6C15049894F660E477FBB9501263D6A71F82 +E113AAB2D88A921FE0B40794C6C99C05DBB0822440B269CA52813CC324287120 +97137CDB0CE241CF06C43BAC889E4830896178FCBF881D497D4CB81E1882F252 +6AB05648DD5D95ECDB86704A85968EE36D99D24955D3535B28E65D10646FD7C7 +6F3C73ECA74ADA8EF43DF9D8187343FD240508664F0F4CC5AD394597F37B99B5 +1FC55E4045EA9139DE57F5FC345DDFD75E7F103FBB724DE84D8F2F21D816514B +EECFE2166F544287ADE9F591A2244EA4332C2BEF8C37CBE5BD34ACDF480C59E4 +DD8970AE26B0DE389BD7535DEF80318F3F60C0199AD6024EE6B8BB0276BD969A +783F9C3FAB57EFBD352B324BB8B36F818AE14338CF0D91B72590DC58ECCC1E61 +87A2D943C9A50396E2B334A36378BB3494E850111A84468DAB82744883DDBC44 +A1BE11334AB52EBCB2B1FBA36D96A97E5AE9C8E57E7FAE936DA892CF999C02B5 +95D6A2FFCF12CF643C435A6FE3E0D80C9A48B2971484233F8CDC79A6835DE776 +89BC0458C78B376401CB78509AC77BEC9656968B9F0B8E123CDE9B7E88B09F96 +E9E89ED4760EBE0ACCA2A6559002524B5519505A3EC5F905712989736B5AFAB9 +372A6384303FB43A02F8AC415BCEF9DC4ADB4AF280E08751A1FB7A804C1331AB +D2C8A7AF8825A46D70D74E3ADCE5D752A5037EB630E745A329E29F51B6D5FB23 +C402E998CE580EE780DB5AED32832EA7B03668D0341B03B5E50E501A77278389 +A1529ADFC3313B8703E3B1DC34024D68F2EF91D58FEF9F50113B5AB5F6A38DED +AAE24D20A5156E6D6B7090FAFE5AC41BF075D0E2A18119C3B9F62753AA121B6D +4375A1024CA1E013440024BCF744FA30C4618C01568AC03C166407334C052EF6 +5AB4F37068E5D7D219413408B55F4DD41E827106CB1577EF12CADF21B0AE096C +26399F9B3261B793E5165B35B93C7A0FB0DB9E19F7F8C255674EB64FC319D547 +1528F3E529510FEF4B949EAEC2B8BA1D45BCDA7478A3BD684D8EE00FC62B477B +97A5007D99A4B14E080450BC08E62D80A406D6049E981DBD5DD2A9EDFE12F65D +5B159F468862F9780DEF12CC9069225BFDCC9045F6F73A0AAF103448A076E3C7 +5A9415B0B8153DB4D7899FCCFDB3096CBBBC66F2787FC8521743F2596CFF4DD1 +1460A98705EC377588E77FD757C13DE2C5AFB1C9CDF5A9EE71E0334B0924B402 +B59D2185F08264356F4CF388D77C7F62234133A1D16085B357702298F0F6A253 +6D4248D29667E5B8EF31E991B42065F7E48658EA33F89240754186DEAD4C1D50 +5B983A6BBA42B9D70076897DBCAD22F924D55EADD270A7BD8450A4571CF092C6 +6F2150733DD7DDEF2095EE1F7B503C2A1E1FB3DE3254A4030A188E5AE4F309F3 +C3DB5235F55D128A6CA2BF8277F7F78129B057BC6E4EFDA79A097CAAAD25B712 +BFAE1193168F1A31BEDF3D07B733806FBC04543C73F506A8D137C722C47D9867 +AB220F99B2889BA49F990A932CCCAD8A0AEE05D13C625F539AE40E08EC0B8905 +45143BF51E92AB3191369F66604CF5A8E3608DFBFF28D1CBE2EA332E4616B8A5 +BFDF99A0F2188515148A2642547FBD837AD94A9EB63B9452FC714C83B5FEC391 +9AE7F79918458FDC90286E32FDB8B3D62787DA1F842466E306B849C9F16118CD +B4F9A49D7BC027F941EF553C98CBB8178FC70334DC01640790D28A0A50FE9B10 +60018A930F231FE699BA8AC6EA3EF567B2AA462BAECE9A44B23A898D346EB7D0 +44022A11CFC50AAB2F3F54FE76F9CBE7E196B3EBA06C2222CD7F35A410A40E3B +4E610FAC688CFB9EF5BF8DB068C4E52D5CBAC9637835C3DF3B36D00647C20A33 +D9AA954658D804EA6F833484187C7CD7A0256577FF7ADF9B8A43990EB8B3E82B +D0C548D1AEECF7DB7B7DCA6B95E1AEB3F000598353FE8699026BC5624786DE3F +A76D00CFD5B01DF639F2DD45C25091ADE1C86D52605E6746DF888DA05776C57E +6E9527BD77C19573FDA86B38B75F650B23AAE3366C12D76B206E8865B2C5B3E0 +AA14E4F5177648626E7D383376BB203A4759C213BFE13AC26E34EBDC2D270E19 +2F4B54C1AD2970B8E2D98CEE84606D64C0CF19D7D4F08753D9B23093DD9F9641 +BB4064D2B4C7D0C1FA3E46ABC3095A4ED55A967646615CEFBBADE1254ECE0C91 +E783330727A8E28C0DEDE751369EE1E732806FFB0CBB1F1CA63AE49FF9DC17C2 +1702E2E75CF2B93C991EE82B635A362829D0D11733F89443F602AEDAF12391B7 +0133CD6C104FD7083F58894D269366222A127C25DFE29D934F72502274A1290F +9D9DD6896E18157AABE670E482F6E02A646E6605E6D30FCCA15FEA0D496EF19C +5559180A369189FD1D7E2F6918816D608092A138B34570A796B53F730E376D27 +605F5FEEBB0F36D1B1467D39A2D45AB5A297E92B6C6F2083E51FC933F5AB76E4 +A7434ACADB103C75CD4852D5CC7D101231036B240CEAEF30AA611A7003000ED8 +EE51D8668F3BEC852BA813B863111B95E6302CC213058749EC0D561B747FFDEE +415BB66F819281E60D688ECE2C51F84989A49832DA326F36A20EB118FF530CDC +4A332BA4F4C5329EF09D2B27B09D6A9F528F156ADC1F0ADF3F2A2B4715903E29 +6C9E9DAC22AC38F70B4E14EBA3F2E126527AF1D5E38E39F9BD601492B018FA73 +7591AAF7848CE01A35EBF654AD7D5F70BF0372F747EBBF55EC96ECFDD69507B4 +6B66E610281C71D408C680B914D522B43DF0173CFEC0F686E3D66227047A9E9A +A884F6F7FFA624316FEEDF90DD3079969F6A9D96107D158743C1DB86D2A0355D +34739B660D94EE61BBE52EC11ED84FFECAC5EC06910DFBBC7F6EB7AE3F117535 +B64F45507CBE6EE035268327F31F9D01A0DC853E0A8FACD0FF3E4746AACFAD40 +5FDBE45325E085463E3B5C48D7238A9B642F3234AF975352448563F8626E8200 +996A97DCD0F83128EEFD4528862C232D909C771C3B9CDD316BBD025613 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: cmcsc10 +% T1FMT-V2.0, Copyright (c) 1993,1994, Basil K. Malyshev. All rights reserved. +12 dict begin +/FontInfo 13 dict dup begin + /version (1.1/12-Nov-94) readonly def + /Notice (Copyright \(C\) 1994, Basil K. Malyshev. All Rights Reserved.\012BaKoMa Fonts Collection, Level-B.) readonly def + /FullName (cmcsc10) readonly def + /FamilyName (cmcsc10) readonly def + /Weight (Regular) readonly def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -133 def + /UnderlineThickness 20 def + /CapHeight 683 def + /XHeight 514 def + /Ascender 694 def + /Descender -194 def +end readonly def +/FontName /cmcsc10 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 32 /space put +dup 33 /exclam put +dup 34 /quotedblright put +dup 35 /numbersign put +dup 36 /dollar put +dup 37 /percent put +dup 38 /ampersand put +dup 39 /quoteright put +dup 40 /parenleft put +dup 41 /parenright put +dup 42 /asterisk put +dup 43 /plus put +dup 44 /comma put +dup 45 /hyphen put +dup 46 /period put +dup 47 /slash put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 55 /seven put +dup 56 /eight put +dup 57 /nine put +dup 58 /colon put +dup 59 /semicolon put +dup 60 /less put +dup 61 /equal put +dup 62 /greater put +dup 63 /question put +dup 64 /at put +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 81 /Q put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 90 /Z put +dup 91 /bracketleft put +dup 92 /quotedblleft put +dup 93 /bracketright put +dup 94 /circumflex put +dup 95 /dotaccent put +dup 96 /quoteleft put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 123 /endash put +dup 124 /emdash put +dup 125 /hungarumlaut put +dup 126 /tilde put +dup 160 /space put +dup 161 /Gamma put +dup 162 /Delta put +dup 163 /Theta put +dup 164 /Lambda put +dup 165 /Xi put +dup 166 /Pi put +dup 167 /Sigma put +dup 168 /Upsilon put +dup 169 /Phi put +dup 170 /Psi put +dup 173 /Omega put +dup 174 /arrowup put +dup 175 /arrowdown put +dup 176 /quotesingle put +dup 177 /exclamdown put +dup 178 /questiondown put +dup 179 /dotlessi put +dup 180 /dotlessj put +dup 181 /grave put +dup 182 /acute put +dup 183 /caron put +dup 184 /breve put +dup 185 /macron put +dup 186 /ring put +dup 187 /cedilla put +dup 188 /germandbls put +dup 189 /ae put +dup 190 /oe put +dup 191 /oslash put +dup 192 /AE put +dup 193 /OE put +dup 194 /Oslash put +dup 195 /suppress put +dup 196 /dieresis put +dup dup 161 10 getinterval 0 exch putinterval dup dup 173 23 getinterval 10 exch putinterval dup dup 127 exch 196 get put readonly def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [0 -250 1077 750] readonly def +/UniqueID 4701554 def +/StrokeWidth 0 def +currentdict end +currentfile eexec +9B9C0887DB83FB1ECD8335B0BB39CEF0AF64F656FC6E5C230CC9D3A7346AAC7A +06BD9A40393CA15D3773A21E06B9B4254D3050E90726BBB09120935A8D448CDB +C799D90205A21291254FA633CC0C2ED88781EF21A5D45B72445C284FA44F8F39 +CF566976075A92E9E2947A6FC93D879C29EB26809ECB4409CBC8666526CCED92 +65DE661A2F8B0A16BE45A9DA17EEAF89B0E023DE2B0373DCAB997D60B7D7DC1B +4F7E650A2A9F13CA0543F3B080AE33D65F2802B8C5214D5B61835338CC208D61 +05501307FEC48CCF5B84971F31AD8A4F0D23FA9336F6689DC2A56B553F5B2A4C +407D9378280A95C0045B3F9D8F7CB131CF4AD2EE859810319EED4082B193FB63 +E16EA0D69C0CDB5275814CE04C6558465A99B8CB4BA8BBF2B568FE1A857FA569 +3CD90069E5A446B86F82FBAC48B6C25F332FFF0FAFB04725D227FC28C2031D90 +5095F829EA6F1D8497077F2FC51BE3F59280623EA7A7A961565AA29ED4BA0899 +E22FF1EA9ED97089659AC56818A44A585772405409885F335E48C73A173CBE5D +52152759C8F30DAFB9E62407BD9AA3E1BD0CF45922AAC1982E7CA503AFDBC369 +2D62F68D07D83728E48C6B20B03890E45C5704A1E39127CF6525C4B951EC968A +3374ECC8D7AA22C66B5B00BBE6843E1C544AB9E97B4787707080A58921C1928D +0710C0F6A84CB91045F715CADEDD49CD06B2803654179785E07652E16B5D5347 +8F3393187212A3E98A5D13D77841CC9958AD5E0F96B23CD331659840A36A407D +D2E7A6E58C08ED171D327E376E1B0A4ED61611F2BD7BB7AE16C36A1DE466E8CF +69023E818FDC75ADB6BB6584ADBBF8C5632015F42F7E948CCF12A5F28A092035 +D201571888EF8CBFB5EF8AD472767422BB58A773C50505058BEF8E03D6EDF29A +3A32EA06AB032E65B65571D32FA8992D89D53C8220F05421BE0AF7A63CF828A7 +533CDCA7E445BD866989F908E8BD5C9EBAFC11F109EA1FE0B99B6E755486A034 +036F4A7D0B7167C1D8437F7E6817384A2BA7C492E76C313F168D1CD69268A02B +493FFC076A52F79D41EF492A59CBA939ECD8418F58F76686E3648342F8D81968 +96419988BCE8A7473D29C44704AF1F54A61185621626B5ECA3D9DC1ABCA4B82E +8421467F921FF8BCE016A893DC9823E33E774015A09E9DF2685B2597811E73AD +417166CE24E3D97280546EA2B5A8B53281D40EC512E3D913B57E8A6666918875 +B0CA655AA42838BFAC8BAAEFA380299850C490A109B38B4F462DF9915CFDD4C8 +F4725200960631339DE99F9738D8366E70792A26F07177CA728ADB9FF8090BC4 +4309BF3058308991B3FAC3973C1F1C3B1C19C87A6A1562979939705520F7C977 +7D1ECFE515C9E31C1C6D7F403299CFD8547DF23D2A84AEE11336C362BDC205E8 +6BC7AE696DDB26B324631A831848FC92786C8A81458881C2C732A7683E26AD34 +0141B9DA73EF291762C2F608CD983ADFD59F30A73DB961B7346BBD89730D3031 +3839A4F389B2113EBE554CEBC6F1A4BDA35F2D6042D8470CF5DCFB4F0C3ED526 +D45748AD4BC5220A633B630DD00C64D870632E4CFE4A2FEBEEE69381B0D35CD9 +080EC8CD097706040DD8579BBE9D3736912001CBD48F4F163F4FDC4A83D91441 +0FFA6368FEDBCC957FD46266D2D53C066DDD86698A3BDCFC757B126938B58BE2 +AFEEC58928C85BCAB2670C92B733058038A4E539E9F3BEA9374D6EF35A53007F +83943AFD91F8DAA041EFF63F01CE340FB0C6BA796FE2ED4DAAB762CC0BC47761 +7E267E09460DB657B2BD4799814630E492F23223D1366923C561C3D0D2ECC1AA +F298A4B8A384AAB52E55C19AE8D79A918893061EADD1751E3F8248677AFC7BA7 +6513391CBCB6756040B61C68AD1F4F54D372A950EB7286A530292EB17ACBC846 +3517C69AD8A41021401A72E09CAC9868DE0DD1FD2425FAB79D488E95294B58CC +346A0F8B4DD79BDC32CB28E686589FE9C87A120CB1982DF7F8436D6E9F01C1F4 +71751F33736DB9F50750BADE226432BFD95334492ADB192FDABBD4F38256106D +34FE08D59AF5DE367F68F6F8AD3E47F274B3713385AE527BF52445A6CF07310A +A50B99493F05B148559A0B2EF7BD5850A5B1A04D769B0190B933E5834FC93663 +70BD77D73E68F5556B8BA3E7778D161B8B4C4B1887D27C0E9BBE13365FD4FC82 +D6EA2A86E2CB687A3624B8F72AEEDD6EF2EB23DAC77B64B737AC748F8473851A +081C5CF12A66E5F8A815731EC8662A4C825CDC15BC157693B6057E22A2AA71D3 +83289A9EFE6F9337ED542A3F6AE0CA2321780130626668B9603ACEB9566E7737 +8D94316FD1B86B580D028465C06FF7A27821218D54ADEDAE796553063E2F52D2 +9552A0C89E4AC8EE8119E1F70FCC9AFA8C01171B252BAB99A05FD03EF9DCD523 +8C7B6210A11B3D4C4A45404160A65A9DA97D2086E33078C52C75AB63485197D1 +B37588CD7F3D190A3BF96588778D022A3B025747499505EE3377818EE8FC074C +B79216C996F1C504B1B4FCD987721331035FA4C8A0CE71F59D07313A237DC76E +A4E4C4C8DD418150981492277D12D17F034D363BFE9817E57A363B1E5A1672F3 +2F81856FC2AD67A26E506D69FD2E12ADD96410F2637C29B0F9EF7754CB05C4B8 +9B87148C40D213F6E4C6C78EA84D6D667FE31741983F34C969944CD736BE6A36 +C48A9D5C80B62F86DE19613EF0FB94947581C6CF37F7ECA9F2286A6415B99850 +226323FE559ABE8509BB8DFEFC3EA7623D0E9DE6B070FA1694D47678BE925872 +5663CA0D4B6EBC6CFD7509FF764C4BEA479F6A7FEFAF0FB04030B3E1FA569202 +461A7B21ED453E81357C2502E60D6A195347A9B1E48B1F10CA3AE9FE6E3B3F9B +6F4653002E78D5FF531D64B6E607508C1272E32AF385481FE48E16A04E917A17 +455506F5819A825B9EFF14495DF6C1D879655441C14371217F675F966F6B3863 +8A588E8F1C22C829B66931087F54C13C30981C64616731F08136A1F2E94443F1 +161A599BF0AA225C55C558562C1ECB69CB6479F61C43BDF0366ED8EFA2C6A93E +7E03777D43AAA368D1B897547F6F3EF7A4662B942D32E57DBFC4E243E8B7249D +DEA0AEC4F28E74D68E68D098673DFE170F3689EEB88D296EB8B86EC84C0B6FC7 +A8C7701443C93F402B09D63D8D88E67E70A9685DD00355D4F97D924625326C45 +7783C9B3422EFE74302C88FC682C7ECBB818235469BDD6B108B6EC44ADC9092F +2C132416D4B439EC1858E8810F1A50E358744AA78156F5F77CB23D8A7FC7872E +F9422DA51220BC41242CEC90D1199D11E6935E70415F246687D015AF165EF4FE +75F07B7FB28A860A8DFD786D972896E0E7B094DCD9D0D933D2CF264A71CB6B35 +809EAE5C0B0D75C271B6C6F22484191265F2D73D41B88291AC42E5FE2DB59D92 +8C3E33338DBA7116CA2F045770D459F9D28E44496B63F1F6D991BF0F9ADCEC85 +D6CF54F4DBE12BCDFD5305D5E9A27BDD5C24893B74B81F287608A07526C6859B +B174C70DBCA2A8C3EA5AA711F337772C4FC741E4C0C46786B05D31E39AB20EC8 +CF6FFC52BFEF692F1B02F1CF3F79DCBBE675BE1DD6F4974F0586900E4AF4D900 +38EB160DB1BAF23650DB009270F4A679B8751626A5F15D3880813DBD574A1B8D +8CF16E050DCD582AC7A90118F2756B106AF2775AE90769E862E684A1C12E73C9 +EDFE5A79612C54EB7D66FB2C142626A308ABB7F81902B231DAE57B34476323F5 +23B830DF72A6BD7E42799DB042952B8AC854B47230F2CD171546E5218F37FD87 +C8513642DB167A394914C6037ACFE16CF47E783285B6CB322E5247416A4931D3 +70CAB792E72D00934FC826E99050CE6F1D7BD5892064E1682053B34270525F5D +3A6A4B2C35CA1F0179C9D342C0C996144412C3E1C283B52705FE9134018B4093 +D391AD7F44665D3EFD2353B07A8C3310E92D17459EDE74CE0C9283E34341A7CC +56D472C6971A260B156DF12547DAB727F4E8F9131F6CBF5D60E63EE56A580C15 +49AC12A9CEF939E0B26678C4BD5FD00A29F832899A1F28C75EB58F32F5CE54C5 +3F12E668F0F04AB9E546FCC2140858496EE9A200011CCFED62B3AC24EFE8C2FE +AAEB3F62F9FB23CCDE8A1258027FB3F0C42862C1F2C556955082C3EDBEE42616 +80EFC22916B3DF99A38D533B5975B1856FE7B879B9C22EC41309B753F4DF65CE +1A39398D3A8AA078B243BBE33706B9D3318045F966F25DFB4CBF912DCF522C0A +1A139C6720967118EE918A3868D2CCD1328EF16C4FD0DCE6479E5BFB64B040A6 +0116EE6127473D81203C797BBBF0F1E4623FFCC67087B34DCF95DB749D0907A9 +D682754AE5CD3A69C3E2B95306123626C81CC107C4E8733EC4B7FB2D43131921 +DA5D058200AFEB96C2443FC5BB2133A4EF1172F418ABE3B52E0D79628576BCCE +A05FE6B149FD919FD0CDDE55A4FF25314F9254CDA6C901ABFEA25EE6E125AB35 +FC588345FB72F54D62FAEB54802741195EFD57EA07FBA9331160F74A29FC38FE +6CC5E6ADD81D2DC02579ED33CD48860B9F45DB77AF8276B4C6F5B55787EF4AD8 +80E3908A6A1E424559B7473171BF79E2C3F8ABB541C7A5676F8180147EF946F8 +FF62844DA2C70D75AE3FF568C256FCF65887BF3864458E8D389E7495C4E381B7 +F22A4A035E3058546A1F201079A3E6024F68B462C28A955801BF1CD3E62D9E0C +DDDB36DCEE6D03094BF61424B15D4C316B6F6BEF8AC813D3F0CB7262B3CAD2F7 +B71DD33C0A63C9A04049BE954BD41DAAB34ADBADADC92421676A2D39BDFF2AE3 +41977E42350537754799026504B8157E6AFB8427EC8908E6D8AA659C6B21C79D +B4D39C720565990FF48B76ACBC0E49FE661570F3B7244AE0405C683E8B264087 +84378B700CF8C69E8CC9AE677A3F49E7E65C7EC49B5A379CEE5CB21F8D90CCED +A236D850313F93867253105E6BC79DA26FECDEA83D0A7029F2AA4C0B3EA3AA34 +980CD60428BADB0FEA87B2C8445BE826F7FFF50E51F6868923638A63621406EF +14F98248E24E0A3CF6665E7C52876B2A26B76E54980659AB15F5B8D590B462A2 +3EE48BC7AB5FF8AC9327498FAA52158E10E002F17E573309E64F14488F32D523 +06B4B263A1BBD5F5F6267396AA1556007F77FE0D473438CDA6BC8A550C448A22 +88762A7EB57601A5C6803A84499900E1346FA5D33E1B1D008CC6B8705C90EA25 +8F7A7E2F08C7B3E6542D137327D6C941E4884A4CD9E9CD488D1529A9A7B495DC +4E3193C6FFDB6BD763559C6E9DF8616804AE881A03169708B122C22A0F6DD0DB +BC2D86D0A8F1C3AE748A7052178A05FE8200E43FB229D6AF37A409732CBFFA56 +D3A4F163036D2E8A80D62430379AACA3A66753D47F441E31C1444382E6E874EE +1206E550A7BD2487E7D3646E1AA4D57BE3FDD563824932F04490617FF3369B7B +473863FB3FF702A47A2FCD0CE3E845ED8335DC453F2FA794840715B0A14FC657 +0F0ECA578B03E637EC62933409C72DFA5A8449A00F7D5B119961E503984CD2EB +FB1786FA33B2C5EF5DE334A853625654AE4261757C5E3AA266E727407232D218 +118F29CFF96BD99464DDAFF8295DDF7FFCD59F2E7390DC253049CEED080689D6 +E0E7C962C61B4153375BB4FC24C5E08911DF431AB37A08A85EE0B7CBAAA01270 +F7CED06BEF56DB2A663C63EC03B5931D7B7AC47601BEC3FEA830A32E6EC8FAEC +043808693211A6021B2F28D9A0BFFC744ABEA27445773C74FDB94BFA3A28C9FD +B7E531304D95F04C4EB9EF7F8F1AC756CB1D3F335BA3F5E52339BB218C21130D +7B982020571F7D604140E8CE8D6343380D52AEA18B707F0397946F8E07CCF8E1 +1E18237AE9A3680920EF6D0B9F6D4B1B34BF867B1DA878219E712BAEE8A5A25B +95D0CDF979246C5E63486640CF469E8F505DD0E0518D672F4051F0A327458370 +542DE27BF723CB894D7AD17F38E914E093FAA5DAEFA82A1BF6C83DCFC41FE4E9 +D1980B1D500FE754707C02B98BEADB0BE51E6BA92F87ACBFF7F8E75B5CA48378 +DFDC891F71DA637551A4187A509C9DA6E618C613A341EC5660C12B33B22843AA +7CE398AAA35292C5034572F79BC10F4101E0E54AE77EDCD507C970CFE5FCB4C5 +ACEFD84B48FAC3BDC999517A4E309D8DCD5AA52C6A7015AB4AB6518D015D3CF9 +4EFF7808C5C3C05388681C40983F330C8FDCD93D2874C24C40C248AC57B42493 +DAA88995F1CA7ABF74B13E3CA08F4A4739E043F5DF3435069FB184F8765A183B +4314EF9CDAB127701347CFBB88E4F6F89B91518BEBB8E594C5ED80CED72EB401 +87241DD0C0F4CBAA5E6AC53402642F85E57BED30739B81AB79D16F7135BF8298 +18D251507D91D9967A974FF10055BBE63F3726CD7E388148F28C2B3800737FAB +302E6877372AB1CFC5EC66C8753D946517217F60A5FC40B00E95A650E592478D +5C8A8CF1BC1E4F7E86099E56CB00096EE6A9CD98703B4CA172ABA8FB16B3077A +4B109AB0A6E4C0CDCFE7742EAB4965DD666BC474C966653556693C4290434F23 +184882BD6534ED0AD8F9D298D520C077D7488AF8077B1968F0CACD6111A5B1B7 +C7BE9586520108B932920EEC6F98EEF2036D6826EF1FF61DF6B2A5E7B847A3E2 +D2E83E69A98B826F806A67B193AE07A1D16F12965D34FE1662CCEA459A27063E +84B223AF04E1D4DB52B894AC4AC2FAC3714EA4482481BA5CCDB7D0303386C753 +4BF3846B5D3731AFE6CB28E7CA2229205AB9365A28C5A362BE242AE06F8DD5FE +C2471A010AE748F4A48026AEE972FE804BB7773E15EC36F766ED5F5342AF93B5 +D21A7585466641A6A4ACAB3F4F5DFF71514C105691AB636E3071E46956BDB6E8 +9258ED606AAF78BF1CFBF5280D4A039F96464648DA76495804D2BFB2B452078C +7AD1A80CA94DB4086314AF1F6953C0A8742E6DC577AB32C3389BBFCCD2893C97 +9ADAE394ECDBC855CFF5A7FCE17E32803AC7869E8AEBE94E8256DC6468FD2646 +31B730547958DF3C878F6DBDC65D048285F296D3D6FA067528B4663116FF4BE6 +2C3578668B3F3BEA1FFD3B142D4073C746231D8558A9F4F1A1AFE478DBC2EDE4 +78CB7795BB80F32A0D266E222D0AB34DCB18E17ACBEDA779623E09481D8AB1DA +3A6EB42BD7C7BD071269BB3FF0E5BB1483A9D250F07E19B4C1E2504288E6A034 +A7246343B50E1FDD622AFD081C3285BB5130390FBBD5547CE34EE80DCB810208 +C0B2B86FC15F494EC25310182FD011CB1837107484572294CF2E2C0F3F55B2BD +F2BBBEA761B8D9DB29A91B0906961ECF6DA690DC768D9F937F933C23668F0F7B +D8E69756AD43B7DD15268BB206F9D797607DAF18700A786C5CB449CE6D66F221 +BF281175340D508490AC5930D0D6B7DDA6646227D126BD9B7A50A134034B7D64 +DE1CA653847AD3CFF5001ECBAAFFFE074E356499D21D0ADCB3CD5BF3CCFB4D79 +BD72F8EFF9EBFAE629CB45BB1776AED53AB18CB7E515A101BADE4C24C3ECD09B +F0E010653DE7F5911C69888D0804E01EA353741B7E1FAE1281D9EC7D821B2255 +FD6C8F3E243027E60152937C777EB4C0DC62F9F0D8D4EE96875407D8ACC7AA34 +779AE87E41C49DEDFD6304D703121AC25D6E9A0E3006D423922AB6F58B7FE0CD +B7F5BE05BE5F499777FC4FB5BEFEFD1235629C788D4AF8EED596942AB3909826 +421B649434BC2673F9659119222DDFCEC623238DD0CA0ADB662B94568326E522 +C25EB48763D44DFFC79CADF6AD816A3BA2D42B9C1D6E2ECF5BE5B0D2B3766EC2 +9BF5048EA59E18DBF4C91AA748FE18E4AB6B768BCB4955580CF98528D97C87F2 +4439955D9D5E73D0CE50240FDC7C0A3A437A1C8733CBC829FD911C6FCFB27F35 +38B61C235172F755F2720447C62B0F20CFE9D5EB611661BC391934F883F473AB +31600207A21FCD9C4F48113E5075523E84081706D6FCA70D54C7E5389B9A66D7 +ADAABDD0616E07B2579E997502A4208060371D61E957FE380B6B48802D88666C +B29EED98F3AC3C2AEF3ECD10A363306534BD86F645E512BC6D97BA51D621F022 +603B3ADCFE7C2EF109D0AAF094C2B29CA2DF77B8AE90BDF43F7A376D8002AA72 +517F75E08179F67819308E9E76448791EC8B0C9FDFD07B43D4BF1D71388C3427 +594860D084A34586BA8E662942FFB8E97A08DE31F764BE4B1B01D83416EBE660 +609E22B574376FD7886DBF1C5D350C6A1A0F148D139F9301BEF6F4BFE796C9DC +35EBB8B9849B03CD46BF3DFE996B12DF256B0FA8AE190203501F06BD2741977E +61D1FFE8775434C85E58207770B177C1125408DE5BE4F4755CDDFD10EB300123 +2E380128086D7F6FFA2C7E9F898B1F76EFB5DC121F134378683C1836F800362D +DE7582775D12FE54A80EA4721C85E7FE23141DC2649F9CD7A22C8838B82659AF +1C227D10234F298E5DA1125FEE1C42F924E5A341D8E548872E15DB3CA1D0006C +4543383D7870236090B6B151AF797B803D802F56512D5433DF9F863532A70448 +8988F959A3E10D2A7B8F7C1349362B97E9FF96BD60F4C01C7280058EB3D6D3A4 +D2EE22AD1945156C0DD0ACBD1BC7BA2F28DBE12C6E8CD8C7B9FC376F46369E1F +7A1D948EC5C1C5CB03CA6F8DD19BD2450E3132052304B82016A521157CE0C085 +264555869BDBD9C4EA06A6E2305C3F8DF8B48267A7B216BD321671BD7E781EEC +1567787D43895DB5556D0099162FAB3709F108BB6A51B249B7CFFEB2ADC25EEA +26DE7DE905BC52BED055684C12D1651DBB3AA3EACE20AF48BEA6BDD6B1BE1B80 +E2D365E7C1FB662086F4D51CD4798EFE99B5910CAFD0A9901B9424693771CDFC +19567ED5E003EB523495410B810B3EFDADDE0D2F66C27E9B7E1CFD6D5EB49C5A +63F239C964EADAF9B6C0994BF5773BDA6448F69DF078CACF8660D9AB8BBAEBD2 +6EAA6B503BC4742685A99689F46BC0FF50AF35909EFC978A523851C099974B64 +9CD59766246A7F7E1CFD36C16B3459CEA533ACD5D718884E11A8DCFF9B6CCD43 +D53ADEC4BFA36F9D878C18FA48FA538CB47AFC1366AE1CEC893466D8713CDA39 +1A08E2A32A495E692FDF4061DDEF5FF716ADD8ADFB1F85E2F150A7CF2A4A01BD +1C93C833EFB20DCCC429E35493E603A7A2B0246AB0936003DBAE7800EF36B25F +7A7CBD50AC4A5863320D891CFC05509F6A3AEC29A2B21565077D23DD03363A81 +703C15D72627F8DC414C3B445B7AA0023253215DEA15ABC2C1F159481AAAF9C0 +AE4D4FACBB48CF83A3480B79D9F2E2CB98C606D78ABFF4F94B2C09752A31EBBC +946FDC415AEBE73C1A85D379A0B99016B6480AE27EA95A83CA35A7992AAD4183 +C42BDBD6190B2198CC0B48450CB65C22CCFCE1A81C0620712E8332F17C48BBF2 +BEF35A67F0840ABFA1B40FF14B0F217D071C5B37FDDEAC519139B88AC04C52E8 +52D057FABF743C849DC6D3F6B1275D5FD173F0F25C31D55DFF6498C8161FAD22 +57837BDB4FD169A17F45D9214420AA797D44A1E33F7F242BB6ADA2E838E217FC +8F85CF785146CCF4759747F549E5F8BF5828EB86264D67617B912F3B1B6CD5D3 +CC1D33F5C15F0D5B23F48C4DC40FFEC56D01D78B2D6BF18D77421EFFF9525E34 +00F389B6FACFA172351DFAD20E84FD7A9371BE9A5BFEE4AD8EAA458CD66FB6BB +6776DC59E59FAB1B8CE9389220992E18AC7CF1CCE49BAFA7A0B401E300B8BD7F +83E6551504899EAF9A7338D8DF4218A541CA447AC234FFB0C5F08540F9994B8F +3B6CB6D3F821D60BF3E6378737857435189325F3DC8ABB3E95A3FA19276BE44A +B17C282CCB5FD2ABB61CD73A6DEC44F25034DC4C153F436E1FA799CDFE808620 +D3C80EDD9BAEF48E730B37EB2CABEE4565DE8844B48F2B041F4528F78795FB88 +E7EAD240C1E5A985AAE1C45EAA9AEE4C76E05610124A3B703C710F414C5597FC +B9DB61B13B758D4DB6AA9EB57885A07C751EEC98195F02CF945BA2BFA521422A +47628F63D14308D514EDC92691AB271FC52570687836C84B8DAE44FF6253B3DB +DADDDD9093745EAD3672817CD27D5C97B4ED800200E0017216DC8C3966D146DF +65ECC0E35E6B670178B9554BAC4AD0A0CCDE4B271359D8AB712E2CCA8ED74DC5 +CF438CE8A6C70F6E7FAFAC10F4C8FF6928160439A610E744281D00F99642B856 +AC663CA99600BE0903801237EF19F5C699E3D5B076A645618BC8C19A5DC3E690 +E39F5F582FADE9D140688E3E79704CBC2BC655D796F2C15883E09BD61A700FF0 +292860D5BF7E3E0EC99CFE409C8CBBD0753C48A938DA8D08B43AF97D89D4EBCE +798848195356F095FE6B0319A93F1DAF482B3B1E3ED67236215CB10D85673224 +CD4CA72E5CA213D81971C1B689F72FC341EFFA8BFB27B98676A3F58F96722B81 +552D0C57BB4EB64D6671DDCFDDEF9183BCA627625608C711FF8D593B4904CD1D +30B4C4F0BEB010624219D0AE0FECE41E77059D811CF34770FED28EFA0D7226D9 +ED3A5FF296B8B7DADB600E9D378169CB20D03E155CD67A27F253BC32886730F2 +F2CD5EFB2DF7ECA8B7DE116FF113EFDE8D1A279F785350ABB361D228D7D45565 +0808F17A2A7E9F96876CB0645659143D92F24D2BAB519E6503B6556ED4C8BC6A +8FEC9773CB8A0EFDF598FA19650209E15548139CEC8D888F4FB9A3F7B5E35F58 +C28E344A9A73AE19E0E3990195C58AAA29A3C64DA97FA0FAA27585ECEDE23743 +62AAFD6431AAE6185D8611C4F7EBD607D488BE416D56603CF7BB11CD77472500 +435C40A75D06145000FEAAC8A946B2AFD2A971E8FDD34092919DC6CF3606DC83 +4BAFF20C1B9D2E5903BD17322F43B797458D910C7C68B233A0B8B40EE1B6969A +E6F12D44B94B98CB3EDF44824497290B609037645C85E55F6E6494A44ECA5DD2 +FCFD98F8007F396672044E1468D92D1B06A3597D2FBEB32202DFD3C495C7696E +21504A670558F6E6190E319BCC7D84FBB7D8E4F35C7E6BDF380F4B1F0A0CE29B +784A102B950925884792A042463013C98AA2105E957CC0FBA0A8BF5A04B0F99F +6EB15362711FDC8759731B6871FB1E60E47EC0396151041B701677A38D0A4ED4 +B9606D5012EA315459677B3C55604E2FA8D3D47AE694FC7FDD0D056749A2E1CE +BB69C67A55E7042F533F17D672E42C8E0C010D72CC08363552342FAD57E22A59 +758E895487BB7FC03D3864F34C3AD10DCE31A2F56BDF06DE3B7DC2E32BDD4207 +CE39BEEC5AF69B1E1660DC2DD8944E750CBF2EEFF15CCB968AF9BF337766F3BB +9DD9251B3CE43968B6227C0F6806101AEB98444154D645CBE85B9E65FDDFA14B +684BBA8BFF7A1601C6A7DDDB7516F2A69B9F5D542FF78730CAF42E71C8A1FE42 +105B27283E8AE999A8EDF8F9AEFE51ADE5B2091AA0C5EC78585869B7D50C06F0 +9BC5901017DBA6761725CF639A01A969AFE8129BBE7D1CD34F338EAEDF1A91F6 +5A21DD9C507D0C27CC2DF65C2A83D4C4C1E6B57A4F5EC799FF44D3AE7057D243 +AF16232894EA0C963790D3278351CB0EFF42AD43DB987F9047B0CC063A64E04C +E05D8F2C4E74DFE899B61BE66CAA5CA613BA0EDB91494B9B613B1609A0F8F6D8 +83062887E7B863FC2E97E1D97EE99B6930F42DF9E1928140BCFE3E5E933B826B +3F537F38B8E7565FE1EEF802D30F588427413D54D8A39933BE75001B4B770468 +EFC6393F6810D02E5DB1A7348118052A00D6E4C1D4745D21ACD12C2516FDA833 +EBD94168C54B1359AB670CF86F1CD00ADBB64A5E7E88C701FDBB10419C8ED9A0 +1D262210A0DB2E03A9FB7F82332966876EF675CB4E0619E84163DD97EE146B8A +B0115C7700C337F637563B6B7DC304FAE6CA5D0E903E9FBA76068B9F3C72EFDB +6C9B1E5F14D88DCEB689984A0D2552B881FCDBEA55F7366BF7964839CAD1DB43 +C0F2386818F1AF73F2177C2480BAD174DEFB2327E750E0F50B4FAA3CE579CEAC +B01380D55FD25812DB806997A5446628BDBFF77ED68F3C16C016542AACFFCC0A +FC2684CBB5E77AA8451DF512EAB8F15DB7219957231198870DBCBD035C69CF28 +26FF833F889EA78DD18F4C14E1DC1016EE22E529800BD8C879BC142EFE38DB92 +6CC07F8370D946E174B6CE530BF7B717ADC5B4E78381E1B144B1098770189BEE +00984781EA356F451A59F161A2C8588778776C66F82C8C2E6923ACEDA5806E91 +2BBA20C568F69F6AE3946F3333608E8FD2494B194BECF0D300D5E4E909FBD60B +FA894A54A62D00CA2A46F5B4DC2D9A9F3A5B0F04A0A9E535EFF3EFF7344F14CD +5C9296B6AE2E3DEFC7D3DAA5E652A3C0F22A8F6EC1AA8B0FA785675AFD4CF431 +C35D26A7035FF7B72129DD48E7FE6A838113E1A09E47A35B2F8EFAF2A1A8C215 +9E4ACD754E6284D36716118FFE3AABD8139E57E9030DC0DA9FE790736DD0A67C +03D492652B66E0CE6A6500691D8BD0EEED0435533AA31D4DBCA3DA5D117E7E95 +0EC20BA7052CEDBD9BBA30AFC68900E998EE69E1B72778287A233B2BD3CA15E0 +F989DA35E66A602AFCEE90C6E8D877A430486B8C000717CCCA9E3FE551A08E7C +E9023114FFE56A1DBFEC17E59165DA7FFE1D7C43793B7DCD3E40A79E35E417C1 +E10A9DABCE129A79A9B3060C6583FF5FC3F34D5A519D33C4A9E1DA84E492DF7D +3EDD178FEB9764D0D26C4CE8A87D77A3B4BB682E3534A4D31E7D25DBAB922222 +FADC2B82BB2F5A4265E09D55B0701AA802563B427A1DF4403F083C75401208A4 +EA2B0A03F9A798BCED351A28F946B47797764372FD63084563CBBDF0B2B84E21 +5A3FB819F9591F3181243151B333690B57D65A1CCE64130EAE728DC69ADD89AD +2CACC21122660A4E7FCE87038ED4FC02C62CF03B602EC2ED65CED0FAFC3A4D5F +5B953122FF091BDFC0CFF121893141A1770B64631CCE4016304C14313399248B +29FD2750972DB466A7A7ED56BC2A7C991753F138348ACC1BED3A1B8BF0B74146 +CB09D777D2145A6341C88F44CBCD6D0E100576403CF176AC66B80414174B2D46 +09256E4A8873623EE92C2A3E3F8EC40824424B9F09CEEF598A84049C3002A73C +A68607519E4599F35DA4E8FAC8DD6D3C7DB490B188C6BF0490D9456A3BED1A8E +13BF001015D9BFA3ABBDF88BC4F3582210B6BC71B83D93E0713AC5512D70E61E +1F96FAC3E1F313C5D29F0BAC11667E5B28243B9E5AA35E597A5B03969E65BC7A +8DA8D07A049B2C69F2BB6F163C1ED5794AE03DCE4660A48952622C48AC96F662 +A5DC8D7676EFA86C5CDD3E4D5C0AB0FF68DB756530CA204A8FB55955F953C29D +70530C6445418A198991E043C57D214A3065B420B679E35D086241B2BB48B210 +1659E53C636A90F01E0F7AFB94DC41C2E83C1D320E6AD0D61DC18FC87C2AFC33 +7F2338D2E71A5B99832280DC3B27FED7A86731C106CA68BAADEEF1A8E77C8B43 +71D51D0C898772AF1233D8AD8372698A603FA2762EFE64BC81E1F7E98A3209CB +1912D11373A35E9A80397CB8B15A35B42C819A9A174E07C28E6D660D3A622DD7 +2AA79930B7061541C6208DF061A923A60F7480827C47D78513C6D0A6F382EA11 +AF29E6836129DD7F8B0243B3FF3C9AF10F75147F96C854EA54B7DC37AA412E9D +C2468C7737BF72F2FF771E104E2A9D24293C9A0DC0CFA723226DEB7EBA09F317 +B68D8A70853D708757EEC9941A4A07122D5E2CEF04A9746CE4995476511D6BE4 +6F0F6AFAACEF56297051C1DF6780FDB649A641340A61CF83A8FA93A2D03EFD66 +A7D5693AC165508FE169C41C8B697ACEFF39BF22E1E23B0E7B5C72CE2B487DEA +961EB3D1371137F66AF4B380802780C0FC4E68DAA86EDBB71647AE0E31C88B84 +B87CF2A69AF1B151B73F299042C5F7703DCB2CC8629678320DBAB9C2ECA249E6 +0AB435853082E93BD5C019C88010F6CF82B46C6C7F2B31AE88CF62948D76EC98 +09871BE5549478FA43F147EB95A52CED2AA23AF858CEF90A2ACAE74C54C23554 +DAF59756360CABCB2474A85A441552BA3FB47377EC29F2C6A1F67659584E3B51 +9792D29657A8C6C1C4BC8BAA96ADCB7D2AA8ABC3C66EF8BE6DBB304549D764C2 +2CB9210342CDCDDF877EB7F2A73CDB19E5D05B11C480B9120547A987B87169C5 +15E8210A9FFDB7283511F50701528BB8DE8D55BE050D477CBD3FE4B1E6911CA1 +853F58089C8010B2601D67E2189C29227CA593139B00ED3E403761A9CDA9BCA1 +339BF77815D94F2F5D9072186F2FAB3B80A30073BE14FB29B7CC6496FA892FE9 +8EB51E24AA615D5F3772E03C6A87DA211D3B86702648300AB8905E7C3AEECD2C +2FA61500207DF72B2837F20505278C11C572BBFB172F5461AF07E1A88903C9EF +CF7275A02E81B7038F1ED00DDFE60A90E0B3BFF35502FD370BBE91D2E0E5CCA6 +79971E4C339B8CF337D2FDF4CF0C084AA58E6AF16C06F4034DCD6048C58DDF2F +E51DAD62C29D34CB13FBB16E7FF581514E16742B183D6CB6F12B21C3B2758823 +52CF4573322140D0D5C4E2024F7ACE5F6E327CBBAE1563C64975FD808648B267 +57B7FF03B1BD5593F52EAD3E595D3E85A7B9AFE10EB2BD6D787D52C0BFF0C457 +4116CCF971FF5F22FFB1024FF769895E29815F17C28B7CB8431BF3CBE155B03D +C44E79D4C4E7E35039F148B7FA4E9A87C77182AC4331988339E75C1FD5669C70 +FCF70587309F57E3B78C65514339BDD15B2AA34BBF811A077D7E8934AF90933F +97F756FEE92BE903E79F1E6BB0FE32F8A5CCA55C297B3091A171E3428A86B4C6 +83C908A4639B3C62663A381602FFC26B7B5ADD53412B22DF596611C7A6F2223E +348447A4C6D59A79E35B0095A384B60C7139670ABFA34F2C6E3C6FD2556301FE +4F81639E880398A8E1262EA015D130D94C499D276FB6720D3778EB3528442EC4 +6B5E5194EAE81B27F85C0698A8A3DC0BC930DFF2B8861121CC8EB6DCCD42FE6B +4F93DEC21926DB179C7B12697883B6BED238FA532F0436A35D66582AC7A84C05 +0FD404C7F5BFA680285D4EF124B3EA4C72365EAC1CEE50DFFDFCA168B52E240A +D020D8AAA3823BDB5B5657112783F8275389508E83EA84B88B89BB3C5D3AB188 +370ADC7530A31DEBFE2720706487DDEE12289B0E24222D7390F78AE4457A20C1 +50815ABF6C307C40D790DD668EF01EB5D6021DBE4FA8FA8A78227EFD3E3B0B7A +026520B0788856B162DC3763E4224DCEFBE3017AB563C430EA4C649C8D32D73D +5C960AE91A4A778E53FF136B2F1DAE45C48B3A99B52DD75930DD0CC565A41811 +48F2C3598F425631610F564349D3DB66306AD281051A2C7C48966D724DA6F715 +CD8C8D6E900FC3355525D960110AEF5591F8B28254B9606993020277D85C13D4 +E1E1F10FD0092A08B94D0D50334C044AF133B84BACCDD2C955721991229E8106 +0585D939E21539FE657A7A76F64D146D7457D17CE2A0445BDB6C185D4B3B052D +4ABC81D4135D5F268DBA4259DEDEE96464AC15A526E6F29F99F8233E18E658BA +905040FDFA76895DC1372FE3A4E04C524CFC0D3C33293BDC735A382A37DCEACA +C6D00452DB9DEE563D955F2C8AC385934DB4E90686C04B7885F8949623D2449F +6EDA0B985BFE44D1A9DDC475CA1F13FEEEA4B9B001614E44325595BA50110617 +35AE26253194D9D456DE030EA08AA398B7EB5153A527158889251310DB2402C9 +E5976DCE7F676B09ADDAB43FA4E9F1B497D31AFC6CE39F6D5E6F0AB328F63C8E +A568BC3885866A0B67359CD4A8DC75A5D9B9C15D4DA7C9157B374DC46D06E86A +09C3CA2016D3BD5A2B052A387BDB4B4F0D82C3F68A245855D415F8ADFCFBD327 +50CD63D609E698C6DBB78C6FC83DC60FCB5AAEBA38EA0F3DA6CC277244C76C8F +FB5505666C0D7EB22968602134F7985B486330CD9E3231DFB5ADD4DA83AEAD0D +8275235AB4FAB360B84B224A3C09E74B9AB16B1F53DABDAE08940A60ED0C1254 +DADC1CB72CFA17C4567838C313D9FB20D28088093BD3066F914F60F9B5C9C998 +C353E6EE80619CB44D4F14C33FC7980CB714FE80CF77BF1AC21947A39E5EA799 +B6563BEE8A7F3178C9576247A8C6D34CB084CCD110D637903079AD7115D549D5 +D2C7700391A2AF356E65C5268966CF36C0EC24FB19465D34068C8B52E18D2D5E +856A34E6E428BCBD900CF6003EDE92E9C8C39EC4702BDA42B21668606E15D287 +2F75318F622364BCF0B7FA78481770743BC00FECAA671F7B9E4728421CA3961B +EE2A5A39F1BFEDEEB81379D1E1051C25A3855A65BE5DB29B00A2A2E9011B5C19 +C767AB6D6AB8F4C472F365DF2459B48D596896E5B14A5FD33BEE895B8E9FF27F +7CD6AEE3BA14F0ECFCD35C6F70157A95060E61BAC21DA35073F99409EF29FF7D +04AEE73AFF5409B42F664CCD0C48A3380148244C23B1C87A9248A7261D50FEF7 +6795EFBC848997B444870A6A7012D59E02C699E191441D06880D7D946EC867FB +38A8FC7A0BC46E6248E65E6FFBCB908E919EA5694B8405061133B2F19AF55A6A +A7871172DE904F4623C5F9394E8914F173EFAA59912DF5CBF7EAD8427FEB267D +497915C16B744A575428AB2C9A43FDCC0AD6BD9A1112E2F8D76B9DCC54DD110F +A68B914F2DAABE310FA95BE489055AF8D1291DF1107B614FAF5A48AFD82EB0F6 +A662EBB941875D666B61C6745CB3D28B32397699279EA0AA49D62D724B6B041B +B981EF79C0802D2883C816CAA52FA9F5A94E55CEFA031DEC3788E625DD5B1382 +2906B63C2B56C82BF192403287D99337C95749883EA18220DB2692F40FDB09BA +2A58523D80230DF9DC3CDF7616D34C5327D252053B57E4831C81FB09EE450670 +289BF355FF46855B4DC2C2A9ED1FD973205FAB0DD7EB4A1CE8C7082613C194B9 +A69594CADC6F2B71C901450B706D916C548A7E09FB64C21C7E7905AE4003E533 +E05CCED6F23DA81AD48BA724A739C8EB94663A71E4AE5EC1108BA0C3139C16EE +E56F28F3F394A799F0CB8FF2E740D2AC516C02293EE062CD063CA928B477BBCD +1E2DFA98C99A0DC25CAE46F255CDB0FC678981BF19F04317F7FE4571C268BA9D +A31E0821E183BDF3A043F263C9CACDAE461B1CA2B3FC55D24EA5CCE2C0C5FA4C +EEF68B2C0EE9F69B2061B5B4F758D5075F77779C4543A856F7620745F29D71F1 +93A32505D54467EC581C635A7430BA296351F8D44A56DACA2105894A5FB1AEB9 +B2D157326A7F71003C6EC3802CF11DF323B847DE7D7030560E31B5413CA7DAFF +1A17969D3C9278719ED826BF730ADC9DF64737B2BBF46F470BEB18F4B52A29C4 +15900BB7E845BC78A6D6BCAAD9B05C62C21AC3914E54721799414BA11D4BB40F +C79B29830DE8E350FD105FC9828580C62AFD23476B502645CA83F29B1EC19509 +B6273AD95A48DF76743938B9E2D00DD0C1719C7C442D19CD783443146FA59AD5 +97018FE5719AD51E80BDA7113D84480D6970DEF24567991D4F492D2AEC3A095E +0639D44674B2EAF1246F3A3E303FF2B13752E6E13CD456B24476075C76728B9D +1552090B701B68E0403159E45646FD29A5C6D90F2B47DB998999549BBAD27099 +4CBD8884E5BED487BD252DB0F5673430AD279CE4DF33DA4554BEB667253C152F +87043A6ED2EBFD1598983EAAB807658163F9255CE2B06FB1B4BE4C4DEF5DD970 +4B86C44F9BB4F001B81FC96487C8F098183877AE2D11F1E3E95D6C4177AFB9E7 +29D222D2AE4B367B0CBC99C136B169BAF121EEDDE32153D5B5E91EF1B1863B5A +77D9843C6964851321957CBF79AC95F9AEB4208F57F95C20DA6E1AAFD2719DCF +9ED3B35DD6824327609456107D27476BE90C44630C6516C86B089B33E2316A72 +918D5ABC5A103317374AA4ADA7B2A4D6878D5BBE65D9C7944856560B05BE7154 +806A0EDBD994D43EE7B64317BEA051AFEC63F754C3AD10596C8B7DF44B613E4D +665F355F4E925BD3F472BF4347F07CBD53FFFBCC9CB3EB91A70CD383471A9CEE +315ABCA987921A3DDABF5929234EFF02776D92043A5772E75C9F34B9FB963642 +E9829993651DC23C9920F3062284EDD73A1903BBCC7970CF7C73107876B23B95 +87165CD429D5FEECCA3604B342F52F2354135EDBD61F72E44B1EFE66C4AEBDB7 +8D1396624279B6C79E8496742DD7A6AF9C02DFD4EAEE12ED7C9B6D4958A4B249 +9A7118C7EFFBA274A9569891B46DD0D3CDBC4C9D2B4CC72C641A24CE48708D21 +7722D044F801DE0E656B921751A3D60DD7F9229AC79C3715A2E44BA32A73E57F +259092AC8E10CF35E239F272B8466E17D9738B55CB9C64A8DE2AA60AA95F7454 +0F29A380D4E735BCD50D3EF5BC74720A900E45840AE0EFBCD625F1BF8C784E82 +C896C1762E9DAB2965276F32DCEF063C6F64709284BBD1E4AF6E5D399C423302 +58B780F6A32E20E04E03FD959180D6DF0FC6982D0100CE4194FC3C345011E0E2 +6860DFB77B5E3067AEC5EBAE0AF4639F8F5F3E8E8722B6F734C1AAE6107B673E +5E033E584C9A9A0B8BEE57E186E1AD27963DF9632A331327F125896E7E9803FB +5FAD92FC6817B00B4E6DF907F82930782DBCFC9EDDD068471915AC7F7CC71877 +13023744C8CA717AAE350564E617B4DB858FAB9226A87874FCC226C2C0EAA971 +1FBB9ABE5FB5B4D5871FBA18787DCEE2998400F921566CD6C973C28C11C31D25 +1E1124939FE891037BFC37FEC0CABE8F844318EAE1D440687F45045E0767E18C +500CDE3638733035FA968CEB5D2382F40C64D01403D77597069F5FEE8C51EEBF +2857DF09D89A33BB5E144524BAD6A793796650CBE101D82B2D44D17ECB9B15D5 +9CBDA1644868CF80A1BDFCCC7B2D3A8CA94AF695916204CE74B44975CCAF8006 +91A6FC73F8116645AC29180E43261236832E3F6AB757E39149BF0F47D148308C +284B50B0A8270B6220CF99203FF58E2D81CD5956C1DF67CF3B0B03033F07DA60 +771C11EDF277DFBA346E60B0122C659D8BCD1F7FCF3850972487C3D4A5ED6D96 +33F8DBED21E07F478B3C1F2324330599EB6570D0A5392C0387B21BCA8197C258 +1725F14551ACDEDB213AEEA9357BA9A8AA1280406B8FCE04D1D7F4C8FF8CA79B +207C56D9641624C54BD75A384F9FB7FF0B12C534FBD0B30B29AFDC8BD1FCB465 +065BBFD6C41521E9D542FD57F6C37914CB27CA8FD99A6F6DCFF9809B7CBC5540 +89C527E0ED1DE3A3828C7DF788D412C0065EA9599EB8C400D3DEBD8B52D5886A +8BA648163E2BE838E522E7265BD101058B47B85C6B5196EEED9D26435E3797BB +B9659BECB66CC4DD4BEC03B393BD825A0919566D8E4446C21207C3030F9E3574 +A492FE5E2CA3B1F01253413EF8180BA2F53F7E978F41EBA2C7AC61353E71F3CC +9E4AF0BBA32846567A27F7BBE11D29D48FA8938E04A802A2C231C9EFC761F826 +D889E0425CCF0889490B2C0014E4AD7764905290084EABB39E50274F5EBE180D +C62349CB820CE7E3577430C01C322C044152FCB5F7CC786755B992D2E3ACBC9A +8A592AD0266B0391576BFAA177A32123E633638575986048F093975E50611C9C +930882643B12B6E13C2EFBF9BF582A539AABBDA7CBCA4B3CDFAA70B0AEBD7D92 +25B94EFFFB52F5E7917F93816E80DDED78CE01F93702587936B585D21B6D08F9 +A14443C0F9CA4F106D35B296B5B3818248389381BDFED56A8C7E1A3F26E14937 +718C587DFD611CC547B8BDC2126CB8BFC6193BD14D0E0BC0C325F75049647AEF +EE4277382899C8A2E08B603AC686F6F5ACF2BDAB6665F7F0D7F179822C7B6386 +9670A5D8E57568EBA3C024B845A12C8C8E7065F92F34A3167A0E436CB22F4200 +621B558813CBB8E2EE2AD842CAFF4830E587634344B0B55FEF1DBAD0AC5891DD +8AF6F0DB42E2ACC4254FB9A5A34C7F72CF9259C0B72F4772F18F722B1A28B18F +BF01757EF7D210D2FB0678B5BBAF2C73194C94A06A2A31C4CFDE6B825E474AE9 +EB2B1F87A18E659E9CBE882076271C83A823D671748DE7780184426F20D997B9 +1EF4305D74C2350462820FB57B7A5CF5B5114EE771491149CF01EF5C5DF73B97 +BF1D27BA0F9CC59F2FF3DC7D8FF34B6F39A6ED770F9402D0C4FB5B8655AE9BA2 +DFAB14DFBE3420F9E3D7C612BD5B339B2B5E6EEF02D98209C836A4E20E1F927F +055261228D83DCB2F61393FB34CE5191645D09EE0DD03C70E6B07D3083A38181 +30CE3DB58B9BA3922A9EE272060C2F1275DC2B902673798B6AF8F481B6C89299 +996B69D32AA1EA559BC0E8EA45DC6D0674D505C8B8460FFC5FDB5D9CDC59433B +A49321478C0AD3C52A5DBE6C60B565FBD1A121BD223BB21AFA0D138E0970C793 +3C9699791E9F4DADB833EA67766D8D6C185719A5EA284CBDA1A740B00DCAECC5 +8C34515236F6FF7C3D579263468986FE19577777BFB1109F398EF749CB223404 +75A0E3146C5DE422F09B89A8818DDE7A202F5F0F77BE91B1B5A77DEEBD312A30 +377DE334CD5B0D45F65123E722DEB09F67EBE17F8794BD7BB239A2ED9F68C024 +FD46810FBC33965DB3AA59C8D45A247D8611EC7DB4242C64E7DF74A5036250BF +675A3EFBC57BA3B045E9EE219E5740A2F42F6A97849C847FECFABC10D08612CC +9F9D369F2811E3F83E526BF5DC45AF2138146FEC19B1A1D55431FC1D1E9C2A54 +79A56A473B4BDCC9D349F3550F8398E411E23B28CA187AA9185F70FB41CCA800 +72C7D018FB807132C678575F9EEB429537ADCDBE901C5BCDCB02C8536E2E4DC5 +FF7779D13B00D7FC14509DBDD73CE400E71892028DF6E0F6873F8C5470C4E189 +DB0CF99138158B3A434D678AC518357980944C83EA57922E05BE21B5C6EE15BA +AABB7032B4E5265FAF9568A2D625E6FBD3AA735F56D3E0861D187F487C1D43DC +5893D8AD8DBEDAD725F0B27823D212DA832EB5B1B9DB09960CADE299AFC1C288 +DD42E6CBAC72AFE3B901B5ECE04AA60025142717E0BAA99EA46CABF138E1D537 +B870D2C54DA448BFE1A52F7F65838EC14E194AC3318045566983CBD9A623D211 +5E00EC7A016F44F9F6F01995CD6F29D1F0EF5055DED50269E4959FFDC6A431B5 +C368DE86301C8F11D22269A1CC17FA32F2DF75E25BE046ED84A8EFD316B5C837 +A8751E59908AFCDAA287A5F3207C4962F834863F9324034ECE5E52E853B03D4C +555C068676DC506FA61692CC611409D6E391D47003CEF855614C8BE747CFF0D3 +F812DD4D00CA4808E6181F48C47BF05669A7BF6FFB8086A15400DD7DE5504907 +8E986ACB7E6BC1D7527C07C183FBD67770819DBDAACD2A42F92383891B1308A8 +0ECEAA7CBF251FB093463E5E04073D11CE549445BDA44B899136658907809B09 +F982DFE90E838F7DAF616A149920084EAD2631A70FFAE1D79355CC1ED7471671 +9F9443CF76633EBF302D8FF5A52FAC37739647FFC0BDE2253B78A4D3FB1B4516 +45F6E3939D0AAE2D7C58265FEF253958230A392F6A3F0EC15A86725BFCC3CD4D +04D987D92532A34DE1D5EA52C3DB52467D0EF321F7482DA56F5510DCD2E4530B +BE8B241AA58E45C66C491184C2BF9E7DB86DDE442BA31A23F9051E94B6BE2FB9 +C50645AC4424D9DEB70EF3AA31A629238B51B0AEF2671BA206F996002BD41EF9 +975C6339C00FCDC2069F8199BB2999CDE805B144DFAEA00BC593E2751C6CA957 +5095DB3B3F07431FABD85675A1933F416D60DD31BC70E50721B5D9AF5D36593B +4E42DB695B6BAE14DC1A34B480731D0AB8DAAFC7AF10F9A1F8E16D757BED3DDD +62AA54B68463A1B4FA1D2349AD8C6B581B52373C444FC9FC57CD5903C76BF3EA +C052B511D96A620A11D6533093483ABD264E795B7B2B2773C1DFB8B412E3D8B9 +AB3BDC5ACCEFAC42B1ADEA8C534EF7020860FA9A63BB9E3ED8B4AC4D5221F795 +66F9ABE68CE5F160F2F4A7E247CCEDA43BBC2FDDE31FE7A2B4EC56C294E42D11 +EC3E75166A0486F7B8652F2BBA9C3856A20BA4C2FDB58EF7C4ABD9EC4312C5F5 +A41566EB5611FF52FFE11DF40218EB1FE8C13B0FC8149CC417AB2029E3CB9B52 +79B55459A2EDC81AEF8EB54D13F8235607B5105F4EA77D49589629EF70A8D5D1 +BBD7836D5C402476D1AFB6E196A89BB3F7AEA1597792D37D370F4BC19EEA41EA +00D9B2ABEE8EDA8641DB1AC5AE2FD29C208D1A0ADB4C465E3A8A5EAE18544697 +04279C6A0D5D93E408BE2CCE8D75FE2A35CFB8D7B4F9AC5424723A38E7D8F37C +16C8B712A7EF6CE4E27D6E2E9DDB6D41C9E7289388BED91FDAF09CF6C9BE401F +94D39963A38A5EEC4C937026170E0EE9271C9549F19FDADD2DF72B13A00D7A8A +44BC326794CE776AF89CBD474A645947FBFB29EC431E9DFE81370F3ECF9A848E +E31FD0F505D86928C3FB81380B7EF2E4592442455041810157FAE45BE7280CD3 +6DB6A062213220A520C146CB60D1135BBA697B789C98640585AC0876EEB9010F +A1415719E0C652604A118B54F7C629DD8B881D71756F3701002A469D62B23279 +B94E3E63A62B10EFC7190F9961F37CCDF48B36275B0CFE086E341287610BAEBF +8C8FEDB5E28BFB3BA6EB6EE3F1052CDBCA9014F0D7ECB292F44D4427BEA3F39C +6A432213F7658B4FC0E2D78A98DD30927664D1EB4F2BD071B73938AF86B5F52A +2452415DA9B20C472C6A28B0A0B3ED925AA20E8009EB21C158FC2B1EE3AF3DBB +CD24F94211A8A93C9F2EB74C46353E60D0AA8AFB5E428324481A9DA336B021BA +28891331E6FE0254CEB6706A193106D5CFBAD1A8EA4F7BF13DEAA63DE0F48533 +4DDFFC0B14764FB2DD3397D0E3F39DCFA3396AA1922C08EE331B2B758C83EF4A +5E9C39CD869AE5545817F70BF0FD41C047B635CC5D5592C6BDC563D3214CD19C +F926EE1F1817C88BA1370C72FACCA14AE14EA0517D9500BD0E5ED727CF0BBFEF +BB314830AB7A3F4C0E3814711A67E4E3952ACA56FF20548566012E24B02C7CCF +DD70718413FD054C4FC92B390B4424930CB273106DDD53B736B894619D9D200E +CDE1B27CD05D4BE4F935C5F3DDEB4C9CC9BFBAF603ADE044824476230DBB51C7 +83E37262D67D9470A064DBE4AF8E4262CF2B43ED064D86502C05DEA86EE9E1A5 +A4142870B680AD40258204BCBD6728509E15F78FAB2BBECB5D571FC630F1DEC0 +A8A341B7E330C9A0053A166BE474E8CBCAD139FFAB6EFF4938C98CADF2B6B64C +EAA37E9A72C0321EEEA55B35906B957C3C2511FF2000DD33BB7C9C58DE3E4F82 +4EC7E2A0F2E272305AA0EFAB70C545B5B3B7C9B7C2D2F52F2C9DA8C099E7CFAC +B101EE39D0D65C89689646EC6B74055D0F6CBDDB1F7A53895FEF5353706726BB +586FC64B77AC5C3AB5CC581D58E8627910497562D277879CBFC3156438144CFB +97D28D067C73207C30F101210FDB2E0B6097D435FD2197B1AEA0DAFAD83B786C +735762234838EA2FFA35C39F367982A19DDF17F5ED297DBF970B9FF0043586F6 +7BE81E18A34252B718F1EEFF2BCC9232D355C7F5D154F48BF7BA9AC0787B2750 +E5C1E646D8266153C44DF306B130809EC984DF94A2D0554B6CECD04D7ED6BDA7 +72A56328F0390CFBBE36B2580AA83E6987D26AE4C58123088CAAD46E25D55CB8 +FBFBA3CCAAB74958A4F40F0A608574013C70B4C2730B1CC8298E2F40981E48C4 +6408E167D696237F9899C84F1EE227C371982652CEBF0EAC169BECC25AD7EA3C +ABF0F7B5A14674D9DC0F8159E57DB19E31964FA8D2646F514DB963B22240DDC3 +51C3399785F8153CE5FBB6D499E97BECF1A24F0FA1210EC51CC5F2042FD09317 +EF5E641E17C501309AC0BFB11700CCC7740A59A8D2BA6D7A9A414273A3C98A07 +B9419BD6F9DE4E85381BF876276D2C13A73E81488D856BFEF9DF4593106B0D51 +D4665CA073BBDCD3D4F301954E46DC913DE49A9EBBA24F0CB075A282B0DFAE50 +6C18914EC448E3DAF27D2DB066626D47497FD893E324B468F2A13BD6E814EB07 +8323C7C2AA87071251B909FFFB5DCA4E1B892297D765788F4E938A52D205FC10 +C55C0A3B6DAF8D3133F46117D9E71C8CB16A6D981AA84393D852BFB5FADC5D5E +8CB2B91EA1530116F9C81FF31E4F3A20197CAAB7279F0568EFBA2EE67F933338 +789C24BA3E74DDAFCDF6F01A8ACA489715C0EEFA0FDC5A826B38342FCBA7025F +3EAC9F6C65BBC6753BFB4F7D300020F90195BAB56722889792199ACD4494EBA2 +72A36829572DF2C72EF2E61F95D603B80491832B3E8C8D8EA2E6A71B5F00F7C7 +574A3C863612630323732596044F042BB94710672E1069D0157840363AEF8F1E +D480693DF69F705A3CD64A700650F61182B36A95DC4877B12C37E2268DF855CA +2538FBD173F362C8BBC7C33AAF04A6E9A882CDF6F950D12DF7F04D4985940CDD +60F7B5225328E63228D4316DA03B1F4819EB374565B51DF1073AF7ABF0AF43A7 +98C8245758C942D45BD8D59BCF0E833ADF180470D3ACDF163AC926ED7FDA99C8 +450D986A7C7433A25D5970787F13D820A6199D8453059D59E4F381530574E1E5 +8A72986FACD57CEA0719DB404BAA0FA0EC5A707206B8F68226B081173D52D61E +9E1D33FCB54D826CC4C1517D5C4E8661A6EAD9C8785ABEFDBEEC616C588F0C96 +822CDF5F15C7C32CF4E3594EC06F129AE00E92E84862E8F89220D34E99C610B8 +FB97FE59471F86749AA569BC8D13B17614E019F16EEBC6FA52A0D5717F305D8B +C4B5624A7C448FB7E603DEF678B3C2727D101243454CD0482C6FD5B1C8C7A339 +CA270A5936B1C9AAA00C8DBFE3A35DB168DE88157ED9B4AF8D8EF9884A4AE6A4 +61CB141C9753C039B3F805CA4C0DA2BC23D6072AB95C73F68C5C043B791E00BE +3F307EEFFE7425317DF44936E16A28DFA3D29DD391BFEC352A77C1B5596D2A5E +E59AE2D3FE0008FAC30A19694F41A491E50994756E0422B7D911146896D1128D +B0C51AA29A40DF79781BFC9B65AEC8AC9F8D5ABA6623096E8FA6E500B7FA183D +475001CDE84C6F37DF6CBCD0587BBD40F91052324CD82D3167704B77E4AB7CB7 +23D65748640420B3512A97A3F2BA94AE5CDA4F354A7D1F4B4602D5B287CFF92B +89989D5FB7BCF6E90FF511A33CC436146A90C05575EE1D83EBBC87CA4099D15C +EC51034C4965AED230A9C17A9AC20FE1CDBAE57B5D2910941A03315D2826C8FC +8C5A04C1D601EABDCED9B77B9977F3B78C6A43AD8E38681F64832C22AA0B2584 +46A86A6D1889446C6AC4E04AE220274D1FC389A68CFB19801FCD07F99943112B +A67CD3AA77D6D51DF9E4D87D86A722C0F5F1FB88EFA80DEDCE56F1CE41600A41 +FFACECFD8EF1D33831FF44C120A52D0D6014D9BEF28D2DB07AB166BD091BA956 +AB54D02410632D892EE7FC47660740A4FE92D7CE736FA5F80D1B6E1267D7801A +67AB4DAD9F30D061E3DFB67B6FABF4B3BAE9D65C6F78B379B3C9C29E838B569D +D74A3B4C01A5857C61EE3AF17E89DDF576746843B3C4A3663E59170D9BA20892 +BE4106C1ED10F127373B6010A99B148A7EBA061FD9F9423CA8FC89AA0AE434D4 +BFD47987917E1BE0E78B61759C635CC812877047009DD777315B67A6A319A12F +9F77928E2D76C191B49ACCECB996584FD390DA101B4E4FE25DA8CE592A90C71F +FB7D10B954CD8BC8C79EC06D5EC1507D096C83A4BE59403C1B47294F62223AB9 +B398A6A9171269D7B540C50927159791060EBD9313B28B63A2B1BBA724D9E13E +AD00F85DD841D5FABE1D74F94A7AAEB1DFD291AD6FDFE21BABDFC105F3DFB700 +89C119DB049F7D16B616BDEDD6486A2FF06F32036BF0B5DD79B3A01B4EA3A53E +914A237B0F1C41BAFA69CD5B914DAE06B9F3EAC7D558878A5454CFBE2D38525B +253CF5C058F661C67A652DDBC984A68F4DD866EC683DA31EBFAD03EE80BA7091 +01438BD3A3F8C65064BC3AC98909D6979A515B572FB0517CE383A154C90C430C +E06768A3F6566C043B8605AC5DF1562B788A411FE73F5C5D11564934D4471019 +0C515D6198569C88D3CBB7A72111D09C5DC5FF3F50BB84CE196652BD1FF3D97D +95E9C715EF9A3BF183D16C275572467A02A4B1CCFFAB98EB4C1F914C7800DA51 +52565CF08B3BDB3277851C966A14D9E9328E4D78F11FECAF8E71B6A3684A0282 +BDA7C8BA0FEA41162E2114F63E78B7E596FB6D545F77D904B2D9B32A0F666C26 +0186C4375B079F29372CB394082F5A43E137C096D1A599DE985FC5CD47C18C41 +7021800451593B50D8CA08739801C5535C4E3264E6CADA9CFBA4B05987C21F15 +F81AAE21DC8C9B437F53C90F92483E1CCA54F924EE5EA259B261FEB009292CDD +5C355B84449B4AC913B4FCD5EB71A8D3EE7D77952562878C5166A1C9E4FF22FC +167DE9CD2179B69AAB8B0AA9CEF53B792315CBAEC0D513B5FAE89323A5CADC6A +2B32859C5281D6A740A36CC63FFAFA1255E55A9895A76CB7CF71F432E49956C4 +FABC749C776B3B8C6A03FE0588339798B41F8F5E484A58263236E6186652653A +B2D7735ECDBA6DE201856DE24C2F4BCC42CD9D51F6F42FA283909FBC9063D619 +B9B257089A9327E438FFCCD4AC70F59068D26FBE8B8EE6E788C6AB9E7E29203F +9DFD3525AF79025F16E5DA7D94BA86F2143A7157F6A03D70571CBA724A0D2BCA +F2AB22B9FBC1A20594D0C9FA7F49CBB3A629A548886AB3845DE4434FD9A4EA01 +83C5C78F5330426DDAB35B4FD402012C0B05C2FD3673151384BFDA297FEF8E74 +54DC6742A24756E1FDC69B9D7E5A961A16093EE4AB04DD4B877497D7A8144A2C +3A80501705CDA7877D1D50B8EE2B2C97549AE0AEBDA9F4352E1B6BF512D5B6A0 +CEC79DC26443A400CA3DA85D1D038C176E67241C6983080E7ADDC7806DC058DA +FEDFCA543A07A625B1CA963C9578BD5DEC6FFB468852C545EC4904B01BBEAA4B +E6CEC3D395091573260867CA11D0E04301B94C80B9EEA7B160B9667BDC2E2761 +CBC3B87D3E8E0A409B3763BF2788ABED367483E68E4D37BA44752631B106D8A7 +4760921ED93EB618E188FE8DE96C3D9152D7CE8492C3B9A044A812DA092ACCA3 +1DFA29C59E39C5384548A7C9B6F2F91BFDE6C35EC1A969C3A4ED066F40510574 +94F25777B103A1E7ADBBDF8E09F174FAEE2909D52AF5F1DC7CB3FB0659BEDB3A +B99D62939070E00570CD6EF89C4687F536BB72FE7AB0FF741833BB0A60E6BE13 +E1C5DC0FD20420877FD4C39412DCB19E738D6D405A03C568F82BC72EE475A482 +FD6A8D6EF13997AD8643B84F46CBAF446A1EA1653F40CFAF3843A03E010FD3AE +FD09AB97CB5016589A9812814A4A6EA108332D569FE4854765CC72C161D64B8A +E14971088EFD968C0BDAC607137FC3C7B1438D2EAA3E12A7923250989F6192AB +B712B2A90F3CA5A9EF3747769E16AE7BE14D08688BC96002CC2AEF87A67E0AAD +4F12C061F097B736D464AA0CD842C792C1EA19D37D243B675FC3484C1707BEDC +B2C46B0EFFADCCC9F6A9C9DEDC2970DBF831FC1C99B0F108BFEDC284F64FA5DA +628691BED049FAA82F7DEF60C3C975A452D75D49B36F3159219E26D0984EE42C +5DBDF0853A101F4D2835F315C64F727838A75B13DF8103578BE466015EF7ECC5 +0700522F94EE04C0253BAFF927B3DF27E641AB961ED9454A4304F87BD22D6C49 +21707DF91D903F3C68ECA78721E77F26099A10C303DD6FDF636AD9FD1E648584 +5A5ADE21B279028054EC9085A18C9DE16B8E263BBF3CCDB15D4DF0CF2ADA4236 +3FC37A4CCC959B5502247D2652B231BF0B4604041509DE8CF5D59B58224A4FA9 +B322420A266B2EEABDCB846C9162D4B490E0EEC0E21C3FFB978754976F8F3F44 +8600BB14B959D50E0A3C729431567F825BF7B8372061B3C96CBA50A4A3132C06 +1CD2AF617180B9EF00DE426E23800F6C452F9DEAE99B4587CABFFF621A6EF786 +5D423A8415A250A7B676DB846A31524A783A407988C79414C7A6855FB35F04DC +EAE0D9F9C559D60A1C16E41825B80FD203A7816E4F93991DB0C2A1D45548443C +642D7BC114E133DD21628F4E455A4905127CC85965A4CB2896B713570AB76B57 +BA46D1C9914D5E90B9908F72CCEF290418B00EC22794619A951D4513DEABD376 +D80B71669B683D8BAFF3A86487F8F83B77379CE0C1356F16DBE8468B05B5A4DD +8A8A3FAE67 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: cmcsc9 +% T1FMT-V2.0, Copyright (c) 1993,1994, Basil K. Malyshev. All rights reserved. +12 dict begin +/FontInfo 13 dict dup begin + /version (1.1/12-Nov-94) readonly def + /Notice (Copyright \(C\) 1994, Basil K. Malyshev. All Rights Reserved.\012BaKoMa Fonts Collection, Level-B.) readonly def + /FullName (cmcsc9) readonly def + /FamilyName (cmcsc9) readonly def + /Weight (Regular) readonly def + /ItalicAngle 0 def + /isFixedPitch false def + /UnderlinePosition -133 def + /UnderlineThickness 20 def + /XHeight 526 def + /Ascender 694 def + /Descender -194 def + /CapHeight 683 def +end readonly def +/FontName /cmcsc9 def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 32 /space put +dup 33 /exclam put +dup 34 /quotedblright put +dup 35 /numbersign put +dup 36 /dollar put +dup 37 /percent put +dup 38 /ampersand put +dup 39 /quoteright put +dup 40 /parenleft put +dup 41 /parenright put +dup 42 /asterisk put +dup 43 /plus put +dup 44 /comma put +dup 45 /hyphen put +dup 46 /period put +dup 47 /slash put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 55 /seven put +dup 56 /eight put +dup 57 /nine put +dup 58 /colon put +dup 59 /semicolon put +dup 60 /less put +dup 61 /equal put +dup 62 /greater put +dup 63 /question put +dup 64 /at put +dup 65 /A put +dup 66 /B put +dup 67 /C put +dup 68 /D put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 72 /H put +dup 73 /I put +dup 74 /J put +dup 75 /K put +dup 76 /L put +dup 77 /M put +dup 78 /N put +dup 79 /O put +dup 80 /P put +dup 81 /Q put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 85 /U put +dup 86 /V put +dup 87 /W put +dup 88 /X put +dup 89 /Y put +dup 90 /Z put +dup 91 /bracketleft put +dup 92 /quotedblleft put +dup 93 /bracketright put +dup 94 /circumflex put +dup 95 /dotaccent put +dup 96 /quoteleft put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 106 /j put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 113 /q put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 123 /endash put +dup 124 /emdash put +dup 125 /hungarumlaut put +dup 126 /tilde put +dup 160 /space put +dup 161 /Gamma put +dup 162 /Delta put +dup 163 /Theta put +dup 164 /Lambda put +dup 165 /Xi put +dup 166 /Pi put +dup 167 /Sigma put +dup 168 /Upsilon put +dup 169 /Phi put +dup 170 /Psi put +dup 173 /Omega put +dup 174 /arrowup put +dup 175 /arrowdown put +dup 176 /quotesingle put +dup 177 /exclamdown put +dup 178 /questiondown put +dup 179 /dotlessi put +dup 180 /dotlessj put +dup 181 /grave put +dup 182 /acute put +dup 183 /caron put +dup 184 /breve put +dup 185 /macron put +dup 186 /ring put +dup 187 /cedilla put +dup 188 /germandbls put +dup 189 /ae put +dup 190 /oe put +dup 191 /oslash put +dup 192 /AE put +dup 193 /OE put +dup 194 /Oslash put +dup 195 /suppress put +dup 196 /dieresis put +dup dup 161 10 getinterval 0 exch putinterval dup dup 173 23 getinterval 10 exch putinterval dup dup 127 exch 196 get put readonly def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/FontBBox [0 -251 1076 750] readonly def +/UniqueID 4701553 def +/StrokeWidth 0 def +currentdict end +currentfile eexec +9B9C0887DB83FB1ECD8335B0BB39CEF0AF64F656FC6E5C230CC9D3A7346AAC7A +06BD9A40393CA15D3773A21E06B9B4254D3050E90726BBB09120935A8D448CDB +C799D90205A21291254FA633CC0C2ED88781EF21A5D45B72445C284FA44F8F39 +CF566976075A92E9E2947A6FC93D879C29EB26809ECB4409CBC8666526CCED92 +65DE661A2F8B0A16BE45A9DA17EEAF89B0E023DE2B0373DCAB997D60B7D7DC1B +4F7E650A2A9F13CA0543F3B080AE33D65F2802B8C5214D5B6180CD886ECCD253 +99CC16C5BA51CD8C2F5943EF3B7FEBBC41F6951EBBB60991342E76B6E286261D +E282B144F558FC13E776427AF8A7B2589A50121C4E28CFD74A2F2AAD8F44B6CC +8D2FC6C09B196FF2F3B57580F2D92F0ACD7DDE415F2830567CE4B6560BE25202 +D9D4886AF231510823457D00E29D865CAEEE2F697EFF80BB5BFF89DB01218A17 +F1FE570DD273492DB3AF7ACF86529ADABBE036A7437E7CA91DCB2E644C563D67 +0EF57503EEE64158B375AC18F3039284C1E3A18EFA72C0FF89FB1648F8ED3984 +C8D3862EC8C644C3EAB25B86127E6DC4399F9A9AB476B5E5A534E17E1118B4C4 +3D135A1207A11ABB75446E7003B42FAEDCF12EB2C53850AEAF1BD0A4041FB4E4 +0DA8565C86E80AC45F75F52779133381BF75A036572BFCD7E4576B1BF7F62C5B +FB1652CA0DF458AD89456F5F941CF4BC558CBE68D17F1EC76BE523EF2708DA7F +5FA9663586861AC907752524F88C1BC49F115BA3D24D0D7572A0344F761A7E29 +37E137614460C6BADF3720A004E277E7A0A618ED0D58C38A0EB68AAA09CBB481 +3C9E2073A5D5D38FDD0A31E3CB2399AD9DA6FC16CBA9A6792D02982A2C390398 +8D4AC5E33E7E91662D06AEA787ED73A95D7FA1112D074686F4DC2DC754D7C84A +4640F61821067DE9C04E4E431300D7347C2E8161C050DCC61F298437A0F95A77 +19D1606BA794F6EFE48A250174C266746411C4603B4CA9CAFC536D180F40ED24 +3B45A3FE2501AA662247145ECF864EBFBF8D0A08DA4940F4EC99EC3CE2789A73 +259C061EDA69AE360BF94588A0165315DCF3FD644E74A6CCFE477C2D422D4C7F +237E8FEAE77A96BC99C160B54EF4BED62AAB709007664BA919686F4415D1CA02 +1F0D4BCBA91257E1EDBC90496DDFB478109EF36B0363363064461028D2BC8DFA +013D2DBA456B2809A488595590BA5738A7FD971FDF2F5D20B33BBF008B957D63 +C4B0506DB39F0C609802C6F7AFDEE93383BC960FFAEB5713C8ED2459FC4A855F +8B57EA91CE30F65D1872AFBB811F3D9BD15732641AA0CE1206D8CEE3DDB0F2A0 +708A56802B0C5B375AFA45610C507D5393E9C627D728340DB00D37EEB59E1427 +3EC105AD1D5CB55F5C1A77B2CF839C857AB62998C6CCBA2614614373A1B8F1C6 +F77D706B3FDF49B0C40E292B40B113724184BB36B8BD2A0F6866A34DCA624228 +189F6C161F80208C85CB721AD37B4ADF8E9669149B5D4B3CA903B4AF073B8749 +DA249AF5E7D2B421954F5BEC85E7750025D592CA10B7F10FAB381D7CF988AF29 +5C5AA2AFDC912CB95827D0A4BB558399ABA21ACAAAF7C829B25DCAA9DC5A8D54 +EEE83F52514C59DDF8E0CD72AAFE759520385BDFB077BB65BD91EEBEC28F21C9 +A74EE3917466D6EC4EEF2112259792B429BB0DCFFBA39690027620EE62BC8122 +676389EFB15385AA00B7A163CF872254C315805D34B4F2F2FF3ECACE5457D66F +FFC2B68E45D8AE5B7AA8F8BA683A485DDCC20BCBEAD17A058514C887172C9811 +F2848607636A78C4C061815F523AEFAE128910D3A1368A56C1590D63DBA8DB95 +4A057427D5F676D96174A8251034A396F5A23FCA205A4FD1A221DC2E8A652A57 +957F6F91AAB9A1A498DAED793244971396903D8F2640A68E4799F6B65314B714 +6954C59C1CAD073C968FA30522FB0BC9384BF02BE6446A0F924A133AA4651F5F +78AE452288AB82E6BAC74C269001C3C84F3F2A8AC186C94D78529218CE820484 +AF9630B17ADC5A9D775DE51FB915265B6A1E5BB85B8C798FDB6FE8A6B6F8BDED +B587380049A581A4F39CC45B1F4A5D686018E627ADCEE4F9F670361C6F708E1D +B6F8A95DCC1048EEA22E28E0C311A394A9AEEE405320400A8B2B0A615E2B36E8 +A177871AABD0895C92BF702527576A3491BF02229B28F89BF837FD36955EF049 +FB8C0AA830E7A86678A69A87383F10715BD1494482034ADA7198A1B1A897D32F +811B500CD638E3FFAC6EDD67052C3CD2F3B11CFAB8C804FFE72DC4E55138B701 +BFDBD227A50C355B07689A3BB3B6BDE072DE9F98FF0352434FB04DCCC619AA17 +127C0DCC6244BD9086EDDBA102D5C67610004657570182F7900878C8877537C4 +58B1E0FEDBE52F4671BF057B897B8C17AA1D8FA79B8DF2DEC5FB4CED9753E8FA +C5494FFED4283833B2F92A94D7890AE116E99D75BAF8C78C4C2CF45482571064 +E9E589D7C5E195BE5C2C391AED066CE4F180000006312E6AF84BBF6388AC006E +EB97A12F239140BDCB4B782FFA4EC629C1BAF71C61AF96CA5278F83B9609A86C +83774F66C3FEF89CF200092982A44C1B882B8F50F1778639F6C1AE966B2B36EA +1CE494AD85A64F52CC6C9532DEDF57843A4282EB59EFB7FE94927EC7598EA30F +8F6A2D0F916C1DA7757CEA370EE057967220E61474C71D1CEFD958F816F0991A +7747B0AD5EB94D31030172C36518DEDED362753FF1C79B4F08247F6567E2614C +F390AE7B78FFCE142077F01BB297B89C655AF5E6CF89B22B42B975F7A6CFA3B4 +17E90FD3F71AABD1955905A37C66F94141285398FB31AC9BAB1A1135DF1F9748 +247734D6BA8F945D8ACB8FBBD8C879D23D31E216662D16A3CC3AF875C96A39B3 +EE96904DD2E49534791D1772796FCA4129D97E9DBF14D8840261561EF1FBF602 +9966CE0B30FD010B07026B7ACD566D374220ACA7BC884595F95DAEE27A818849 +810982488090BAAED7F0B768417E510BADFD4ADB569FA3C879A5AA8474B600DA +FD7F986BE65759614BFDD55645B11D66378C490BAB8FD660E27E5B3762D9C0B9 +235D771CC51207FACADED47894F0AE075E3696214C9FB7F2456260B5FB02155E +C724F5C00CCF06892F076C90DDD6378DF26AC341EF6E54AFF0DACBDB989406BF +E43BCA29754B6BB39158142624DFBF332337F2B100FABF6CBC8EA7FEBF987145 +767CA5532273E7AABBD4678596FE8E0C4073DB776C16E0D28F941D0C0EB1019A +F6D14DC0F67CDEFC136FF2379DD5684AF943D9F75734496F42E1E58AA9EA2EF0 +B767A58726A5E5E3A7A8EB1068A0EF9A2CBFD99064A1E5066006D70046BD5BFF +AE8E7392ADEEC401E99610ECA89C3BEE5AB4FFC1B9D1EEAD033F049CD50B2DDA +499192D92E0253470EACA68E52D96E747C172473A95E49D33A4FE6C23C490580 +F92AE6BDA56D0F1B6AFFAFF1F6BB81BB4B09587A562C3BCFA2F6F4D3A5974DA4 +8C686F32193C2849CD9E179D7C632B9B456B1A87CBE4A6DB0AA09607E9FFEFAF +8D8A4B9397ABAA9EE484D097D9826F5207B5D8ADEEC4F0F38782C06340470479 +A7A569A8AD45A806AF0F772CDD520263CE87E39EFF08BA7450711FAE22046FD9 +EB1ED2053C120EC0915A2C19A32AF1432FCED97C336EDAC578869E74F0A0A124 +2D37720702FCEB5C9DED771A5272604EF0CD3BF23191E5F494122440BCD4C996 +432DA0B3951B7930F2EAADD5D7DEB960932ECC2428C28FA44288F2B53E16ABCB +FE274DB85F462DD0A4F4A0C2960A6197ACF687C5AAF43E49DAD91996E2E194C9 +D7E6F2A050C41F87F98AA906B9AE85E95FDF7523D24965AA42BD255EEE0AFEA7 +91677C5363865A87138D5B9493EAD2802C78431D69225023E4C3147D7964B59C +4769D96EB3813ADA3E77F4EF7CF90146A3E6CF7420F90EDF5661CD384086CAE8 +F5FE0A7619493F3BCC50998E0DCC31966EF0F799A5CFFA8EBB6065C4DBE04C5F +ADE2D8499E00127D66331CE7F876BB343C333EE043A2565E1C834EBED857AE21 +6A9811EA5F44A402DFFBEA1613C43F766A6823DFA260F01CEF9A2F90C903AFAC +3C76084F93716F1D2FEEAE9319168E049C9480B0E91631F41CB630C6AB4CE308 +3F24247F024114A8D1D758DF0F3543657C9FEC08BBEF2A8E62DF26A72230DF5A +A0FF9C1EBD45F8F3A06DF0FF8B712313BF804F4DD2E7F9266BB53106A7C9446D +8E301E3485E423BF6327544F41A8CCDF71CEC9F3D41DA616D23B489AA4E7A987 +CE859DC75C8C52F91D91A58DBB09ABAD54580C13E403273454C6785675EB8211 +15AC407D7C1B80F7E29EF25BF53571D39F6B474D7146560702C87EF9AB0FE893 +9551C7038E09A77AD011E940907C622BB9E5F21B42DF2051912104BEAFD0E739 +2D8B2C0E0B2308CD7DBBC551D77F50AE17E744FF4CCA83ECC6E7473DBA2AC0D0 +2925FE52660A776D8B714F5258E8D42CBB01185753B46F61A29095FCCA403846 +572D0B929980C2B39A573D00BA26CA79672BCB1ECAFC64E2A24774F63117653F +28BDC06AF30555410CD372B30027C2D1E0F6DBED51BAEC760E11BC846996B4FF +01E741E6AEA7B404DDE81485896280EA2D7A97D47887EF7356A11CFFB7D1EFA5 +4DAEB1A11D6734F10499A98331263F93B1FA059D3992563C5460B34960AC0FB7 +D17680B7D52B2D29E0264081DB8A099361A331958833EAD0CA131989125B1759 +FA11CF20319C4FC8EFBD0BA1A157AC84FE92F9D68D19CB2752B7241025E26C19 +2207A525F4B883FAF3B59AF4C61065FAA43B334491F668CFA3F94F2D9956FF29 +5BFD3DE321A6449432F7279D563D937FDCDD27463C60D6152CE655E01CCC30F6 +4ED119E8633A164BE26D90151DD17F8A3D55EF562762D6B685B7D9F6D4EE0233 +63DCE5418E180D69BA1F40C431E49DA720769A528920E2480FF747F9251CC964 +5FEC318DA8738DA93A187BC7FC35F4CCCACC31AE4B1DCDE8A0E52AE65C389C30 +548683D6CE11F6CF3A8881935DD81F9893D7E511EE7EAB5369AD6FFB2E54A3D3 +25E0B992FA47E99CA2E85EDA0C81099818AD2B223BE7CA6C166835D027E2FBC8 +B4F531440A95FAB954DD729F85C4C5A2ECF6D35CB33265F2B2EAEB5C49DD7CCA +87F0B7241A0D4A4597EB4ACFFD3E9F1A30DEC256A6CC0001332886CB7AFE56D1 +FE2DDD6BB7DE61972C222BD34B923B4A3EFA3559D50F88F3542FC218B50B2AE3 +8B88A89F8198482BDED47894F09B78C368A05064913D072C63070CD9DA18780C +3D88EF3C0068515474834D5AE97DB3FAAE42D682CEF1E51F73765805A2EFA642 +1B2BB41D2A3D66A25A8001323DECADEDFF2BD679B6BABF72D3102B1E80FE0B6F +53934A43DA1DE91844C8E4FEC9E3872E72EB5323268E034A37447F387EF4254B +8F8F868A9F9C2521499FD08A9D22ADDE6F5C7396F1E728857B23CFE9636EC910 +2CC746A0A615E7F135C53CA869739FDD8445290BA39387B9501BEB2A9C5F7B24 +AA732F91FC13E5DF75CA853C1D8A294AA417C62094CC1AA3605D0BB8C023CD49 +A4DFC1C5BD848D143922A2B9193384D51496FF5D0C3D9EE3CE30B48A90EB221A +83A203BD05BC57ECBCA6D27FAE87F83842E78CA500E1752499622445194399FE +28C671ACE2EFFCB86E61A8221F1593BB1D37801CF5AC4EBE8A85F26ABBE47E52 +9768463D454144213196E693F47E40C40A16AF5010912CA50B005FAB47F3E9CD +C18198AE197D5AE8C68E3FB2762DEA5696261423E824CB99A5C6CE8870E8FDA7 +19F19FA1BA6C88ECDDB603E2624AAB64CA5D817E19F463E3C54984FBD31797D5 +96E261351EA9B8D0CA9F6156040180EAD73A630DC2DF9BC7288E83B5DD9895B8 +36BE5D0EC05F57BD0DB6B73F05415B1C0389C9857D387842D31DDEFAD60888BD +1A877FBFA1618A813DA8B984B1124DFE780CADC7E1D849A58EB1482E15F38115 +3ADFDE10CB4C5B266E947AAB42E0A02A98443A8B4F277442A16159BB190DB252 +C8E27456C09A219EC0B9D057190B7B882E9408F25B0C48126E32764BC781B358 +83D9BEACE2F1AD015A477D109F850E3E5C083F12EFD87D3DD7ED2536546D8033 +0C64B26E61BB8A969AC4D28D1F6BB51C4217D4D8211B5BB33CA1B5AF6F842836 +EDB4417744FED0E89EE95001E7D191EA2743A43E317EF272CE15CDC234E5F6BE +680A41E4B58D84676AF3FB9790CBF98A8FDC3CA10203C0F0E4EB1B64968BBAFE +1D03DA2CB88AB3044D2EFEA94B0992D2E07C6849C9E86C39CD4D964B5B1045CD +5D58A77B0E73D1796DC07A4FCD6607262A11B4F55CD672F49F65D6E9CBB55519 +7AD359DECB1FB493E84AE5ADFADFE069735E828B9D4F44BAA6E298BA6F98DB29 +B1D4F9F6956C8B2BE8846574B50A1B2D06EC392C60429B762F1336472E768497 +D70D9DC9D0D4C121F0723E1D725F8A669AE44B2891F2AC0CE16BB0E65BC7C549 +4D15D8CAB38682E60E6FBD74AF35473E7877F7E0739A1D2F1DF39A1CEEB9AEBB +1BC5564802FE41A783C7997512EED5A00767D3FCC384B8C7DA97CAC37E547D1B +ED70138287183F8AE4F5877E16066825A8DE41377C93CE53DADD5C7FBC3A288E +23D7C1A5EEE3B0ABD70EDB1BD1CA86BBF083803DA04ED7603195733BB51D1952 +0269192362B338E9F6AB3DFD1384A9BA22E16E2E160C621D20C16DDA5BB93C63 +ABF409EE25B160835D7E55409A7A7B65B4F519248CACE4DE7E326FAC6E9D79E8 +9197B6384B806ECCABD44388C7A911BF60F03084131C2EEFB53F75C4868EC380 +5B8F7264061333F2F236DE20E59DB052CC7057AA867B49EE9343296241C6CB6C +C1F3664F3D4680A4F337DA52FD775CFDD5250384D0E17CA46B3A32B6F6E91182 +B7D7C16230AEA9016133DEB70543C068F4CF66BC94EC6E35AB48E87690E7180D +2D79B85E57F3AEE86A4C240B417B3A278A66615EE97C96CE6652CD87289A7B93 +0509DDB0BE2B9F10CCAD247ABB6BD9C4A1536CC2BB71316371A3CC92EF2891B0 +0D2B73EE9C177B82D7F3FD6C097DC9A80D12665F8B8DE6972D877995EAB5686E +32E43D1B3E1166F8A54BC121FB6768C75010CD7A06B7CC246E01957160FB6D1E +0F560DF3E13870D29E69473F1E160A83F58DADF487C91587DA03FE3DBECC4BD7 +47463A6AED62657358BDE5FA2FE64A830CFD7D2E1A1A62BC6ED64D7E3411CF8B +3F64DF1FF713CA0D4335FB6BBFB3FD81DA8DCF889A17786378758E473A8E1915 +8B2E746F9F4B6C437CF316BAB7A803416FF656D498593995A161EAAD1A5C3F66 +33D8306FD30F1A99E555D7E5BA9F105190971A5CC51940BB3EC5BD7E9BA0BFB8 +9509200B67475C4B62C78D2F7258323192634CD895EBB4FBB6ADB0604E1ABC9E +CD365097B29E4C7695BE1FEA9BE8BDBCD40A7796E64874997EFB8B89EA18CDC9 +AFE589BC15ED790281A05C9AE9D38B439E16B7897CE9AAEF3E00FECF70C7C963 +7558BEC2F70DC3180A651918B6BCEAB07E14D48D561257659CDA05DB9EE7F00D +BABC069746EDCD19BE906C1A8A77BCA105EA54E562974AB08FA2433663F286EB +E80C4EC07B34D0D122EDFECFC0D3E089B4593AD63FEA93C545FD63D195E6C68C +979DC2D454A6D185418DCC5822040496206F87FE0C83642F97568F2F2EA2B945 +252446BC1412AC181025E6B1B0FDB6B1382C6BEB199F9A104DA7415E90990B26 +6B2AE09B0BE58A8D3134FA2E4D2DBE49A25A988379323E26C26691F98AAFA77B +95422519DAB484F35ECC882808741496CD5C71EE374DC97F1B5B0369DE48DFF8 +9CC61303D6FBCE95FB2EBAD303046D3375B91129F13C30ECD0F352B29AA73B8E +9BBA5F849AE43B2BFA5DCBD05E645734A3E1F5DEAC5BE34B19E3B68B886A72C7 +460A773DF3604F5FB744EA9905AC65D756B9FC47745670E7858C83266BEE1C5F +A2CC250CA59D8B04DE66BCF41487631D7E978C27E0BB998B8EB54208F0B21FEF +D172AACD3F8E6FABC60E51FC105D3F6EBF19A2E1E73295AC49CE66B9F2F1BF5D +0A1D8CEBF89121A4587E39BB62167DC15F4D32648AF0A43D8929CA8FBC78621D +C3DB61C2498974A02CC340CC4A574F0E60152A0D4102B55318B07857C57D13BD +B6111D8D8E9852274B7E649AC22B893A21508372648557FA2CD28C95F472B7D5 +3673874130AF14C7B9326ADECEA73DEE7BAA3AD842DAD823A041438935FB3D47 +FC8B4DE75CB449A90D1F5D94703C3B12F3B8FD016D95D7068A8F6C93FA932880 +2DDBEBFD7F36FCE1927547617121D03B1C6A7F496615B1868253594D03DB6375 +F6B77864C29C663AC6FDCB34B0ABBF559BB29BCAE4A8B726F01B38CBCFCDF626 +DCFB584F055E41DD29917297001147E074A3822B0B41DFCF1ED12A0FC69B3A1E +2B2985125FA3AB6051E61FAD0B66DAEA287BC9C91EBA95E01055C0FFF4B811B8 +629B8D9D4E0D85653D64F9AE567EAA910EB8E9CE8CE260974ECC02E279AF8156 +6B8096F83FC9CB9B902EDF5B926FB8C8E86EB9C3A36CB8DFDF10F9605331963E +2F4AD2F1F64554C1EE470E5E96BEF1E0CDFD4107B302B33BB7935B54C9CBA6B1 +EEA2A586FB09768C66DD48009E3C3D4C28AE2E4B9FAF12387889EF05061BC7B3 +CACDDE65F50DE176B15DCD15418173126CFD3F68093537DD43BB658216BCF65E +A32358F888B0271A06DB84AA5BC03B10F67B7FF921689837D62591530D7E2F5C +E4E34E0D3ACC218BD2793EB6C5C7FD31F0B2D40FB0C60EDB0C9883A4883892B3 +EFA7A3685991CA4E9765F6C0EB6231D89CE48C917E632C79681369BE19C7BFC9 +9B70F6333CB91C160545F827BFF527D201CCBA409DF6F61CF6860B378C64C57C +19644BB9F05604A198EAB9371F5E16A17E610AE4908A76A739CD587C2FBFB87C +7872C2DD74D5D313D22B33EE2F64A5062193B969720560FED6D2E6F284179D43 +6157B02BCB075FBD34D68335D8C6E190DED3AA46B9F57664F5F4EB7D3734DD79 +7CE8B85E8D2DF7205C6D92BC2946320D21FFC0E89F7832B21B3FFC04B495E015 +9A741644AA80DA77673CA09453DCB54DFD8A7CCB0C179F8A87F8809FE19EC6E1 +489AF10ABCDC8F1FC85AD101D40F186234306EF0BD631B896D4BE6F475A22820 +B9F4358C1E58936C8085B216FEF406CBE8C010E9024D4AF9282F18A927838F96 +C72C75935E67FE707A728821855622B393F54C2E5C6512795ACC687F028276A0 +E6022C7C48A73DE8E1364E6EC7E9109B9FD3596002E9DABCB9985E9298DEFB1E +A6E649AD2745FB77257C1F6A61846C35CC7DEF4207EBCDDD6F76398CA95AB7D1 +A5A88EC11A0709467CB39F287AF7A10108630CAA9615DC227AE76ACA2E53233D +AE2C4177A18FE832AB80EDDCFE61045790DAE39365E6CCCDC8E38378FE947C86 +6B6DA30DEAC6DD565550174023A2859820771B1854A2E9FCEE82BCD94F2B914E +C4011E7B4AFBF1FC211340C8E5A66E4DC1ACF66C83C2E3841434F4EB2D76F0ED +C1A62DD5891F809A5B8C6D7269E8165122FB4E8EDBDA9DE3BCA562DEA2098A96 +5D2DB6E41DAADE6F69C0F02AF0E05E74AB2163371E10E4E199256ECDDAF9FF5A +8AAC829B9105B79BA863DADCE4ACAAE5351A31543794C4BA54C862DC73A4BB42 +213CC668576C3D6D8D42D99340B491402F0B712FA4580922694DF0A8A463D3FC +051CF050C124BD1F730D762BA23EE523D95AAED4FAB9392153E8C6B5D75818C9 +2093D642AC8627DCB3E287F45D62D1AAA4BB6153CCC54F2504437CCAF1AE406F +919E2B51F6F76AC51987935574DB4A6109CABB006EBEC482662A344C2E72DF86 +049AAB12F3016FAD368106BB0A969B85BF152405EB5589E4BD6385B1BA3010C7 +D7FE6A651A1DC4B732C61E084B4BBCB50B5F4165FCDD3B7D384D61C592E65770 +3EC9A658429C3E96C940C2A2A7CF4BFDC5E61CDFA533BE7BF3B5154B3DAE5441 +9B3133B96D0CB64D8E55E89590A50E12B57C27FD5EC65D7632E9861FD029DC0B +B05CB0E6222371D7D2D0D6661BB041F234A114BD422526385F52FDAFC016792E +283EEAAAE1F6AFDCB46A9051085BA0FE0EAC7F6B812F5A6D65E9DA6713AF8788 +F4D14C3EE931021F8332D282A933E95C4882A3E12C4A2BBB7BCADBDDFC1F2662 +6A610B79E0B7740342A2317271E931E4D1C7B5B8AB4E9FC40AF2E67B93D540E8 +45DCF039564AB39151F4EACE7BB432929B5735CB12D731DD3995A2EB3E919CC9 +D79E0E329D5B8483229E013330DC6A324C83C685144D411803CA09D4A36887DA +3D030AC820EDAA1AA767F49215730076C47C5263EB5061B4B9B5A49B7F2F325B +1FE2A972A31909451F9611DEF3D1131476204E0FD5E25E90D34BCB9518301FA3 +FD005EEBDEA8A1D0F808C85FF5088D6253CB8AB3B5C5D8EC41C97406A79ABC33 +21436BD15791BD249489F00546E3DF4083820504B941C6191BBEF6AC989F2C43 +CAAFB1124873C0B35278C4463251867DE9E646E13195827A92D83E762D3FE521 +8FF5D7EDB2E2B246AD90B2B09A0E073D1709AB0D1CEDC286AF63400E645F7FB8 +40F98C20954FBBA5ED1A0ACBADDD0F5907B5696D54ED5280B1EFFF068DB13534 +B071D44C77DCA8C17D0BB95AE85B2510B79452062CD296ED62F7034C95736F0D +3CB5A9B287787BF8C5738F5868CA3570DE56BA0502D55DEC9E9A3046377F2D59 +FC237ADAD36C22EEEC7B0222F45D6DE06486D165A9548E07FC8875957DCACD7F +648C447D3442DF9A9F23768E796FC85221BBD079BBA01A939D82F2489F083734 +A8FECE716AD90C4800BB8853D1C726A81031EC6DC519DB16C631445511DBF211 +CB3A67E9B51E8D2CD8305B4E914C0DF2B6526122984747F23CAE19750D5D2894 +1D6788A75DBFC42F0EC87030924BB94E8A3597DCA4372A2DDFC181EDB7C145AF +E4D24DB8DD7C36B0580C1EE70A741DDBFB49802E4C07CF1BC6A2C21801B1F8FE +8C6CB6EC5F5ED20B93BC0CE0D9AF0AF29806B6E4551F0D5F585BAAD42E1205B6 +69E6B1959D4A86DD6895DED94327ABD889C3FA7FEEB7C240237BFEA12F24B5C4 +C9CBC9A3515FEEC3960F9EAC4122FDA903BDB15E2D70BE4E67329B293F10A07A +031BE8633FE9DD33A5535E20CFAC263F614A00B24A9242BCF9DAE873116758A1 +6B42014BD0EB77652A4347478C4D5B28FF5AB11D794E00E4E95AA410E148F7E1 +F72BA05EA82F288E0D0DDB272F19B2EACD00C7CD37E057244C8FE2D6A992941F +CA5C6C6B513635BCE0F313A1A81D62CBBEC88047D9E212FD671B033110EFBE7D +28E2D03A41816F34BA815C39E3299B633DF2E6190D48F4EB8B9BB89FF99910E0 +8FC04444078109B1F5FDDFA32258341E1AE5D75260BA66A34CD4FB28F04DFAF9 +5DD3EEEC0837510CA2BF79D0024CDDA6217015152622534B85F0766E5A864976 +87EB1F38BB1395AA59D9F646D719894161F910D56E091585C76D273E3702BF39 +E7384252EF2BBAF3884898E6368FE9B625C2ABE7568367813BEF7B3B28149A94 +29FF02A4B0AD0B1FBEB0248634363B0EAF5D6F4BAF883BD554C374A3B02E756C +6B087B042F2EF748DF70A2C48E22AB22FA00224E0B365C10ACC1F228556D3D88 +3DAFFE829A494CC8CF586D75458A4CAB86D157243AA3F3BAAFBF3FF594603299 +CB7D5ABF8D40F87B09BF449E93F1CA7C0AE4438980D2C98F738EC831FB992A5C +C2A2699F8CD5F1B302F1AAB3C3151F06D50502CBBDC36E9D7CE45BC18DC591CA +54BEABDB09BE80119755D0AC6D91356FAD5F76060ED0C66D353C96E2C3DB7086 +B16A6BECEF6A2502E997D4FE16B390F5D1C96C54C6EDAF3D80368FE691162F0F +0BEE1CCBF682C480C3FC98CDCE768D5C237DF828389B31F15FAA56C017DCC9FA +2619E2160CC66399F1AD974357B7B5E5972F8DFCB3034CFA59040F08FE1E419A +193137024AD752B54EC86108596477C9C1BEACF049CB9D69C244F26C4FE5826E +8D1094868DE869C35A2B58806A8533C8EF5D2DF21890F1A3BE3EA6C70D6D769A +9F5549A9E965772B9D40F2A51A8CB350C82CAA20F7861C153EA82D52199A7C08 +39E8C6327D058593E0CAD9B32E9E69B8550C467EF83EDD211B00410C192B3119 +BFD6274B74DC63197584026A3940DFF551094608C824B0E66B4A95A58890AF4E +934B3D39BABFCDA26D874F03E143E0BFDFE605512B46ADF223B3C9AA2A3957AF +E4A47605B76B38F3076DBF918295678E85FD29C67E3FA09862DC663E58A594BC +8B6E30C53A4BE967F11B97B26B5D554BC9954C0895A71EF8B4616832A428099D +41F4340CA96DD09B612B4DE6B20EB05D7F7CC114E939D0A01049EA6B364E8A6B +53111F3C842748CEE526342CC681CCDEE7ABD7F30C26D5FFDD279306142EDB19 +06C9A0ED4E8ED6FCFCD43776C4A6AA6F0604E5A5020743721EE05E71C6881DE4 +2BEA1C904693FA973D15FDF0636283D637F6C4D23E8D1C095501E6BC593AAE7A +A53EDBDDCF4062A1AA8BC844278EE7CF540B3F4AFCC6659B5715DBBFF1C7173D +F592920E68A0EDA7F176288572978DE52691ECAE3BD85FB91AFD10556CA2016A +89BEB737C074E702A77765F4352EA49F9C7B1B8E5F981F5DB31ADD485213C190 +881036128F226EDE4D2D064374A6F66057C19A0580C2D928533053B2E3C42858 +46775EC712046DAE4650A6A64CE241341219FD92642570C85B4919CE4D2791A2 +67B29AE13C26699D4777C02C74CAF87D6CF0ED3D08AB508447192811B0E7F3EC +F5032BBC3EFD618824D974AD5665904AFBB92FC18BF534691CE94346142FB2D4 +F28A3DC5B7569D48F2AF29466F6000574939EB8F3DDC6A3A618CA47446E95CBE +0E6D95302D70C96FF92B7608BB3E18AC48AB71232D871772D17E3E8D0A3D1D99 +08DF0AEC4316CE34B72358BCF67F08DC71FBFDD4413C2C787679C5D4E983392C +F21632FE23E5A6C2C6B6E11D3B225E852CAD35C85EFD2E4FED06B68EA1F8BA00 +488833B4CBE54763DF428D292032983115990F56CBD856D8CF4962B29E128268 +1720D2F2CCEC2EA69723BFED46ABC56F041E058B60027B5C3A66C355E8238805 +FBA5DD981FB3808F7F800E69A6B85B011B9F9B391E8AE835DE4BD5AF0880AF94 +ECF195F5B2BFC0A4B1911A421560FA20F6300DCC9E0885716CC42EDFB59F7F2F +37CA82280D820D549B416CC00FB89E963D5861C8748CA729D4D37463E871A1CB +5AFF926DFB7D2028F74A1561FDD799611EADD2417859B5D6963BABCA1D1B0AF3 +D3EFA530A87C144D18C7156DC85EFFDA40B2A77D41BDD3DA3950E0C5B677E3BF +D0A50CF0E9DBEB3182F0CC7C7812B91CC5F057964E15B7639B6D99F7E65040EB +9CFB300081ACE78FE5EC8E37837BA85009B2690D0B14C0AC1D1E6C1919900B6E +84A2806FE2D603206FC48C743B1E8D7540EFCA33BDDADD5940D1E3D5B809314F +7642C4124CF94D47B5EFC6174CDC00553C23123C24B53FE0979E7C83704A6381 +B0DB9AA8AA605DBC5B00EFB651B94FFBB3856544A9F0E05720728B5A79A447BF +CF9825B926CF8503A0A46B837319080D7AF5C022A3E7D1F2C3C29E0D902E9AC0 +3F6931705301B1574510EA3A509981603B519EE5DFB8241D0D6C63F7FA8EC16B +DE2FB14871FD6787FBEF560591456E8B26116A4CFD5214ABE046B18001DFF34F +15A7E5A5BB7B6073BAFD8D65D31E59AA94985115F267A04FF7C2AFEBD64412CA +8CD7B1B7899C53E7BC32F72B3A944D4A356495F9561153083C4C20F9BD23201E +7BAFE0A6E059BE96D5EDFE1DD4CBA0B40F7E209E91DC7AAE8ADFE9E84C127281 +6437682C1457C7176E9B51F011FBF1B17911E7AA71A97BD55D920FDCCA9ABBA0 +D412F31EE501BFA7A2FE0BE47A98DCD0A36E7CCD8AFCC1608E0C27BB54B65416 +2FD4659120CCF13A28AA5DDE86C584AFD57EC9B257E55C40A4978F9FF17B9780 +A8C156D598F4DE7283C223A58EF896657E84577E60F1F702CC13E4464ED4C60A +88B8A97AC870F8555578FFF82BD7063B2CAE4440C1DC4243ACE088FFB428E51C +49641AAA53F1281DD70FA1E0DD48F790F181DFC912C8E9D749BE8E8F8B03612D +24AD5D8E4AD5701149711CA838B238D487FA136A81D02378C0599ADEEFD8004A +0ED71E38761224CFE7B69CDC20887AF19D5FE8177CE7091696BCB549A11E10A6 +B62FE410F38A1A71BF67EDBF86CFA498876E1D142524AF5A70D5973B3D83804E +EBA95FD7529DFCE967FF96D2383ADAD1F8A5698E6455BF455BB23C0A5C07F6E1 +97DE6D8E2FC9462A82138BBE55045BD8257D6D1AF0D814D0D947505F4CA1C10D +8ACF8824E299A7EB6363DCF86F76AFD3F41FBDA69A31568F88A7F6DD34FB6FA1 +2EA495E4DF6E34E1E954C223BD7FE152DEA01E7201DB986B83EC02E75B5D1A83 +2C267E10C43A2B989F1E667038743A4DC4533AD5EBB61954A8588F1AD914BFAA +F8D9C091E36B87B6CA569FDE501FFCBE27BCB1432DC80584FE0F91AFD0C0073D +E3EDEF55352D28BA680DBA8D33AF1BC8DA2124F7BFAA04D5179097AFFD9FF7B8 +634FE29D0DF784FBFB203EDFA739B305D5AD1DDD6A22330AA8A4F2663718F4DB +F085555883A9F3BFBCD85BED2E5B88FCF16D122DFA6F52DC4F3A308EBFBF8EFF +DF709C45B3306F9EB696E7DC0FC58B81D5E194FCB518E4AD4DFA8381D7CBBFC4 +3DDCBCC0BA3E5D448B12AFE9871CF7FB59612C487139E0B103881D46CA4F6E6B +E0E462DACB8A69EBDE728E64D862A877DA51FD28D53F5C52D110D92C5B6E3D45 +636BBA91C29D7BF02B860128720FFF314776A1B96CC723D81122BAE381588AA7 +BB8F735C6A36692225ADE3AC1AA16EE8856B186BA7AA1A556CACE500B7245623 +25A374A4F01BCE3BF9A165CF37781606342E283BFF0C061D64771ADA815C76A3 +E946EBCE12695206BB0EA396AB34BD2DCF91C20D897D7A99754602ECEC561FE0 +7146CE351F1B9A9BE8CCF721CEE7579777FFF825ED8C808FD403F2E48DC8A9C7 +E98151E3D14E4D4FE68A39A56843B809CD654BEC9571FD596209EF0EA4D37CF4 +9BF85DC713CEF655311D57D6021F6D2FDC39B0E9A6CB3D3C07335CBD05A7A627 +4920FAA1C97E8A7B77590DE191D192CCA2C531DCD616A4DF0D5E345AFAE474D0 +A002546774F400F97E024BD19888026F8A7D78C5B64DBB572ECDC18B7427B824 +7247B7558D1B8F2DD30BE801D3295E6891B299CBF49F881A5E4F4EEE2FACE0C0 +3A73837D4FE5A0C48AD40EAE396C7C40041DCEBB76199BBD7FBA6142389988F3 +14CC7B3E7CFF331CE17718DF98D5868C7F20AE8E2853052E839700A3C8BBBD60 +8CEF9837F931475BCD6D7AF2835E89426356CE9BA42BAC4610A6666974FC333C +0C28837E35B539D95F213698039C831677B011E74BADEEF03226A345FA69755E +C79DEB00F894D86A3A6F6F25FF2FC808AB5EDC3DB4A0335B3374AFB993F131C5 +FB2C27097A4AC85648AB44DC2951DF5BE1E302B848EF900D15388DFE816C6CD2 +AFC28CC0953DEDA40FF5BA1BA22FEF0ABBB6B9C5886F5BCF37D39F871DFED145 +B751288DC682026E117A01EE06CC3A4448F6971E51585B89D2375FF336BEE56C +32D5F31433ED3C32740A69DB94B50ABB3E8ADB24CC074CF6A00484CD811D78DF +45BA57A7CDCE0B8FF5BAF56411CC9B654D5728CA3D6A90AF167975B4D6074371 +851FA80294C87B0B7A95C8BC7196084D86BDE2BF4015BBDDFAB4DE2C31BBB2C8 +C4DE9094993531657CA80286D4879A8D46BDFE0D151C2A2A11B6A68002C5FF2C +D8C23BF5015BBD62BFB861037C64A5E354CF40BC04DF03D9C61640EBFFE1226B +3E9BE0191532918B0679B55E3C958A9BBABE8A214A2E584B6674254C1C5842A4 +C7052454227737C9CC71FF2F201169038BDF4DFA4F65DF78C9AAD96939955F56 +A2C06DB97C2C6265B2BD4F8872257CCCFC7F5E1FB86D811DE77C684A89A1EB75 +F3F2536EF3688E57781000979D965DB1876C3BD55B9386BD9FCC5EEA596DAA33 +BFDC3BC5CF96EEAB5F4635F33A8083F45E79344E73B53D8A405D6AE48A9588C9 +04FF42ECD98CFA387F985F2C8698BC31E4A878C95BC5E62A262D2F5CBAFCAB3C +9F3BA8EBE08BF93D73E95775D08C570B9AB080D4D9BC312A745B7EB455C1D6E0 +90A7072AAF3D7B7FD5114B7581DD0F46B32F020924995C71908B1E4EC322BED5 +0DEA3E62D5F00FBB0E354E836E3AE75AA46537FD2177DDA5E5C6DA4CAE9B390B +D174DC84F24AC05703F640EE578567AC1583FF85CCE936E0499D822838E6D0BB +F82DB5453A0C91FB323FFE8B7289ACE64885D2C7C5C0DF075C52FC1E738B5D57 +1A34A52C52C3E4FF0F16F6EAA0861048B3BC2FC588C05449F5A42602A77EC4F0 +4CF19DFEF5510099E7470D1254B0BD864FA634B7FDA7918BA63F2B88B43F92A3 +77F37D3BF6FEB38DA67776DE4743720F1920EC6723074C49AC14F4DAB91BC9DC +F2D7337637D73157A8C7BD0FF88D0880C2F410B5A5F53D4F241C45C5576F9785 +A9D810A9B8F241DB4697E22362F4526294EE15FB193FD29F52A63EC4094E656A +06A6E84347E4D47BCAA15BFF7D3DB02175CFAFE291CE225A613002EE6D8162AC +6CAD256A8637172A4469B9CB3D570957E87E0817957BD75B2051858D7579D09C +54EF49C2027BD532477B730CE703EC14C54FA2497712140E53BF25A4AC45A344 +DF16D5D824542E3EEC6D3326607C0EF862205F82844DE7E6B982D8C84981E142 +DC5C0FB44AB80BFDA0D3FC28474437E45C3B41457B19C6F1173ECECA4826D19D +7A191D76BD376641C2EF99E1A9C848BD8CA250C9912BE5FC5877B88818D876E3 +6C095EF01D860C40B0FC7169FBB5AD992121EE6EF9BADA5B067E452D8FEA72CA +20D4673D2E6310233BB66D52BA5E893A3177B20B1AA94AF16230482DA18CC020 +61A48695FB2DD30D83762595FDEDD1F21290871B1A2E82FD1E75396A2BE737E3 +6DD792306C62AA7E3A1B3541795F3322BA72A00061DD925A03244121CBF9D572 +BF4658620DAB84F46680086DD757D07EB4CFFA4D5A7F3D5DEE1D3156A9AEB636 +320AC7B07504607C15436B91C47EB7773755B51FAA977CB4F794A6CCCE04F0DF +94DA510BD515FA0557BB2109B6A838BB28B761463429E801738CB4B76D5DF6CF +2F36EA51D1247AA166E825D08CDA5F268E98639A79C721CA23D266294248E865 +ACFC113882E78FE7C7385F0E2C913A7E8838AD9C3A2E4C5C728237C2481388A5 +0A0869D6DFEA19FE7759C0D5D64266443529A1EC6C8F2661F72269D7343552A0 +01181BC161D5426BED82212DD9CECF208480E74ABEEBF9556A66DB3902E6A372 +A0AB02CBFF66B8FD896D8884084B271115C3D2F86D4BAB0783BE0D3B9BAF948C +82054A87C5A1DD328E9215D3B8CDE33E978099595F6F2740679C200211580C31 +771C0F803B8B733D9716AF3B27970D473062F22C9742BAB029754903E0DED238 +CBE1F3B66E79584E19114B651A6F45C4E525157E425D34FFB976C7768EF8C0FD +205F9B01AAC142ABD1AA336529005FB1091B6E00385BCBBAFB5E3C81BF3CDAD1 +6FF605F4069A34DC90A388FDFF1456826A7DF07B1F471DF49931C9635E8F214B +967695E1E14FF05F743F43E359BCFCCA1153F7F253C1BE5AA6DBE0652B46ED43 +C0F3178A201D5C7E05E8B8BFAAC30E134B163E233176BA3FA06FEE966BC81F55 +80B2DF00322AFAAFFB56A986C3D6E50C87A73BA1148E8321693B65F64DE9C39C +07729C7360AF458FA59717A71E142856DA36A9C6A0E78D8BF66B0CC66B4A702D +70A0EAE80D3C75228C2E066445963073D4828019069420EB5C721A1CE57769C4 +48A3BD0DF632B4A4DB2E0012E0F7F546A54E4517FDA34E7B4469636B9CAAAFD5 +1753CCEDF14532414D6716F0DD4B297F294DCDF134511E8FE759114D739BDF9F +FF77562EDC820D911924BFA9E7B537319EAE887CEADEBF0896F036BFAD4AED46 +657431DF132C3CA4596AE94C66ADEA665C779150356C0311F9DAA29D237D68B8 +D89D6AEA3363AEDAB0F7D8E49688AA561AAB9A751D0011BADE0388DD291D7299 +3CEEFFA3CB0241667BF429766C1C89C914DF3A7D4B97330BDB48E4256351B625 +DEAD87082F9A0E717F03251B4D53F33975DD7088AAF0ED1DB80E3B3851225D2D +29A1F8B70579A39E097BC2254C55875232A33AC19FB8F86049C3FE21474FD90A +B4F84D5E1D20F3B6A89B3EF996AE0108DFA485CB21F656F8D8930B5EA6F4C37B +C25CADB2FD4C905E979CD8C498E42D68DB0285B121B4B38C7F3843492E27FE91 +72530B1BEE8CBFBE64F2FD1C83A46C7C8A106DCB5F3C9D205645DBDE03144508 +1F8F079761966F98A71E85A52D0BFBAE15CED8B6FE420BD485ACFB8350D561A7 +40DAC589FED2C8D53ACB63E8F5A0F00624409153E1ED583BFCAA3591BC7FC228 +966BAA1751CBB4AE1BDC8E025EA16DA2DBEED6F5E89FB8718781C0C70E5019C5 +36114763FAC3DD323F5354072E82D16B6F6C70335084D42C13A04E7BBF57F32B +93A1EA17E434EF1E73F71449C9A2E3A4531C353F76DEF46085ED58B41FC60D52 +E8680297FB957792C40192A36F9D6B9EB12F30C7DC07EB51356CD557374C61DE +3D2FCEC478CF4560DB80C80B5BAF1734BEF0E27B7A38557262444910B46560DE +055EC7C6239E0FE8A1FD7658F4AC643C6FCFA2D3385F2C693374FCBDB8FD25AA +91EFDDCFF35612832891CD2F565D1DD25040BA1F0A7DD668BAE0817A0CED19F7 +D6589866C55A79B2C31252001FF084D67141F87DCFAE18DCD8676E4F8018656A +756805E4481A46D4EBB73A39DB6B4B9A8DAC28E83C8EFC69C4543A91726C4894 +CEDA62456A10F7C28C2839606EE19E711ADFE93C87107012F88419DA67677A1A +94D25B1BE2BAF610869F56CC76BFE6857066A2338EEEEF0C4B3132E6F2261A7F +0FE2F74BB2514EEAE92A1A211A2085D50C2CD914914ADDB5CB265C47E0EB99FC +4480EAB881DFF9A41771DCC43CDE19E798B5DBCADDB39A91F6D4CD893C90D1D4 +5EF749FC2618918311286B8096E1A33019FCAD5EBBE9AF6AE8460529A5EB9725 +11EC7D9ADA84FA3B73CC02DEC5F18CF56929E3EBE7D634AA05260066B7DD1305 +E7B446C6706F3E71ABAD3403163EA42347E82DC3008DE044B861830BC306EE5E +C9EAC9EBF6CC25336A5AA4B3FC86705C1110EAA31F4621996F56D084EB44DCE0 +012CD0D04861020DF932A40936212FB9B62344FF2E5205320795A2CEB3A93A7C +953C2460B10F9FAE53813F641ADB94911A98B4CA88C44D07BF3A449C5FD061D1 +6E6F6278978E06AA7FEF976F6DE9090AAB7C85508AF36717503FBF12EED980E0 +95D309B901A928B40E564ED0385251493B93C8A1B1A2E0C2864E7FA56C70997D +82173EE1F1D1E2DE91D122712601B075E81F60C8D807DAF40A6A2DB86FBF67C0 +C6A67E5AB96978EB78F45E588EC5CA78FAF8D3938DAF7574BD0C8A1E72CD4F53 +BD815C55D81BC99B9AFF67763EDE8233600361E8E47628D313DC5C8434659F18 +452BC080040371C3B49C6D3D8CDAC2E073D4A6C84E4510842B37E825188DE876 +B73F723A54FDDC3444C21E84486B65B184E446206AC6C8C488B0951D9B67E22B +5FCF7D99E5E3BC571913AC5A2D2403F6BBA9CF20D9971F088669F500EF79E271 +598D63A40B87FF1DD53E432B2B8ABF0C42E5A51D418A6D38C1234A174DDEDA0A +C2E412BDCE094ED780562DE0649914F8A4F5CE902EB34AF0B7373DB2D18A832D +4484210678266D233EB9E67831E828A207E05F7589AFB820ADAF62D9ABB375DE +114CE744527FCE2FA35D1D872F30208B331B4327B972341D027745C4B4CB20DC +A7EC2686D157BAAF7524C901CD082BA51FC8F17E0B35743E189412F12B05E3FB +16F26ED75CF6C2BD355974749B4C3625C070D0E16A2494AD1EBBD2A37AA3BAD2 +87B57CC1DB4F0A8854776559B3827220CE8F7CE17A0191507C40B2A72C0A5564 +1DBD6577DF18D4BB71BBEE0357389341A8FC781509BA47B505C9CF359C0DDDF1 +F809E0825F1C0675C44F998F857CD91B1B27C2E8FFE99D6437C502ECB4F66E7C +7758154B03C3E44658F70AB0DB50DBD2759222D060CC79E1A0CA8D0481EBC65C +FE1914118D893016D71F37B0C3E753B16993A00C8F7F994E46A73C7BA5262386 +B6D39491B2F18DB30F7DFF061AEBB847DCD6E6326BA7615E3DDDC8BE861C348D +7ABE34E045BFA565905C868E95133041B57FA080F7508FE421EAC29F2F13B5B0 +7223B1F963788E1AAF42D5E441B06FF1B7A2467B86E05C4C90D94A824E23C529 +B06B3075CD6FDEA67E6D4D65696B577A4A05A4663BF4A11585819B85B6810EA2 +E005D5669A9988F9B287C981364555F5211DCE3A175DBD8E7A322E31B69C966A +BE89551B84FB04652290AA1CC07260EA4E5814CE910D2C7DD48357813D9EB9D4 +C220157B43C1091E128EFDFDA97F0402F999E02EDEAB0E643201D8AC884B7E4E +6A92433A0EBA2524635770EC9140F7112354CC63F4476F7DA470050D7811A921 +02DBFDC954E9ACC0994394F7306B0BAF5C015BEB89EADBBE52BC4992B8773C3F +B0725E8EDAC8CF90935AF853B1C2B4CA867AEE5D067C60C1F6D18027222943DC +87B308A212FB59551A0AC3066D66A1752382783A9CC9A6F775FFB0F6A55E9399 +22CC038DDFA2AD6A039311631B4BF037124E0259ADA79B854CDA381078ECA286 +72E9816250187A5B4760117549FB06628728F671F499E5749FA2B21E105ED5CA +EFF970B731B58715F9228E9E9CBD1E0565E633234857051AD219A5BC14380C9F +5F8F61EF0D98D68AC4A62320FE8B7876E3DCC43147578B875A4E8B59A8EF6304 +6DECF0505CF4A4F589A3C28448B3F67998FF4F2E9CE81077B77D0D71982CFC7E +E4DC174F9C3EDEB3C8491C61B150982F32293EC9CF9DE7105AEB479FD69F36D7 +54F3B381DAFB7A65BD6100F155A30A513BB79FEB24A03292811A04517937AAEE +D183ABF019493C2874E140399D11FAF10B772671419838AD0A12CAF0BE290415 +169D746C20BDCAF5737036AC853F9D81E3E90DD553395AA400140A0EB0836D81 +192941B3577E8A72638AA275B92F9D48A45C265E5C059BA852026483FF7D8205 +06A19DB05F3BE1BD0466D20BAC9A054010538D76BB5F92061DA0F051011CB541 +5CF6E15FCED73C545F238346DF521AA3EB09131C03002EE06B72421E9E63E00C +EEFDD453EDEC1DEBC8870641E88A3BF8B1DFF18DC0F55D896BBF710CF1FD01B7 +DD06F726DD6046E83E6E108599E8B23405390106EA8D86C78E48F80C00908FC0 +E8AFB264586F836B39924AE1CA69E386A00B6892425EA270900AFC5B0ACA1116 +B3DF99A3AD62A1007EFE59BA4E9C2B9AA1B65F355916508BBC8C071A3316975B +ED7BBC94A92DB5E1A64A9374B1F713FE9C95694CF30ACE7DDE8DBEED3EB0D3F1 +A41C7FE9FDB9EC5DFA674A7CAF99F16C79042441F4886CD41CF9F55C936D670E +032D70395CD358119925A395976EAFA0ED0A22B1578DF7BD3366FF6EFE369964 +8ADFBFB8B0D3C5C9BF586BE6DB0954EDF3D839085D5C0AA31EBD97F5A5E09FD2 +20910D7D4A54728905ED6CAD86C92F71503822A8C874E93F82EF9BA0E35C94F9 +CF342D28D65A89258E3258414DB504229E81E7298DAAE6848C2495EFFF169FB0 +6EAD806218418C918EF588932AE1E44E6AD0DF2D9684455E3EDBE66363C2B3B0 +5D1A78916120D57C45EDE32F49D9520E01A24610BCF47C2360A6D70CE9ABCDE5 +97F38A7464D2E75602E99B7BD5D01B882CC8D706BF1250FD2B1DEFE66B7ED82C +EC38581CB9165B6B52FBD615F786DAB51BD78D846B2B19DFA59C562B071A2932 +94AEFA3F158571C5BC8E1C436109E3D2BFF6D266A8FB589FD343583F9E3B2C64 +026ACA216B2FBDCA13C6CFD91A0CD2D3712D79ADF4AC85AFCD6C6B09839C8165 +151B93F5F9A2799A0BAC2A14794D1FD7F6891925FEFD6643A5F25DDE4E09344B +64F0A51B07095AC2379C84328BDCF83599DD68FD8A0825DFE26BC9CC84C9C5C5 +21A85554971A9C200F6386542F9C8DFA7C6F89F572CDFB96821DD0FA18821B0F +3D113C3D1B6E19381C1634B4F578D261B5DC34B1F64EE30A701746AB4F90AD37 +E96607528C15EFCB75BA7C67093A962299B7B194C8918DF3E41D1ECA02A0AD4E +CCCCC8201D0F9433C8824893F73945FE0CFE366DEDADB3F4268A827AAFFF3B11 +6773FD03D79678EA7F23E047B2D04B529E317AFE568E22C8125DD6CADF28B718 +4EE8E6C06C01E1B0F45D778D819922785EBC883657B4FA4F1D98CB6D04C95101 +D219A319FC407C9EFBC9A6676289820903E876F620819BFD6CBE1FAB37AB04CC +50AB16636D1FA22A5C2937D924EA82A344CBA0C1EDE1141734713AB2F42F48A5 +51E078217142A320ADFEDCCAC3D3CF7C1789660ED052E87A65D91B586C0073EB +3581F4F52D08B5A4E2FB8D8FF91F607683D6E1C9197213F8E83E250BD9D6AFF4 +54E44444C42128A7898C2847FFC33CBCAD468FBBD2EF4BB8332395643C9E4DFF +5424F837D7C2CAE52890A9F22064FB926E15C1D4DDEF9A4A32E02F55357F21E1 +48ACA7E663AFED067C76BFEE9AEF65E8160EAE749A42EFF6CD71074AFF8394B4 +EAE419A2344DEB603CD292DB6961395642116AD61E984E4756F4670A03741FBE +9A959BF0052834558CF6A73CB6E21BAFD9FFA803EF2473C6FE789FBB1F0C81BE +78850AE8EF6D53C94579E27BECA5C520F21B12B45137016DD802531F5C9A3599 +861A916BB47DBFA14A32150C4C681CAA5BADACB937953D2799984DFDA1386538 +300DC63D6C99549A90A5E9A8106D80D23DBAF785ED21E0745B5DF6A94F67E9B6 +48A26A297B334F38059CB9AF0B6E6A898E9B29615CE41E32C06D1D867705CB28 +207726EB3818FE9E1C833DB148783E64F8B0577D423718E345A689D8748656DE +CA58F072B948C0B54BD6A889F4A1225D460A0552B9175BB6733DF157F87D664B +1C9B914A28A6120A1FF23C2B6DCB270190D90DBD838D0759A59995BB96F260C5 +B7C49DC66FCF17620ABD269053F742707EB2F27FAC805F0684B0A6C0B5853E3D +E5647817168DC16096E8962E3C14ADDF49DE7449225C729B4830F4D0651A45D8 +F5ABA98F7FECBE3FB02F49D3BCEDC8E366769DE821FDBA3840F55F47E4101C37 +67B327475461583F56B9D4DAD9AAB899FFB4DA3D4F6AF0FEC0A0241860BAB912 +543D9E51370EFA9F882FB277E446937F861AE2DA4F138BE19BE5BAF338E349EE +A3F8E5BA85EC9EE02AEDD271BE768B35F65191F7658EE41DB5B79EA49A206992 +41E6F081EAA7D086BDD111077B9BD20A418528F1A2BA20218185C624A12A71F3 +120C4DC70AA0FD1CBCBF9BBBBB5465C99F176BF72021C26A0C6E780467EA8808 +753206AAD430C6CAE5130C0FFAEEF6C43056CF13EC9267F4884FCE8B189A0DA9 +DBDA730C3D1BAB2D794BBCFD07A8F7894E20DD3086AAA31E299CAFEE29C5DDF3 +1B0D041E6B1905F54EBD72DEBB284186E7EC9866B733005A062CFB8ED79B7B75 +9B01674DCA7C5E2E479BE170C4C0BB57DA2F171A4996FBDC2D622A99CFDCDA5B +F8EF6C270D52714145BA799D7B35987D2971ED9A3E490D5CEFEBD56BCDE9F441 +029CE3E560F02E2D39ACE9FC3F767B85410A6460A36538A9B926959B0CC879FD +88D293D99B657C87A7F971064ACC371A7F2CB25FEE8A33EF7701108FF0DFA2AB +AD56906F6225098D8063E05E3B75AE082106926044FA59C169CFC05502C69DFB +F2B259C1740B2DC23F3568DDE0487FA5D7F1C53BCD605ED98E07F6CD774FFC8D +3DE5E7535561E6EBE582766B5396A869F8A1AF2388AF309969BC5762599B04F0 +18CCCD57C6031F2543D266B247342B6F9B4CE9C8CF05314F5127EB6D0ED697E3 +7E7D6EFC6D3665700050A5F8865319EA2690EB056AFB14D13F069AFB0BE3C86F +85367D422EC94CBC4D0C009746817DE55D2B6CF09754F22CBD9C7EA621C55C79 +DBB3AA440322CEA7A3841AB5FC7054B2E6683EA055437A35D42C2962A60EFAAB +858EBB6D57D48FE75D97E6D7A0CDE3F4A19367A4B6E4BD1E678686CFC071F002 +51C3884CD5E95D2640181D2DD73A62EE2D7FD5CFDB30C5648CD090D3E889D65B +D9BB799FE98CCC57D0B40FBC0813A6BFDE8CE8B38A56AEB3F34EAC849A6BA649 +7A14714C4351CC04883E6581C7926323441D716BC23D202AF22DE6C4FDB4D727 +971D6DEB55C6F57A9C42CCFAB724800E4CE936C40A254C2205FCA94C98521C40 +C12D11E1A4C0F2FDC14B2B341A5262C6C83B20C97400BAE5DE986A063442B3C3 +C7B9F127BE5810AA39BF50795B16F0C5CBD9DB827DD0B8F8F0EAC4B0C9349270 +6B045BC9079B8FA2044EA69063E035C69737BBEF0FD946545D7F664C3A4A1471 +19CF2BAC3EC3F5878C129ED81DAA9B92B295450A9DF2BE084071058EE434906D +A1AF4CDE9D7E478DACCCB10B48CA31BA88D3851A7E5EA2CF2FB932EEABF237A2 +BD93C7A092BA7FA570AF2DE43EAB43599081AF5F3318D56D8F4C2B2EFC1AF6F8 +051C754779ED01EA030414B190A081645505DE0F4D0A3B66AC353F81CBB06370 +F33C788FD6EECD9ACDE798B479A2102C269BD62052478BA0C5BD7936E9E1EC95 +2062D2AA3DE8A04438CAAAC857805586DB0A4231F34A61B05441ABC93325166C +EE085FEF2DB62147DE3CBB8D2F24687E4E7977F4C3136A458C5752598C83F616 +729D130787F6E2A6AE62FA4EE63B005AC66B57B4043A9DEE58004A8B70E576A5 +39B6675834258F0A803E798EF7DC0E5FE1BB5EE995FBF365F8B5CEFB56084E1F +77548CA35FA2A28D007FF110D47CAED5E962E5A367B3882A75E867DE736050B0 +AC18034B8C561BE4E2F06EE92CED884CEB0D09A0C7707C2B1AD3163CC4F07BE6 +D0ACD9244E5C9EF238407D0743BD972892B53BA71489AD43F7E67312A1E21ACD +9BEB69DD7617738168CE0C440CEC9A462737CA8FF67ACE5CAEDF0D642645F09D +3BF2C8FDADD94B70298A9A89C6D3691F483CE233D726C9184E1B74ACB8C2598A +183709AA4968F4E66014681DD5A70DB3599940455BFE78AFE566052482E0A17D +D5BF829F24C47A1AD30F20ED91BAC83A7C001BCF8B22F7CCADD43D7075E865C4 +71D996C4641D9E96F0E5C4D38B07F29A96F19EFC4FF4147F1B31180866E52EDD +654143D390587D23409B0D7CBFB0DB3D33200FF7F6815ADF70011FA2C6E9BB2A +E0D01F904B0E036DBA77BA8B535E44D91DDA9CC7F10124C06AFC898CC8D26BAD +A7D285A200C0175152A60ED12F0475BAFC54EA03F2854A48A312A61333F161F7 +23298F782A8AF7E5998AD7F22DDBCF54C7A9ECFECEADF1B78CFF915DF5F73D26 +8D700A26CE9FB11CBEEE1629E9F75AEA98E1392B27766B0E1A51A95811DDB2FE +F23694BFCB3E979587BD26315BAAED9FF607AECBA762A41945D182BD0688CE81 +C29F4863EC028E24FA005F32071B505BA717CE0B55013EC2797F6F373282F265 +4BFC2A76411F1A7F01F9192B773B2FA06F9DEDD90C89873765AC901204A1118A +FFBE854DA9D5A1E9588C7746B14DF8D413C4FF0B7C08CEBCA150C92244281E87 +FE02CCA9168E4C61866601B65EA3002B7195CC48D22D097C01DBB678746E9492 +CC304EF0AB198FF208291340585F5F44C2EC444E41DE5B5E3A7EAD4F69BE3324 +3DFF06CB1574798D339D47D84741B3F69550A41ED7C6FAC82344D7955E5B1BDC +3416FE4118134F7723DA0B74B45338BBC60E94E88BBB0BC9033775DF75C39A76 +F19C9760DA504EC51890E78959DE4E0113F12E8A945FDD184973A92962E265C8 +3EDFD94DE761E6B576071E8CA62C32DA8748A849C9249EDA7C6382DA73FCF59E +1BCE44E5F1E515E222C19314A58F7D4A1B9B40B3645F4CFB930E9DCDF00FDEE2 +92602A89B82A8314ECDA526DF40660A5B621BFAAE228514596194147AB8ADBA3 +E311A419B473040F02EACEEC7E082CF966E929E5F72A2CA143DA16390194F538 +D688F5AD85AE3F937E94C47359C650CDBF1269EF91341B2FD1846D3AD289AB49 +4F5AE12CFBD5FCE7E3CDBD3B03ADB70EE2FAD7FE76BBB323672FF66852023B37 +40388D56EDBCCF43EEAB3786DACE8FBDE47F9FD2ED0D15F4CD195D11CB1617D7 +8E2D6D1268358F69F5BF6E0CDF1E58AB4E502A8784200EA9761043543D55960B +940EF24176D8F7678A62280DA8A26787132759FB02735C4D282996DAD1C9BAF5 +CD38D1A7CE454D4F5484FDBD9E7E903531AA0BCC507B9E03220E99B2C80F3DB3 +3F92AE097A972397EFFFCFF3321DB15C4D582770E8901603C25A8E47A724E96C +06B1C3F12720A9D0659AE5D59C0D3F161127FCED30C17E6EC31EC5DAD844CCA7 +E4D83C9A3A867E5D6E70E2D149B8D54AD9348B5E38506E09314ABD82971078FF +1C4FCCF17982DAACD827E63CDE25DEE4B3B21E516BAAB03AD4CC7E6E5C817398 +3FB83CCC12A3FEA6E0118F5AF6EEB8BD7EFFF500BF321FE73563590C21D83890 +509EE77E1E9BDD98DE7B5F61A67242004D545DD6E41ADA0DA16ED098518122C1 +7B2F99FB3E365134601E93173C548FBE7994FD7963344468E295C9252AEBBC7D +3CD82A14EA2F5E0E9D45928CCFB4F5D74473FC49217628BA3F72EDCF42E4E303 +6467CF6251D05732D19170BDF9C763D9BE69D6F98CF945241390DBCE620E296E +88000CFD20A6714DB1311B66AD5618BC5FD3D53FAC8515A383CBC7B353324499 +AFDC81CBF4C5937FD3BC77F9F4DC0BDBC6F1330D71F7279BDFEE228087961EB0 +C4B84086ECBA1DFC2BC9F76DA5EC1D3656A2DAB41E125553C5052A73E57F25A8 +1C114F2F40563A3FCDA80B99AEE9F509214ECBED0B55CB051563E5B90F3F8167 +64FA9A4E837BECB98C0804C82B011656E674036CEF570CCB31587F5A93AAC20B +10B63B2E5AD83C153D8A25A4F0440610A1513AEC5E4A3317F4AD0EF3098F22FA +32DEEDB0ECF8D997EDBF37FF554B4DCFB8D3159F04BD7B4492472466AC082CA0 +F15ED01BBD7B879208F71BAE66031082288A7F927D6A5DBABB3743CE064D03AC +111FB99CB37E3F0279B9D2AE4EE389BBD63BC1C099F4A2A80CB405E627F785ED +7B723382187CFE71C5138135A1CAD9319B8B2E73DE4D39DDB2E6673ECA7447B2 +B9F81C70D1A11C72DDBF2579DCC6CFD28DBE42AF2C21022A0E5109DD1ABEDC90 +73EC0900094863170F873A2F7FB719D485725D6125FCF00CE71F7B9D0AB0D5E9 +8F7587B2DD27F44A1970EED04C44CAC776DCD485E8D39DFA752627FE33937610 +B69BF261C38F26C7F55523BEC338BB0805C2F1DE28F2081FB1A23865F8603273 +37D4595A7AFB8F7B1FC5B68E63E0FC65C58E238E6E924A7A5A9F57EC89A397EF +7C13FC02D965CE8C7BC577911A8B85C5D20CCF3CAB829C621697F0C9D6507E70 +06A14BBB40A3993F59C035833F8DD35A1453DF39659F72D169BEA31CE0AF3A08 +AEF10E19DA566EAF4E627305E072611795EAC4875B4919FDFAB74D7961D2F10E +3350A868C38CD8D23658D46582DC397DC868A4299BA2CD2F953EC146658EB7C6 +A46B6B1F5DCE2EDA407BE98592407DA2C1618FB5AC32587F6D5AE7187FCD4919 +868F47583E51A9981B202C03BBD1AC359799EE08D39A0C0876754C0F9DDA31B8 +48C195D00E16F1C13EE3A3261F684E8B95EEECA768393B932C77A850D94F6980 +DC05F8000A9B6C368FE60BC3A880127598A22B7AB9FD791A66D2854341822493 +828DEBA62F669D1BCA3CF912E4CD616E5D8AB8729B05D147D545983ECBBB17FB +ACBD731A17EE08CD89AB3FBFEC9E08C364168390A1E49FB4AA0C65836F578E2F +1879E1FD1B100EE39AF490B2004CEE8E425BE6DB29E1D964A37FC8E8021B4967 +168FFE7DFCF8E8181F299922900855C7797A252C7A83C369DBD6D6A652A1F9D0 +D73FD5AB7F368CB83D0DC51A00EC74B54A406B5D83FC366C4BF7FC3E8AB8BB7E +78569D4577267AB2CBD872BD190338A277FC0637FF571D8CAED2BCBC5BE6B537 +C2A72894AC2091B778493428D5EF1A238E77E7AB585BBCCDFC1F987CAA34F729 +ADB3BC05ACA3DD01B7C3B975149507F2EAA6DC2E76A933AE14FAF54DEDA6B605 +DAEAD123D80B6A952F6504F0B48EC88554156CAC701391793F230CF8B2C0FB91 +065CDD2D45733D +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginProcSet: texps.pro +TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 +index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont /setfont load]cvx def}def +/ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def +/ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def +end +%%EndProcSet +%%BeginProcSet: special.pro +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N +/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen +false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B +/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit +div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ +/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ +10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B +/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale +true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup +length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} +N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath +clippath mark{transform{itransform moveto}}{transform{itransform lineto} +}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ +itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ +closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 +0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N +/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 +scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 +TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR +pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 +-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg +TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg +sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr +0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add +2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp +{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 +div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} +N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict +maxlength dict begin /magscale true def normalscale currentpoint TR +/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx +psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy +scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR +/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict +begin /SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial +{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath +}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ +end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} +N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ +/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX +SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X +/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad +yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end +%%EndProcSet +TeXDict begin 39158280 55380996 1000 300 300 () @start +/Fa 136 +[32 2 + [23 18 23 1 + [21 24 1 + [28 20 2 + [12 3 + [21 24 23 1 + [23 16 + [28 1 + [31 9 + [31 28 + [12 39 [{} 17 37.708344 /cmcsc9 rf + +/Fb 138 [84 1 [63 4 [84 8 [76 86 17 [110 10 [117 71 [{} 7 137.500000 /cmcsc10 rf + +/Fc 137 [21 21 21 1 [21 1 [19 22 21 26 18 6 [19 22 21 1 [21 16 [26 11 [29 28 15 [19 19 14 [32 35 [{} 19 33.583321 /cmcsc8 rf + +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin +%%PaperSize: a4 +%%BeginPaperSize: a4 +a4 +%%EndPaperSize + +%%EndSetup +%%Page: 1 1 +1 0 bop -158 2763 a @beginspecial 0 @llx 0 @lly 890.299988 +@urx 909.700012 @ury 5102 @rwi @setspecial +%%BeginDocument: ../texi/gnus-big-logo.eps +% Copyright 1992 Corel Corporation. + +% All rights reserved. +/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 +1 i +2 J +0 j +4 M +[]0 d + +0 g +163.4 2.9 m +197.1 51.5 223.7 94.3 251.6 130.7 C +283.4 176.1 312.0 216.3 342.8 256.8 C +373.2 303.2 401.1 342.1 420.0 396.9 C +421.2 403.1 425.1 408.9 424.5 413.5 C +395.6 371.6 368.4 326.2 337.2 285.0 C +306.1 247.4 276.3 199.4 244.5 161.5 C +212.1 116.7 182.9 79.1 168.6 20.4 C +166.3 13.9 164.7 8.1 162.4 2.2 C +162.4 2.2 163.4 2.9 163.4 2.9 C +f +0 g +428.1 170.2 m +428.1 170.2 429.7 170.2 430.0 170.5 C +454.7 211.4 474.8 275.6 504.0 301.9 C +512.1 300.6 515.0 280.8 527.3 283.1 C +534.8 284.4 536.4 284.1 542.9 288.9 C +571.4 331.1 600.3 374.5 623.6 423.2 C +640.2 454.7 661.6 492.9 663.5 517.6 C +660.3 515.6 L +633.7 468.6 613.2 419.6 582.4 378.4 C +572.1 367.1 566.5 352.8 550.7 348.3 C +543.2 348.3 536.1 354.4 530.5 363.8 C +528.9 367.1 528.9 368.1 525.4 369.7 C +495.5 333.7 466.7 282.8 446.5 233.5 C +436.2 206.2 433.2 190.0 427.4 170.5 C +427.4 170.5 428.1 170.2 428.1 170.2 C +f +0 g +754.7 271.7 m +783.8 345.7 780.3 386.2 794.2 447.5 C +806.2 497.1 819.2 543.8 843.5 614.9 C +869.5 690.4 875.0 731.0 888.0 787.1 C +892.5 826.7 892.8 865.9 869.5 898.7 C +853.9 908.7 841.9 912.3 822.1 909.4 C +785.5 890.2 764.1 846.4 749.8 799.7 C +750.4 793.6 750.8 791.3 755.0 788.1 C +755.6 788.1 756.9 788.1 757.9 788.1 C +772.8 803.3 773.8 842.9 796.8 849.0 C +817.6 849.0 826.3 847.7 840.3 834.8 C +855.8 799.7 856.2 789.4 858.1 755.0 C +855.2 687.5 836.7 643.7 819.8 576.9 C +801.7 513.7 781.9 454.3 772.8 406.7 C +766.3 361.6 755.0 332.4 754.0 271.7 C +754.0 271.7 754.7 271.7 754.7 271.7 C +f +0 g +383.0 484.8 m +421.2 539.0 420.6 593.1 405.4 650.9 C +395.0 674.5 382.7 683.6 367.7 695.0 C +354.8 681.0 339.2 664.2 330.1 640.2 C +330.1 640.2 330.1 638.5 330.4 638.2 C +351.5 628.8 372.3 592.2 378.1 567.2 C +381.0 544.5 378.8 505.2 382.3 484.8 C +382.3 484.8 383.0 484.8 383.0 484.8 C +f +0 g +120.6 509.8 m +171.2 511.7 215.0 550.7 255.8 589.6 C +283.4 609.7 302.2 627.8 315.8 663.5 C +280.8 636.9 238.3 595.7 192.6 571.7 C +179.6 566.2 162.4 565.6 147.8 570.4 C +139.4 578.2 136.2 580.5 136.5 588.6 C +144.6 635.3 192.3 684.3 217.6 724.8 C +223.4 738.1 235.7 745.9 238.3 758.9 C +204.3 726.8 174.1 677.1 147.5 634.3 C +127.1 600.3 95.3 560.1 102.1 520.5 C +107.0 510.8 111.8 513.7 120.6 509.8 C +f +0 g +621.7 657.7 m +669.0 661.2 703.4 716.1 724.8 769.6 C +730.7 779.0 728.7 785.5 731.3 792.9 C +711.8 758.5 695.0 728.4 656.7 720.9 C +638.2 720.3 635.0 721.9 624.9 732.6 C +621.7 736.5 620.4 739.4 618.1 744.3 C +588.6 683.0 L +593.1 671.6 598.3 665.5 608.1 661.9 C +612.0 661.6 617.8 659.0 621.7 657.7 C +f +0 g +502.0 681.0 m +526.7 680.4 547.7 694.7 565.2 716.1 C +576.0 734.9 583.1 755.0 592.2 775.4 C +592.2 779.6 591.5 783.2 592.8 786.8 C +582.4 775.7 571.4 752.7 549.7 746.5 C +520.8 736.2 500.7 751.4 481.6 766.7 C +440.4 802.3 416.7 847.7 366.8 868.5 C +346.3 878.2 335.0 875.6 319.1 869.5 C +300.3 862.7 292.8 850.7 279.2 833.8 C +285.0 838.3 271.7 828.6 277.2 833.5 C +268.5 845.8 244.2 875.3 220.8 881.1 C +168.6 888.3 147.5 809.8 96.3 789.4 C +83.3 784.8 72.0 776.7 61.2 781.6 C +41.5 794.2 38.2 804.6 27.5 824.1 C +2.2 764.7 L +9.0 751.1 16.8 730.3 32.1 725.1 C +45.0 720.3 55.1 721.6 68.1 727.1 C +91.1 745.2 116.4 758.9 132.0 779.3 C +140.1 789.4 146.5 797.5 157.6 808.5 C +166.3 816.6 176.1 823.1 187.7 827.0 C +219.2 813.0 240.6 789.7 259.1 759.5 C +275.3 782.5 284.7 815.0 321.4 810.1 C +373.9 801.4 405.0 751.7 443.6 715.1 C +462.8 694.7 478.3 687.2 502.0 681.0 C +f +end +showpage +%%EndDocument + @endspecial +/OJ { + currentgray + 1 setgray + 3 index 3 index 3 index cvx exec + setgray + gsave + -1 1 scale + cvx exec + grestore + } def + +/OJ2 { + currentgray + 1 setgray + 2 index 2 index cvx exec + setgray + gsave + -1 1 scale + cvx exec + grestore + } def + +/OJ3 { + 2 -17 rmoveto 1 -1 scale + show + 1 -1 scale + 0 17 rmoveto +} def + +/OJ4 { + 2 -25.5 rmoveto 1 -1 scale + show + 1 -1 scale + 0 25.5 rmoveto +} def + +/OJ5 { + 2 -71 rmoveto 1 -1 scale + show + 1 -1 scale + 0 71 rmoveto +} def + +/lars 1030 def + +lars 2223 a +Fc + (Developme)p + (n) OJ3 + (t)14 b + (P)p + (r) /o OJ2 + (oletcul)n + (t)e + (Cad)n + (r) /r OJ2 + (e)h + (#23)lars 2330 y +Fb + (R) 0 /b OJ + (ed)51 b + (G)p + (n) OJ5 + (us)lars 2367 y +Fa + (People's)14 b + (Democ)p + (r) /r OJ2 + (a)m + (tic)h + (N) OJ4 + (ews)p + (r) /r OJ2 + (eade)p + (r) /r OJ2 +eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/texi/misc/september.gif b/texi/misc/september.gif new file mode 100644 index 0000000..38f6123 Binary files /dev/null and b/texi/misc/september.gif differ diff --git a/texi/picons/att.gif b/texi/picons/att.gif new file mode 100644 index 0000000..02608d5 Binary files /dev/null and b/texi/picons/att.gif differ diff --git a/texi/picons/berkeley.gif b/texi/picons/berkeley.gif new file mode 100644 index 0000000..babf278 Binary files /dev/null and b/texi/picons/berkeley.gif differ diff --git a/texi/picons/caltech.gif b/texi/picons/caltech.gif new file mode 100644 index 0000000..92f8f5f Binary files /dev/null and b/texi/picons/caltech.gif differ diff --git a/texi/picons/canada.gif b/texi/picons/canada.gif new file mode 100644 index 0000000..f3e4f40 Binary files /dev/null and b/texi/picons/canada.gif differ diff --git a/texi/picons/cr.gif b/texi/picons/cr.gif new file mode 100644 index 0000000..0f4ded0 Binary files /dev/null and b/texi/picons/cr.gif differ diff --git a/texi/picons/cygnus.xbm b/texi/picons/cygnus.xbm new file mode 100644 index 0000000..c69b5ae --- /dev/null +++ b/texi/picons/cygnus.xbm @@ -0,0 +1,27 @@ +#define cygnus_width 48 +#define cygnus_height 48 +static char cygnus_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x34, 0xf7, 0x34, 0x36, 0x0e, 0x30, 0x30, 0xdb, 0x6c, 0x36, 0x03, + 0x30, 0x60, 0xd9, 0x6c, 0x36, 0x07, 0x30, 0x60, 0xd9, 0x6c, 0x36, 0x0e, + 0x60, 0xc4, 0xd8, 0x6c, 0x36, 0x0c, 0xc0, 0xc3, 0xf0, 0x6c, 0x2c, 0x07, + 0x00, 0x60, 0xc4, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xdf, 0x0e, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf0, 0x6e, 0x15, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/texi/picons/gnu.xbm b/texi/picons/gnu.xbm new file mode 100644 index 0000000..b540df5 --- /dev/null +++ b/texi/picons/gnu.xbm @@ -0,0 +1,27 @@ +#define gnu_width 48 +#define gnu_height 48 +static char gnu_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x03, 0x00, 0x1c, 0x80, 0x07, 0x80, 0x01, 0x70, 0x77, 0x00, 0x0d, + 0xc0, 0x01, 0xcf, 0xc1, 0x00, 0x0d, 0xe0, 0xc0, 0x87, 0x81, 0x01, 0x09, + 0xe0, 0xc0, 0x03, 0x01, 0x83, 0x09, 0x70, 0xe0, 0x01, 0x00, 0xc2, 0x0c, + 0x58, 0xf0, 0x38, 0xe0, 0x6e, 0x0c, 0x4c, 0xf8, 0x8c, 0xff, 0x3f, 0x06, + 0x44, 0x7c, 0xcc, 0xf1, 0xf8, 0x07, 0x44, 0x3c, 0x76, 0x40, 0x01, 0x0f, + 0xc4, 0x20, 0x1b, 0x80, 0x06, 0x10, 0x84, 0x99, 0x0d, 0x55, 0xf5, 0x3f, + 0x0c, 0xcf, 0xf6, 0xaa, 0x8e, 0x0a, 0x18, 0x60, 0x3a, 0x55, 0x0d, 0x00, + 0x38, 0x38, 0x5b, 0xae, 0x1a, 0x00, 0xe0, 0x8d, 0xad, 0x59, 0x1d, 0x00, + 0xc0, 0x83, 0x2d, 0xad, 0x1a, 0x00, 0x80, 0xc1, 0xec, 0x5d, 0x1d, 0x00, + 0x40, 0x78, 0xc6, 0xa9, 0x1a, 0x00, 0xf0, 0x7f, 0x06, 0x52, 0x3d, 0x00, + 0x50, 0x5d, 0xc5, 0xab, 0x3a, 0x00, 0x00, 0x5c, 0x8d, 0x59, 0x35, 0x00, + 0x00, 0x96, 0x1a, 0xa0, 0x3a, 0x00, 0x00, 0xb7, 0x2a, 0x60, 0x75, 0x00, + 0x00, 0xe7, 0xc9, 0xc0, 0x7a, 0x00, 0x00, 0x6f, 0x19, 0x01, 0x75, 0x00, + 0x00, 0x4f, 0x55, 0xfb, 0xda, 0x00, 0x80, 0x4f, 0xb3, 0x8a, 0x8f, 0x00, + 0x80, 0x5f, 0xae, 0x0a, 0xee, 0x00, 0x00, 0xdf, 0x64, 0x4f, 0xe4, 0x00, + 0x00, 0x9f, 0xdd, 0x9d, 0x65, 0x00, 0x00, 0x7e, 0x9b, 0x3d, 0x71, 0x00, + 0x00, 0x7e, 0xb7, 0xff, 0x70, 0x00, 0x00, 0x7c, 0x6c, 0x3f, 0x7f, 0x00, + 0x00, 0xf4, 0xcb, 0x79, 0x30, 0x00, 0x00, 0xf0, 0x93, 0x79, 0x18, 0x00, + 0x00, 0xe0, 0xbf, 0xfd, 0x1f, 0x00, 0x00, 0xa0, 0x3f, 0x87, 0x0f, 0x00, + 0x00, 0x80, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/texi/picons/gov.xbm b/texi/picons/gov.xbm new file mode 100644 index 0000000..99f2449 --- /dev/null +++ b/texi/picons/gov.xbm @@ -0,0 +1,27 @@ +#define gov_width 48 +#define gov_height 48 +static char gov_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xe0, 0x00, 0x00, + 0x00, 0xc0, 0xc1, 0x07, 0x07, 0x00, 0x00, 0x20, 0x30, 0x18, 0x08, 0x00, + 0x00, 0x18, 0xc8, 0x26, 0x30, 0x00, 0x00, 0x04, 0xe8, 0x2f, 0x40, 0x00, + 0x00, 0x02, 0x54, 0x55, 0x80, 0x00, 0x00, 0x11, 0xf4, 0x5f, 0x20, 0x01, + 0x80, 0x30, 0xb4, 0x5a, 0x30, 0x02, 0x80, 0x60, 0xf4, 0x5f, 0x18, 0x02, + 0x40, 0xe0, 0x54, 0x55, 0x1c, 0x04, 0x20, 0xc0, 0xe8, 0x2f, 0x0c, 0x08, + 0x20, 0x81, 0xc9, 0x26, 0x06, 0x0a, 0xa0, 0x0f, 0x37, 0x98, 0xc3, 0x0f, + 0x10, 0x3f, 0xce, 0xc7, 0xf1, 0x13, 0x10, 0xff, 0x1c, 0xe0, 0xfc, 0x13, + 0x10, 0xfe, 0x11, 0x20, 0xfe, 0x11, 0x08, 0xfc, 0x8b, 0x23, 0xff, 0x20, + 0x08, 0xfc, 0x4b, 0x65, 0xff, 0x20, 0x08, 0xf8, 0xb3, 0x34, 0x7f, 0x20, + 0x08, 0xf8, 0x83, 0x0c, 0x7f, 0x20, 0x08, 0xf8, 0x43, 0x04, 0x7f, 0x20, + 0x08, 0xf0, 0xc7, 0x87, 0x3f, 0x20, 0x08, 0xf0, 0x57, 0xd5, 0x3f, 0x20, + 0x88, 0xf0, 0xaf, 0xea, 0x3f, 0x20, 0x88, 0xe0, 0x57, 0xd5, 0x1f, 0x20, + 0x90, 0xc3, 0xaf, 0xea, 0x0f, 0x10, 0xd0, 0x81, 0xaf, 0xea, 0x07, 0x10, + 0x90, 0x0f, 0xa8, 0x2a, 0x00, 0x13, 0xa0, 0x17, 0xac, 0x6a, 0xc0, 0x0b, + 0x20, 0x3f, 0xac, 0x6a, 0xe0, 0x09, 0x20, 0x1e, 0xae, 0xea, 0xe0, 0x09, + 0x40, 0x3e, 0xaf, 0xea, 0x73, 0x04, 0x80, 0xf4, 0xb7, 0xda, 0x3f, 0x02, + 0x80, 0x10, 0xf0, 0x1f, 0x0c, 0x02, 0x00, 0x21, 0xd0, 0x17, 0x0e, 0x01, + 0x00, 0x22, 0xa8, 0x2a, 0x86, 0x00, 0x00, 0x04, 0xa8, 0x2a, 0x40, 0x00, + 0x00, 0x18, 0xf0, 0x1e, 0x30, 0x00, 0x00, 0x20, 0x00, 0x01, 0x08, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0e, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/texi/picons/laurie.gif b/texi/picons/laurie.gif new file mode 100644 index 0000000..2a1578a Binary files /dev/null and b/texi/picons/laurie.gif differ diff --git a/texi/picons/mit.gif b/texi/picons/mit.gif new file mode 100644 index 0000000..9750799 Binary files /dev/null and b/texi/picons/mit.gif differ diff --git a/texi/picons/nasa.gif b/texi/picons/nasa.gif new file mode 100644 index 0000000..bd7ff87 Binary files /dev/null and b/texi/picons/nasa.gif differ diff --git a/texi/picons/qmw.xbm b/texi/picons/qmw.xbm new file mode 100644 index 0000000..1eb5621 --- /dev/null +++ b/texi/picons/qmw.xbm @@ -0,0 +1,27 @@ +#define qmw_width 48 +#define qmw_height 48 +static char qmw_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc1, 0xff, 0xe0, 0x7f, + 0xff, 0xff, 0x81, 0x7f, 0xe0, 0x7f, 0x3f, 0xf8, 0x80, 0x7f, 0xc0, 0x7f, + 0x0f, 0xe0, 0x00, 0x3f, 0xc0, 0x7f, 0x07, 0x40, 0x00, 0x3f, 0x80, 0x7f, + 0x03, 0x00, 0x18, 0x1e, 0x86, 0x7f, 0xc1, 0x07, 0x18, 0x1e, 0x0e, 0x7f, + 0xf1, 0x1f, 0x3c, 0x0c, 0x0f, 0x7f, 0xf8, 0x3f, 0x3c, 0x0c, 0x1f, 0x7e, + 0xf8, 0x3f, 0x7e, 0x80, 0x1f, 0x7e, 0xfc, 0x7f, 0x7e, 0x80, 0x3f, 0x7c, + 0xfc, 0x7f, 0xff, 0xc0, 0x3f, 0x7c, 0xfe, 0x7f, 0xff, 0xc0, 0x7f, 0x78, + 0xfe, 0xff, 0xff, 0xe1, 0x7f, 0x78, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0xfe, 0x7f, 0xf8, 0x1f, 0xfc, 0x07, 0xfe, 0x7f, 0xf0, 0x1f, 0xfc, 0x07, + 0xfc, 0x79, 0xf0, 0x0f, 0xf8, 0x07, 0x7c, 0x70, 0xe0, 0x0f, 0xf8, 0x03, + 0xf8, 0x30, 0xe0, 0x07, 0xf0, 0x03, 0xf0, 0x00, 0xc2, 0x87, 0xf0, 0x43, + 0xe1, 0x01, 0xc3, 0xc3, 0xe1, 0x61, 0x83, 0x81, 0x87, 0xc3, 0xe1, 0x61, + 0x07, 0xc0, 0x87, 0xe1, 0xc3, 0x70, 0x0f, 0xc0, 0x0f, 0xe1, 0xc3, 0x70, + 0x3f, 0x80, 0x0f, 0xf0, 0x03, 0x78, 0xff, 0x87, 0x1f, 0xf0, 0x07, 0x78, + 0xff, 0x0f, 0x1f, 0xf8, 0x07, 0x7c, 0xff, 0x0f, 0x3f, 0xf8, 0x0f, 0x7c, + 0xff, 0x1f, 0x3e, 0xfc, 0x0f, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0xaa, 0x7b, 0xd7, 0x15, 0x73, + 0xb5, 0xaa, 0x48, 0x91, 0x9c, 0x14, 0xd5, 0xaa, 0x3b, 0x97, 0x88, 0x74, + 0x95, 0xaa, 0x28, 0x94, 0x88, 0x14, 0x97, 0xb2, 0x4b, 0x97, 0x08, 0x13, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc7, 0x98, 0x0f, 0x1f, 0x63, + 0xe3, 0xcf, 0x99, 0x9f, 0x3f, 0x67, 0x63, 0xcc, 0x9b, 0x99, 0x31, 0x6f, + 0x63, 0xcc, 0x9f, 0x99, 0x31, 0x7f, 0x63, 0xcc, 0x9e, 0x99, 0x31, 0x7b, + 0xef, 0xcf, 0x9c, 0x9f, 0x3f, 0x73, 0xcf, 0xc7, 0x98, 0x0f, 0x1f, 0x63, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/texi/picons/rms.gif b/texi/picons/rms.gif new file mode 100644 index 0000000..ce04d55 Binary files /dev/null and b/texi/picons/rms.gif differ diff --git a/texi/picons/ruu.xbm b/texi/picons/ruu.xbm new file mode 100644 index 0000000..c44ebcb --- /dev/null +++ b/texi/picons/ruu.xbm @@ -0,0 +1,27 @@ +#define ruu_width 48 +#define ruu_height 48 +static char ruu_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x83, 0x03, 0x00, + 0x00, 0x20, 0x80, 0x81, 0x04, 0x00, 0x00, 0xe0, 0xc3, 0x02, 0x03, 0x00, + 0x00, 0x1e, 0x02, 0x40, 0x7a, 0x00, 0x00, 0xd2, 0x11, 0x88, 0xcb, 0x00, + 0x00, 0x23, 0x30, 0x0d, 0xc8, 0x00, 0x40, 0x12, 0xa2, 0x21, 0x7a, 0x02, + 0xc0, 0x9e, 0xa4, 0x35, 0x01, 0x07, 0x00, 0x83, 0xac, 0x35, 0x81, 0x01, + 0xf0, 0x13, 0xb1, 0xa6, 0xcc, 0x00, 0x20, 0x60, 0x6a, 0x6e, 0x86, 0x00, + 0xc0, 0xc4, 0x4a, 0xe6, 0x23, 0x01, 0x00, 0x48, 0x4e, 0x60, 0x1a, 0x00, + 0x00, 0xb0, 0x08, 0x00, 0x0d, 0x20, 0x00, 0xc0, 0x01, 0x00, 0x73, 0x38, + 0x60, 0xfe, 0x01, 0x80, 0x1f, 0x0e, 0x3c, 0x18, 0xf8, 0x3f, 0x18, 0x00, + 0x28, 0x61, 0x08, 0x20, 0xec, 0x61, 0x70, 0xfc, 0x18, 0x20, 0x0e, 0x7c, + 0x40, 0x60, 0x38, 0x20, 0x3c, 0x0c, 0x40, 0x0e, 0x78, 0x20, 0xe0, 0x78, + 0x60, 0x38, 0xf8, 0x20, 0x0e, 0x00, 0x3c, 0xe0, 0xf8, 0x21, 0x1e, 0x34, + 0x54, 0x7e, 0xf8, 0x23, 0xc4, 0x75, 0x7c, 0x10, 0xf8, 0x37, 0x18, 0x5c, + 0x00, 0xf8, 0xe3, 0x8f, 0x7f, 0x2c, 0x80, 0x9c, 0x01, 0x01, 0x07, 0x00, + 0xe8, 0xe0, 0x08, 0x20, 0x0a, 0x27, 0x38, 0x90, 0x0c, 0xe4, 0x32, 0x3f, + 0x10, 0x49, 0x4f, 0x66, 0x07, 0x10, 0x90, 0x42, 0xe2, 0xae, 0x8c, 0x10, + 0x80, 0x24, 0xd2, 0x2e, 0x81, 0x03, 0xa0, 0x05, 0x49, 0x62, 0x01, 0x06, + 0xc0, 0x91, 0x28, 0x49, 0x32, 0x04, 0x80, 0x9c, 0x28, 0x49, 0x60, 0x02, + 0x00, 0x52, 0x24, 0x09, 0xc4, 0x01, 0x00, 0x99, 0x21, 0x09, 0x8d, 0x00, + 0x00, 0x88, 0x1d, 0x70, 0x59, 0x00, 0x00, 0xc8, 0xd0, 0xe8, 0x31, 0x00, + 0x00, 0x40, 0xd8, 0xe0, 0x00, 0x00, 0x00, 0x40, 0xc8, 0xb0, 0x00, 0x00, + 0x00, 0x00, 0x48, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/texi/picons/seuu.xbm b/texi/picons/seuu.xbm new file mode 100644 index 0000000..341f175 --- /dev/null +++ b/texi/picons/seuu.xbm @@ -0,0 +1,27 @@ +#define uu_width 48 +#define uu_height 48 +static char uu_bits[] = { + 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, + 0x00, 0xc0, 0x81, 0x81, 0x03, 0x00, 0x00, 0x30, 0x7e, 0x7e, 0x0c, 0x00, + 0x00, 0x88, 0x01, 0x80, 0x11, 0x00, 0x00, 0x66, 0x60, 0x06, 0x66, 0x00, + 0x00, 0x79, 0xb0, 0x0d, 0x9f, 0x00, 0x80, 0x14, 0x4e, 0x72, 0x21, 0x01, + 0x40, 0x66, 0x54, 0x2a, 0x46, 0x02, 0x20, 0x89, 0x24, 0xa4, 0xf1, 0x04, + 0xa0, 0x71, 0x93, 0xc9, 0x4c, 0x05, 0x50, 0xe5, 0x7c, 0x3e, 0x33, 0x0a, + 0x48, 0x2a, 0x8a, 0x4b, 0x94, 0x13, 0xa8, 0x98, 0x15, 0x89, 0x49, 0x16, + 0x24, 0x49, 0x2c, 0xe5, 0x52, 0x26, 0xd4, 0xab, 0xa5, 0xd5, 0xd4, 0x28, + 0x94, 0x64, 0xf3, 0x8f, 0x26, 0x28, 0x0a, 0x95, 0xfd, 0x7f, 0xaf, 0x50, + 0x2a, 0xaa, 0x7f, 0xfe, 0x56, 0x5f, 0x5a, 0xeb, 0x7a, 0x5e, 0x51, 0x55, + 0xba, 0x0a, 0xff, 0xff, 0x50, 0x53, 0xca, 0x0a, 0xf5, 0xaf, 0xd0, 0x50, + 0x0a, 0xfa, 0xff, 0xff, 0x5f, 0x50, 0x05, 0x47, 0xb7, 0x2e, 0xe3, 0xaf, + 0xf5, 0x47, 0xb3, 0x74, 0xe1, 0xa9, 0x0a, 0x8a, 0xd6, 0xd4, 0x51, 0x56, + 0x8a, 0xfa, 0xff, 0xff, 0x5f, 0x50, 0x8a, 0x4a, 0xe9, 0x97, 0xd2, 0x51, + 0xfa, 0x6a, 0x57, 0x6a, 0xd3, 0x5e, 0x0a, 0xda, 0x4a, 0xd6, 0xd5, 0x5a, + 0x0a, 0x55, 0xac, 0x35, 0x2a, 0x58, 0x94, 0xa4, 0xf3, 0xce, 0xe5, 0x28, + 0x54, 0x29, 0x9b, 0xc9, 0x14, 0x29, 0xe4, 0x4b, 0x32, 0x54, 0xb2, 0x27, + 0x28, 0x9c, 0x89, 0xbd, 0xc9, 0x14, 0x48, 0x32, 0x8a, 0x49, 0x94, 0x12, + 0xd0, 0xc4, 0x7c, 0x3e, 0x2b, 0x0a, 0xa0, 0x33, 0xd3, 0xcb, 0x4d, 0x05, + 0x20, 0x59, 0x1c, 0xf8, 0x8a, 0x04, 0x40, 0x2a, 0x23, 0xa4, 0x4c, 0x02, + 0x80, 0x94, 0x45, 0x42, 0x29, 0x01, 0x00, 0x99, 0x26, 0x04, 0x99, 0x00, + 0x00, 0xe6, 0x92, 0xc9, 0x66, 0x00, 0x00, 0x88, 0xe9, 0x97, 0x11, 0x00, + 0x00, 0x30, 0x7e, 0x7e, 0x0c, 0x00, 0x00, 0xc0, 0x81, 0x81, 0x03, 0x00, + 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00}; diff --git a/texi/picons/stanford.gif b/texi/picons/stanford.gif new file mode 100644 index 0000000..16a98e8 Binary files /dev/null and b/texi/picons/stanford.gif differ diff --git a/texi/picons/sun.gif b/texi/picons/sun.gif new file mode 100644 index 0000000..0af3acf Binary files /dev/null and b/texi/picons/sun.gif differ diff --git a/texi/picons/ubc.xbm b/texi/picons/ubc.xbm new file mode 100644 index 0000000..51dda39 --- /dev/null +++ b/texi/picons/ubc.xbm @@ -0,0 +1,27 @@ +#define ubc_width 48 +#define ubc_height 48 +static char ubc_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x80, 0xc3, 0x10, 0xf8, 0x80, 0x03, + 0x80, 0xe7, 0x39, 0x73, 0x8c, 0x03, 0x80, 0xe7, 0x39, 0x67, 0xbe, 0x03, + 0x80, 0xe7, 0x39, 0x27, 0xff, 0x03, 0x80, 0xe7, 0x39, 0x33, 0xff, 0x03, + 0x80, 0xe7, 0x39, 0x38, 0xff, 0x03, 0x80, 0xe7, 0x39, 0x33, 0xff, 0x03, + 0x80, 0xe7, 0x39, 0x27, 0xff, 0x03, 0x80, 0xe7, 0x39, 0x67, 0xbe, 0x03, + 0x80, 0xcf, 0x3c, 0x73, 0x8c, 0x03, 0x80, 0x1f, 0x1e, 0xf8, 0xc0, 0x03, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x80, 0xff, 0x7f, 0xfc, 0xff, 0x03, 0x80, 0x07, 0x8e, 0xe3, 0xc0, 0x03, + 0x80, 0xfb, 0xf1, 0x1f, 0xbf, 0x03, 0x80, 0xff, 0x7f, 0xfc, 0xff, 0x03, + 0x80, 0x07, 0x8e, 0xe3, 0xc0, 0x03, 0x80, 0xfb, 0xf1, 0x1f, 0xbf, 0x03, + 0x80, 0xff, 0x7f, 0xfc, 0xff, 0x03, 0x80, 0x07, 0x8e, 0xe3, 0xc0, 0x03, + 0x80, 0xfb, 0xf1, 0x1f, 0xbf, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0xff, 0xff, 0xfe, 0xff, 0x01, 0x00, 0xfe, 0xff, 0xfe, 0xff, 0x00, + 0x00, 0xfe, 0xef, 0xee, 0xff, 0x00, 0x00, 0xfc, 0xce, 0xe6, 0x7e, 0x00, + 0x00, 0xec, 0xcd, 0x66, 0x6f, 0x00, 0x00, 0xd8, 0xd9, 0x36, 0x37, 0x00, + 0x00, 0x98, 0x99, 0x32, 0x33, 0x00, 0x00, 0x30, 0x13, 0x90, 0x19, 0x00, + 0x00, 0x60, 0x02, 0x80, 0x0c, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0x00, + 0x00, 0x00, 0x06, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/texi/picons/ufl.gif b/texi/picons/ufl.gif new file mode 100644 index 0000000..8ca92af Binary files /dev/null and b/texi/picons/ufl.gif differ diff --git a/texi/picons/uio.gif b/texi/picons/uio.gif new file mode 100644 index 0000000..8a771a5 Binary files /dev/null and b/texi/picons/uio.gif differ diff --git a/texi/picons/unit.gif b/texi/picons/unit.gif new file mode 100644 index 0000000..7e4efe2 Binary files /dev/null and b/texi/picons/unit.gif differ diff --git a/texi/picons/upenn.xbm b/texi/picons/upenn.xbm new file mode 100644 index 0000000..c9b8894 --- /dev/null +++ b/texi/picons/upenn.xbm @@ -0,0 +1,27 @@ +#define upenn_width 48 +#define upenn_height 48 +static char upenn_bits[] = { + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, + 0x00, 0xfd, 0xff, 0xff, 0xbf, 0x00, 0x00, 0xfd, 0xff, 0xff, 0xbf, 0x00, + 0x00, 0xad, 0xfa, 0x5f, 0xb5, 0x00, 0x00, 0xf5, 0xff, 0xff, 0xaf, 0x00, + 0x00, 0x5d, 0x1a, 0x5a, 0xba, 0x00, 0x00, 0x95, 0xde, 0x76, 0xa9, 0x00, + 0x00, 0x5d, 0x2a, 0x55, 0xba, 0x00, 0x00, 0x95, 0xee, 0x79, 0xa9, 0x00, + 0x00, 0x5d, 0xfa, 0x5f, 0xba, 0x00, 0x00, 0xf5, 0xff, 0xff, 0xaf, 0x00, + 0x00, 0xad, 0xfa, 0x5f, 0xb5, 0x00, 0x00, 0xfd, 0xff, 0xff, 0xbf, 0x00, + 0x00, 0xfd, 0xff, 0xff, 0xbf, 0x00, 0x00, 0x05, 0x80, 0x01, 0xa0, 0x00, + 0x00, 0x05, 0xc0, 0x03, 0xa0, 0x00, 0x00, 0x05, 0xe0, 0x07, 0xa0, 0x00, + 0x00, 0x05, 0xf0, 0x0f, 0xa0, 0x00, 0x00, 0x05, 0x78, 0x1e, 0xa0, 0x00, + 0x00, 0x05, 0x3c, 0x3c, 0xa0, 0x00, 0x00, 0x05, 0x1e, 0x78, 0xa0, 0x00, + 0x00, 0x09, 0x1f, 0xf8, 0x90, 0x00, 0x00, 0x8a, 0x3f, 0xfc, 0x51, 0x00, + 0x00, 0xca, 0x79, 0x9e, 0x53, 0x00, 0x00, 0xea, 0xf0, 0x0f, 0x57, 0x00, + 0x00, 0x72, 0xe0, 0x07, 0x4e, 0x00, 0x00, 0x74, 0xe0, 0x07, 0x2e, 0x00, + 0x00, 0xe4, 0x70, 0x0e, 0x27, 0x00, 0x00, 0xe8, 0x39, 0x9c, 0x17, 0x00, + 0x00, 0xc8, 0x1f, 0xf8, 0x13, 0x00, 0x00, 0xd0, 0x0f, 0xf0, 0x0b, 0x00, + 0x00, 0x90, 0x07, 0xe0, 0x09, 0x00, 0x00, 0xa0, 0x03, 0xc0, 0x05, 0x00, + 0x00, 0x20, 0x01, 0x80, 0x04, 0x00, 0x1b, 0x47, 0x02, 0x40, 0xe2, 0xd8, + 0xf5, 0x88, 0x04, 0x20, 0x11, 0xaf, 0x1d, 0x09, 0x19, 0x98, 0x90, 0xb8, + 0xc5, 0x05, 0x62, 0x46, 0xa0, 0xa3, 0xe7, 0x0b, 0x8c, 0x31, 0xd0, 0xe7, + 0x58, 0x39, 0x30, 0x0c, 0x9c, 0x1a, 0x70, 0xed, 0xc3, 0xc3, 0xb7, 0x0e, + 0x00, 0x11, 0x3c, 0x3c, 0x88, 0x00, 0x00, 0xf2, 0xc1, 0x83, 0x4f, 0x00, + 0x00, 0x4c, 0x15, 0xa8, 0x32, 0x00, 0x00, 0xf0, 0x72, 0x4d, 0x0f, 0x00, + 0x00, 0x80, 0x07, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00}; diff --git a/texi/picons/wesleyan.xbm b/texi/picons/wesleyan.xbm new file mode 100644 index 0000000..e3b7a86 --- /dev/null +++ b/texi/picons/wesleyan.xbm @@ -0,0 +1,27 @@ +#define wesleyan_width 48 +#define wesleyan_height 48 +static char wesleyan_bits[] = { + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xf8, 0x0f, 0xe0, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0xff, 0x00, + 0x00, 0xff, 0x01, 0x10, 0xfc, 0x01, 0x80, 0x9f, 0x00, 0x30, 0xf0, 0x03, + 0xc0, 0x8f, 0x00, 0x48, 0xe0, 0x07, 0xc0, 0x47, 0x00, 0x84, 0xc0, 0x07, + 0xe0, 0x43, 0x00, 0x84, 0x80, 0x0f, 0xf0, 0x21, 0x00, 0x02, 0x01, 0x1f, + 0xf0, 0x20, 0x00, 0x02, 0x01, 0x1e, 0xf8, 0x20, 0x00, 0x42, 0x01, 0x3e, + 0x78, 0x10, 0x00, 0x81, 0x00, 0x3c, 0x7c, 0x10, 0x00, 0xa1, 0x00, 0x7c, + 0x3c, 0x10, 0x00, 0x21, 0x01, 0x78, 0x3c, 0x08, 0x80, 0x00, 0x02, 0x78, + 0x3c, 0x08, 0x80, 0x00, 0x04, 0x78, 0x1e, 0x08, 0x80, 0x00, 0x08, 0xf0, + 0x1e, 0x04, 0x40, 0x00, 0x08, 0xf0, 0x1e, 0x04, 0x40, 0xc0, 0x07, 0xf0, + 0x1e, 0x04, 0x40, 0x80, 0x00, 0xf0, 0x1e, 0x02, 0x20, 0xc0, 0x00, 0xf0, + 0x1e, 0x02, 0x10, 0x80, 0x00, 0xf0, 0x1e, 0x02, 0x10, 0x40, 0x00, 0xf0, + 0x1e, 0x01, 0x10, 0x20, 0x00, 0xf0, 0x9e, 0x02, 0x10, 0x40, 0x00, 0xf0, + 0xbc, 0x18, 0x10, 0x40, 0x00, 0x78, 0xbc, 0x40, 0x10, 0x40, 0x00, 0x78, + 0xbc, 0x01, 0x12, 0x3e, 0x00, 0x78, 0x7c, 0x0e, 0xf8, 0x03, 0x00, 0x7c, + 0x78, 0x70, 0x24, 0x06, 0x00, 0x3c, 0xf8, 0x80, 0xe2, 0x0e, 0x00, 0x3e, + 0xf0, 0x3e, 0x21, 0x16, 0x00, 0x1e, 0xf0, 0xc1, 0xf0, 0x23, 0x00, 0x1f, + 0xe0, 0x1b, 0x13, 0x49, 0x80, 0x0f, 0xc0, 0x67, 0x74, 0x51, 0xc0, 0x07, + 0xc0, 0x8f, 0x13, 0x55, 0xe0, 0x07, 0x80, 0x1f, 0x14, 0xa5, 0xf0, 0x03, + 0x00, 0x7f, 0xe4, 0x8a, 0xfc, 0x01, 0x00, 0xfe, 0x21, 0x92, 0xff, 0x00, + 0x00, 0xf8, 0xaf, 0xe3, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/texi/picons/yale.xbm b/texi/picons/yale.xbm new file mode 100644 index 0000000..9915964 --- /dev/null +++ b/texi/picons/yale.xbm @@ -0,0 +1,27 @@ +#define yale_width 48 +#define yale_height 48 +static char yale_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x57, 0x55, 0x55, 0x55, 0x55, 0xd5, + 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0x57, 0x55, 0x55, 0x55, 0x55, 0xd5, + 0xab, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0x17, 0x00, 0x55, 0x55, 0x01, 0xd4, + 0xab, 0x3f, 0xa8, 0xaa, 0xf8, 0xea, 0x07, 0xc1, 0x01, 0x00, 0x8e, 0xc0, + 0x33, 0x01, 0xfe, 0xfe, 0x81, 0xcc, 0x2b, 0x01, 0x00, 0x01, 0x80, 0xd4, + 0xab, 0x01, 0x00, 0x01, 0x80, 0xd5, 0x4b, 0x35, 0x6e, 0xbd, 0xa5, 0xd2, + 0x2b, 0x6d, 0x6e, 0xbd, 0xad, 0xd4, 0x93, 0x49, 0x4a, 0x21, 0x99, 0xc9, + 0xe3, 0x49, 0x4a, 0x21, 0x99, 0xc6, 0x07, 0x49, 0x4a, 0x21, 0xb5, 0xe0, + 0x0b, 0x75, 0x4b, 0x21, 0xa5, 0xd0, 0x07, 0x01, 0x00, 0x01, 0x80, 0xe0, + 0x33, 0x41, 0x00, 0x11, 0x80, 0xcc, 0x2b, 0x81, 0x33, 0xe1, 0x8c, 0xd4, + 0xab, 0x81, 0x27, 0xe1, 0x89, 0xd5, 0x4b, 0x81, 0x04, 0x21, 0x81, 0xd2, + 0x2b, 0x81, 0x04, 0x21, 0x81, 0xd4, 0x93, 0x81, 0x07, 0xe1, 0x81, 0xc9, + 0x63, 0x01, 0x00, 0x01, 0x80, 0xc6, 0x07, 0xff, 0x7f, 0xfd, 0xff, 0xe0, + 0x2e, 0xfe, 0xff, 0xff, 0x7f, 0x6a, 0x56, 0x00, 0x80, 0x01, 0x00, 0x75, + 0xac, 0xaa, 0x2a, 0xa8, 0xaa, 0x3a, 0x5c, 0x55, 0x55, 0x55, 0x55, 0x1d, + 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0x0e, 0x70, 0x55, 0x55, 0x55, 0x55, 0x07, + 0xe0, 0xaa, 0xaa, 0xaa, 0xaa, 0x03, 0x80, 0x57, 0x55, 0x55, 0xd5, 0x01, + 0x00, 0xae, 0xaa, 0xaa, 0x7a, 0x00, 0x00, 0x78, 0x55, 0x55, 0x1d, 0x00, + 0x00, 0xe0, 0xaa, 0xaa, 0x07, 0x00, 0x00, 0x80, 0x57, 0xf5, 0x01, 0x00, + 0x00, 0x00, 0xbc, 0x3a, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xcc, 0x30, 0x0c, 0x7e, 0x00, + 0x00, 0xcc, 0x30, 0x0c, 0x06, 0x00, 0x00, 0x78, 0x78, 0x0c, 0x06, 0x00, + 0x00, 0x30, 0x58, 0x0c, 0x3e, 0x00, 0x00, 0x30, 0xfc, 0x0c, 0x06, 0x00, + 0x00, 0x30, 0x8c, 0x0c, 0x06, 0x00, 0x00, 0x30, 0x8e, 0xfd, 0x7e, 0x00}; diff --git a/texi/postamble.tex b/texi/postamble.tex index a7d0a5c..6e6d243 100644 --- a/texi/postamble.tex +++ b/texi/postamble.tex @@ -31,7 +31,7 @@ at the altar of Emacs, he can often be found slouching on his couch reading while bopping his head gently to some obscure music. He does not have a cat. -\marginpar[\vspace*{-2.5cm}\epsfig{figure=tmp/larsi.ps,height=2cm}]{\vspace*{-2.2cm}\epsfig{figure=tmp/larsi.ps,height=2.5cm}} +\marginpar[\vspace*{-2.5cm}\epsfig{figure=ps/larsi,height=2cm}]{\vspace*{-2.2cm}\epsfig{figure=ps/larsi,height=2.5cm}} Graphics by Luis Fernandes. Set in Adobe Bembo, Adobe Futura and Bitstream Courier. @@ -40,7 +40,12 @@ Bitstream Courier. \mbox{} \thispagestyle{empty} \begin{picture}(500,500)(0,0) -\put(-35,325){\makebox(480,350)[tr]{\epsfig{figure=tmp/new-herd-section.ps}}} +\put(-35,325){\makebox(480,350)[tr]{\epsfig{figure=ps/new-herd-section}}} \end{picture} \end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/texi/ps/Makefile.in b/texi/ps/Makefile.in new file mode 100644 index 0000000..7aa6e56 --- /dev/null +++ b/texi/ps/Makefile.in @@ -0,0 +1,213 @@ +infodir = @infodir@ +prefix = @prefix@ +srcdir = @srcdir@ +subdir = texi/ps +top_srcdir = @top_srcdir@ + +SCREEN_PS= group-topic.ps group.ps server.ps summary-adopt.ps \ +summary-article-c-ug.ps summary-article.ps summary-dummy.ps \ +summary-empty.ps summary-none.ps summary-unthreaded.ps summary.ps + +HERDS_PS= gnus-herd-bw.ps gnus-herd-new.ps new-herd-1.ps \ +new-herd-10.ps new-herd-2.ps new-herd-3.ps new-herd-4.ps new-herd-5.ps \ +new-herd-6.ps new-herd-7.ps new-herd-8.ps new-herd-9.ps \ +new-herd-section.ps new-herd.ps new-herd2.ps + +MISC_PS= ered.ps eseptember.ps fred.ps fseptember.ps larsi.ps red.ps \ +september.ps + +ETC_PS= bar.ps gnus-group-catchup-current-up.ps \ +gnus-group-catchup-current.ps gnus-group-describe-group-up.ps \ +gnus-group-exit-up.ps gnus-group-get-new-news-this-group-up.ps \ +gnus-group-get-new-news-up.ps gnus-group-kill-group-up.ps \ +gnus-group-subscribe-up.ps gnus-group-unsubscribe-up.ps \ +gnus-summary-caesar-message-up.ps gnus-summary-cancel-article-up.ps \ +gnus-summary-catchup-and-exit-up.ps gnus-summary-catchup-up.ps \ +gnus-summary-exit-up.ps gnus-summary-followup-up.ps \ +gnus-summary-followup-with-original-up.ps gnus-summary-mail-copy-up.ps \ +gnus-summary-mail-delete-up.ps gnus-summary-mail-forward-up.ps \ +gnus-summary-mail-get-up.ps gnus-summary-mail-originate-up.ps \ +gnus-summary-mail-reply-up.ps gnus-summary-mail-save-up.ps \ +gnus-summary-next-unread-up.ps gnus-summary-post-news-up.ps \ +gnus-summary-prev-unread-up.ps gnus-summary-reply-up.ps \ +gnus-summary-reply-with-original-up.ps \ +gnus-summary-save-article-file-up.ps gnus-summary-save-article-up.ps \ +gnus-uu-decode-uu-up.ps gnus-uu-post-news-up.ps gnus.ps + +PICONS_PS= picons-att.ps picons-berkeley.ps picons-caltech.ps \ +picons-canada.ps picons-cr.ps picons-cygnus.ps picons-gnu.ps \ +picons-gov.ps picons-laurie.ps picons-mit.ps picons-nasa.ps \ +picons-qmw.ps picons-rms.ps picons-ruu.ps picons-seuu.ps \ +picons-stanford.ps picons-sun.ps picons-ubc.ps picons-ufl.ps \ +picons-uio.ps picons-unit.ps picons-upenn.ps picons-wesleyan.ps \ +picons-yale.ps + +XFACE_PS= xface-abrahamsen.ps xface-aichner.ps xface-blanks.ps \ +xface-cosgriff.ps xface-drazen.ps xface-gertzfield.ps \ +xface-goldberg.ps xface-graf.ps xface-hardaker.ps xface-hedbor.ps \ +xface-ingrand.ps xface-kaplan.ps xface-karlheg.ps xface-kleinpaste.ps \ +xface-kyle.ps xface-love.ps xface-moll.ps xface-niksic.ps \ +xface-olsen.ps xface-patch.ps xface-petersen.ps xface-pjf.ps \ +xface-riocreux.ps xface-schauer.ps xface-simmonmt.ps xface-simmons.ps \ +xface-siu.ps xface-smb.ps xface-sobek.ps xface-thomas.ps \ +xface-valdis.ps xface-verna1.ps xface-verna2.ps xface-yamaoka.ps + +SMILIES_PS= BigFace.ps smiley-FaceAngry.ps smiley-FaceDevilish.ps \ +smiley-FaceGoofy.ps smiley-FaceGrinning.ps smiley-FaceHappy.ps \ +smiley-FaceIronic.ps smiley-FaceKOed.ps smiley-FaceNyah.ps \ +smiley-FaceSad.ps smiley-FaceStartled.ps smiley-FaceStraight.ps \ +smiley-FaceTalking.ps smiley-FaceTasty.ps smiley-FaceWinking.ps \ +smiley-FaceWry.ps smiley-FaceYukky.ps smiley-WideFaceAse1.ps \ +smiley-WideFaceAse2.ps smiley-WideFaceAse3.ps smiley-WideFaceSmile.ps \ +smiley-WideFaceWeep.ps + +EPS= gnus-big-logo.ps gnus-head.ps + +PSFILES= $(SCREEN_PS) $(HERDS_PS) $(ETC_PS) $(PICONS_PS) $(XFACE_PS) \ +$(SMILIES_PS) $(MISC_PS) $(EPS) + +SCREEN_PDF= group-topic.pdf group.pdf server.pdf summary-adopt.pdf \ +summary-article-c-ug.pdf summary-article.pdf summary-dummy.pdf \ +summary-empty.pdf summary-none.pdf summary-unthreaded.pdf summary.pdf + +HERDS_PDF= gnus-herd-bw.pdf gnus-herd-new.pdf new-herd-1.pdf \ +new-herd-10.pdf new-herd-2.pdf new-herd-3.pdf new-herd-4.pdf \ +new-herd-5.pdf new-herd-6.pdf new-herd-7.pdf new-herd-8.pdf \ +new-herd-9.pdf new-herd-section.pdf new-herd.pdf new-herd2.pdf + +MISC_PDF= ered.pdf eseptember.pdf fred.pdf fseptember.pdf larsi.pdf \ +red.pdf september.pdf + +ETC_PDF= bar.pdf gnus-group-catchup-current-up.pdf \ +gnus-group-catchup-current.pdf gnus-group-describe-group-up.pdf \ +gnus-group-exit-up.pdf gnus-group-get-new-news-this-group-up.pdf \ +gnus-group-get-new-news-up.pdf gnus-group-kill-group-up.pdf \ +gnus-group-subscribe-up.pdf gnus-group-unsubscribe-up.pdf \ +gnus-summary-caesar-message-up.pdf gnus-summary-cancel-article-up.pdf \ +gnus-summary-catchup-and-exit-up.pdf gnus-summary-catchup-up.pdf \ +gnus-summary-exit-up.pdf gnus-summary-followup-up.pdf \ +gnus-summary-followup-with-original-up.pdf \ +gnus-summary-mail-copy-up.pdf gnus-summary-mail-delete-up.pdf \ +gnus-summary-mail-forward-up.pdf gnus-summary-mail-get-up.pdf \ +gnus-summary-mail-originate-up.pdf gnus-summary-mail-reply-up.pdf \ +gnus-summary-mail-save-up.pdf gnus-summary-next-unread-up.pdf \ +gnus-summary-post-news-up.pdf gnus-summary-prev-unread-up.pdf \ +gnus-summary-reply-up.pdf gnus-summary-reply-with-original-up.pdf \ +gnus-summary-save-article-file-up.pdf gnus-summary-save-article-up.pdf \ +gnus-uu-decode-uu-up.pdf gnus-uu-post-news-up.pdf gnus.pdf + +PICONS_PDF= picons-att.pdf picons-berkeley.pdf picons-caltech.pdf \ +picons-canada.pdf picons-cr.pdf picons-cygnus.pdf picons-gnu.pdf \ +picons-gov.pdf picons-laurie.pdf picons-mit.pdf picons-nasa.pdf \ +picons-qmw.pdf picons-rms.pdf picons-ruu.pdf picons-seuu.pdf \ +picons-stanford.pdf picons-sun.pdf picons-ubc.pdf picons-ufl.pdf \ +picons-uio.pdf picons-unit.pdf picons-upenn.pdf picons-wesleyan.pdf \ +picons-yale.pdf + +XFACE_PDF= xface-abrahamsen.pdf xface-aichner.pdf xface-blanks.pdf \ +xface-cosgriff.pdf xface-drazen.pdf xface-gertzfield.pdf \ +xface-goldberg.pdf xface-graf.pdf xface-hardaker.pdf xface-hedbor.pdf \ +xface-ingrand.pdf xface-kaplan.pdf xface-karlheg.pdf \ +xface-kleinpaste.pdf xface-kyle.pdf xface-love.pdf xface-moll.pdf \ +xface-niksic.pdf xface-olsen.pdf xface-patch.pdf xface-petersen.pdf \ +xface-pjf.pdf xface-riocreux.pdf xface-schauer.pdf xface-simmonmt.pdf \ +xface-simmons.pdf xface-siu.pdf xface-smb.pdf xface-sobek.pdf \ +xface-thomas.pdf xface-valdis.pdf xface-verna1.pdf xface-verna2.pdf \ +xface-yamaoka.pdf + +SMILIES_PDF= BigFace.pdf smiley-FaceAngry.pdf smiley-FaceDevilish.pdf \ +smiley-FaceGoofy.pdf smiley-FaceGrinning.pdf smiley-FaceHappy.pdf \ +smiley-FaceIronic.pdf smiley-FaceKOed.pdf smiley-FaceNyah.pdf \ +smiley-FaceSad.pdf smiley-FaceStartled.pdf smiley-FaceStraight.pdf \ +smiley-FaceTalking.pdf smiley-FaceTasty.pdf smiley-FaceWinking.pdf \ +smiley-FaceWry.pdf smiley-FaceYukky.pdf smiley-WideFaceAse1.pdf \ +smiley-WideFaceAse2.pdf smiley-WideFaceAse3.pdf \ +smiley-WideFaceSmile.pdf smiley-WideFaceWeep.pdf + +EPS_PDF= gnus-big-logo.pdf gnus-head.pdf + +PDFFILES= $(SCREEN_PDF) $(HERDS_PDF) $(ETC_PDF) $(PICONS_PDF) \ +$(XFACE_PDF) $(SMILIES_PDF) $(MISC_PDF) $(EPS_PDF) + +all: $(PSFILES) $(EPS) + +pdf: $(PDFFILES) + +.ps.pdf: + epstopdf $< + +.SUFFIXES: .pdf .ps .eps .xbm .xpm .png .tif .gif + +clean: + rm -f $(PSFILES) + rm -f $(PDFFILES) + +veryclean: clean + +distclean: clean + +install: + +new-herd-section.ps: $(srcdir)/../herds/new-herd-section.gif $(srcdir)/../herds/convol11.pnm + giftopnm $< | pnmscale 4 | pnmconvol $(srcdir)/../herds/convol11.pnm |\ + ppmtopgm | pnmdepth 255 | \ + pnmtops -noturn -width 100 -height 100 > $@ || rm -f $@ + +%.ps: $(srcdir)/../herds/%.gif $(srcdir)/../herds/convol5.pnm + giftopnm $< | pnmcrop -white | pnmmargin -white 9 | pnmscale 2 | \ + pnmconvol $(srcdir)/../herds/convol5.pnm | ppmtopgm | \ + pnmdepth 255 | pnmtops -width 100 -height 100 -noturn > $@ || rm -f $@ + + +%.ps: $(srcdir)/../screen/%.gif + giftopnm $< | pnmmargin -black 1 | ppmtopgm | \ + pnmtops -width 100 -height 100 -noturn > $@ || rm -f $@ + +larsi.ps: $(srcdir)/../misc/larsi.gif + giftopnm $< | ppmtopgm | pnmtops -noturn > $@ || rm -f $@ + +september.ps: $(srcdir)/../misc/eseptember.tif + tifftopnm $< | pnmscale 4 | ppmtopgm | \ + pnmtops -noturn -width 100 -height 100 > $@ || rm -f $@ + +red.ps: $(srcdir)/../misc/ered.tif + tifftopnm $< | pnmscale 2 | ppmtopgm | \ + pnmtops -noturn -width 100 -height 100 > $@ || rm -f $@ + +%.ps: $(srcdir)/../misc/%.tif + tifftopnm $< | pnmscale 2 | ppmtopgm | \ + pnmtops -noturn -width 100 -height 100 > $@ || rm -f $@ + +%.ps: $(srcdir)/../etc/%.xpm + xpmtoppm $< | ppmtopgm | pnmdepth 255 | \ + pnmtops -noturn > $@ || rm -f $@ + +picons-%.ps: $(srcdir)/../picons/%.xbm + xbmtopbm $< | pnmtops -noturn > $@ || rm -f $@ + +picons-%.ps: $(srcdir)/../picons/%.gif + giftopnm $< | ppmtopgm | pnmtops -noturn > $@ || rm -f $@ + +xface-%.ps: $(srcdir)/../xface/%.gif + giftopnm $< | ppmtopgm | pnmtops -noturn > $@ || rm -f $@ + +%.ps: $(srcdir)/../smilies/%.tif + tifftopnm $< | ppmtopgm | pnmtops > $@ || rm -f $@ + +smiley-%.ps: $(srcdir)/../smilies/%.xpm + sed "s/none/#FFFFFF/" $< | xpmtoppm | ppmtopgm | pnmdepth 255 | \ + pnmtops > $@ || rm -f $@ + +smiley-%.ps: $(srcdir)/../smilies/%.xbm + xbmtopbm $< | pnmdepth 255 | pnmtops > $@ || rm -f $@ + +%.ps: $(srcdir)/%.eps + cp $< $@ + +Makefile: $(srcdir)/Makefile.in ../../config.status + cd ../.. \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/texi/screen/group-topic.gif b/texi/screen/group-topic.gif new file mode 100644 index 0000000..2414969 Binary files /dev/null and b/texi/screen/group-topic.gif differ diff --git a/texi/screen/group.gif b/texi/screen/group.gif new file mode 100644 index 0000000..f6aaa1b Binary files /dev/null and b/texi/screen/group.gif differ diff --git a/texi/screen/server.gif b/texi/screen/server.gif new file mode 100644 index 0000000..986439e Binary files /dev/null and b/texi/screen/server.gif differ diff --git a/texi/screen/summary-adopt.gif b/texi/screen/summary-adopt.gif new file mode 100644 index 0000000..075d113 Binary files /dev/null and b/texi/screen/summary-adopt.gif differ diff --git a/texi/screen/summary-article-c-ug.gif b/texi/screen/summary-article-c-ug.gif new file mode 100644 index 0000000..a8bd1ac Binary files /dev/null and b/texi/screen/summary-article-c-ug.gif differ diff --git a/texi/screen/summary-article.gif b/texi/screen/summary-article.gif new file mode 100644 index 0000000..313b3fa Binary files /dev/null and b/texi/screen/summary-article.gif differ diff --git a/texi/screen/summary-dummy.gif b/texi/screen/summary-dummy.gif new file mode 100644 index 0000000..2e9d76f Binary files /dev/null and b/texi/screen/summary-dummy.gif differ diff --git a/texi/screen/summary-empty.gif b/texi/screen/summary-empty.gif new file mode 100644 index 0000000..b4991f2 Binary files /dev/null and b/texi/screen/summary-empty.gif differ diff --git a/texi/screen/summary-none.gif b/texi/screen/summary-none.gif new file mode 100644 index 0000000..ba1e398 Binary files /dev/null and b/texi/screen/summary-none.gif differ diff --git a/texi/screen/summary-unthreaded.gif b/texi/screen/summary-unthreaded.gif new file mode 100644 index 0000000..45537c4 Binary files /dev/null and b/texi/screen/summary-unthreaded.gif differ diff --git a/texi/screen/summary.gif b/texi/screen/summary.gif new file mode 100644 index 0000000..9375ee5 Binary files /dev/null and b/texi/screen/summary.gif differ diff --git a/texi/screen/xfig.SAVE b/texi/screen/xfig.SAVE new file mode 100644 index 0000000..f8d3d8a --- /dev/null +++ b/texi/screen/xfig.SAVE @@ -0,0 +1,8 @@ +#FIG 3.1 +Landscape +Center +Inches +1200 2 +2 5 0 1 -1 -1 0 0 -1 0.000 0 0 -1 0 0 5 + 0 group.gif + 2175 1200 6750 1200 6750 6600 2175 6600 2175 1200 diff --git a/texi/smilies/BigFace.tif b/texi/smilies/BigFace.tif new file mode 100644 index 0000000..e073e01 Binary files /dev/null and b/texi/smilies/BigFace.tif differ diff --git a/texi/smilies/FaceAngry.xpm b/texi/smilies/FaceAngry.xpm new file mode 100644 index 0000000..32fec93 --- /dev/null +++ b/texi/smilies/FaceAngry.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E.X....X.E ", +"E...X..X...E", +"E...X..X...E", +"E..........E", +"E...XXXX...E", +" E.X....X.E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceDevilish.xpm b/texi/smilies/FaceDevilish.xpm new file mode 100644 index 0000000..ee88aed --- /dev/null +++ b/texi/smilies/FaceDevilish.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +"..E EEEE E..", +"E..E....E..E", +" E........E ", +" E.. .....E ", +"E..XX..XX..E", +"E..........E", +"E.X......X.E", +"E..X....X..E", +" E..XXXX..E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceGoofy.xpm b/texi/smilies/FaceGoofy.xpm new file mode 100644 index 0000000..62d7de8 --- /dev/null +++ b/texi/smilies/FaceGoofy.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E.X......X.E", +"E.XXXXXXXX.E", +" E........E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceGrinning.xpm b/texi/smilies/FaceGrinning.xpm new file mode 100644 index 0000000..072d505 --- /dev/null +++ b/texi/smilies/FaceGrinning.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E..XXXXXX..E", +"E..X....X..E", +" E..X..X..E ", +" E...XX...E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceHappy.xpm b/texi/smilies/FaceHappy.xpm new file mode 100644 index 0000000..07f1214 --- /dev/null +++ b/texi/smilies/FaceHappy.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c #FFFFFF", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E.X......X.E", +"E..XXXXXX..E", +" E..XXXX..E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceIronic.xpm b/texi/smilies/FaceIronic.xpm new file mode 100644 index 0000000..677ee25 --- /dev/null +++ b/texi/smilies/FaceIronic.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E........X.E", +"E...XXXXX..E", +" E.X......E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceKOed.xpm b/texi/smilies/FaceKOed.xpm new file mode 100644 index 0000000..ed51b19 --- /dev/null +++ b/texi/smilies/FaceKOed.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E.X.XX.X.E ", +"E...X..X...E", +"E..X.XX.X..E", +"E..........E", +"E..........E", +" E.XXXXXX.E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceNyah.xpm b/texi/smilies/FaceNyah.xpm new file mode 100644 index 0000000..320cfe0 --- /dev/null +++ b/texi/smilies/FaceNyah.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E........E ", +"E..XX..XX..E", +"E..........E", +"E..........E", +"E...XXXX...E", +" E..oooX..E ", +" E...oo...E ", +" EE.Xo.EE ", +" EEEE .Xo.", diff --git a/texi/smilies/FaceSad.xpm b/texi/smilies/FaceSad.xpm new file mode 100644 index 0000000..ced9a02 --- /dev/null +++ b/texi/smilies/FaceSad.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E..........E", +"E...XXXX...E", +" E.X....X.E ", +" EX......XE ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceStartled.xpm b/texi/smilies/FaceStartled.xpm new file mode 100644 index 0000000..75739c9 --- /dev/null +++ b/texi/smilies/FaceStartled.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E...XXXX...E", +"E..X....X..E", +" E.X....X.E ", +" E..XXXX..E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceStraight.xpm b/texi/smilies/FaceStraight.xpm new file mode 100644 index 0000000..4298065 --- /dev/null +++ b/texi/smilies/FaceStraight.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E..........E", +"E...XXXX...E", +" E........E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceTalking.xpm b/texi/smilies/FaceTalking.xpm new file mode 100644 index 0000000..2295be8 --- /dev/null +++ b/texi/smilies/FaceTalking.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E..........E", +"E...XXXXX..E", +" E....XXX.E ", +" E....XX..E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceTasty.xpm b/texi/smilies/FaceTasty.xpm new file mode 100644 index 0000000..968e493 --- /dev/null +++ b/texi/smilies/FaceTasty.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E...o......E", +"E..ooo.....E", +" E.XXXXX..E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceWinking.xpm b/texi/smilies/FaceWinking.xpm new file mode 100644 index 0000000..25d62ef --- /dev/null +++ b/texi/smilies/FaceWinking.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X.....E ", +"E...X.XXX..E", +"E..........E", +"E.X......X.E", +"E..XXXXXX..E", +" E..XXXX..E ", +" E........E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceWry.xpm b/texi/smilies/FaceWry.xpm new file mode 100644 index 0000000..db6010d --- /dev/null +++ b/texi/smilies/FaceWry.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E..X..X..E ", +"E...X..X...E", +"E..........E", +"E..........E", +"E.....XXX..E", +" E..XX....E ", +" E....XX..E ", +" EE....EE ", +" EEEE ....", diff --git a/texi/smilies/FaceYukky.xpm b/texi/smilies/FaceYukky.xpm new file mode 100644 index 0000000..0d3de33 --- /dev/null +++ b/texi/smilies/FaceYukky.xpm @@ -0,0 +1,20 @@ +/* XPM */ +static char * image_name[] = { +"12 12 5 1", +" c none", +". c #FFFF00 s flesh", +"X c #000000000000 s features", +"E c #000000000000 s circle", +"o c #555555555555 s tongue", +" EEEE ", +" EE....EE ", +" E........E ", +" E.X....X.E ", +"E...X..X...E", +"E..........E", +"E..........E", +"E..XXXXX...E", +" E..oooX..E ", +" E...oo...E ", +" EE.Xo.EE ", +" EEEE .Xo.", diff --git a/texi/smilies/WideFaceAse1.xbm b/texi/smilies/WideFaceAse1.xbm new file mode 100644 index 0000000..1a5a589 --- /dev/null +++ b/texi/smilies/WideFaceAse1.xbm @@ -0,0 +1,19 @@ +#define Face_ase_width 24 +#define Face_ase_height 16 +static char Face_ase_bits[] = { + 0x00,0x00,0x00, + 0xf8,0xc1,0x0f, + 0x04,0x22,0x10, + 0x00,0x00,0x00, + 0xf0,0xc0,0x03, + 0x68,0xa1,0x05, + 0x68,0xa1,0x05, + 0x68,0xa1,0x05, + 0xf0,0xc0,0x23, + 0x00,0x00,0x20, + 0x00,0x00,0x50, + 0x50,0x40,0x52, + 0x00,0x00,0x50, + 0x20,0x91,0x20, + 0x00,0x0e,0x00, + 0x00,0x00,0x00}; diff --git a/texi/smilies/WideFaceAse2.xbm b/texi/smilies/WideFaceAse2.xbm new file mode 100644 index 0000000..4c7fcb6 --- /dev/null +++ b/texi/smilies/WideFaceAse2.xbm @@ -0,0 +1,19 @@ +#define Face_ase2_width 32 +#define Face_ase2_height 16 +static char Face_ase2_bits[] = { + 0x00,0x00,0x00,0x00, + 0xf0,0x83,0x1f,0x00, + 0x08,0x44,0x20,0x00, + 0x00,0x00,0x00,0x00, + 0xe0,0x81,0x07,0x00, + 0xd0,0x42,0x0b,0x00, + 0xd0,0x42,0x0b,0x00, + 0xd0,0x42,0x0b,0x00, + 0xe0,0x81,0x87,0x10, + 0x00,0x00,0x80,0x10, + 0x00,0x00,0x40,0x29, + 0xa0,0x80,0x44,0x29, + 0x00,0x00,0x40,0x29, + 0x40,0x22,0x81,0x10, + 0x00,0x1c,0x00,0x00, + 0x00,0x00,0x00,0x00}; diff --git a/texi/smilies/WideFaceAse3.xbm b/texi/smilies/WideFaceAse3.xbm new file mode 100644 index 0000000..0960e77 --- /dev/null +++ b/texi/smilies/WideFaceAse3.xbm @@ -0,0 +1,20 @@ +#define Face_ase3_width 24 +#define Face_ase3_height 16 +static char Face_ase3_bits[] = { + 0x00,0x00,0x00, + 0xf8,0xc1,0x0f, + 0x04,0x22,0x10, + 0x00,0x00,0x00, + 0x18,0x00,0x07, + 0xe0,0xe0,0x00, + 0xfc,0xf3,0x0f, + 0xc0,0xe1,0x00, + 0x38,0x00,0x27, + 0x00,0x00,0x20, + 0x00,0x00,0x50, + 0x50,0x40,0x52, + 0x00,0x00,0x50, + 0x20,0x91,0x20, + 0x00,0x0e,0x00, + 0x00,0x00,0x00 +}; diff --git a/texi/smilies/WideFaceSmile.xbm b/texi/smilies/WideFaceSmile.xbm new file mode 100644 index 0000000..c4cc3bc --- /dev/null +++ b/texi/smilies/WideFaceSmile.xbm @@ -0,0 +1,19 @@ +#define Face_smile_width 24 +#define Face_smile_height 16 +static char Face_smile_bits[] = { + 0x00,0x00,0x00, + 0xf8,0xc1,0x0f, + 0x04,0x22,0x10, + 0x00,0x00,0x00, + 0xf0,0xc0,0x07, + 0x68,0xa1,0x09, + 0x68,0xa1,0x09, + 0x68,0xa1,0x09, + 0xf0,0xc0,0x07, + 0x00,0x00,0x00, + 0x00,0x00,0x00, + 0x50,0x80,0x04, + 0x00,0x00,0x00, + 0x20,0x22,0x01, + 0x00,0x1c,0x00, + 0x00,0x00,0x00}; diff --git a/texi/smilies/WideFaceWeep.xbm b/texi/smilies/WideFaceWeep.xbm new file mode 100644 index 0000000..4353148 --- /dev/null +++ b/texi/smilies/WideFaceWeep.xbm @@ -0,0 +1,20 @@ +#define Face_weep_width 24 +#define Face_weep_height 16 +static char Face_weep_bits[] = { + 0x1c,0x00,0x3c, + 0xe2,0x80,0x43, + 0x00,0x63,0x00, + 0x18,0x00,0x18, + 0x60,0x00,0x07, + 0x80,0xe3,0x00, + 0xfc,0xf7,0x3f, + 0x80,0xe3,0x00, + 0x60,0x00,0x07, + 0x58,0x00,0x1a, + 0x40,0x00,0x02, + 0xa0,0x00,0x05, + 0xa0,0x00,0x05, + 0xa0,0x1c,0x05, + 0x40,0x22,0x02, + 0x00,0x00,0x00 +}; diff --git a/texi/texi2latex.el b/texi/texi2latex.el index 5ff6804..9aae918 100644 --- a/texi/texi2latex.el +++ b/texi/texi2latex.el @@ -106,7 +106,7 @@ ((member command '("chapter")) (latexi-switch-line (format - "gnus%s{\\epsfig{figure=tmp/new-herd-%d.ps,scale=.5}}" + "gnus%s{\\epsfig{figure=ps/new-herd-%d,scale=.5}}" command (incf chapter)) arg)) ((member command '("section")) diff --git a/texi/xface/abrahamsen.gif b/texi/xface/abrahamsen.gif new file mode 100644 index 0000000..bf41d8d Binary files /dev/null and b/texi/xface/abrahamsen.gif differ diff --git a/texi/xface/aichner.gif b/texi/xface/aichner.gif new file mode 100644 index 0000000..53e5596 Binary files /dev/null and b/texi/xface/aichner.gif differ diff --git a/texi/xface/blanks.gif b/texi/xface/blanks.gif new file mode 100644 index 0000000..ad83633 Binary files /dev/null and b/texi/xface/blanks.gif differ diff --git a/texi/xface/cosgriff.gif b/texi/xface/cosgriff.gif new file mode 100644 index 0000000..cd529f8 Binary files /dev/null and b/texi/xface/cosgriff.gif differ diff --git a/texi/xface/drazen.gif b/texi/xface/drazen.gif new file mode 100644 index 0000000..5c68a8f Binary files /dev/null and b/texi/xface/drazen.gif differ diff --git a/texi/xface/gertzfield.gif b/texi/xface/gertzfield.gif new file mode 100644 index 0000000..0dd0f00 Binary files /dev/null and b/texi/xface/gertzfield.gif differ diff --git a/texi/xface/goldberg.gif b/texi/xface/goldberg.gif new file mode 100644 index 0000000..5cc39f7 Binary files /dev/null and b/texi/xface/goldberg.gif differ diff --git a/texi/xface/graf.gif b/texi/xface/graf.gif new file mode 100644 index 0000000..39df481 Binary files /dev/null and b/texi/xface/graf.gif differ diff --git a/texi/xface/hardaker.gif b/texi/xface/hardaker.gif new file mode 100644 index 0000000..cf9852f Binary files /dev/null and b/texi/xface/hardaker.gif differ diff --git a/texi/xface/hedbor.gif b/texi/xface/hedbor.gif new file mode 100644 index 0000000..e330a6f Binary files /dev/null and b/texi/xface/hedbor.gif differ diff --git a/texi/xface/ingrand.gif b/texi/xface/ingrand.gif new file mode 100644 index 0000000..5499d29 Binary files /dev/null and b/texi/xface/ingrand.gif differ diff --git a/texi/xface/kaplan.gif b/texi/xface/kaplan.gif new file mode 100644 index 0000000..85b8390 Binary files /dev/null and b/texi/xface/kaplan.gif differ diff --git a/texi/xface/karlheg.gif b/texi/xface/karlheg.gif new file mode 100644 index 0000000..cf9e9a9 Binary files /dev/null and b/texi/xface/karlheg.gif differ diff --git a/texi/xface/kleinpaste.gif b/texi/xface/kleinpaste.gif new file mode 100644 index 0000000..aefd481 Binary files /dev/null and b/texi/xface/kleinpaste.gif differ diff --git a/texi/xface/kyle.gif b/texi/xface/kyle.gif new file mode 100644 index 0000000..3626af8 Binary files /dev/null and b/texi/xface/kyle.gif differ diff --git a/texi/xface/love.gif b/texi/xface/love.gif new file mode 100644 index 0000000..5fc7681 Binary files /dev/null and b/texi/xface/love.gif differ diff --git a/texi/xface/moll.gif b/texi/xface/moll.gif new file mode 100644 index 0000000..6092c60 Binary files /dev/null and b/texi/xface/moll.gif differ diff --git a/texi/xface/niksic.gif b/texi/xface/niksic.gif new file mode 100644 index 0000000..a73c884 Binary files /dev/null and b/texi/xface/niksic.gif differ diff --git a/texi/xface/olsen.gif b/texi/xface/olsen.gif new file mode 100644 index 0000000..a7d489d Binary files /dev/null and b/texi/xface/olsen.gif differ diff --git a/texi/xface/patch.gif b/texi/xface/patch.gif new file mode 100644 index 0000000..4fc6bdc Binary files /dev/null and b/texi/xface/patch.gif differ diff --git a/texi/xface/petersen.gif b/texi/xface/petersen.gif new file mode 100644 index 0000000..d0c7e2e Binary files /dev/null and b/texi/xface/petersen.gif differ diff --git a/texi/xface/pjf.gif b/texi/xface/pjf.gif new file mode 100644 index 0000000..1fac6a5 Binary files /dev/null and b/texi/xface/pjf.gif differ diff --git a/texi/xface/riocreux.gif b/texi/xface/riocreux.gif new file mode 100644 index 0000000..9c8eacf Binary files /dev/null and b/texi/xface/riocreux.gif differ diff --git a/texi/xface/schauer.gif b/texi/xface/schauer.gif new file mode 100644 index 0000000..c412e36 Binary files /dev/null and b/texi/xface/schauer.gif differ diff --git a/texi/xface/simmonmt.gif b/texi/xface/simmonmt.gif new file mode 100644 index 0000000..e17fcf7 Binary files /dev/null and b/texi/xface/simmonmt.gif differ diff --git a/texi/xface/simmons.gif b/texi/xface/simmons.gif new file mode 100644 index 0000000..2d77394 Binary files /dev/null and b/texi/xface/simmons.gif differ diff --git a/texi/xface/siu.gif b/texi/xface/siu.gif new file mode 100644 index 0000000..3df1792 Binary files /dev/null and b/texi/xface/siu.gif differ diff --git a/texi/xface/smb.gif b/texi/xface/smb.gif new file mode 100644 index 0000000..e3c11bc Binary files /dev/null and b/texi/xface/smb.gif differ diff --git a/texi/xface/sobek.gif b/texi/xface/sobek.gif new file mode 100644 index 0000000..748f83a Binary files /dev/null and b/texi/xface/sobek.gif differ diff --git a/texi/xface/thomas.gif b/texi/xface/thomas.gif new file mode 100644 index 0000000..f66cc84 Binary files /dev/null and b/texi/xface/thomas.gif differ diff --git a/texi/xface/valdis.gif b/texi/xface/valdis.gif new file mode 100644 index 0000000..8b55499 Binary files /dev/null and b/texi/xface/valdis.gif differ diff --git a/texi/xface/verna1.gif b/texi/xface/verna1.gif new file mode 100644 index 0000000..17199d7 Binary files /dev/null and b/texi/xface/verna1.gif differ diff --git a/texi/xface/verna2.gif b/texi/xface/verna2.gif new file mode 100644 index 0000000..b4c1ec0 Binary files /dev/null and b/texi/xface/verna2.gif differ diff --git a/texi/xface/yamaoka.gif b/texi/xface/yamaoka.gif new file mode 100644 index 0000000..2968cfc Binary files /dev/null and b/texi/xface/yamaoka.gif differ