# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: wojciech.meyer@gmail.com-20100828220854-\ # 574a373p263zx55o # target_branch: http://bzr.savannah.gnu.org/r/emacs/trunk # testament_sha1: c7e126cfa572c47e18255bd7e35af3140c5be6f4 # timestamp: 2010-08-28 23:09:18 +0100 # source_branch: ../define-derived-mode/ # base_revision_id: eliz@gnu.org-20100828081013-yktp2zr7iafsxjtk # # Begin patch === modified file 'lisp/arc-mode.el' --- lisp/arc-mode.el 2010-07-10 18:52:53 +0000 +++ lisp/arc-mode.el 2010-08-28 22:08:54 +0000 @@ -341,7 +341,6 @@ (defvar archive-mode-map (let ((map (make-keymap))) (suppress-keymap map) - (define-key map " " 'archive-next-line) (define-key map "a" 'archive-alternate-display) ;;(define-key map "c" 'archive-copy) (define-key map "d" 'archive-flag-deleted) @@ -349,15 +348,12 @@ (define-key map "e" 'archive-extract) (define-key map "f" 'archive-extract) (define-key map "\C-m" 'archive-extract) - (define-key map "g" 'revert-buffer) - (define-key map "h" 'describe-mode) (define-key map "m" 'archive-mark) (define-key map "n" 'archive-next-line) (define-key map "\C-n" 'archive-next-line) (define-key map [down] 'archive-next-line) (define-key map "o" 'archive-extract-other-window) (define-key map "p" 'archive-previous-line) - (define-key map "q" 'quit-window) (define-key map "\C-p" 'archive-previous-line) (define-key map [up] 'archive-previous-line) (define-key map "r" 'archive-rename-entry) @@ -632,24 +628,10 @@ (error "Entry is not a regular member of the archive")))) (if (not noerror) (error "Line does not describe a member of the archive"))))) -;; ------------------------------------------------------------------------- -;;; Section: the mode definition - -;;;###autoload -(defun archive-mode (&optional force) - "Major mode for viewing an archive file in a dired-like way. -You can move around using the usual cursor motion commands. -Letters no longer insert themselves. -Type `e' to pull a file out of the archive and into its own buffer; -or click mouse-2 on the file's line in the archive mode buffer. - -If you edit a sub-file of this archive (as with the `e' command) and -save it, the contents of that buffer will be saved back into the -archive. - -\\{archive-mode-map}" - ;; This is not interactive because you shouldn't be turning this - ;; mode on and off. You can corrupt things that way. + +(defun archive-setup-mode (&optional force) + "Wrap all the mode setup code into separate function callable from +the package code." (if (zerop (buffer-size)) ;; At present we cannot create archives from scratch (funcall (or (default-value 'major-mode) 'fundamental-mode)) @@ -717,6 +699,30 @@ (archive-summarize nil) (setq buffer-read-only t)))) +;; ------------------------------------------------------------------------- +;;; Section: the mode definition + +;;;###autoload +(define-derived-mode archive-mode special-mode "Archive mode" + "Major mode for viewing an archive file in a dired-like way. +You can move around using the usual cursor motion commands. +Letters no longer insert themselves. +Type `e' to pull a file out of the archive and into its own buffer; +or click mouse-2 on the file's line in the archive mode buffer. + +If you edit a sub-file of this archive (as with the `e' command) and +save it, the contents of that buffer will be saved back into the +archive. + +\\{archive-mode-map}" + ;; This is not interactive because you shouldn't be turning this + ;; mode on and off. You can corrupt things that way. + ;; + ;; Now it's derived mode, so therefore it is interactive. + ;; + (archive-setup-mode)) + + ;; Archive mode is suitable only for specially formatted data. (put 'archive-mode 'mode-class 'special) @@ -888,7 +894,7 @@ (setq archive-files nil) (erase-buffer) (insert-file-contents name) - (archive-mode t) + (archive-setup-mode t) (goto-char archive-file-list-start) (archive-next-line lno)) (archive-delete-local name) @@ -1396,7 +1402,7 @@ (let ((revert-buffer-function nil) (coding-system-for-read 'no-conversion)) (revert-buffer t t)) - (archive-mode) + (archive-setup-mode) (goto-char archive-file-list-start) (archive-next-line no))) === modified file 'lisp/bookmark.el' --- lisp/bookmark.el 2010-07-14 19:09:28 +0000 +++ lisp/bookmark.el 2010-08-28 17:45:38 +0000 @@ -1499,7 +1499,6 @@ (defvar bookmark-bmenu-mode-map (let ((map (make-keymap))) (suppress-keymap map t) - (define-key map "q" 'quit-window) (define-key map "v" 'bookmark-bmenu-select) (define-key map "w" 'bookmark-bmenu-locate) (define-key map "2" 'bookmark-bmenu-2-window) @@ -1515,11 +1514,9 @@ (define-key map "\C-d" 'bookmark-bmenu-delete-backwards) (define-key map "x" 'bookmark-bmenu-execute-deletions) (define-key map "d" 'bookmark-bmenu-delete) - (define-key map " " 'next-line) (define-key map "n" 'next-line) (define-key map "p" 'previous-line) (define-key map "\177" 'bookmark-bmenu-backup-unmark) - (define-key map "?" 'describe-mode) (define-key map "u" 'bookmark-bmenu-unmark) (define-key map "m" 'bookmark-bmenu-mark) (define-key map "l" 'bookmark-bmenu-load) @@ -1609,7 +1606,7 @@ -(defun bookmark-bmenu-mode () +(define-derived-mode bookmark-bmenu-mode special-mode "Bookmark Menu" "Major mode for editing a list of bookmarks. Each line describes one of the bookmarks in Emacs. Letters do not insert themselves; instead, they are commands. @@ -1645,9 +1642,6 @@ (kill-all-local-variables) (use-local-map bookmark-bmenu-mode-map) (setq truncate-lines t) - (setq buffer-read-only t) - (setq major-mode 'bookmark-bmenu-mode) - (setq mode-name "Bookmark Menu") (run-mode-hooks 'bookmark-bmenu-mode-hook)) === modified file 'lisp/doc-view.el' --- lisp/doc-view.el 2010-07-14 15:57:54 +0000 +++ lisp/doc-view.el 2010-08-28 20:21:22 +0000 @@ -333,7 +333,6 @@ (define-key map (kbd "C-c C-t") 'doc-view-open-text) ;; Reconvert the current document. Don't just use revert-buffer ;; because that resets the scale factor, the page number, ... - (define-key map (kbd "g") 'doc-view-revert-buffer) (define-key map (kbd "r") 'doc-view-revert-buffer) map) "Keymap used by `doc-view-mode' when displaying a doc as a set of images.") @@ -1207,7 +1206,7 @@ l)) ;;;###autoload -(defun doc-view-mode () +(define-derived-mode doc-view-mode special-mode "Doc" "Major mode in DocView buffers. DocView Mode is an Emacs document viewer. It displays PDF, PS @@ -1216,7 +1215,6 @@ You can use \\\\[doc-view-toggle-display] to toggle between displaying the document or editing it as text. \\{doc-view-mode-map}" - (interactive) (if (= (point-min) (point-max)) ;; The doc is empty or doesn't exist at all, so fallback to @@ -1311,15 +1309,14 @@ (set (make-local-variable 'after-revert-hook) 'doc-view-reconvert-doc) (set (make-local-variable 'bookmark-make-record-function) 'doc-view-bookmark-make-record) - (setq mode-name "DocView" - buffer-read-only t - major-mode 'doc-view-mode) + (setq buffer-read-only t) (doc-view-initiate-display) ;; Switch off view-mode explicitly, because doc-view-mode is the ;; canonical view mode for PDF/PS/DVI files. This could be ;; switched on automatically depending on the value of ;; `view-read-only'. (set (make-local-variable 'view-read-only) nil) + (setq revert-buffer-function 'doc-view-revert-buffer) (run-mode-hooks 'doc-view-mode-hook))) ;;;###autoload === modified file 'lisp/image-mode.el' --- lisp/image-mode.el 2010-08-17 21:19:11 +0000 +++ lisp/image-mode.el 2010-08-28 20:21:22 +0000 @@ -314,9 +314,7 @@ (defvar image-mode-map (let ((map (make-sparse-keymap))) (suppress-keymap map) - (define-key map "q" 'quit-window) (define-key map "\C-c\C-c" 'image-toggle-display) - (define-key map (kbd "SPC") 'image-scroll-up) (define-key map (kbd "DEL") 'image-scroll-down) (define-key map [remap forward-char] 'image-forward-hscroll) (define-key map [remap backward-char] 'image-backward-hscroll) @@ -346,18 +344,16 @@ (put 'image-mode 'mode-class 'special) ;;;###autoload -(defun image-mode () +(define-derived-mode image-mode special-mode "Image" "Major mode for image files. You can use \\\\[image-toggle-display] to toggle between display as an image and display as text." - (interactive) (condition-case err (progn (unless (display-images-p) (error "Display does not support images")) (kill-all-local-variables) - (setq major-mode 'image-mode) (if (not (image-get-display-property)) (progn === modified file 'lisp/replace.el' --- lisp/replace.el 2010-08-08 21:12:29 +0000 +++ lisp/replace.el 2010-08-28 20:21:22 +0000 @@ -766,8 +766,6 @@ (define-key map "\M-p" 'occur-prev) (define-key map "r" 'occur-rename-buffer) (define-key map "c" 'clone-buffer) - (define-key map "g" 'revert-buffer) - (define-key map "q" 'quit-window) (define-key map "z" 'kill-this-buffer) (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) (define-key map [menu-bar] (make-sparse-keymap)) @@ -834,18 +832,15 @@ :group 'matching) (put 'occur-mode 'mode-class 'special) -(defun occur-mode () +(define-derived-mode occur-mode special-mode "Occur" "Major mode for output from \\[occur]. \\Move point to one of the items in this buffer, then use \\[occur-mode-goto-occurrence] to go to the occurrence that the item refers to. Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it. \\{occur-mode-map}" - (interactive) (kill-all-local-variables) (use-local-map occur-mode-map) - (setq major-mode 'occur-mode) - (setq mode-name "Occur") (set (make-local-variable 'revert-buffer-function) 'occur-revert-function) (make-local-variable 'occur-revert-arguments) (add-hook 'change-major-mode-hook 'font-lock-defontify nil t) === modified file 'lisp/tar-mode.el' --- lisp/tar-mode.el 2010-05-03 02:29:46 +0000 +++ lisp/tar-mode.el 2010-08-28 17:55:47 +0000 @@ -524,7 +524,6 @@ (defvar tar-mode-map (let ((map (make-keymap))) (suppress-keymap map) - (define-key map " " 'tar-next-line) (define-key map "C" 'tar-copy) (define-key map "d" 'tar-flag-deleted) (define-key map "\^D" 'tar-flag-deleted) @@ -532,14 +531,12 @@ (define-key map "f" 'tar-extract) (define-key map "\C-m" 'tar-extract) (define-key map [mouse-2] 'tar-mouse-extract) - (define-key map "g" 'revert-buffer) (define-key map "h" 'describe-mode) (define-key map "n" 'tar-next-line) (define-key map "\^N" 'tar-next-line) (define-key map [down] 'tar-next-line) (define-key map "o" 'tar-extract-other-window) (define-key map "p" 'tar-previous-line) - (define-key map "q" 'quit-window) (define-key map "\^P" 'tar-previous-line) (define-key map [up] 'tar-previous-line) (define-key map "R" 'tar-rename-entry) @@ -615,7 +612,7 @@ (if (buffer-live-p tar-data-buffer) (kill-buffer tar-data-buffer))) ;;;###autoload -(define-derived-mode tar-mode nil "Tar" +(define-derived-mode tar-mode special-mode "Tar" "Major mode for viewing a tar file as a dired-like listing of its contents. You can move around using the usual cursor motion commands. Letters no longer insert themselves. # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWS9AJhUAIWXfgFgwWff///Yn 3KT////6YCPuy5L33OVXz7eXH33bzT3l9nN6U0iktte5hyHuYO+soD73Xb5ut2O2xNNe93ngxB7j 75p33z2+HvDN3G73BO+E5zA9q3G6lFVVVVVezSezdsTG9xoVx7dQkpoRoTQ0MjEBppDSJPakA0AA PUaPUEoQABBTJTxERDxT9KA9RkBoNDaj1DQJQCEampso9IKn6ppk9qRpkBkMQDIaMgBJqIRNBQZN GqZlPUeUGnogbUMgAAACJSCaMp6k8U/UyTBNPTRlT0aA1Mp6jQAGg9QRSE0AE00RpqR6J6KeVP9G pT1PSDEaAYjBFRMAbnBOYpL8Rv7uFcaP9ftL4M7fhp/s8hx5a3nNxzx7fbWOu29a31XvCHl8P5DL AUuUUA1RQqUfucJ24VdRH+vMHT/d+09DXO9cQ8kSPcl9WX1H+VX/sl9R+TL+RRTH+4pTRqIv7XL+ R+T1kdk/rMCoL06zzhqyuNtXbZyTZ+zvrHW7PUjvQGm/F+izpoxfstkr7ZP8KB8Cp7N86uCId2dd 1eHH4Vuu8xKvwsvYUVVOLRciLM9W4142lh/VQRDVUMqILrs4anWpbCLFKznGOu2qubOldnSapoDS dnPaggHMk+BeOJTKdb1aYYdUviudl9JsbbZ2uRWWti8LaAULjpWJQta+UEFe7EOpNYBDMiemysE1 bhTpgJbATmCiuuHGK66+9u6AXQMSnEzr5ylKJB99SRxa20Xa9U/gqclgwgoskWCiMRAFAUVRQRAR IoKRRRRZz9chA7/HPu1QQ6CIc+PnY8ppHVnTDo9ejg6ksDBQMDBQLcf0eylKy1IxIpiWezGBSy4v T2kMA4QNN5mpcoR6EZkuOdBeFTA7uzhy8nhrF8Xk0Hu60+ktErhiywpSwpGjA6jaQ4MM5VS5d3Z2 ccVOOMXxpzLNVQZ23tV5O2qvI1y5d0mnxDK6jqThrRA+FBlezJezF1pYWI0m1pfVCMBDrcvCEWmC JkmJ/qe88kPCZugRchjh73s/jLm+Hws3vd1iyjBjuqO1TNAJgf5T54iMfa78zzqC2g5bcOeJoHO4 Y/N2lLK5UBMU13NBCUkVDeRvmTv6Hn1nYszYY4gsRGYN1SeRUk/KR0gnLqGLyXCplHaOd8jQvhrb r81SpxdIi2JRtKcfDOVmErlSNdcygKUpCHh1JL2h7G/bLMiJVc6iIh5znzfw6L6Z8+bitbPoqdlZ Oc2h+l8x3aM/4+RpQZm5M324fq+nU7cs/RzN6+fZ3t5ne0oPjNGacGCKHElIfI5JI8pIkhF2HrU7 zL39d30+kNuuGezjrw0UWU0eZtuy3RFo3OJan756aG1cfw3ZfgkJcZ6+G/GVmGHC+11+G223E36x D0gsioQgo+XmfXSeRAG36SQkDIu+uCU/mH6ZC5EEqRbfiy34m/tTlz+lav4yzqotP8UHv2T5XP1W GUvbonzftZA3VLIV3fQfKB786ADSqQV93glbNk4sBQbgO0TxEoo/YT2E8VIGYh9kfiJIDbuVE+Yn d+T1+ZBuIYL+Imgn0oGJi8IlyJHISxdxNBDZzRUo7IhoHi7UhxTAox8kOpNUWIqWpQo2MJWhSVhO hZ+lrQkRKJE3qaiUXT1RO6IHlatMcFzqh+JeH0RNZFNbTPUevghDNCsRTNQmzHOb9A5wDsL4Qgs/ z6KqunEfjCOD4w42bp733e89RGAEnonXyHsRMrSngNHjS2wsEoiFEwBgLgVd4xLTA1Tfo+WAEnrn yZJIu09oT/Giv4+N1zm54bO98bYdXO0MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzDMzMyMzMzOj75Pl S+FYdCsV3Hy2bngSQ2QhaQ8EJshMMhN2Q9Yky5qoGWLaGXDJbJwk1ty1UIczASQlcClwWkWsli0x LhLIEEbLEQNzMv1JZIlTQkReRcoo6PyxLocSWaWLhnNCgslSpQ+WSN0EjVS6harQQIsrx+AmCvEJ XX3FFGZtZsDLgXXYxkohnMlIIBQhdZyMjzAyPUwwhAi6B85CFZTwWIyHmDOizFqtZjYpGYhYuRnu FUe+ZoFF+n6GSwry6k+IvmOi6pfKO3U6EOAIJwJxu+NV4KyQq5HpBALx2L+9AuQOqTqMIALUEQ53 c3nF0YoVlyPmbjArEtXDEqEqbyaTBCWC0caI99Uc95kwXNotxkiVqiZaz5a8aZbG2JPzYQ0E7ieA bJp4QNunzFZIiAW1xOUJoKLBwrkRB1K1eBFSahAVGUKwkQi1WmDzG7iFBBSlKkp02ghUSQ9IREf2 77O12Ers9DanTDFuPQRKT6tx9yJvvgJGsIga8Wx46cHRECKbFOZP6BfeckTdE16nTbsJR6R156Ox KHNHfjfay2GdmZf4IhK9Gbq+IOxNtTzB6vvufnxPt9Ci2fiTpQaNK13mSCUlMTItpRC+NXkUywyp TdYRAhiElADF6FJM6bYwuhSQnJAC+y1h7yUDCrK2Z9yCHHhBCvNto7HEKm8CG3CbEF4HN3M4dfgk ZN/eIV7uppp1RCpVspoZByg+ZOw5pCzNWM5mRyOXLWyyMzJDITSEEn2JKhbrWahDvuOazqr674nl xCBB/MKENjIYcQbLEDqG1Dn7ehjkwxtBAM7mI7RBwXEJCoIWKPQPEhPNtNC8uNsUSxExYRMVSwsP wEy4ruklP/RCJB3naNzo9TV8tKpSo1euJqaKPr8P5JldfOJopomGatyoLEiAjWdRHfQYdRF0b9I/ qONEPLWg7dlvytwWatwSjMuNsGFBlYXZ7BnFqe6CS2oVSTcAEChENxikEAgSeniKO3Qg4IKEMUrl BMQc2W0gQefP1dQuUTIhLC0aMEEhcS9xBops8yrdn3KDrpUQ075U9hnviHQlrlRvREM3fNWoP3/F FMlFXsoPnMnhCo9/T0PYVAUOYHSvgVJMzhjyJYMToQPPi+X3YyZPrx0Stgl9LzWs+LdOtcyIOako 8DFxgAUvgFx3RKmW1hUr7xJX32EjIrbihkYISE1EoUGNZ6uKKc/ZwkBACBXtNuf1ZFoZ+oQnGWpH hA7L8HMlMDqCFK31xOOOVQSBufGIs24YeRzAmauOnZmirsybBLNdER4xRrPHY/SIciGxDIh+8Qui bTnF9BwqqHpJYbXbiO1Z6xcj1SKsxW1cq3e0kONENYlPVSHIkwOGD59740ZEsjC9kVa1J6CGti6X eOX2FwMO7YmDJjMTqlxBAstRdw5WuMc4udbGi56TGgZLWBvP1wQBz0GPJDCLgup0IQ4NnJLRgFZ+ 3gPkcwHdT4hfFWd1NOpQdvRYqWgykqwdmgKl2cS+xBCNOT3keFJPy+V+xB0HnTmH9iMJ2RWg6Ryb jDgwAqMrxBc64fUnQpNKRNPB3igEVTfHoRLilJXsmsxKY4LkIVOFK07e0zhSpPMCPgQhufZthDbK 7W40kVnXldPWdpdaYHfuJ715KbCe80b06DErU5/yQyE6dg893p20KV6YTBLYAQoUQezqQ+FtLyCw Jl7S/WgloH5VMMTwXCDCncsHPRDVamCJ8vj4IFaxL+90AD3FYWydMjMpCZlQ66c4CosxXyQQB3sg hfgedCimsaNxNZW86N6luB8mcj7jfIoWlmFST9+M+Omm/qycyavS4MCGWeXMEQZBAFDhEPTJDskx 0uop4tcm79CBRKiFEmyB41ArFeq1bOB/8fiQUUOsCE2gOEMX55KS0R0U2KTLzvlApe5gQ1iQhBB+ cnjrBSJznsQcdan47ICEy4tOhYZVAxdSBXzm/dSB6UWj6BCKduGvFYTU2m4jqFYCIKioIXBEIxFE gU2XKlCpDiFeylFtwemI6Mhrpc3R4pdpWvLF4CjiBg+7gYQ0zzMXK4wjN9EQ55iOIjxxEYDxFYip B6oNO+09zaa4odF3DFRw0ROhNP2CZrRyFY00VZEKEK8pmJsnvMerkrb0YjxLBLPLXI7QZZFcBNfv qSvE20J+/iYvVNEtnfJSp4ffH442XQoZxJgY3axxZHWcF6ljaaBtnR0kJUuJMY39dHnS+YoHEnik rj+bDd6HXlsjkuCEFSHmTKncZ4z5yMRKibtevQ6B1QUFBQUFBYoKCgsUFBQUFigsWJtxw7enl7ye jyaOpCu3HgWduY/1/gELyuJmpSZ6ePDjs+okromje9jVs/uZuZKr4zRMK7ly7zot7k1GtNphsJbK 2kaPS8qxcjyG7NYjJVhxCNFX2QQC21nVufvEOKIfC1EOhB+CHshAM9umteSzGPThtv0XJhqzQbMM 0t1nrQnTrbbYJClJKVpaA0LoC+w1JhzO+Lg2xjK128eYXuL2rizZueoFfSZPXyf77MRSJqjxDERC BUg/ZjAOKnT6epaI+w4oV2wk6rEk4DoUo/g5HWIF13R0piECSVIvHI9jen/DShKTsqeRBgkkzjd1 3Msl9MFypM22LvcxyXKyo22l+e2pfL4CHgiccQCkKqWXlcNZmhbrOzQ2LQGNyyWrvov0IRnEwTaJ UfWuHkpCjrl3m1Hsgeoh0wC4mVjykk3GrVWycL3Tm58KB+IQT4hD3CHt2EM875CxrXUbjZvSFw3G Lgg60ciutEYnDVYNNYaRDCJQgtQ7aoQs5W+5qdh++vCw54qzNOjAQfeObOgeaJkQyMLBd5OCp9Q+ b8M1GBCeHDx4ITLbNnD+MzulUhVMOHgmoCZ9/HcS9CwSATbYvJiT0yGcd7k3npfUmcHCjkCo8QZE N0lKGKGG5+VXv4Vd6IQLE+Zc06CahitmjbXKpapfNiJQN7yUMcR+EEPRAArhi5ZLG2tiBx5rSO/J 0Jvgco6kQWLuX3t4CqRF2c4vEQpfysmIupbMYZOKE6HEDeh14zvrJYhAa+6DquiF6IMkTuRaIzER EXCK+ppf6fJ38+7Xo7jZBQ4YxtvbBW2jh76xmQSGIiDWQGsxNzxNWLWB2GENGTDEj3zRSTls+lyB sW4A5SKCWwIDB3kCSIVb46mHXNzDUJMqil0DE8JKoNxkUPEnLktu8InLE7aerqQODIkEuLccyp8D 11gZkQ0JAlPqUbj10URhYTLxiyxENVq8qTMdgWM3tMUudacWImvdyFY8cvy5D2OfHYxuPT90BeTl 3wITEJ+l9j7ndrodoIOtZBCkd7UjooKW52QexYfXqeTROvOEwYSSlokCT1Hu2WIjq+LsxHA49J3n Ia5djvNRekMQSeafkEI2OORcW7+TtdKm69Cou91hmtCzUOOYhbuggCoC8PCULYOlaKJycLOhnh2K nljXgeRDuFBTqVSCAWNtNDlkb3ClI5seSBkuVyxjSAwhGmN4pVZoIeZUIhTPL0Q7nBwhonu5UNU5 KlD1wRIOjWL0EHfWCFHZTO7c9ShuyMolHdDiI4biMjfBZkCIKNqHXGMj9nhBCqKghC4thpQNWIcQ 71IYfSG3rg3BKvOIlbyJm8W9RDoqlEXSO4eKR5hxA4jcXMJm0Pss2EuaV6wEbBGaDJK4RLWG5qdj QfqLYM/mIZXToF1USSIRzRJTYZIkDciWMhkw2PIQkkImCJE0SdWlyJYilESSAEIlESLAUuEAraiQ iWqqfN0xep8oUhKHRAUqRLziiaUpCMkIMUUBgh4AghRRRUKlRGBGMRFPMqqqqqqqqqqKsVWiC0E/ aqQcIkdckAX2YoHVtaly5wQKBBUIRZIfrs7R92KMq4kfFfxWKBLTCQ9rbZRcIN2f72kndJBJ54QQ gHy8wEkTn3uc5IXbHLtmZNAy6k82fTI8DRGmaWpABUJMkIiGhJz2ue0Xob1FwiEnXXNdD2wPFcTE UiMWShAtfZhlgQcLGEBsP48C5hPBofl5mpcVzFIYHzmPza44VFGzK5emcpZ9M4rfNR2onwzLiyuR jt5+z1uobGBzxOUXrb9Yjo+g+/gbucY0eEZeX6bRFjkiyqeEmJH2sadV8Ow6vk8E/N7Ce8iaxAKK gv9Yt/ESpcvkJw3XqmGJSdJNiWLGKkNyJXWaE5Ajc0UMUSzzhVuGIVw5NH63h2dwZweH4oYJx9oW hmRRsvcFTnRvNlnyEjfbpIif61ZG8hWiT3H36wwMD4zB06t0ccRzvb0+5hHt6PXqN85FVVNFPcby U0FM5oqPebk+h5jkWjh2jAuH/hV+xDZbPqm4EhlRDR6ghQym8m9rzFRCpyVH5HCv1a1HYfar3mXU nM4UuLKtTGUze0pE8x5KvpaGCujMSJLJr5FLiy/UId8GXmHtXh21kfYjHVyopd2E/DrC5o3onpsn nnqVnCmN9kwOXKYnrE+hlqju1up7w8AgUCzoRKf3LX4kM6V1Q/BUUiknFEDrEqA1eIiB8OKThZqu I7gdjhy2X3sc6OUIlDJzuJ0Eczspxpykx8GWtkQiiBsSK/sIZoogZqIIrB9CHjxfiekIhOxJnlpG +LWZ0TkybU5MJFguUpuJl1nzL5wf2RlSE44dQf6HqHsfief7URdlzrlL51MZRnkjJAXyOCdBaCn5 6KeZ9EmePke6MiWuaKHUqEMXl/Cyl8FvJ6I1ESDIRnchDIAS32qxCHpJ0CiupsFJHno+YloHZW9I CLDWiQ/E5KZuWA7NfIOQnPBrd4MX6wJKBhgUignsfA+XqZI+jjUl8y+zlBCPvJfYpY2YLGfrJy6I GdfcpPtKl7fPMPQQlHPd90LEDki1zRfjgmnugg7i1sy6WlzanhBEF1mo16WcnhAAsbV3YhM+3tnr O5hBC6asx2LI1JnGukQA8JM667dE1Ur+I20MkxhVqxUOedSKluBrHZwj4VV/jJWJChfZB2VGyEXu wIki/KuXO+16d/zU+QbslnAW6zR+YhB9b9LHw2Ne3BFhTE3/LyBT3GnHRB4uhC3ZiP+QxGwR0lyQ ikRdQaEIDelaZfB9Fk+CoLJgfw476hgs65Pdgu4b5q3EvzSQtslfMl5r75nI6VOZ+c1uuef2NiZk mbtznPzdKHu9hdpz+SiVVEnN6ieVetYicM8pAwDJouXOR2oqNzYSoG1BNxEEAUM5khf30mGcfR8J Ol3e/YdqPWjndV773zePD7n/HpZo7aseXG62++jCyarfZdTwhqa0szrnJQ9ayaOMG074Tj4DNoGk 35J8uEcce/f6m49uow94U+yOPlvHFoK0Pa3rxuhW/HzlqTZMDzcF+Dx6rJ7DCwEHTcj/jivdLDrG hS3sFr1wuBozKpbfCe6hmdydbi27UupFZn4IBwqXIVgV7RBECEMkT3qmYgFpcYG3L3DsX8/dUs4c DinaaI7eeiYsqulIocaiRvEhJd0kfjjcKlihyO+0GEFPfvyLi+0uqLPRyEBjwdJ1s3MQ2ESFXy+5 JOdu3P26135IQGnenbUIyy1v28vFN1eUK88+99fjxLnrQjIQaVKuFuJv1x0ngn+pJIWI4Ogiq5CN iDVxQgNtunfju1cKseBbfdjs2Yx960ImNWu2bGEIOdjsne6eBPJCK6JOaRXM+XGiNHHrW4x/ohER CMRB0Wb1KHb3/ATiJaH/FLep9+9E9cVM6q91EAP2UD0Qzov5omXxUDj1wRJ2IAvxmM9S/MPGKNmJ XHUiccSVW6ESZCHoETXnU/3AbToc0FL1PpZooBch0RMEAXMSER5JG3yv0wzc8gzj2O3k6+kt/iHC EfYk6fzUe5VAjT5wfepUn9LUfUY+jRfXP8257t+IhbdzNi/Dl54McDjCQIFXM7MNoIBE5o6heMiP MeMtXaK4VEG1Irm0iBCzjV8ViPUbGC+o0IlRud/pybvklcpsjtEzfjlQs3ociZkY37gpOiIFb4oi Hr12NTNNDybQUzIhsE/sqfCkIfBUoqULkXUJUTdDzQxU8JNwWkCniiXLJHyZolboK6dQlwPRuacR LBPb2CaxO4Sh4GJCJIqJE52gZ+vPd+qILzCWPzEx8joFOBSQor6OaEtgFOg1PeJAlp4wWCFlH4iZ mj+hRE3r79yHU8dB6hOxTv3HcCJF5BToRK4hzN7iqUNGk8/iG5/NjW+gzTpRO51on4UA+TRE1GIo rC3Uib1PsbwUoJ+PoJnaPzEBfwRQ7evPw6EupI1ESbdUQDtM7fEGHTmG/lPVjzzn1mjjyuUNsae1 E3omqJqmYiRAKR/cJ5o5ZCeuQmhmMEchRNapmqQ/InpNdPaie8TOcs5hkhQisJIMQYMHJUl6psJ7 CaIfMSaH2FFbAohOXyE0CYobetQ+om4PUZzN3slVRKlCUpv1gQ0I5I+bgu/F15KRKJRK18u69ixD Zz8RAPG0SoTYie131id3KGkzEblSogqTVJxMQFmCJ7g4IEEsRPGiJuJETikESJESvxXAT2KdswwV PCMkYQYhU+A3CHEy4St547+EH0VNGtUc75vN4IlLRDxRtRMUexHN+fDG7LMiUOC3lyMEKCMX0E2+ i2Imu7+ckPuEBaZh7MgyJInuaNdUOovosKG1ExUSxxE5QLIeUIPW/u90TZE8UAWETmJeifZDrmYH CiJpQcISQjAiMIowjPuZFCoTc3DICaFNcJFjEAckSgKeQk+0hO76afbE7ztXHT57Ltzd3NL6s5JD AHRiMgZuEL+U6xHsTBYlQlgqRdKpgZ0SMCTReCBRYi3vNLkSaUKzPBa40RLM43ypYvPGU6+rHrG6 IHtZqilskJKrKUlQO1oquLYpvPExjpKih6KaJpRAvQ/8ZeP25xqNXVUHaIG2IrJIq8mFrgTS1oYI mSALqiT2hHABFxsU3ZqnDhBEIk4UA9UTbMbNbYn/ofJQyFP5/Xr48SXyE5iATR6pyQiv5wSSTuO4 32fYzN4iYsjstYF9hsBHdDcSZKkD1ZkTcp0oRNbtqE+Yl5u4IlFSIAaDOCmvBU0iZIljcsNgufJG eCJ+gSVtm+31IE9pRB6CbiQoS7ogbkKh85D3nmhDjpSU0V1oCwSrWrjQyJ3iRE2CfITZaJi9q2oI tQgHWieGAE2A/+IVJHLQePZ7YNqKPU/Ig8boPJE+iJIFMm0Lv0fpzmIFDISBA+NqiSeF7WW5oYdE cfNEv7CY5/rQoJlNRpifD3CaCVqryKdAlQfUiaGlM91M5UeNtNcqLUPOCW70TZkbLsIiaQm6vn6v ipUBcFnMJbVCQkEVgxkWLFFiqoqMiPjJDcgaOnHcSEMyQ7HnSCxYsWLFiixYsUWLFixRYoouSGjy 6khUh+QkF6J4cCeQSiaJCZiAaV83WUynoJ+Yh80ho9tb9XaePa7kFdmEiBMFFFgnqIg838vwuRLF TvFS1Ez5eym6mVwFrmRIXbUSDLhU0ImJQTri3Imr0ImwRLhzdrZNcH2OfCQycRAKKr9HmUpVPoS/ GiAFESxa1gSQybpH3iZhaeqIEDi/YT7eylgnvE+yPgJliUcLRK/JEOQSgn1KYCTZuRPC8+dTsI27 dB64EI4l2boa51Xc4Qo/d6RLhOZTSu8TlztEQMdF0JJCLogUGFCIGBSgj0Kr0p2+B8hM6aQmHSJn LhRK/ITzE9hKmpBUSMRMBM3gTJ9K/CGwT3+lcINuHaiBwOHeFChKJChKJChKJChKJCg1BKGoJQ0C UNQShqCUNQShoEoaglDUEoaglDUEqJQJQ1BKBlAlDQJQ19cIfDc+GjQl9CHiQ4IMkIBhHzEQ0CLv jHZmIwEfeK9B8p0ibITkE6nsxvEtUAxAoiUXtWiJPYURMhO4kywnyZCit3Dv0P2ZVErip8xLkPi4 QyEip3iTcuYTah7hL0SiFYm0Tg+5eBzE/79v/xdyRThQkC9AJhU=