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

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

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

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


(byte-code "\300\301!\210\302\303!\204 \304\303\305\"\210\302\306!\204 \304\306\307\"\210\302\310!\204' \304\310\311\312B\"\210\302\313!\2044 \304\313\311\314B\"\210\302\315!\204? \304\315\316\"\210\302\317!\204J \304\317\320\"\210\302\321!\204d \304\321\322\"\210\323\324\325\"\210\323\324\326\"\210\323\324\327\"\210\300\207" [require diff fboundp characterp defalias char-valid-p region-active-p #[0 "\205 	\207" [transient-mark-mode mark-active] 1 "\n\n(fn)"] registerv-make macro #[385 "\207" #1=[] 3 "\n\n(fn DATA &rest DUMMY)"] registerv-data #[257 "\207" #1# 2 "\n\n(fn DATA)"] diff-no-select #[1282 "CCC\306\242!\204 \307\242!\240\210\306\242!\204# \211\307\242!\240\210\242\204, \240\210\242<\2048 \211\242C\240\210\204A \310\311!\262\312\242!\312\242!\313\314	\315\242\316\317\204\\ \205\203 \320\n\242;\203j \n\242\202o \321\242!\320\242;\203} \242\202\202 \321\242!F	\206\213 \n\242	\206\223 \f\242D\244\"\"B\322#\nrq\210\323\324p!\210\323\325 \210)\326p!\210\327 \210\330\305!\210\331\332\333\334\335	$\336\"\337\340%\211\323\341\261\210)\204\342\343!\203\343\344	01%\345\346\"\210\347\331\332\350\334\335\"\351\"\352\353%\"\266\202*\323\354\3550\356\3561&!\210\203!\357!\210\203)\357!\210))\266\204\207" [diff-switches diff-command default-directory buffer-read-only inhibit-read-only revert-buffer-function bufferp expand-file-name get-buffer-create "*Diff*" diff-file-local-copy mapconcat identity append mapcar shell-quote-argument "-L" prin1-to-string " " t buffer-disable-undo erase-buffer buffer-enable-undo diff-mode make-local-variable make-byte-code 514 "\304\300\242\301\242\302\242\303p%\207" vconcat vector [diff-no-select] 8 "\n\n(fn IGNORE-AUTO NOCONFIRM)" "\n" fboundp start-process "Diff" set-process-filter diff-process-filter set-process-sentinel "r\302!q\210\303\304!!\210\300\203 \305\300!\210\301\205 \305\301!)\207" [process-buffer diff-sentinel process-exit-status delete-file] 5 "\n\n(fn PROC MSG)" diff-sentinel call-process nil delete-file shell-file-name shell-command-switch] 22 "\n\n(fn OLD NEW &optional SWITCHES NO-ASYNC BUF)"] diff-file-local-copy #[257 "\300!\203 r\211q\210\301\302!\303\304\211\304\305%\210\211\262)\207\306!\207" [bufferp make-temp-file "buffer-content-" write-region nil nomessage file-local-copy] 8 "\n\n(fn FILE-OR-BUF)"] user-error error add-to-list debug-ignored-errors "^No further undo information" "^No further redo information" "^No further redo information for region"] 4)
#@41 Tree of undo entries in current buffer.
(defvar buffer-undo-tree nil (#$ . 2964))
(byte-code "\301\302\303\304#\210\305\302!\210\306\307\310\311\312\313%\210\314\315\316\317\320DD\321\312\307\322\323&\210\314\324\316\317\325DD\326\312\307\322\327&\210\314\330\316\317\331DD\332\312\307\322\333&\210\314\334\316\317\335DD\336\312\307\322\337\340!\341\"\203W \342\202X \333&\210\314\343\316\317\344DD\345\312\307\322\346&\210\314\347\316\317\350DD\351\312\307\322\333&\210\314\352\316\317\353DD\354\312\307\322\333&\210\314\355\316\317\356DD\357\312\307\322\333&\210\314\360\316\317\361DD\362\312\307\322\363&\210\364\365\366\367\312\307%\210\364\370\371\372\312\307%\210\364\373\374\375\312\307%\210\364\376\377\201@ \312\307%\210\364\201A \201B \201C \312\307%\207" [emacs-version put buffer-undo-tree permanent-local t make-variable-buffer-local custom-declare-group undo-tree nil "Tree undo/redo." :group undo custom-declare-variable undo-tree-mode-lighter funcall function #[0 "\300\207" [" Undo-Tree"] 1 " Undo-Tree\n\n(fn)"] "Lighter displayed in mode line\nwhen `undo-tree-mode' is enabled." :type string undo-tree-incompatible-major-modes #[0 "\300\207" [(term-mode)] 1 "\n\n(fn)"] "List of major-modes in which `undo-tree-mode' should not be enabled.\n(See `turn-on-undo-tree-mode'.)" (repeat symbol) undo-tree-enable-undo-in-region #[0 "\300\207" [t] 1 "\n\n(fn)"] "When non-nil, enable undo-in-region.\n\nWhen undo-in-region is enabled, undoing or redoing when the\nregion is active (in `transient-mark-mode') or with a prefix\nargument (not in `transient-mark-mode') only undoes changes\nwithin the current region." boolean undo-tree-auto-save-history #[0 "\300\207" [nil] 1 "\n\n(fn)"] "When non-nil, `undo-tree-mode' will save undo history to file\nwhen a buffer is saved to file.\n\nIt will automatically load undo history when a buffer is loaded\nfrom file, if an undo save file exists.\n\nBy default, undo-tree history is saved to a file called\n\".<buffer-file-name>.~undo-tree~\" in the same directory as the\nfile itself. To save under a different directory, customize\n`undo-tree-history-directory-alist' (see the documentation for\nthat variable for details).\n\nWARNING! `undo-tree-auto-save-history' will not work properly in\nEmacs versions prior to 24.3, so it cannot be enabled via\nthe customization interface in versions earlier than that one. To\nignore this warning and enable it regardless, set\n`undo-tree-auto-save-history' to a non-nil value outside of\ncustomize." version-list-< version-to-list (24 3) (choice (const :tag "<disabled>" nil)) undo-tree-history-directory-alist #[0 "\300\207" [nil] 1 "\n\n(fn)"] "Alist of filename patterns and undo history directory names.\nEach element looks like (REGEXP . DIRECTORY).  Undo history for\nfiles with names matching REGEXP will be saved in DIRECTORY.\nDIRECTORY may be relative or absolute.  If it is absolute, so\nthat all matching files are backed up into the same directory,\nthe file names in this directory will be the full name of the\nfile backed up with all directory separators changed to `!' to\nprevent clashes.  This will not work correctly if your filesystem\ntruncates the resulting name.\n\nFor the common case of all backups going into one directory, the\nalist should contain a single element pairing \".\" with the\nappropriate directory name.\n\nIf this variable is nil, or it fails to match a filename, the\nbackup is made in the original file's directory.\n\nOn MS-DOS filesystems without long names this variable is always\nignored." (repeat (cons (regexp :tag "Regexp matching filename") (directory :tag "Undo history directory name"))) undo-tree-visualizer-relative-timestamps #[0 "\300\207" [t] 1 "\n\n(fn)"] "When non-nil, display times relative to current time\nwhen displaying time stamps in visualizer.\n\nOtherwise, display absolute times." undo-tree-visualizer-timestamps #[0 "\300\207" [nil] 1 "\n\n(fn)"] "When non-nil, display time-stamps by default\nin undo-tree visualizer.\n\n\\<undo-tree-visualizer-mode-map>You can always toggle time-stamps on and off using \\[undo-tree-visualizer-toggle-timestamps], regardless of the\nsetting of this variable." undo-tree-visualizer-diff #[0 "\300\207" [nil] 1 "\n\n(fn)"] "When non-nil, display diff by default in undo-tree visualizer.\n\n\\<undo-tree-visualizer-mode-map>You can always toggle the diff display using \\[undo-tree-visualizer-toggle-diff], regardless of the\nsetting of this variable." undo-tree-visualizer-lazy-drawing #[0 "\300\207" [100] 1 "\n\n(fn)"] "When non-nil, use lazy undo-tree drawing in visualizer.\n\nSetting this to a number causes the visualizer to switch to lazy\ndrawing when the number of nodes in the tree is larger than this\nvalue.\n\nLazy drawing means that only the visible portion of the tree will\nbe drawn initially, and the tree will be extended later as\nneeded. For the most part, the only visible effect of this is to\nsignificantly speed up displaying the visualizer for very large\ntrees.\n\nThere is one potential negative effect of lazy drawing. Other\nbranches of the tree will only be drawn once the node from which\nthey branch off becomes visible. So it can happen that certain\nportions of the tree that would be shown with lazy drawing\ndisabled, will not be drawn immediately when it is\nenabled. However, this effect is quite rare in practice." (choice (const :tag "never" nil) (const :tag "always" t) (integer :tag "> size")) custom-declare-face undo-tree-visualizer-default-face ((((class color)) :foreground "gray")) "Face used to draw undo-tree in visualizer." undo-tree-visualizer-current-face ((((class color)) :foreground "red")) "Face used to highlight current undo-tree node in visualizer." undo-tree-visualizer-active-branch-face ((((class color) (background dark)) (:foreground "white" :weight bold)) (((class color) (background light)) (:foreground "black" :weight bold))) "Face used to highlight active undo-tree branch in visualizer." undo-tree-visualizer-register-face ((((class color)) :foreground "yellow")) "Face used to highlight undo-tree nodes saved to a register\nin visualizer." undo-tree-visualizer-unmodified-face ((((class color)) :foreground "cyan")) "Face used to highlight nodes corresponding to unmodified buffers\nin visualizer."] 10)
#@30 Parent buffer in visualizer.
(defvar undo-tree-visualizer-parent-buffer nil (#$ . 9264))
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-parent-buffer permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-visualizer-parent-mtime nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-parent-mtime permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-visualizer-spacing nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-spacing permanent-local t make-variable-buffer-local] 4)
(defalias 'undo-tree-visualizer-calculate-spacing #[0 "\203\f 	\203\n \302\207\303\207\304\207" [undo-tree-visualizer-timestamps undo-tree-visualizer-relative-timestamps 9 13 3] 1 "\n\n(fn)"])
(byte-code "\300\301\302\303#\207" [put undo-tree-visualizer-calculate-spacing byte-optimizer byte-compile-inline-expand] 4)
(defvar undo-tree-visualizer-initial-node nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-initial-node permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-visualizer-selected-node nil)
(byte-code "\300\301\302\303#\210\304\305!\207" [put undo-tree-visualizer-selected-node permanent-local t make-variable-buffer-local undo-tree-visualizer-selected] 4)
(defvar undo-tree-visualizer-needs-extending-down nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-needs-extending-down permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-visualizer-needs-extending-up nil)
(byte-code "\300\301\302\303#\210\304\301!\207" [put undo-tree-visualizer-needs-extending-up permanent-local t make-variable-buffer-local] 4)
(defvar undo-tree-inhibit-kill-visualizer nil)
(defvar undo-tree-insert-face nil)
(defconst undo-tree-visualizer-buffer-name " *undo-tree*")
(defconst undo-tree-diff-buffer-name "*undo-tree Diff*")
(byte-code "\300\301\302\"\210\300\303\304\"\207" [add-hook write-file-functions undo-tree-save-history-hook find-file-hook undo-tree-load-history-hook] 3)
#@32 Keymap used in undo-tree-mode.
(defvar undo-tree-map nil (#$ . 11317))
(byte-code "\204C \301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\311#\210\302\312\311#\210\302\313\311#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\301\207" [undo-tree-map make-sparse-keymap define-key [remap undo] undo-tree-undo [remap undo-only] [67108911] "" [67108927] undo-tree-redo [134217823] [remap redo] "u" undo-tree-visualize "ru" undo-tree-save-state-to-register "rU" undo-tree-restore-state-from-register] 5)
#@38 Keymap used in undo-tree visualizer.
(defvar undo-tree-visualizer-mode-map nil (#$ . 11878))
(byte-code "\204\323 \301 \302\303\304#\210\302\305\306#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\306#\210\302\313\306#\210\302\314\306#\210\302\315\316#\210\302\317\320#\210\302\321\316#\210\302\322\316#\210\302\323\316#\210\302\324\320#\210\302\325\320#\210\302\326\320#\210\302\327\330#\210\302\331\332#\210\302\333\330#\210\302\334\332#\210\302\335\330#\210\302\336\332#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\302\351\352#\210\302\353\350#\210\302\354\352#\210\302\355\356#\210\302\357\360#\210\302\361\362#\210\302\363\364#\210\301\207" [undo-tree-visualizer-mode-map make-sparse-keymap define-key [remap previous-line] undo-tree-visualize-undo [remap next-line] undo-tree-visualize-redo [up] "p" "" [down] "n" "" [remap forward-char] undo-tree-visualize-switch-branch-right [remap backward-char] undo-tree-visualize-switch-branch-left [right] "f" "" [left] "b" "" [remap backward-paragraph] undo-tree-visualize-undo-to-x [remap forward-paragraph] undo-tree-visualize-redo-to-x "\373" "\375" [C-up] [C-down] [mouse-1] undo-tree-visualizer-mouse-set "t" undo-tree-visualizer-toggle-timestamps "d" undo-tree-visualizer-toggle-diff "s" undo-tree-visualizer-selection-mode "," undo-tree-visualizer-scroll-left "." undo-tree-visualizer-scroll-right "<" ">" [next] undo-tree-visualizer-scroll-up [prior] undo-tree-visualizer-scroll-down "q" undo-tree-visualizer-quit "" undo-tree-visualizer-abort] 5)
#@53 Keymap used in undo-tree visualizer selection mode.
(defvar undo-tree-visualizer-selection-mode-map nil (#$ . 13490))
(byte-code "\204\235 \301 \302\303\304#\210\302\305\306#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\306#\210\302\313\306#\210\302\314\306#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\322#\210\302\326\322#\210\302\327\322#\210\302\330\324#\210\302\331\324#\210\302\332\324#\210\302\333\334#\210\302\335\336#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\301\207" [undo-tree-visualizer-selection-mode-map make-sparse-keymap define-key [remap previous-line] undo-tree-visualizer-select-previous [remap next-line] undo-tree-visualizer-select-next [up] "p" "" [down] "n" "" [next] #[0 "\300\301!\207" [undo-tree-visualizer-select-next 10] 2 "\n\n(fn)" nil] [prior] #[0 "\300\301!\207" [undo-tree-visualizer-select-previous 10] 2 "\n\n(fn)" nil] [remap forward-char] undo-tree-visualizer-select-right [remap backward-char] undo-tree-visualizer-select-left [right] "f" "" [left] "b" "" "," #[0 "\300\301!\207" [undo-tree-visualizer-select-left 10] 2 "\n\n(fn)" nil] "." #[0 "\300\301!\207" [undo-tree-visualizer-select-right 10] 2 "\n\n(fn)" nil] "<" #[0 "\300\301!\207" [undo-tree-visualizer-select-left 10] 2 "\n\n(fn)" nil] ">" #[0 "\300\301!\207" [undo-tree-visualizer-select-right 10] 2 "\n\n(fn)" nil] "" undo-tree-visualizer-set [mouse-1] undo-tree-visualizer-mouse-select "d" undo-tree-visualizer-selection-toggle-diff] 5)
(defvar undo-tree-old-undo-menu-item nil)
#@48 Update `undo-tree-mode' Edit menu items.

(fn)
(defalias 'undo-tree-update-menu-bar #[0 "\203 \303\304	\305\"\236A\306\304	\307\"\310\311#\210\312\304	\313\"\314\315\303$\207\306\304	\316\"\317\n#\210\306\304	\320\"\321\322#\207" [undo-tree-mode global-map undo-tree-old-undo-menu-item undo lookup-key [menu-bar edit] define-key [menu-bar edit] [undo] (menu-item "Undo" undo-tree-undo :enable (and undo-tree-mode (not buffer-read-only) (not (eq t buffer-undo-list)) (not (eq nil buffer-undo-tree)) (undo-tree-node-previous (undo-tree-current buffer-undo-tree))) :help "Undo last operation") define-key-after [menu-bar edit] [redo] (menu-item "Redo" undo-tree-redo :enable (and undo-tree-mode (not buffer-read-only) (not (eq t buffer-undo-list)) (not (eq nil buffer-undo-tree)) (undo-tree-node-next (undo-tree-current buffer-undo-tree))) :help "Redo last operation") [menu-bar edit] [undo] [menu-bar edit] [redo] nil] 5 (#$ . 15111)])
(byte-code "\300\301\302\"\210\303\304\305\306#\210\303\307\310\311#\207" [add-hook menu-bar-update-hook undo-tree-update-menu-bar byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-root--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-root (or (and (memq (aref cl-x 0) cl-struct-undo-tree-tags)) (error "%s accessing a non-%s" 'undo-tree-root 'undo-tree)) (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-root compiler-macro #1#] 4] 4)
(defalias 'undo-tree-root #[257 "\211\301H>\204 \302\303\304\305#\210\211\306H\207" [cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-root undo-tree 1] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-current--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-current (or (and (memq (aref cl-x 0) cl-struct-undo-tree-tags)) (error "%s accessing a non-%s" 'undo-tree-current 'undo-tree)) (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-current compiler-macro #1#] 4] 4)
(defalias 'undo-tree-current #[257 "\211\301H>\204 \302\303\304\305#\210\211\306H\207" [cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-size--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-size (or (and (memq (aref cl-x 0) cl-struct-undo-tree-tags)) (error "%s accessing a non-%s" 'undo-tree-size 'undo-tree)) (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-size compiler-macro #1#] 4] 4)
(defalias 'undo-tree-size #[257 "\211\301H>\204 \302\303\304\305#\210\211\306H\207" [cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-size undo-tree 3] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-count--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-count (or (and (memq (aref cl-x 0) cl-struct-undo-tree-tags)) (error "%s accessing a non-%s" 'undo-tree-count 'undo-tree)) (aref cl-x 4)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-count compiler-macro #1#] 4] 4)
(defalias 'undo-tree-count #[257 "\211\301H>\204 \302\303\304\305#\210\211\306H\207" [cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-count undo-tree 4] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-object-pool--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-object-pool (or (and (memq (aref cl-x 0) cl-struct-undo-tree-tags)) (error "%s accessing a non-%s" 'undo-tree-object-pool 'undo-tree)) (aref cl-x 5)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-object-pool compiler-macro #1#] 4] 4)
(defalias 'undo-tree-object-pool #[257 "\211\301H>\204 \302\303\304\305#\210\211\306H\207" [cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-object-pool undo-tree 5] 5 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-p (and (vectorp cl-x) (>= (length cl-x) 6) (memq (aref cl-x 0) cl-struct-undo-tree-tags) t)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-p compiler-macro #1#] 4] 4)
(defalias 'undo-tree-p #[257 "\301!\205 \211G\302Y\205 \211\303H>\205 \304\207" [cl-struct-undo-tree-tags vectorp 6 0 t] 3 "\n\n(fn CL-X)"])
(defalias 'copy-undo-tree #[257 "\300!\207" [copy-sequence] 3 "\n\n(fn X)"])
#@143 

(fn &aux (ROOT (undo-tree-make-node nil nil)) (CURRENT root) (SIZE 0) (COUNT 0) (OBJECT-POOL (make-hash-table :test 'eq :weakness 'value)))
(defalias 'make-undo-tree #[128 "\300\301\211\"\211\302\211\303\304\305\306\307$\203 \310\311\312G\302\\D\"\210\313\314&\207" [undo-tree-make-node nil 0 make-hash-table :test eq :weakness value signal wrong-number-of-arguments make-undo-tree vector cl-struct-undo-tree] 13 (#$ . 20096)])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\313#\210\302\314\315\313#\210\302\316\315\313#\210\302\317\315\320#\210\302\321\315\313#\210\302\322\315\313#\210\302\323\315\313#\210\302\324\315\313#\210\302\325\315\313#\210\326\327\330\331#\210\326\332\333\334#\207" [cl-struct-undo-tree-tags cl-struct-undo-tree put undo-tree cl-struct-slots ((cl-tag-slot) (root) (current) (size) (count) (object-pool)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print t make-undo-tree side-effect-free copy-undo-tree undo-tree-p error-free undo-tree-object-pool undo-tree-count undo-tree-size undo-tree-current undo-tree-root byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-node-previous--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-previous (aref cl-x 0)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-node-previous compiler-macro #1#] 4] 4)
(defalias 'undo-tree-node-previous #[257 "\211\300H\207" [0] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-node-next--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-next (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-node-next compiler-macro #1#] 4] 4)
(defalias 'undo-tree-node-next #[257 "\211\300H\207" [1] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-node-undo--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-undo (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-node-undo compiler-macro #1#] 4] 4)
(defalias 'undo-tree-node-undo #[257 "\211\300H\207" [2] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-node-redo--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-redo (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-node-redo compiler-macro #1#] 4] 4)
(defalias 'undo-tree-node-redo #[257 "\211\300H\207" [3] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-node-timestamp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-timestamp (aref cl-x 4)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-node-timestamp compiler-macro #1#] 4] 4)
(defalias 'undo-tree-node-timestamp #[257 "\211\300H\207" [4] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-node-branch--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-branch (aref cl-x 5)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-node-branch compiler-macro #1#] 4] 4)
(defalias 'undo-tree-node-branch #[257 "\211\300H\207" [5] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-node-meta-data--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-node-meta-data (aref cl-x 6)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-node-meta-data compiler-macro #1#] 4] 4)
(defalias 'undo-tree-node-meta-data #[257 "\211\300H\207" [6] 3 "\n\n(fn CL-X)"])
#@105 

(fn NEXT-NODE UNDO &optional REDO &aux (NEXT (list next-node)) (TIMESTAMP (current-time)) (BRANCH 0))
(defalias 'undo-tree-make-node-backwards #[642 "\211A\262\242C\300 \301\203 \302\303\304\305G\\D\"\210\306\307\307&\207" [current-time 0 signal wrong-number-of-arguments undo-tree-make-node-backwards 3 vector nil] 15 (#$ . 24290)])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-make-node--cmacro #[899 "\211A\262\242\300\301\203 \302\303\304\305G\\D\"\210\306\307\310\311\211\211\n\n\n&\n\207" [(current-time) 0 signal wrong-number-of-arguments #1# 4 cl--defsubst-expand (previous undo redo timestamp branch) (cl-block undo-tree-make-node (vector previous nil undo redo timestamp branch nil)) nil] 18 "\n\n(fn CL-WHOLE-ARG &cl-quote PREVIOUS UNDO &optional REDO &aux (TIMESTAMP (current-time)) (BRANCH 0))"]] 3 "\300\301\302\303#\207" [put undo-tree-make-node compiler-macro #1#] 4] 4)
#@80 

(fn PREVIOUS UNDO &optional REDO &aux (TIMESTAMP (current-time)) (BRANCH 0))
(defalias 'undo-tree-make-node #[642 "\211A\262\242\300 \301\203 \302\303\304\305G\\D\"\210\306\307\307&\207" [current-time 0 signal wrong-number-of-arguments undo-tree-make-node 3 vector nil] 14 (#$ . 25283)])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\311#\210\302\313\314\315#\210\302\316\314\315#\210\302\317\314\315#\210\302\320\314\315#\210\302\321\314\315#\210\302\322\314\315#\210\302\323\314\315#\210\302\324\314\315#\210\302\325\314\315#\207" [cl-struct-undo-tree-node-tags cl-struct-undo-tree-node put undo-tree-node cl-struct-slots ((previous) (next) (undo) (redo) (timestamp) (branch) (meta-data)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print undo-tree-make-node side-effect-free t undo-tree-make-node-backwards undo-tree-node-meta-data undo-tree-node-branch undo-tree-node-timestamp undo-tree-node-redo undo-tree-node-undo undo-tree-node-next undo-tree-node-previous] 4)
(defalias 'undo-tree-node-p '(macro . #[257 "\300\301\211\211\211\302 \303\301&G\304\305D\306\307DEE\207" [vector nil current-time 0 and vectorp = length] 9 "\n\n(fn N)"]))
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-region-data-undo-beginning--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-undo-beginning (aref cl-x 0)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-region-data-undo-beginning compiler-macro #1#] 4] 4)
(defalias 'undo-tree-region-data-undo-beginning #[257 "\211\300H\207" [0] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-region-data-undo-end--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-undo-end (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-region-data-undo-end compiler-macro #1#] 4] 4)
(defalias 'undo-tree-region-data-undo-end #[257 "\211\300H\207" [1] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-region-data-redo-beginning--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-redo-beginning (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-region-data-redo-beginning compiler-macro #1#] 4] 4)
(defalias 'undo-tree-region-data-redo-beginning #[257 "\211\300H\207" [2] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-region-data-redo-end--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-region-data-redo-end (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-region-data-redo-end compiler-macro #1#] 4] 4)
(defalias 'undo-tree-region-data-redo-end #[257 "\211\300H\207" [3] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-make-redo-region-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (redo-beginning redo-end) (cl-block undo-tree-make-redo-region-data (vector nil nil redo-beginning redo-end)) nil] 11 "\n\n(fn CL-WHOLE-ARG REDO-BEGINNING REDO-END)"]] 3 "\300\301\302\303#\207" [put undo-tree-make-redo-region-data compiler-macro #1#] 4] 4)
(defalias 'undo-tree-make-redo-region-data #[514 "\300\301\211$\207" [vector nil] 7 "\n\n(fn REDO-BEGINNING REDO-END)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-make-undo-region-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (undo-beginning undo-end) (cl-block undo-tree-make-undo-region-data (vector undo-beginning undo-end nil nil)) nil] 11 "\n\n(fn CL-WHOLE-ARG UNDO-BEGINNING UNDO-END)"]] 3 "\300\301\302\303#\207" [put undo-tree-make-undo-region-data compiler-macro #1#] 4] 4)
(defalias 'undo-tree-make-undo-region-data #[514 "\300\301\211$\207" [vector nil] 7 "\n\n(fn UNDO-BEGINNING UNDO-END)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-make-region-data--cmacro #[385 "\211A\262\242\211A\262\242\211A\262\242\211A\262\242\203' \300\301\302\303G\\D\"\210\304\305\306\307\211\211				&	\207" [signal wrong-number-of-arguments #1# 5 cl--defsubst-expand (undo-beginning undo-end redo-beginning redo-end) (cl-block undo-tree-make-region-data (vector undo-beginning undo-end redo-beginning redo-end)) nil] 16 "\n\n(fn CL-WHOLE-ARG &cl-quote &optional UNDO-BEGINNING UNDO-END REDO-BEGINNING REDO-END)"]] 3 "\300\301\302\303#\207" [put undo-tree-make-region-data compiler-macro #1#] 4] 4)
#@66 

(fn &optional UNDO-BEGINNING UNDO-END REDO-BEGINNING REDO-END)
(defalias 'undo-tree-make-region-data #[128 "\211A\262\242\211A\262\242\211A\262\242\211A\262\242\203' \300\301\302\303G\\D\"\210\304$\207" [signal wrong-number-of-arguments undo-tree-make-region-data 4 vector] 10 (#$ . 30336)])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\311#\210\302\313\314\315#\210\302\316\314\315#\210\302\317\314\315#\210\302\320\314\315#\210\302\321\314\315#\210\302\322\314\315#\210\302\323\314\315#\207" [cl-struct-undo-tree-region-data-tags cl-struct-undo-tree-region-data put undo-tree-region-data cl-struct-slots ((undo-beginning) (undo-end) (redo-beginning) (redo-end)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print undo-tree-make-region-data side-effect-free t undo-tree-make-undo-region-data undo-tree-make-redo-region-data undo-tree-region-data-redo-end undo-tree-region-data-redo-beginning undo-tree-region-data-undo-end undo-tree-region-data-undo-beginning] 4)
(defalias 'undo-tree-region-data-p '(macro . #[257 "\300\301\211\211\211$G\302\303D\304\305DEE\207" [vector nil and vectorp = length] 7 "\n\n(fn R)"]))
(defalias 'undo-tree-node-clear-region-data '(macro . #[257 "\300\301D\302\303\302\304\305\301D\306BBEEE\207" [setf undo-tree-node-meta-data delq nil :region plist-put (:region nil)] 10 "\n\n(fn NODE)"]))
(defalias 'undo-tree-node-undo-beginning '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-undo-beginning r)))] 6 "\n\n(fn NODE)"]))
(defalias 'undo-tree-node-undo-end '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-undo-end r)))] 6 "\n\n(fn NODE)"]))
(defalias 'undo-tree-node-redo-beginning '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-redo-beginning r)))] 6 "\n\n(fn NODE)"]))
(defalias 'undo-tree-node-redo-end '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let r plist-get undo-tree-node-meta-data (:region) ((when (undo-tree-region-data-p r) (undo-tree-region-data-redo-end r)))] 6 "\n\n(fn NODE)"]))
(byte-code "\300\301\302\303#\210\300\301\304\303#\210\300\301\305\303#\210\300\301\306\303#\210\300\307\310\311#\210\300\301\312\303#\207" [byte-code "\300\301\302\303#\207" [put undo-tree-node-undo-beginning gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-undo-beginning #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-undo-beginning r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4 [put undo-tree-node-undo-end gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-undo-end #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-undo-end r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] [put undo-tree-node-redo-beginning gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-redo-beginning #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-redo-beginning r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] [put undo-tree-node-redo-end gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-redo-end #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let r plist-get undo-tree-node-meta-data (:region) unless (undo-tree-region-data-p r) setf plist-put (:region (setq r (undo-tree-make-region-data))) (undo-tree-region-data-redo-end r)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] "\300\301\302\"\207" [defalias #1=#:undo-tree-visualizer-data-lwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-lwidth (aref cl-x 0)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 [put undo-tree-visualizer-data-lwidth compiler-macro #1#]] 4)
(defalias 'undo-tree-visualizer-data-lwidth #[257 "\211\300H\207" [0] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-visualizer-data-cwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-cwidth (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-visualizer-data-cwidth compiler-macro #1#] 4] 4)
(defalias 'undo-tree-visualizer-data-cwidth #[257 "\211\300H\207" [1] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-visualizer-data-rwidth--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-rwidth (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-visualizer-data-rwidth compiler-macro #1#] 4] 4)
(defalias 'undo-tree-visualizer-data-rwidth #[257 "\211\300H\207" [2] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-visualizer-data-marker--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-visualizer-data-marker (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-visualizer-data-marker compiler-macro #1#] 4] 4)
(defalias 'undo-tree-visualizer-data-marker #[257 "\211\300H\207" [3] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-make-visualizer-data--cmacro #[385 "\211A\262\242\211A\262\242\211A\262\242\211A\262\242\203' \300\301\302\303G\\D\"\210\304\305\306\307\211\211				&	\207" [signal wrong-number-of-arguments #1# 5 cl--defsubst-expand (lwidth cwidth rwidth marker) (cl-block undo-tree-make-visualizer-data (vector lwidth cwidth rwidth marker)) nil] 16 "\n\n(fn CL-WHOLE-ARG &cl-quote &optional LWIDTH CWIDTH RWIDTH MARKER)"]] 3 "\300\301\302\303#\207" [put undo-tree-make-visualizer-data compiler-macro #1#] 4] 4)
#@46 

(fn &optional LWIDTH CWIDTH RWIDTH MARKER)
(defalias 'undo-tree-make-visualizer-data #[128 "\211A\262\242\211A\262\242\211A\262\242\211A\262\242\203' \300\301\302\303G\\D\"\210\304$\207" [signal wrong-number-of-arguments undo-tree-make-visualizer-data 4 vector] 10 (#$ . 37166)])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\311#\210\302\313\314\315#\210\302\316\314\315#\210\302\317\314\315#\210\302\320\314\315#\210\302\321\314\315#\207" [cl-struct-undo-tree-visualizer-data-tags cl-struct-undo-tree-visualizer-data put undo-tree-visualizer-data cl-struct-slots ((lwidth) (cwidth) (rwidth) (marker)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print undo-tree-make-visualizer-data side-effect-free t undo-tree-visualizer-data-marker undo-tree-visualizer-data-rwidth undo-tree-visualizer-data-cwidth undo-tree-visualizer-data-lwidth] 4)
(defalias 'undo-tree-visualizer-data-p '(macro . #[257 "\300\301\211\211\211$G\302\303D\304\305DEE\207" [vector nil and vectorp = length] 7 "\n\n(fn V)"]))
(defalias 'undo-tree-node-clear-visualizer-data #[257 "\211\300H\211@\301=\203 \211\300AAI\262\2025 \211\203, \211\211A@\262\301=\204, \211A\262\202 \211\2055 \211\302\233\241\207" [6 :visualizer 3] 6 "\n\n(fn NODE)"])
(defalias 'undo-tree-node-lwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-lwidth v)))] 6 "\n\n(fn NODE)"]))
(defalias 'undo-tree-node-cwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-cwidth v)))] 6 "\n\n(fn NODE)"]))
(defalias 'undo-tree-node-rwidth '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-rwidth v)))] 6 "\n\n(fn NODE)"]))
(defalias 'undo-tree-node-marker '(macro . #[257 "\300\301\302\303D\304BBDC\305BB\207" [let v plist-get undo-tree-node-meta-data (:visualizer) ((when (undo-tree-visualizer-data-p v) (undo-tree-visualizer-data-marker v)))] 6 "\n\n(fn NODE)"]))
(byte-code "\300\301\302\303#\210\300\301\304\303#\210\300\301\305\303#\210\300\301\306\303#\210\300\307\310\311#\210\300\301\312\303#\207" [byte-code "\300\301\302\303#\207" [put undo-tree-node-lwidth gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-lwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-lwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4 [put undo-tree-node-cwidth gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-cwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-cwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] [put undo-tree-node-rwidth gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-rwidth #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-rwidth v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] [put undo-tree-node-marker gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-marker #[514 "\300\301\302\303D\304BBDC\305\306\307\303D\310\303D\311BBEE\307\312EF\207" [let v plist-get undo-tree-node-meta-data (:visualizer) unless (undo-tree-visualizer-data-p v) setf plist-put (:visualizer (setq v (undo-tree-make-visualizer-data))) (undo-tree-visualizer-data-marker v)] 11 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] "\300\301\302\"\207" [defalias #1=#:undo-tree-register-data-buffer--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-register-data-buffer (aref cl-x 0)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 [put undo-tree-register-data-buffer compiler-macro #1#]] 4)
(defalias 'undo-tree-register-data-buffer #[257 "\211\300H\207" [0] 3 "\n\n(fn CL-X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-register-data-node--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block undo-tree-register-data-node (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]] 3 "\300\301\302\303#\207" [put undo-tree-register-data-node compiler-macro #1#] 4] 4)
(defalias 'undo-tree-register-data-node #[257 "\211\300H\207" [1] 3 "\n\n(fn CL-X)"])
(defalias 'copy-undo-tree-register-data #[257 "\300!\207" [copy-sequence] 3 "\n\n(fn X)"])
(byte-code "\300\301\302\303#\210\300\304\305\306#\207" [byte-code "\300\301\302\"\207" [defalias #1=#:undo-tree-make-register-data--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (buffer node) (cl-block undo-tree-make-register-data (vector buffer node)) nil] 11 "\n\n(fn CL-WHOLE-ARG BUFFER NODE)"]] 3 "\300\301\302\303#\207" [put undo-tree-make-register-data compiler-macro #1#] 4] 4)
(defalias 'undo-tree-make-register-data #[514 "\300\"\207" [vector] 5 "\n\n(fn BUFFER NODE)"])
(byte-code "\301C\302\303\304\305#\210\302\303\306\307#\210\302\303\310\311#\210\302\303\312\311#\210\302\313\314\315#\210\302\316\314\315#\210\302\317\314\315#\210\302\320\314\315#\207" [cl-struct-undo-tree-register-data-tags cl-struct-undo-tree-register-data put undo-tree-register-data cl-struct-slots ((buffer) (node)) cl-struct-type (vector nil) cl-struct-include nil cl-struct-print undo-tree-make-register-data side-effect-free t copy-undo-tree-register-data undo-tree-register-data-node undo-tree-register-data-buffer] 4)
(defalias 'undo-tree-register-data-p #[257 "\300!\205 \211G\301U\205 \300\302H!\205 \211\302HG\303U\207" [vectorp 2 1 7] 4 "\n\n(fn DATA)"])
(defalias 'undo-tree-register-data-print-func #[257 "\300\301\302\303H\"!\207" [princ format "an undo-tree state for buffer %s" 0] 6 "\n\n(fn DATA)"])
(defalias 'undo-tree-node-register '(macro . #[257 "\300\301D\302BB\207" [plist-get undo-tree-node-meta-data (:register)] 4 "\n\n(fn NODE)"]))
(byte-code "\300\301\302\303#\207" [put undo-tree-node-register gv-expander #[385 "\300\301\302$\207" [gv--defsetter undo-tree-node-register #[514 "\300\301D\302\301D\303FE\207" [setf undo-tree-node-meta-data plist-put :register] 8 "\n\n(fn VAL NODE)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4)
#@70 Add an UNDO node to current branch of `buffer-undo-tree'.

(fn UNDO)
(defalias 'undo-tree-grow #[257 "\302H	>\204 \303\304\305\306#\210\307H\310\311\311\312 \302\311&\211\313\313HBI\266\302H	>\2045 \303\304\305\306#\210\211\307I\262\207" [buffer-undo-tree cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 vector nil current-time 1] 10 (#$ . 44161)])
#@247 Add new node *above* undo-tree NODE, and return new node.
Note that this will overwrite NODE's "previous" link, so should
only be used on a detached NODE, never on nodes that are already
part of `buffer-undo-tree'.

(fn NODE UNDO &optional REDO)
(defalias 'undo-tree-grow-backwards #[770 "\300#\211\301I\266\211\207" [undo-tree-make-node-backwards 0] 8 (#$ . 44570)])
#@235 Splice NODE into undo tree, below node SPLICE.
Note that this will overwrite NODE's "next" and "previous"
links, so should only be used on a detached NODE, never on nodes
that are already part of `buffer-undo-tree'.

(fn NODE SPLICE)
(defalias 'undo-tree-splice-node #[514 "\211\300\300HI\266\211\301\301HI\266\211\302I\266\211\211\300CI\266\211\211\301\302I\266\300H\211\205@ \211@\211\211\302I\266A\266\202\202+ \207" [1 5 0] 8 (#$ . 44951)])
#@40 Snip NODE out of undo tree.

(fn NODE)
(defalias 'undo-tree-snip-node #[257 "\211\300H\301\211\302HG\300U\203% \211\302\302HI\266\211\303\303HI\266\202\212 \304\302H\"\262\303HU\203D \211\303\303H\\I\266\202\\ \303HV\203\\ \211\303\303H\302HGS\\I\266\300U\203u \211\302\302H\302HA\244I\266\202\212 S\302H\233\262\211\302H\211AA\262\244\241\210\302H\211\205\242 \211@\211\211\300I\266A\266\202\202\215 \262\207" [0 nil 1 5 undo-tree-position] 10 (#$ . 45419)])
(defalias 'undo-tree-mapc #[514 "\211C\300\205 \211A\262\242\262!\210\301\302H\"\262\202 \207" [nil append 1] 7 "\n\n(fn --UNDO-TREE-MAPC-FUNCTION-- NODE)"])
#@60 Return number of branches at current undo tree node.

(fn)
(defalias 'undo-tree-num-branches '(macro . #[0 "\300\207" [(length (undo-tree-node-next (undo-tree-current buffer-undo-tree)))] 1 (#$ . 46099)]))
#@150 Find the first occurrence of NODE in LIST.
Return the index of the matching item, or nil of not found.
Comparison is done with `eq'.

(fn NODE LIST)
(defalias 'undo-tree-position #[514 "\211C\300C\301\302\303\300\304\305\306\n		#\307\"\310\311%D\215\262\207" [0 found funcall make-byte-code "\300\301\242@=\203 \303\304\302\242\"\210\302\211\242T\240\210\301\211\242A\240\204  \305\207" vconcat vector [throw found nil] 3 "\n\n(fn)"] 14 (#$ . 46312)])
(defvar *undo-tree-id-counter* 0)
(make-variable-buffer-local '*undo-tree-id-counter*)
(defalias 'undo-tree-generate-id '(macro . #[0 "\300\207" [(let ((num (prog1 *undo-tree-id-counter* (incf *undo-tree-id-counter*)))) (make-symbol (format "undo-tree-id%d" num)))] 1 "\n\n(fn)"]))
(defalias 'undo-tree-decircle #[257 "\301\302\303H>\204 \304\305\306\307#\210\310H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\211\300H\211\205 \211@\211\211\301\302I\266A\266\202\202 \207" [1 0 nil] 7 "\n\n(fn NODE)"] 0 error "%s accessing a non-%s" undo-tree-root undo-tree 1] 7 "\n\n(fn UNDO-TREE)"])
(defalias 'undo-tree-recircle #[257 "\301\302\303H>\204 \304\305\306\307#\210\310H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\211\300H\211\205 \211@\211\211\301I\266A\266\202\202 \207" [1 0] 7 "\n\n(fn NODE)"] 0 error "%s accessing a non-%s" undo-tree-root undo-tree 1] 7 "\n\n(fn UNDO-TREE)"])
(defalias 'undo-list-marker-elt-p '(macro . #[257 "\300\301DD\207" [markerp car-safe] 4 "\n\n(fn ELT)"]))
(defalias 'undo-list-GCd-marker-elt-p '(macro . #[257 "\300\301D\302\303DD\304\305\306\303DDDC\307BB\310\311DD\257\207" [and car-safe symbolp car let str symbol-name ((and (> (length str) 12) (string= (substring str 0 12) "undo-tree-id"))) numberp cdr-safe] 9 "\n\n(fn ELT)"]))
(defalias 'undo-tree-move-GC-elts-to-pool #[257 "\303\242!\205/ \211T\304\305\306\"!\262\307@	\310H\n>\204% \311\312\313\314#\210	\315H#\210\240\262\207" [*undo-tree-id-counter* buffer-undo-tree cl-struct-undo-tree-tags markerp make-symbol format "undo-tree-id%d" puthash 0 error "%s accessing a non-%s" undo-tree-object-pool undo-tree 5] 9 "\n\n(fn ELT)"])
(defalias 'undo-tree-restore-GC-elts-from-pool #[257 "\211\242\203B \211@9\203B \302@!\211G\303V\205 \211\304\303O\305\230\262\203B \211\243\247\203B \211\306@\304H	>\2049 \307\310\311\312#\210\313H\"\240\205C \207\211\207" [buffer-undo-tree cl-struct-undo-tree-tags symbol-name 12 0 "undo-tree-id" gethash error "%s accessing a non-%s" undo-tree-object-pool undo-tree 5] 8 "\n\n(fn ELT)"])
(defalias 'undo-list-clean-GCd-elts #[257 "\211@\242\203N \211@@9\203N \302@@!\211G\303V\205 \211\304\303O\305\230\262\203N \211@\243\247\203N \306\211@@\262\304H	>\204@ \307\310\311\312#\210\313H\"\204  \211A\262\202  \211\211A\203\274 \211\211A@\262\242\203\265 \211\211A@\262@9\203\265 \302\211A@\262@!\211G\303V\205 \211\304\303O\305\230\262\203\265 \211\211A@\262\243\247\203\265 \306\211A@\262@\304H	>\204\245 \307\310\311\312#\210\313H\"\204\265 \211\211AA\262\241\210\211A\262\202O \210\207" [buffer-undo-tree cl-struct-undo-tree-tags symbol-name 12 0 "undo-tree-id" gethash error "%s accessing a non-%s" undo-tree-object-pool undo-tree 5] 8 "\n\n(fn UNDO-LIST)"])
(defalias 'undo-list-pop-changeset #[256 "@\203 \211\203 @\250\203 A\211\202 @\301=\203# \302B\211\207\211A\242C\211\303@!\210\203? @\250\203? A\202/ @\203[ @\301=\204[ \211\211A\242C\241\210\211A\262\202* \207" [buffer-undo-list undo-tree-canary nil undo-tree-move-GC-elts-to-pool] 7 "\n\n(fn &optional DISCARD-POS)"])
(defalias 'undo-tree-copy-list #[257 "\300\211\203 \204 \301\211A\262\242!\262\202 \205C C\262\262\203B \211\301\302\211A\262\242!!\241\203\" \211AC\241\210\211A\262\202\" \207" [nil undo-tree-restore-GC-elts-from-pool undo-copy-list-1] 8 "\n\n(fn UNDO-LIST)"])
(defalias 'undo-list-transfer-to-tree #[0 "\303=\203\f \304\305\306C\"\210\204 \307 	\204 \310	\211A@\262\311=\206( 	@\311=?\205>\312 \313 \314\315\211\315\316\315&\266\202\316H\n>\204J \317\320\321\322#\210\323H\324\323H!\325\316H\n>\204a \317\320\321\322#\210\211\323I\266	\203\217 	\211A@\262\311=\204\217 \326\312 \"\262\324\323H!\\\262\211T\262\202i 	\211A@\262\311=\204\241 	@\311=\203\360 \211\316I\266\211\325\325HBI\266\211\327\316I\266\316H\n>\204\311 \317\320\330\322#\210\211\331\331H\\I\266\316H\n>\204\342 \317\320\332\322#\210\211\333\333H\\I\266\202:\326\315\"\262\316H\n>\204\317\320\334\322#\210\211\325I\266\335\316H\n>\204\317\320\330\322#\210\211\331I\266\316H\n>\2041\317\320\332\322#\210\211\333I\266\336\266\337 \207" [buffer-undo-tree buffer-undo-list cl-struct-undo-tree-tags t signal cl-assertion-failed (not (eq buffer-undo-tree t)) make-undo-tree (nil undo-tree-canary) undo-tree-canary undo-list-pop-changeset current-time vector nil 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 undo-list-byte-size 1 undo-tree-grow-backwards 5 undo-tree-size 3 undo-tree-count 4 undo-tree-root (nil undo-tree-canary) (nil undo-tree-canary) undo-tree-discard-history] 10 "\n\n(fn)"])
(defalias 'undo-list-byte-size #[257 "\300\211\203. \301\\\262\211@:\203' \211\211@@\262;\203' \302\211@@\262!\\\262\211A\262\202 \207" [0 8 string-bytes] 7 "\n\n(fn UNDO-LIST)"])
#@74 Rebuild `buffer-undo-list' from information in `buffer-undo-tree'.

(fn)
(defalias 'undo-list-rebuild-from-tree #[0 "\303=?\205\254 \304 \210\305	\205\254 	\306H\n>\204 \307\310\311\312#\210	\313HCC\314\315\316\211@@\262\211\313H\262\"\317\"B\262\211@\204W \211A@@	\306H\n>\204O \307\310\320\312#\210	\321H=?\205\252 \211@\203\206 \322\211@@\262\211\321H\262\"\323 \210\314\315\316\211@@\262\211\313H\262\"\324\"B\262\2028 \211A\262\322\211@@\262\211\325H\262\"\323 \210\211\211@\211@A\240\210\266\2028 \262\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t undo-list-transfer-to-tree nil 0 error "%s accessing a non-%s" undo-tree-root undo-tree 1 sort mapcar identity #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"] undo-tree-current 2 append undo-boundary #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"] 3] 7 (#$ . 51651)])
(defalias 'undo-tree-oldest-leaf #[257 "\211\300H\203 \301\302\303\300H\"\304\"@\262\202  \207" [1 sort mapcar identity #[514 "\300\301H\301H\"\207" [time-less-p 4] 6 "\n\n(fn A B)"]] 6 "\n\n(fn NODE)"])
(defalias 'undo-tree-discard-node #[257 "\211\302H	>\204 \303\304\305\306#\210\307H=?\205\275\211\302H	>\204& \303\304\310\306#\210\311H=\203\377 \211\311HG\311V\203: \303\312!\207\211\311H@\302H	>\204L \303\304\305\306#\210\307H=\203U \313\207\314\315H\316\"\211\203l \317!=\203l \320\313\"\210\210\302H	>\204{ \303\304\310\306#\210\211\311\311H@I\262\262\302H	>\204\225 \303\304\321\306#\210\211\322\322H\323\307H!\323\322H!\\ZI\266\302H	>\204\271 \303\304\324\306#\210\211\325\325HSI\266\211\211\307\313I\266\211\211\322\313I\266\211\211\302\313I\266\211\311HG\311V\204\372 \211\311H@\302H	>\204\363 \303\304\305\306#\210\307H=\203\376 \326!\207\207\211\302H\211\327H\311H8\314\315H\316\"\211\203 \317!=\203 \320\313\"\210\210\302H	>\204/\303\304\321\306#\210\211\322\322H\323\307H!\323\322H!\\ZI\266\302H	>\204T\303\304\324\306#\210\211\325\325HSI\266\211\311\330\311H\"I\266\211\327\331\311H\"I\266\302H	>\204\210\303\304\305\306#\210\307H=\204\264\311H\203\272\302H	>\204\244\303\304\310\306#\210\311H=\203\264\311HG\311V\203\272\326!\202\273\266\202\207" [buffer-undo-tree cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 undo-tree-root 1 "Trying to discard undo-tree root which still has multiple branches" nil plist-get 6 :register get-register set-register undo-tree-size 3 undo-list-byte-size undo-tree-count 4 undo-tree-oldest-leaf 5 delq undo-tree-position] 11 "\n\n(fn NODE)"])
#@132 Discard undo history until we're within memory usage limits
set by `undo-limit', `undo-strong-limit' and `undo-outer-limit'.

(fn)
(defalias 'undo-tree-discard-history #[0 "\306H	>\204 \307\310\311\312#\210\313H\nV\205C\306H	>\204$ \307\310\314\312#\210\315H\315HG\315V\203E \316\306H	>\204> \307\310\314\312#\210\315H!\202V \306H	>\204S \307\310\314\312#\210\315H\211\203x \306H	>\204h \307\310\311\312#\210\313HV\203x \317!\262\202V \211\203\346 \306H	>\204\212 \307\310\311\312#\210\313H\nV\203\346 \306H	>\204\240 \307\310\311\312#\210\313H\306H	>\204\262 \307\310\314\312#\210\315H=\203\315 \320\315H@\321H!\320\315H@\313H!\\\202\330 \320\321H!\320\313H!\\Z\nV\203\346 \317!\262\202x \306H	>\204\364 \307\310\311\312#\210\313H\fV\205A\203!\322\323\324\325 \306H	>\204\307\310\311\312#\210\313H#!\205A\326\211\202A\327\330\323\331\325 \306H	>\2045\307\310\311\312#\210\313H#\332P\333#\210\326\211\262\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-limit undo-strong-limit undo-outer-limit undo-ask-before-discard 0 error "%s accessing a non-%s" undo-tree-size undo-tree 3 undo-tree-root 1 undo-tree-oldest-leaf undo-tree-discard-node undo-list-byte-size 2 yes-or-no-p format "Buffer `%s' undo info is %d bytes long;  discard it? " buffer-name nil display-warning (undo discard-info) "Buffer `%s' undo info was %d bytes long.\n" "The undo info was discarded because it exceeded `undo-outer-limit'.\n\nThis is normal if you executed a command that made a huge change\nto the buffer. In that case, to prevent similar problems in the\nfuture, set `undo-outer-limit' to a value that is large enough to\ncover the maximum size of normal changes you expect a single\ncommand to make, but not so large that it might exceed the\nmaximum memory allotted to Emacs.\n\nIf you did not execute any such command, the situation is\nprobably due to a bug and you should report it.\n\nYou can disable the popping up of this buffer by adding the entry\n(undo discard-info) to the user option `warning-suppress-types',\nwhich is defined in the `warnings' library.\n" :warning] 10 (#$ . 54284)])
#@61 Recursively compute widths for nodes below NODE.

(fn NODE)
(defalias 'undo-tree-compute-widths #[257 "\211C\300\205\312 \301\302@!\211\262!\203( \302@!\211\262G\303U\203( \211B\262\202 @\304\305H\306\"\301!\203= \211G\307U\204R \211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\312\312HI\266@\304\305H\306\"\301!\203p \211G\307U\204\205 \211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\313\313HI\266@\304\305H\306\"\301!\203\243 \211G\307U\204\270 \211\305\310\305H\306\311\300\211\211\211$\211\262#I\266\211\211\314\314HI\266\211A\262\210\202 \207" [nil vectorp undo-tree-node-compute-widths 7 plist-get 6 :visualizer 4 plist-put vector 0 1 2] 16 (#$ . 56420)])
(defalias 'undo-tree-node-compute-widths #[257 "\211\300HG\301C\301C\301C\302C\303\304\305\301\306\307\310\f\f\f\f\f\f&\311\"\312\313%D\215\207" [1 0 nil need-widths funcall make-byte-code "\301\306U\203\235 \303\307\240\210\300\310\311H\312\"\313!\203 \211G\314U\2043 \211\311\315\311H\312\316\317\211\211\211$\211\262#I\266\211\211\306\211I\266\300\310\311H\312\"\313!\203N \211G\314U\204c \211\311\315\311H\312\316\317\211\211\211$\211\262#I\266\211\211\307\211I\266\300\310\311H\312\"\313!\203~ \211G\314U\204\223 \211\311\315\311H\312\316\317\211\211\211$\211\262#I\266\211\211\320\306I\266\202\243\321\301\320\"\307U\203i\305\300\307H\240\210\301\320\245\306\211W\203B\211\310\305\242@\311H\312\"\313!\205\317 \211G\314U\205\317 \211\306H\262\203-\302\211\242\322\310\305\242@\311H\312\"\313!\205\360 \211G\314U\205\360 \211\306H\262\310\305\242@\311H\312\"\313!\205\n\211G\314U\205\n\211\307H\262\310\305\242@\311H\312\"\313!\205$\211G\314U\205$\211\320H\262#\\\240\210\2024\323\324\305\242@\"\210\305\211\242A\240\266\211T\262\202\260 \266\310\305\242@\311H\312\"\313!\205\\\211G\314U\205\\\211\306H\262\203\204\302\211\242\310\305\242@\311H\312\"\313!\205|\211G\314U\205|\211\306H\262\\\240\210\202\213\323\324\305\242@\"\210\303\310\305\242@\311H\312\"\313!\205\244\211G\314U\205\244\211\307H\262\240\210\304\211\242\310\305\242@\311H\312\"\313!\205\303\211G\314U\205\303\211\320H\262\\\240\210\305\211\242A\240\210\301\320\245\306\211W\203d\211\310\305\242@\311H\312\"\313!\205\361\211G\314U\205\361\211\306H\262\203O\304\211\242\322\310\305\242@\311H\312\"\313!\205\211G\314U\205\211\306H\262\310\305\242@\311H\312\"\313!\205,\211G\314U\205,\211\307H\262\310\305\242@\311H\312\"\313!\205F\211G\314U\205F\211\320H\262#\\\240\210\202V\323\324\305\242@\"\210\305\211\242A\240\266\211T\262\202\322\266\202\243\305\300\307H\240\210\301\320\245\306\211W\203\211\310\305\242@\311H\312\"\313!\205\222\211G\314U\205\222\211\306H\262\203\360\302\211\242\322\310\305\242@\311H\312\"\313!\205\263\211G\314U\205\263\211\306H\262\310\305\242@\311H\312\"\313!\205\315\211G\314U\205\315\211\307H\262\310\305\242@\311H\312\"\313!\205\347\211G\314U\205\347\211\320H\262#\\\240\210\202\367\323\324\305\242@\"\210\305\211\242A\240\266\211T\262\202s\266\303\306\240\210\301\320\245\306\211W\203\241\211\310\305\242@\311H\312\"\313!\205.\211G\314U\205.\211\306H\262\203\214\304\211\242\322\310\305\242@\311H\312\"\313!\205O\211G\314U\205O\211\306H\262\310\305\242@\311H\312\"\313!\205i\211G\314U\205i\211\307H\262\310\305\242@\311H\312\"\313!\205\203\211G\314U\205\203\211\320H\262#\\\240\210\202\223\323\324\305\242@\"\210\305\211\242A\240\266\211T\262\202\266\316\302\242\303\242\304\242#\207" vconcat vector [0 1 plist-get 6 :visualizer vectorp 4 plist-put vector nil 2 mod + throw need-widths] 13 "\n\n(fn)"] 19 "\n\n(fn NODE)"])
(defalias 'undo-tree-clear-visualizer-data #[257 "\301\302\303H>\204 \304\305\306\307#\210\310H\"\207" [cl-struct-undo-tree-tags undo-tree-mapc #[257 "\300!\207" [undo-tree-node-clear-visualizer-data] 3 "\n\n(fn N)"] 0 error "%s accessing a non-%s" undo-tree-root undo-tree 1] 7 "\n\n(fn TREE)"])
(defalias 'undo-tree-node-unmodified-p #[513 "\300C\300\301H\206 \302H@\240\205 \242\303H\240\210\304\305\306\307\310\311\312!\313\"\314\315%D\215\262\211\205R ?\206R \211A<\203A \211\232\202R \211@@U\205R \211A\211A@\262U\207" [nil 3 1 2 found funcall make-byte-code 0 "\300\242\211\205' \211@\211:\203  \211@\301=\203  \211A:\203  \302\303A\"\210A\266\202\202 \207" vconcat vector [t throw found] 5 "\n\n(fn)"] 12 "\n\n(fn NODE &optional MTIME)"])
(defvar undo-adjusted-markers nil)
(defalias 'undo-tree-pull-undo-in-region-branch #[514 "\304\"\203	 \305\207\306CC\211\242C\306C\211C\307H	>\204! \310\311\312\313#\210\314HC\315\"\306\211C\306C\306\211\211\211C\306C\306C\203\274 	\242\262\n\242\316H@\240\210\n\242\240\210\306	\242\316HG\316U\203\204 \317 \210\n\242\240\210	\307H	>\204| \310\311\312\313#\210\314H\240\210\202W )\242\n\242=\203\224 \306\240\210	\242\211\316\320\242\242\316H\"I\266\242\211\307\306I\266\242\262	\242\262\202E	\242\316H\203E\321\306\211\211\211\322 \307\306&\240\210\242\240\210	\211\242\323H\242\316H8\240\203\"\242\324\242\314H!\324\f\242\325H!\322 \321\306\307\306&\266\204\242\211\316\316HBI\266\211\242\316H@\240\210\202\332 \211\242\316H@\240\210\306\240\210	\307H	>\204@\310\311\312\313#\210\314H\240\210\326\327\330\307\331\332\321&\f\333\"\334\335%D\215\210\211\242A\240\210\242\204\275\205\237\211\316\316HBI\266\211\323\307I\266\211\307I\266\306\307H	>\204\252\310\311\312\313#\210\314H=\204\270\336 \210\202\234)\306\202\237\306\307H	>\204\314\310\311\312\313#\210\314H\307H	>\204\337\310\311\312\313#\210\314H\f\242=\204\357\317 \210\202\321\307H	>\204\375\310\311\312\313#\210\314H=\204\336 \210\202\357)\266\242\204Y\321\242\306\242\306\322 \307\306&\240\210	\242\211\316\n\242\316HBI\266	\242\211\323\307I\266\307H	>\204M\310\311\312\313#\210\211\314\n\242I\266\202<\242\204\250\337	\242\242\"\240\210	\242\211\316\n\242\316HBI\266	\242\211\323\307I\266\242\211\307\f\242I\266\307H	>\204\234\310\311\312\313#\210\211\314\n\242I\266\202<\242\211\307\f\242I\266	\242\211\316\n\242\316HBI\266	\242\211\323\307I\266\203\307H	>\204\336\310\311\312\313#\210\211\314\307HI\266\306\307H	>\204\370\310\311\312\313#\210\314H\242=\204\n\336\306\340\"\210\202\352)	\321\306\211\242\306\322 \307\306&\240\210\341\n\242\242\"\210\307H	>\2043\310\311\312\313#\210\211\314\f\242I\266	\242\307H\240\210	\211\242\316H@\240\203\236	\242=\204\236\307H	>\204g\310\311\342\313#\210\211\343\343HTI\262\203\236\307H	>\204\202\310\311\344\313#\210\211\325\325H\345\242\314H!\345\242\325H!\\\\I\262\204E\305)\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-adjusted-markers mark-active undo-tree-reverting-redo-in-region-p t nil 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 undo-tree-repeated-undo-in-region-p 1 undo-tree-undo-1 delq vector current-time 5 undo-copy-list 3 abort funcall make-byte-code "\311\242?\205F\306\242\205F\306\242\314H\205F\312\315\316\306\242\314H!B\240\210\313\312\242\211A@\262\240\210\307\242\203B \307\317\307\242\312\242\"\240\210\310\242\204V \310\307\242\240\210\202V \307\320\315\211\312\242\315\321 \322\315&\240\210\310\307\242\240\210\313\242\203\n\323\313\242\300\301#\203\242 \313\242:\203| \313\242@;\204x \313\242@\250\203| \311\324\240\210\325\310\242\313\242\"\210\303\242\326\313\242\304A\"C\241\210\303\211\242A\240\210\312\242\312\242\211AA\262\241\210\202\375 \313\242:\203\276 \313\242@\324=\203\276 \312\242\312\242\211AA\262\241\210\202\375 \327\313\242\300\301#\203\337 \311\242\203\323 \312\315\240\210\202\375 \302\315\240\210\330\331\324\"\210\202\375 \332\313\242!\211A\322U\204\366 \305\242C\241\210\305\211\242A\240\210\210\312\211\242A\240\210\313\312\242\211A@\262\240\210\202V \307\242\314H\211A@\262\203(\307\242\211\314H\314\314HAI\210\266\202<\310\242\307\242=\2034\310\315\240\210\307\211\242\333H@\240\210\306\211\242\322H\240\210\202  \207" vconcat [2 nil undo-copy-list undo-tree-grow-backwards vector current-time 0 undo-elt-in-region t undo-tree-adjust-elements-to-elt undo-tree-apply-deltas undo-elt-crosses-region throw abort undo-delta 1] 9 "\n\n(fn)" undo-tree-redo-1 undo-tree-grow-backwards preserve-undo undo-tree-splice-node undo-tree-count 4 undo-tree-size undo-list-byte-size] 36 "\n\n(fn START END)"])
(defalias 'undo-tree-pull-redo-in-region-branch #[514 "\303\"\203	 \304\207\305CC\211\242C\305C\211C\306H	>\204! \307\310\311\312#\210\313HC\314\"\305\211C\305\211C\305C\305C\203b \242\315H@\240\203\276 \242\211\306\305I\266\242\211\315\316\242\242\315H\"I\266\202\276 \242\315H\203\276 \317\305\211\211\211\320 \306\305&\240\210\242\262\211\242\321H\242\315H8\240\203\266 \322\242\323H!\320 \317\305\211\306\305&\266\203\211\315\315HBI\266\315H@\262\202| \211\242\315H@\240\210\242\240\210\324\325\326\306\327\330\317&\331\"\332\333%D\215\210\n\211\242A\240\210\306H	>\204\307\310\311\312#\210\313H\240\210\n\242@\204=\205\362\242\205\362\242\211\315\242\315HBI\266\242\211\321\306I\266\242\211\306	\242I\266\305\202\362\211\242\203O\334\242\305\242#\202\\\317\305\211\211\242\320 \306\305&\240\210\242\211\315\242\315HBI\266\242\211\321\306I\266\242\211\306	\242I\266\204\322\242\240\210\211\242\315H@\240\203\322\306H	>\204\243\307\310\335\312#\210\211\336\336HTI\262\203\322\306H	>\204\276\307\310\337\312#\210\211\323\323H\340\242\323H!\\I\262\204\212\306H	>\204\340\307\310\337\312#\210\211\323\323H\340	\242\323H!\\I\266\304)\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-adjusted-markers undo-tree-reverting-undo-in-region-p t nil 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 undo-tree-repeated-redo-in-region-p 1 delq vector current-time 5 undo-copy-list 3 abort funcall make-byte-code "\310\242?\205\"\306\242\205\"\306\242\313H\205\"\311\306\242\211\313\314\313HBI\262\240\210\312\311\242\211A@\262\240\210\312\242\203\341 \315\312\242\300\301#\203y \312\242:\203Q \312\242@;\204M \312\242@\250\203Q \310\316\240\210\317\307\242\312\242\316#\210\303\242\320\312\242\304A\321#C\241\210\303\211\242A\240\210\311\242\311\242\211AA\262\241\210\202\324 \312\242:\203\225 \312\242@\316=\203\225 \311\242\311\242\211AA\262\241\210\202\324 \322\312\242\300\301#\203\266 \310\242\203\252 \311\314\240\210\202\324 \302\314\240\210\323\324\316\"\210\202\324 \325\312\242!\211A\326U\204\315 \305\242C\241\210\305\211\242A\240\210\210\311\211\242A\240\210\312\311\242\211A@\262\240\210\202+ \306\242\313H\211A@\262\203\377 \306\242\211\327H\327\327HAI\210\266\202\307\242\306\242=\203\307\211\242\330H@\240\210\202\331\306\242!\210\306\211\242\330H@\240\210\202  \207" vconcat [3 nil undo-elt-in-region t undo-tree-adjust-elements-to-elt undo-tree-apply-deltas -1 undo-elt-crosses-region throw abort undo-delta 0 2 1 undo-tree-snip-node] 7 "\n\n(fn)" undo-tree-grow-backwards undo-tree-count 4 undo-tree-size undo-list-byte-size] 32 "\n\n(fn START END)"])
#@341 Adjust buffer positions of undo elements, starting at NODE's
and going up the tree (or down the active branch if BELOW is
non-nil) and through the nodes' undo elements until we reach
UNDO-ELT.  UNDO-ELT must appear somewhere in the undo changeset
of either NODE itself or some node above it in the tree.

(fn NODE UNDO-ELT &optional BELOW)
(defalias 'undo-tree-adjust-elements-to-elt #[770 "\300!C\301H\211@\205C \211@=?\205C \211\302@\303#\240\210\211A\211\262@\204 \2036 \304H\305H8\262\202; \306H\262\301H\262\202 \207" [undo-delta 2 undo-tree-apply-deltas -1 5 1 0] 10 (#$ . 67705)])
(defalias 'undo-tree-apply-deltas #[770 "\300\211\211\203\253 \211@\211@\262\211A\206 \301_\262\250\203- Y\203\244 Z\262\202\244 :\203\244 @;\203b \302A!A\303WY\203] \203U \304\202V \301Z_\241\210\266\202\244 @\250\203\204 @Y\203\244 \211@Z\240\210\211AZ\241\210\202\244 @\204\244 \305\233\211@Y\203\243 \211@Z\240\210\211AZ\241\210\210A\266\202\202 \210\207" [nil 1 abs 0 -1 3] 13 "\n\n(fn UNDO-ELT DELTAS &optional SGN)"])
(defalias 'undo-tree-repeated-undo-in-region-p #[514 "\302H	>\204 \303\304\305\306#\210\307H\211\310H\311H8\211\262\205U \312\313H\314\"\315!\2054 \211G\316U\2054 \211\302H\262=\205U \312\313H\314\"\315!\205Q \211G\316U\205Q \211\311H\262=\207" [buffer-undo-tree cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 5 1 plist-get 6 :region vectorp 4] 6 "\n\n(fn START END)"])
(defalias 'undo-tree-repeated-redo-in-region-p #[514 "\302H	>\204 \303\304\305\306#\210\307H\310\311H\312\"\313!\205' \211G\314U\205' \211\307H\262=\205H \310\311H\312\"\313!\205D \211G\314U\205D \211\315H\262=\207" [buffer-undo-tree cl-struct-undo-tree-tags 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 plist-get 6 :region vectorp 4 3] 6 "\n\n(fn START END)"])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias undo-tree-reverting-undo-in-region-p undo-tree-repeated-undo-in-region-p undo-tree-reverting-redo-in-region-p undo-tree-repeated-redo-in-region-p] 3)
#@97 Non-nil if Undo-Tree mode is enabled.
Use the command `undo-tree-mode' to change this variable.
(defvar undo-tree-mode nil (#$ . 69818))
(make-variable-buffer-local 'undo-tree-mode)
#@513 Toggle undo-tree mode.
With no argument, this command toggles the mode.
A positive prefix argument turns the mode on.
A negative prefix argument turns it off.

Undo-tree-mode replaces Emacs' standard undo feature with a more
powerful yet easier to use version, that treats the undo history
as what it is: a tree.

The following keys are available in `undo-tree-mode':

  \{undo-tree-map}

Within the undo-tree visualizer, the following keys are available:

  \{undo-tree-visualizer-mode-map}

(fn &optional ARG)
(defalias 'undo-tree-mode #[256 "\302 \303=\203 ?\202 \304!\305V\211\204 \306 \210\307\310\311\203& \312\202' \313\"\210\314\315!\203H \302 \203; \211\302 \232\203H \316\317\203E \320\202F \321\"\210\210\322 \210\207" [undo-tree-mode buffer-undo-tree current-message toggle prefix-numeric-value 0 undo-list-rebuild-from-tree nil run-hooks undo-tree-mode-hook undo-tree-mode-on-hook undo-tree-mode-off-hook called-interactively-p any message "Undo-Tree mode %sabled" "en" "dis" force-mode-line-update] 6 (#$ . 70007) (byte-code "\206 \301C\207" [current-prefix-arg toggle] 1)])
#@179 Hook run after entering or leaving `undo-tree-mode'.
No problems result if this variable is not bound.
`add-hook' automatically binds it.  (This is true for all hook variables.)
(defvar undo-tree-mode-hook nil (#$ . 71116))
(byte-code "\301\302\303\304\211%\207" [undo-tree-map add-minor-mode undo-tree-mode undo-tree-mode-lighter nil] 6)
#@753 Enable `undo-tree-mode' in the current buffer, when appropriate.
Some major modes implement their own undo system, which should
not normally be overridden by `undo-tree-mode'. This command does
not enable `undo-tree-mode' in such buffers. If you want to force
`undo-tree-mode' to be enabled regardless, use (undo-tree-mode 1)
instead.

The heuristic used to detect major modes in which
`undo-tree-mode' should not be used is to check whether either
the `undo' command has been remapped, or the default undo
keybindings (C-/ and C-_) have been overridden somewhere other
than in the global map. In addition, `undo-tree-mode' will not be
enabled if the buffer's `major-mode' appears in
`undo-tree-incompatible-major-modes'.

(fn &optional PRINT-MESSAGE)
(defalias 'turn-on-undo-tree-mode #[256 "\302\303!\204 \304 \204 	>\203 \211\205 \305\306!\207\307\310!\207" [major-mode undo-tree-incompatible-major-modes key-binding [remap undo] undo-tree-overridden-undo-bindings-p message "Buffer does not support undo-tree-mode; undo-tree-mode NOT enabled" undo-tree-mode 1] 3 (#$ . 71463) "p"])
#@291 Returns t if default undo bindings are overridden, nil otherwise.
Checks if either of the default undo key bindings ("C-/" or
"C-_") are overridden in the current buffer by any keymap other
than the global one. (So global redefinitions of the default undo
key bindings do not count.)

(fn)
(defalias 'undo-tree-overridden-undo-bindings-p #[0 "\300\301 \302\"\300\301 \303\"\304\305\306\"\210\304\307\306\"\210\310\311\312\313\314\315\"\316\"\317\320%DC\216\321\322!\2036 \321\323!\306=?\206B \321\324!\205B \321\325!\306=?)\207" [lookup-key current-global-map [67108911] [31] global-set-key [67108911] undo [31] funcall make-byte-code 0 "\302\303\300\"\210\302\304\301\"\207" vconcat vector [global-set-key [67108911] [31]] 3 "\n\n(fn)" key-binding [67108911] [67108911] [31] [31]] 10 (#$ . 72561)])
(defvar undo-tree-mode-major-mode nil)
(byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317&\207" [make-variable-buffer-local undo-tree-mode-major-mode custom-declare-variable global-undo-tree-mode funcall function #[0 "\300\207" [nil] 1 "\n\n(fn)"] "Non-nil if Global-Undo-Tree mode is enabled.\nSee the command `global-undo-tree-mode' for a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `global-undo-tree-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group undo-tree :type boolean] 12)
#@359 Toggle Undo-Tree mode in all buffers.
With prefix ARG, enable Global-Undo-Tree mode if ARG is positive;
otherwise, disable it.  If called from Lisp, enable the mode if
ARG is omitted or nil.

Undo-Tree mode is enabled in all buffers where
`turn-on-undo-tree-mode' would do it.
See `undo-tree-mode' for more information on Undo-Tree mode.

(fn &optional ARG)
(defalias 'global-undo-tree-mode #[256 "\302 \303=\203 ?\202 \304!\305V\211\203) \306\307\310\"\210\306\311\312\"\210\306\313\314\"\210\2028 \315\307\310\"\210\315\311\312\"\210\315\313\314\"\210\316 \211\203^ \211@r\211q\210\203N \317 \210\202V 	\203V \301\320!\210)A\266\202\202: \210\321\322\203i \323\202j \324\"\210\325\326!\203\217 \327\300!\210\302 \203\202 \211\302 \232\203\217 \330\331\203\214 \332\202\215 \333\"\210\210\334 \210\207" [global-undo-tree-mode undo-tree-mode current-message toggle prefix-numeric-value 0 add-hook after-change-major-mode-hook global-undo-tree-mode-enable-in-buffers find-file-hook global-undo-tree-mode-check-buffers change-major-mode-hook global-undo-tree-mode-cmhh remove-hook buffer-list turn-on-undo-tree-mode -1 run-hooks global-undo-tree-mode-hook global-undo-tree-mode-on-hook global-undo-tree-mode-off-hook called-interactively-p any customize-mark-as-set message "Global-Undo-Tree mode %sabled" "en" "dis" force-mode-line-update] 7 (#$ . 74044) (byte-code "\206 \301C\207" [current-prefix-arg toggle] 1)])
#@186 Hook run after entering or leaving `global-undo-tree-mode'.
No problems result if this variable is not bound.
`add-hook' automatically binds it.  (This is true for all hook variables.)
(defvar global-undo-tree-mode-hook nil (#$ . 75479))
(byte-code "\301\302\303\304\300!\205\n \303\211%\207" [global-undo-tree-mode-map add-minor-mode global-undo-tree-mode nil boundp] 6)
(defvar undo-tree-mode-set-explicitly nil nil)
(make-variable-buffer-local 'undo-tree-mode-set-explicitly)
(defalias 'undo-tree-mode-set-explicitly #[0 "\301\211\207" [undo-tree-mode-set-explicitly t] 2 "\n\n(fn)"])
(byte-code "\300\301\302\303#\210\304\305\301\"\207" [put undo-tree-mode-set-explicitly definition-name global-undo-tree-mode add-hook undo-tree-mode-hook] 4)
(defvar global-undo-tree-mode-buffers nil)
(defalias 'global-undo-tree-mode-enable-in-buffers #[0 "\211\2056 \211@\305!\203/ r\211q\210	\204, \n=\204, \f\203) \304\306!\210\307 \210\202, \307 \210)A\266\202\202 \207" [global-undo-tree-mode-buffers undo-tree-mode-set-explicitly undo-tree-mode-major-mode major-mode undo-tree-mode buffer-live-p -1 turn-on-undo-tree-mode] 4 "\n\n(fn)"])
(put 'global-undo-tree-mode-enable-in-buffers 'definition-name 'global-undo-tree-mode)
(defalias 'global-undo-tree-mode-check-buffers #[0 "\301 \210\302\303\304\305\"\207" [global-undo-tree-mode-buffers global-undo-tree-mode-enable-in-buffers nil remove-hook post-command-hook global-undo-tree-mode-check-buffers] 3 "\n\n(fn)"])
(put 'global-undo-tree-mode-check-buffers 'definition-name 'global-undo-tree-mode)
(defalias 'global-undo-tree-mode-cmhh #[0 "p\211\235\203\f \210\202 \211B\210\301\302\303\"\207" [global-undo-tree-mode-buffers add-hook post-command-hook global-undo-tree-mode-check-buffers] 3 "\n\n(fn)"])
(put 'global-undo-tree-mode-cmhh 'definition-name 'global-undo-tree-mode)
#@347 Undo changes.
Repeat this command to undo more changes.
A numeric ARG serves as a repeat count.

In Transient Mark mode when the mark is active, only undo changes
within the current region. Similarly, when not in Transient Mark
mode, just \[universal-argument] as an argument limits undo to
changes within the current region.

(fn &optional ARG)
(defalias 'undo-tree-undo #[256 "\303=\203\n \304\305!\210\306!\210	\307H\n>\204 \310\311\312\313#\210	\314H\315HG\315V\205* \316\317!\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t user-error "No undo information in this buffer" undo-tree-undo-1 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 1 message "Undo branch point!"] 5 (#$ . 77327) "*P"])
(defalias 'undo-tree-undo-1 #[768 "\306\205 \307 \206 \205 \247?\310\211\311 \210\247\203' \312!\206( \313\314\211W\203<\211\314H\f>\204> \315\316\317\320#\210\321H\314H\204J \322\323!\210	\203[ \324\325 \326 \"\204[ \322\327!\210\314H\f>\204i \315\316\317\320#\210\321H\262\314H\f>\204| \315\316\330\320#\210\211\331\331H\332\321H!ZI\266\211\321\333\321H!I\266\314H\f>\204\246 \315\316\330\320#\210\211\331\331H\332\321H!\\I\266	\203\306 \334 `\310\223\262\335\306\"\210\336\313\337\321H!\"\210\340 \210\203&\341 \210\314H\f>\204\351 \315\316\330\320#\210\211\331\331H\332\331H!ZI\266\211\331\333\331H!I\266\314H\f>\204\315\316\330\320#\210\211\331\331H\332\331H!\\I\266\202k\314H\f>\2044\315\316\330\320#\210\211\331\331H\332\331H!ZI\266\211\331\341\342!I\266\314H\f>\204[\315\316\330\320#\210\211\331\331H\332\331H!\\I\266\314H\f>\204y\315\316\317\320#\210\211\321\314H\f>\204\212\315\316\317\320#\210\321H\314HI\266\204\257\314H\f>\204\245\315\316\317\320#\210\321H\211\343\344 I\266	\204\312\211\345\346\310\346\347\350\345H\347\310#\"\"I\266\2024b\210\351\345H\347\"\352!\203\341\211G\343U\204\366\211\345\350\345H\347\353\310\211\211\211$\211\262#I\266\211\211\314\325 I\266\351\345H\347\"\352!\203\211G\343U\204'\211\345\350\345H\347\353\310\211\211\211$\211\262#I\266\211\211\313\326 I\266\310\211\223\210\210\211T\262\202) \266	?\211*\207" [undo-tree-enable-undo-in-region undo-in-region undo-in-progress buffer-undo-tree cl-struct-undo-tree-tags deactivate-mark t region-active-p nil undo-list-transfer-to-tree prefix-numeric-value 1 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 user-error "No further undo information" undo-tree-pull-undo-in-region-branch region-beginning region-end "No further undo information for region" undo-tree-size 3 undo-list-byte-size undo-list-clean-GCd-elts make-marker set-marker-insertion-type primitive-undo undo-tree-copy-list undo-boundary undo-list-pop-changeset discard-pos 4 current-time 6 delq :region plist-put plist-get vectorp vector] 23 "\n\n(fn &optional ARG PRESERVE-REDO PRESERVE-TIMESTAMPS)"])
#@305 Redo changes. A numeric ARG serves as a repeat count.

In Transient Mark mode when the mark is active, only redo changes
within the current region. Similarly, when not in Transient Mark
mode, just \[universal-argument] as an argument limits redo to
changes within the current region.

(fn &optional ARG)
(defalias 'undo-tree-redo #[256 "\303=\203\n \304\305!\210\306!\210	\307H\n>\204 \310\311\312\313#\210	\314H\315HG\315V\205* \316\317!\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t user-error "No undo information in this buffer" undo-tree-redo-1 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 1 message "Undo branch point!"] 5 (#$ . 80260) "*P"])
(defalias 'undo-tree-redo-1 #[768 "\305\205 \306 \206 \205 \247?\307\211\310 \210\247\203% \311!\206& \312\313\211W\203\"\211\n\313H>\204< \314\315\316\317#\210\n\320H\312H\204H \321\322!\210\203Y \323\324 \325 \"\204Y \321\326!\210\n\313H>\204g \314\315\316\317#\210\n\320H\262\327H\312H8\262\n\313H>\204\203 \314\315\330\317#\210\n\211\331\331H\332\331H!ZI\266\211\331\333\331H!I\266\n\313H>\204\255 \314\315\330\317#\210\n\211\331\331H\332\331H!\\I\266\203\315 \334 `\307\223\262\335\305\"\210\336\312\337\331H!\"\210\340 \210\n\313H>\204\350 \314\315\316\317#\210\n\211\320I\266\203C\341 \210\n\313H>\204\314\315\330\317#\210\n\211\331\331H\332\320H!ZI\266\211\320\333\320H!I\266\n\313H>\2040\314\315\330\317#\210\n\211\331\331H\332\320H!\\I\266\202\210\n\313H>\204Q\314\315\330\317#\210\n\211\331\331H\332\320H!ZI\266\211\320\341\342!I\266\n\313H>\204x\314\315\330\317#\210\n\211\331\331H\332\320H!\\I\266\204\225\211\343\344 I\266\204\260\211\345\346\307\346\347\350\345H\347\307#\"\"I\266\202b\210\351\345H\347\"\352!\203\307\211G\343U\204\334\211\345\350\345H\347\353\307\211\211\211$\211\262#I\266\211\211\320\324 I\266\351\345H\347\"\352!\203\370\211G\343U\204\211\345\350\345H\347\353\307\211\211\211$\211\262#I\266\211\211\331\325 I\266\307\211\223\210\210\211T\262\202' \266?\211)\207" [undo-tree-enable-undo-in-region undo-in-progress buffer-undo-tree cl-struct-undo-tree-tags deactivate-mark t region-active-p nil undo-list-transfer-to-tree prefix-numeric-value 1 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 user-error "No further redo information" undo-tree-pull-redo-in-region-branch region-beginning region-end "No further redo information for region" 5 undo-tree-size 3 undo-list-byte-size undo-list-clean-GCd-elts make-marker set-marker-insertion-type primitive-undo undo-tree-copy-list undo-boundary undo-list-pop-changeset discard-pos 4 current-time 6 delq :region plist-put plist-get vectorp vector] 23 "\n\n(fn &optional ARG PRESERVE-UNDO PRESERVE-TIMESTAMPS)"])
#@149 Switch to a different BRANCH of the undo tree.
This will affect which branch to descend when *redoing* changes
using `undo-tree-redo'.

(fn BRANCH)
(defalias 'undo-tree-switch-branch #[257 "\303=\203\n \304\305!\210	\306H\n>\204 \307\310\311\312#\210	\313H\314HG\314X\203' \304\315!\210\211\306W\204G \211	\306H\n>\204< \307\310\311\312#\210	\313H\314HGSV\203K \304\316!\210\317 \210	\306H\n>\204\\ \307\310\311\312#\210	\313H\211\320I\266\321\322\"\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t user-error "No undo information in this buffer" 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 1 "Not at undo branch point" "Invalid branch number" undo-list-transfer-to-tree 5 message "Switched to branch %d"] 6 (#$ . 83081) (byte-code "\203\n \304!\206| 	\305=?\205| \306 \210\n\307H>\204\" \310\311\312\313#\210\n\314H\315H\n\307H>\2045 \310\311\312\313#\210\n\314H\316HG\314U\203F \316Z\202z \n\307H>\204T \310\311\312\313#\210\n\314H\316HG\314V\205z \317\320\321\n\307H>\204p \310\311\312\313#\210\n\314H\316HGS#!\262C\207" [prefix-arg buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags prefix-numeric-value t undo-list-transfer-to-tree 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 5 1 read-number format "Branch (0-%d, on %d): "] 8)])
(defalias 'undo-tree-set #[513 "\302\303\304\"\305\306H	>\204 \307\310\311\312#\210\313H\314#\210\305\314#\210\211\306H\203@ \211\306H\211\315\316\211\306H\313H\"I\266\211\306H\211\262\204 \306H	>\204N \307\310\317\312#\210\320H\262\321\"\204b \211\306H\262\202S \306H	>\204p \307\310\317\312#\210\320H=\204\201 \322\323\211#\210\202b \306H	>\204\217 \307\310\317\312#\210\320H=\204\240 \324\323\211#\210\202\201 \207" [buffer-undo-tree cl-struct-undo-tree-tags make-hash-table :test eq puthash 0 error "%s accessing a non-%s" undo-tree-root undo-tree 1 t 5 undo-tree-position undo-tree-current 2 gethash undo-tree-undo-1 nil undo-tree-redo-1] 11 "\n\n(fn NODE &optional PRESERVE-TIMESTAMPS)"])
#@184 Store current undo-tree state to REGISTER.
The saved state can be restored using
`undo-tree-restore-state-from-register'.
Argument is a character, naming the register.

(fn REGISTER)
(defalias 'undo-tree-save-state-to-register #[257 "\303=\203\n \304\305!\210\306 \210\307\310\311p	\312H\n>\204  \313\314\315\316#\210	\317H\"\320\321#\"\210	\312H\n>\2047 \313\314\315\316#\210	\317H\211\211\322\323\322H\324#I\262\207" [buffer-undo-list buffer-undo-tree cl-struct-undo-tree-tags t user-error "No undo information in this buffer" undo-list-transfer-to-tree set-register registerv-make vector 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 :print-func undo-tree-register-data-print-func 6 plist-put :register] 10 (#$ . 85119) "cUndo-tree state to register: "])
#@167 Restore undo-tree state from REGISTER.
The state must be saved using `undo-tree-save-state-to-register'.
Argument is a character, naming the register.

(fn REGISTER)
(defalias 'undo-tree-restore-state-from-register #[257 "\302!\211\303H>\204 \304\305\306\307#\210\211\310H\262	\311=\203# \312\313!\210\202< \314!\2040 \312\315!\210\202< p\303H=\204< \312\316!\210\317 \210\320\310H!\207" [cl-struct-registerv-tags buffer-undo-list get-register 0 error "%s accessing a non-%s" registerv-data registerv 1 t user-error "No undo information in this buffer" undo-tree-register-data-p "Register doesn't contain undo-tree state" "Register contains undo-tree state for a different buffer" undo-list-transfer-to-tree undo-tree-set] 6 (#$ . 85906) "*cRestore undo-tree state from register: "])
#@320 Create the undo history file name for FILE.
Normally this is the file's name with "." prepended and
".~undo-tree~" appended.

A match for FILE is sought in `undo-tree-history-directory-alist'
(see the documentation of that variable for details). If the
directory for the backup doesn't exist, it is created.

(fn FILE)
(defalias 'undo-tree-make-history-save-file-name #[257 "\302!\303!\304\305!\306R)\207" [undo-tree-history-directory-alist backup-directory-alist make-backup-file-name-1 file-name-directory "." file-name-nondirectory ".~undo-tree~"] 6 (#$ . 86704)])
#@320 Store undo-tree history to file.

If optional argument FILENAME is omitted, default save file is
".<buffer-file-name>.~undo-tree" if buffer is visiting a file.
Otherwise, prompt for one.

If OVERWRITE is non-nil, any existing file will be overwritten
without asking for confirmation.

(fn &optional FILENAME OVERWRITE)
(defalias 'undo-tree-save-history #[512 "\305=\203\n \306\307!\210\310 \210	\205\310 	\305=?\205\310 \311\312\313D\314\312\315\311EDC\217\210p\316\204= \n\2035 \317\n!\202; \320\321\322!\316\"\262\323!\203Q \204Q \324\325\326\"!\205\306 \312\327DC\216\330	!\210\331	!\262\211\332H>\204m \314\333\334\335#\210\211\211\336\316I\266\337 \312\340\332\341\342\343!\344\"\345\346%DC\216\211\204\216 \347 \210\350\351!r\211q\210\312\340\332\352\342\343!\353\"\354\346%DC\216\355\356!p\"\210\357p!\210\305\355p\"\210)\360\316\211#*\262)\262)\266\202\207" [buffer-undo-list buffer-undo-tree buffer-file-name cl-struct-undo-tree-tags print-circle t user-error "No undo information in this buffer" undo-list-transfer-to-tree #1=#:err funcall #[0 "\300 \207" [undo-tree-kill-visualizer] 1 "\n\n(fn)"] error #[257 "\301!\207" [buffer-undo-tree undo-tree-clear-visualizer-data] 3 "\n\n(fn IGNORED)"] nil undo-tree-make-history-save-file-name expand-file-name read-file-name "File to save in: " file-exists-p yes-or-no-p format "Overwrite \"%s\"? " #[0 "\301!\207" [buffer-undo-tree undo-tree-recircle] 2 "\n\n(fn)"] undo-tree-decircle copy-undo-tree 0 "%s accessing a non-%s" undo-tree-object-pool undo-tree 5 jka-compr-installed-p make-byte-code "\300?\205 \301 \207" vconcat vector [jka-compr-uninstall] 1 "\n\n(fn)" jka-compr-install generate-new-buffer " *temp*" "\301\300!\205	 \302\300!\207" [buffer-name kill-buffer] 2 prin1 sha1 terpri write-region] 13 (#$ . 87284) nil])
#@324 Load undo-tree history from file.

If optional argument FILENAME is null, default load file is
".<buffer-file-name>.~undo-tree" if buffer is visiting a file.
Otherwise, prompt for one.

If optional argument NOERROR is non-nil, return nil instead of
signaling an error if file is not found.

(fn &optional FILENAME NOERROR)
(defalias 'undo-tree-load-history #[512 "C\211\242\204 \211\203 \301!\202 \302\303\304!\305\"\240\210\306\307\310\311\312\313\314	\"\315\"\316\317%D\215\207" [buffer-file-name undo-tree-make-history-save-file-name expand-file-name read-file-name "File to load from: " nil load-error funcall make-byte-code 0 "\304\300\242!\204 \301\203 \305\306\307\"\210\202 \310\311\300\242\"\210\307\211C\307Cp\262\312 \313\314\315\316\317\320!\321\"\322\323%DC\216\211\204; \324 \210\325\326!r\211q\210\313\314\315\327\317\320!\330\"\331\323%DC\216\332\300\242!\210eb\210\333\313\314\315\334\317\320\n!\335\"\336\323%D\310\313\314\337\340\317\320\300\301\"\341\"\342\343%\333EDC\217\210\344!\242\230\204\236 \345\307!\210\301\203\225 \346\202\226 \347\350!\210\305\306\307\"\210\351\313\314\315\334\317\320	!\352\"\336\323%D\310\313\314\337\340\317\320\300\301\"\353\"\342\343%\351EDC\217\210\345\307!\210*\210)\210\211\242\315H\n>\204\332 \310\354\355\356#\210\211\242\211\357\360\361\362\363\364$I\266\365\242!\210\211\242\211\207" vconcat vector [cl-struct-undo-tree-tags buffer-undo-tree file-exists-p throw load-error nil error "File \"%s\" does not exist; could not load undo-tree history" jka-compr-installed-p funcall make-byte-code 0 "\300?\205 \301 \207" vconcat vector [jka-compr-uninstall] 1 "\n\n(fn)" jka-compr-install generate-new-buffer " *temp*" "\301\300!\205	 \302\300!\207" [buffer-name kill-buffer] 2 insert-file-contents #1=#:err "\300\301p!\240\207" [read] 3 257 "\302\303!\210\301\203\f \304\202 \305\306\300\242\"\210\307\310\303\"\207" [kill-buffer nil message user-error "Error reading undo-tree history from \"%s\"" throw load-error] 4 "\n\n(fn IGNORED)" sha1 kill-buffer message user-error "Buffer has been modified; could not load undo-tree history" #2=#:err [read] [kill-buffer nil message error "Error reading undo-tree history from \"%s\"" throw load-error] "%s accessing a non-%s" undo-tree-object-pool undo-tree 5 make-hash-table :test eq :weakness value undo-tree-recircle] 16 "\n\n(fn)"] 12 (#$ . 89100) nil])
(defalias 'undo-tree-save-history-hook #[0 "\205 	\205 \n\303=?\205 \304\305\303\"\210\305\207" [undo-tree-mode undo-tree-auto-save-history buffer-undo-list t undo-tree-save-history nil] 3 "\n\n(fn)"])
(defalias 'undo-tree-load-history-hook #[0 "\205 	\205 \n\304=?\205 ?\205 \305\306\304\"\207" [undo-tree-mode undo-tree-auto-save-history buffer-undo-list revert-buffer-in-progress-p t undo-tree-load-history nil] 3 "\n\n(fn)"])
#@49 Visualize the current buffer's undo tree.

(fn)
(defalias 'undo-tree-visualize #[0 "\306 \210\307=\203 \310\311!\210\312 \210\313\314\315\316\307$\210	p\317\320\321!!\210\211\322!\2050 \323\324\322!!8\325H'>\204@ \326\327\330\331#\210\332H(\203W )\203S \333\202X \334\202X \335*\336\337!\210\336\340!\210\341 \210\336\342!\210\"\307=\206\217 \"\247\205\217 \325H'>\204\211 \326\327\343\331#\210\344H\"Y\" \203\231 \345 \210\307+\346!*\207" [buffer-undo-list buffer-undo-tree display-buffer-mark-dedicated undo-tree-visualizer-buffer-name undo-tree-visualizer-parent-buffer undo-tree-visualizer-parent-mtime deactivate-mark t user-error "No undo information in this buffer" undo-list-transfer-to-tree add-hook before-change-functions undo-tree-kill-visualizer nil soft switch-to-buffer-other-window get-buffer-create buffer-file-name 5 file-attributes 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 9 13 3 make-local-variable undo-tree-visualizer-timestamps undo-tree-visualizer-diff undo-tree-visualizer-mode undo-tree-visualizer-lazy-drawing undo-tree-count 4 undo-tree-visualizer-show-diff undo-tree-draw-tree cl-struct-undo-tree-tags undo-tree-visualizer-initial-node undo-tree-visualizer-relative-timestamps undo-tree-visualizer-spacing inhibit-read-only] 6 (#$ . 91929) "*"])
(defalias 'undo-tree-kill-visualizer #[128 "\206 \302	!??\205 r	q\210\303 )\207" [undo-tree-inhibit-kill-visualizer undo-tree-visualizer-buffer-name get-buffer undo-tree-visualizer-quit] 3 "\n\n(fn &rest DUMMY)"])
(defalias 'undo-tree-draw-tree #[257 "\203 \211\306H	>\204 \307\310\311\312#\210\211\313H\202) \211\306H	>\204& \307\310\314\312#\210\211\315H\316 \210\317\211\320!\210\321!\210\203O \322\323 \313\245!\210\324\313\325 \326\245]!\210\202n \322\315!\210\324\325 \313\245\327\330!\f\203h \326Z\313\245\202i \306\313#]!\210\211\331\332H\333\"\334!\203\202 \211G\326U\204\227 \211\332\335\332H\333\336\317\211\211\211$\211\262#I\266\211\211\337\340 I\266\341\331\332H\333\"\334!\205\266 \211G\326U\205\266 \211\337H\262\317\"\210\331\332H\333\"\334!\205\321 \211G\326U\205\321 \211\337H\262`\317\223\210\342\317*\204\350 \343\344\"\210\202\343!\210\345!\210\n\262\317\211\203\343\211A\262\242!\210\202\365 )\266\346*\347\206!\306H	>\204\307\310\314\312#\210\315H!\210)\350\306H	>\2043\307\310\311\312#\210\313H\351\"\207" [undo-tree-visualizer-lazy-drawing cl-struct-undo-tree-tags undo-tree-visualizer-needs-extending-down undo-tree-visualizer-needs-extending-up undo-tree-visualizer-timestamps undo-tree-visualizer-spacing 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 undo-tree-root 1 erase-buffer nil undo-tree-clear-visualizer-data undo-tree-compute-widths undo-tree-move-down window-height undo-tree-move-forward window-width 4 + undo-tree-node-char-lwidth plist-get 6 :visualizer vectorp plist-put vector 3 make-marker set-marker-insertion-type undo-tree-visualizer-default-face undo-tree-extend-down t undo-tree-extend-up undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch undo-tree-draw-node current undo-tree-insert-face] 16 "\n\n(fn UNDO-TREE)"])
(defalias 'undo-tree-extend-down #[513 "\301C\301\302!\203, G\303U\203, \304\305H\306\"\302!\205' \211G\307U\205' \211\310H\262\204\204: \211\211\262\301\262\203\211A\262\242\262\311=\204\246 \302!\203] G\303U\203] \312H=\203\246 \250\203\202 \313\304\305H\306\"\302!\205{ \211G\307U\205{ \211\310H\262!Y\204\246 \204\372 \314\304\305H\306\"\302!\205\236 \211G\307U\205\236 \211\310H\262\301\311#\203\372 \315H\203\316 \304\316H\315H8\305H\306\"\302!\205\311 \211G\307U\205\311 \211\310H\262\204\357 \304\305H\306\"\302!\205\344 \211G\307U\205\344 \211\310H\262b\210\317!\210\311\262\320\315H\"\262\202, B\202, \207" [undo-tree-visualizer-needs-extending-down nil vectorp 7 plist-get 6 :visualizer 4 3 t 0 line-number-at-pos pos-visible-in-window-p 1 5 undo-tree-draw-subtree append] 10 "\n\n(fn NODE &optional BOTTOM)"])
(defalias 'undo-tree-extend-up #[513 "\302\211\303!\203* G\304U\203* \305\306H\307\"\303!\205% \211G\310U\205% \211\311H\262\204r\203r\312H\262\211\203G\313=\204\240 \303!\203P G\304U\203P =\203\240 \250\203u \314\305\306H\307\"\303!\205n \211G\310U\205n \211\311H\262!W\204\240 \204;\314`!\314\315 !^\314\305\306H\307\"\303!\205\231 \211G\310U\205\231 \211\311H\262!W\203;\305\306H\307\"\303!\205\266 \211G\310U\205\266 \211\311H\262\204l\316!\210\317!\210\211\305\306H\307\"\303!\203\327 \211G\310U\204\354 \211\306\320\306H\307\321\302\211\211\211$\211\262#I\266\211\211\311\322 I\266\323\305\306H\307\"\303!\205\211G\310U\205\211\311H\262\302\"\210\305\306H\307\"\303!\205&\211G\310U\205&\211\311H\262`\302\223\210\324\325!\"\244\313\262\202l\211\205@\302\262\202l\302\305\306H\307\"\303!\205_\211G\310U\205_\211\311H\262b\210\326\327!\210e\330 |\210\211\262\202* \207" [undo-tree-visualizer-needs-extending-down undo-tree-visualizer-needs-extending-up nil vectorp 7 plist-get 6 :visualizer 4 3 0 t line-number-at-pos window-start undo-tree-compute-widths undo-tree-move-to-parent plist-put vector make-marker set-marker-insertion-type delq undo-tree-draw-subtree undo-tree-move-up 1 line-beginning-position] 17 "\n\n(fn NODE &optional TOP)"])
(defalias 'undo-tree-expand-down #[513 "\205_ \303\304\211\2031 \305\"\262\306\307H\310\"\311!\205) \211G\312U\205) \211\313H\262b\210\314\303!\210\262\304\205\\ \211\203Q \211@\305!\203J \303\262A\266\202\202; \210\211\205\\ \315\316!))\266\203\207" [undo-tree-visualizer-needs-extending-down inhibit-read-only undo-tree-insert-face t nil undo-tree-extend-down plist-get 6 :visualizer vectorp 4 3 redisplay undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch] 9 "\n\n(fn FROM &optional TO)"])
(defalias 'undo-tree-expand-up #[513 "\205\276 \306\307\211\203s \310\"\262\311\312H\313\"\314!\205) \211G\315U\205) \211\316H\262b\210\317`!\nX\203s \320\321U\203C \322 \323\245\202D \316!\210\310!\203O \306\262\311\312H\313\"\314!\205e \211G\315U\205e \211\316H\262b\210\321U\204s \324\n!\210\203\200 \310!\203\200 \306\262\f\262\307\211\211\203\227 \211@\325!\210A\266\202\202\206 \210\205\273 \326\327\206\267 \321H>\204\263 \330\331\332\333#\210\334H\"))\266\203\207" [undo-tree-visualizer-needs-extending-up inhibit-read-only scroll-margin scroll-conservatively undo-tree-visualizer-needs-extending-down undo-tree-insert-face t nil undo-tree-extend-up plist-get 6 :visualizer vectorp 4 3 line-number-at-pos undo-tree-move-up 0 window-height 2 recenter undo-tree-extend-down undo-tree-visualizer-active-branch-face undo-tree-highlight-active-branch error "%s accessing a non-%s" undo-tree-root undo-tree 1 buffer-undo-tree cl-struct-undo-tree-tags] 10 "\n\n(fn FROM &optional TO)"])
(defalias 'undo-tree-highlight-active-branch #[513 "C\211\205B \211A\262\242\262=\204 >\204 \301\302H\303\"\304!\2050 \211G\305U\2050 \211\306H\262b\210\307\310\"\262\211\244\262\202 \207" [undo-tree-visualizer-needs-extending-down plist-get 6 :visualizer vectorp 4 3 undo-tree-draw-subtree active] 6 "\n\n(fn NODE &optional END)"])
(defalias 'undo-tree-draw-node #[513 "\306\307H\310\"\311!\205 \211G\312U\205 \211\313H\262b\210\203$ \314	\315\245!\210\n\2053 \n:\2031 \n\2063 \nC\306\307H\316\"\203E \317\"\202H \317!\320\203\210 \321\322!\211\323H\f>\204_ \324\325\326\327#\210\211\330H\262!\203\210 \322!\211\323H\f>\204z \324\325\326\327#\210\211\330H\262\211\330H\262=\204\213 \320\262\203\234 \331\312H$\202\267 \203\246 \332!\202\267 \203\256 \333\202\267 \203\266 \334\202\267 \335\262\203\301 \336\202\316 \203\311 \337\202\316 \205\316 \340\n\244\341!\210\314\203\341 	\315\245T\202\342 \330!\210\306\307H\310\"\311!\205\372 \211G\312U\205\372 \211\313H\262`\320\223\210\342``T\343$)\207" [undo-tree-visualizer-timestamps undo-tree-visualizer-spacing undo-tree-insert-face undo-tree-visualizer-parent-mtime cl-struct-registerv-tags undo-tree-visualizer-relative-timestamps plist-get 6 :visualizer vectorp 4 3 undo-tree-move-backward 2 :register undo-tree-node-unmodified-p nil undo-tree-register-data-p get-register 0 error "%s accessing a non-%s" registerv-data registerv 1 undo-tree-timestamp-to-string char-to-string "s" "x" "o" (undo-tree-visualizer-current-face) (undo-tree-visualizer-unmodified-face) (undo-tree-visualizer-register-face) undo-tree-insert put-text-property undo-tree-node] 11 "\n\n(fn NODE &optional CURRENT)"])
(defalias 'undo-tree-draw-subtree #[513 "\301HG\302\211\211\211\303!\210\304U\204\375\301U\203\312 \305\301!\210\306\307!\210\310\301!\210\305\301!\210\306\307!\210\310\301!\210\305\301!\210\301H@\262\311\312\313H\314\"\315!\205S \211G\316U\205S \211\317H\262!\204\246 \211\312\313H\314\"\315!\203m \211G\316U\204\202 \211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312\313H\314\"\315!\205\241 \211G\316U\205\241 \211\317H\262\302\"\210\312\313H\314\"\315!\205\274 \211G\316U\205\274 \211\317H\262`\302\223\210\211B\262\202\375\305\301!\210\306\307!\210\310\301!\210\322 \211\262`\302\223\210\310\324!\324	\301H@!Z!\210\322 \211\262`\302\223\210\302\301HB\262\325\245\304\211W\203\376\211A\262\203\"@\n\326H\301H8=\203\331\327\325!\210\306\330\331	\325#\"\210b\210\327\301!\210\305\301!\210\306\332!\210\310\325!\210\305\301!\210\311\312@\313H\314\"\315!\205`\211G\316U\205`\211\317H\262!\204\265@\312\313H\314\"\315!\203{\211G\316U\204\220\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\260\211G\316U\205\260\211\317H\262\302\"\210\312@\313H\314\"\315!\205\314\211G\316U\205\314\211\317H\262`\302\223\210@B\262b\210\327\333\334@!\324\211A@\262!\301$!\210`\302\223\266\211T\262\202\266\335\325\"\301U\203\350\211A\262\203 \211@\326H\301H8=\203\300\305\301!\210\306\307!\210\310\301!\210\305\301!\210\311\312@\313H\314\"\315!\205H\211G\316U\205H\211\317H\262!\204\235\211@\312\313H\314\"\315!\203c\211G\316U\204x\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\230\211G\316U\205\230\211\317H\262\302\"\210\312@\313H\314\"\315!\205\264\211G\316U\205\264\211\317H\262`\302\223\210\211@B\262b\210\327\333\334@!\211A@\262\203\335\324\211A@\262!\202\336\304\301$!\210`\302\223\210\211T\302\223\210\325\245\304\211W\203\373\211A\262\203@\n\326H\301H8=\203\303b\210\306\330\331\301#\"\210b\210\310\301!\210\305\301!\210\306\336!\210\305\301!\210\311\312@\313H\314\"\315!\205J\211G\316U\205J\211\317H\262!\204\237@\312\313H\314\"\315!\203e\211G\316U\204z\211\313\320\313H\314\321\302\211\211\211$\211\262#I\266\211\211\317\322 I\266\323\312@\313H\314\"\315!\205\232\211G\316U\205\232\211\317H\262\302\"\210\312@\313H\314\"\315!\205\266\211G\316U\205\266\211\317H\262`\302\223\210@B\262A\203\363b\210\327\333\334@!\211A@\262\203\350\324\211A@\262!\202\351\304\301$!\210`\302\223\210\210\211T\262\202\362\266\237\207" [undo-tree-visualizer-spacing 1 nil undo-tree-draw-node 0 undo-tree-move-down undo-tree-insert 124 undo-tree-move-backward markerp plist-get 6 :visualizer vectorp 4 3 plist-put vector make-marker set-marker-insertion-type undo-tree-node-char-lwidth 2 5 undo-tree-move-forward 95 - 47 + undo-tree-node-char-rwidth mod 92] 23 "\n\n(fn NODE &optional ACTIVE-BRANCH)"])
(defalias 'undo-tree-node-char-lwidth #[257 "\211\301HG\302U\203 \302\207T\303\304H\305\"\306!\205# \211G\307U\205# \211\302H\262_\303\304H\305\"\306!\205< \211G\307U\205< \211\301H\262\302U\203J \310\245T\202K \302Z\207" [undo-tree-visualizer-spacing 1 0 plist-get 6 :visualizer vectorp 4 2] 5 "\n\n(fn NODE)"])
(defalias 'undo-tree-node-char-rwidth #[257 "\211\301HG\302U\203 \302\207T\303\304H\305\"\306!\205# \211G\307U\205# \211\310H\262_\303\304H\305\"\306!\205< \211G\307U\205< \211\301H\262\302U\203J \310\245T\202K \302Z\207" [undo-tree-visualizer-spacing 1 0 plist-get 6 :visualizer vectorp 4 2] 5 "\n\n(fn NODE)"])
(defalias 'undo-tree-insert #[513 "\211\204 \302\262\303!\203 \304\"\262\302\262\211\305\211W\203* \211c\266\211T\262\202 \266\211G_\262\306!\210\307\310!\210	\205H \311`Z`\312	$\207" [mark-active undo-tree-insert-face 1 characterp make-string 0 undo-tree-move-forward nil backward-delete-char put-text-property face] 7 "\n\n(fn STR &optional ARG)"])
(defalias 'undo-tree-move-down #[256 "\300 i\301\204 \302\262y\210\300 \262\211\\U\204? \303W\2035 \304\305#\306\"c\210Z\\y\210\202? \304ZZ\306\"c\210\307!\207" [line-number-at-pos nil 1 0 make-string - 10 undo-tree-move-forward] 9 "\n\n(fn &optional ARG)"])
(defalias 'undo-tree-move-up #[256 "\211\204 \300\262\301[!\207" [1 undo-tree-move-down] 3 "\n\n(fn &optional ARG)"])
(defalias 'undo-tree-move-forward #[256 "\211\204 \300\262\301\302Y\203, \303 `Z\262\211V\203 u\202r \301\210\304Z\305\"c\202r \302W\205r [\262`\306 Z\262\211\307ZW\203k \310 `\301\223\311\312\"\210eb\210m\204g \313\304\314\315#\305\"!\210\300y\210\202Q \211b\266\206p \300[u\207" [1 nil 0 line-end-position make-string 32 line-beginning-position 2 make-marker set-marker-insertion-type t insert-before-markers - -2] 9 "\n\n(fn &optional ARG)"])
(defalias 'undo-tree-move-backward #[256 "\211\204 \300\262\301[!\207" [1 undo-tree-move-forward] 3 "\n\n(fn &optional ARG)"])
(defalias 'undo-tree-move-to-parent #[257 "\211\301H\211\302H\211G\303\304\305H\306\"\307!\205 \211G\310U\205 \211\311H\262b\210\302U\204\312\"\262\313\314\"\302U\203@ \211\314\245U\204\211\314\245W\203\245 \211\233\262\315\316\317@!\314\245\302#!\210\320\314\245\302#\301\211W\203\206 \211A\262\315\316\321@!\317	@!\302$!\266\211T\262\202b \266\313\314\"\302U\203A\262\315\316\321@!\314\245\302#!\210\202\314\245\233\262\313\314\"\302U\203\306 \322\316\317@!\314\245\302#!\210A\262\320\314\245\313\314\"#\301\211W\203\365 \211\322\316\321@!\317	@!\302$!\210A\262\210\211T\262\202\321 \266\322\316\321@!\314\245\302#!\210\323\311!\207" [undo-tree-visualizer-spacing 0 1 nil plist-get 6 :visualizer vectorp 4 3 undo-tree-position mod 2 undo-tree-move-forward + undo-tree-node-char-rwidth - undo-tree-node-char-lwidth undo-tree-move-backward undo-tree-move-up] 14 "\n\n(fn NODE)"])
(defalias 'undo-tree-timestamp-to-string #[1025 "\203\253 \300\301\302\303 \"!!\304\305\245\211\262\306V\203+ \211\307V\203$ \310\202v \311\312\"\202v \305\246\262\313\245\211\262\306V\203B \311\314\"\202v \313\246\262\315\245\211\262\306V\203Y \311\316\"\202v \315\246\262\317\245\211\262\306V\203p \311\320\"\202v \311\321\317\246\"\262\203\200 \322\202\201 \323\203\220 \324\325!\326Q\202\221 \327Q\262G\262\211\330W\203\251 \331\330Z\332\"P\202\252 \207\203\263 \333\202\264 \334\335\336\"\203\306 \324\325!\326Q\202\307 \327Q\207" [floor float-time subtract-time current-time nil 315360000 0 999 "-ages" format "-%dy" 86400 "-%dd" 3600 "-%dh" 60 "-%dm" "-%ds" "*" " " "[" char-to-string "]" "   " 9 make-string 32 " *" "  " format-time-string "%H:%M:%S"] 11 "\n\n(fn TIMESTAMP &optional RELATIVE CURRENT REGISTER)"])
#@177 Hook run after entering undo-tree-visualizer mode.
No problems result if this variable is not bound.
`add-hook' automatically binds it.  (This is true for all hook variables.)
(defvar undo-tree-visualizer-mode-hook nil (#$ . 107432))
(byte-code "\300\301!\204\f \302\301\303\304#\210\300\207" [boundp undo-tree-visualizer-mode-map put definition-name undo-tree-visualizer-mode] 4)
(defvar undo-tree-visualizer-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204 \302\300\301\303\304!#\210\302\305\306\307#\207" [undo-tree-visualizer-mode-map variable-documentation put purecopy "Keymap for `undo-tree-visualizer-mode'." undo-tree-visualizer-mode derived-mode-parent special-mode] 5)
#@598 Major mode used in undo-tree visualizer.

The undo-tree visualizer can only be invoked from a buffer in
which `undo-tree-mode' is enabled. The visualizer displays the
undo history tree graphically, and allows you to browse around
the undo history, undoing or redoing the corresponding changes in
the parent buffer.

Within the undo-tree visualizer, the following keys are available:

  \{undo-tree-visualizer-mode-map}

In addition to any hooks its parent mode `special-mode' might have run,
this mode runs the hook `undo-tree-visualizer-mode-hook', as the final step
during initialization.

(fn)
(defalias 'undo-tree-visualizer-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320!\210\307\321\211)\322\323!\207" [delay-mode-hooks major-mode mode-name undo-tree-visualizer-mode-map truncate-lines cursor-type make-local-variable t special-mode undo-tree-visualizer-mode "undo-tree-visualizer" mode-class put keymap-parent set-keymap-parent current-local-map use-local-map nil run-mode-hooks undo-tree-visualizer-mode-hook undo-tree-visualizer-selected-node] 6 (#$ . 108128) nil])
#@75 Undo changes. A numeric ARG serves as a repeat count.

(fn &optional ARG)
(defalias 'undo-tree-visualize-undo #[256 "\306H	>\204 \307\310\311\312#\210\313H\314C\315\316\317!\210*\320\f!\210\321 \210\322\323\306\324\325\326\"\327\"\330\331%DC\216\316\332!*\207" [buffer-undo-tree cl-struct-undo-tree-tags inhibit-read-only undo-tree-insert-face undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer 0 error #1="%s accessing a non-%s" undo-tree-current undo-tree 2 nil undo-tree-visualizer-active-branch-face t undo-tree-draw-node switch-to-buffer-other-window deactivate-mark funcall make-byte-code "\301\n\306H>\204 \307\310\311\312#\210\n\313H\240\210\314\f!\210\203\" \315\300\301\242\"\210\316\317\301\242\320\"\210)\2053 \321 \207" vconcat vector [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-buffer-name undo-tree-visualizer-lazy-drawing 0 error #1# undo-tree-current undo-tree 2 switch-to-buffer-other-window undo-tree-expand-up t undo-tree-draw-node current undo-tree-visualizer-update-diff inhibit-read-only undo-tree-visualizer-diff] 5 "\n\n(fn)" undo-tree-undo-1] 11 (#$ . 109288) "p"])
#@75 Redo changes. A numeric ARG serves as a repeat count.

(fn &optional ARG)
(defalias 'undo-tree-visualize-redo #[256 "\306H	>\204 \307\310\311\312#\210\313H\314C\315\316\317\306H	>\204& \307\310\311\312#\210\313H!\210*\320\f!\210\321 \210\322\323\306\324\325\326\"\327\"\330\331%DC\216\316\332!*\207" [buffer-undo-tree cl-struct-undo-tree-tags inhibit-read-only undo-tree-insert-face undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer 0 error #1="%s accessing a non-%s" undo-tree-current undo-tree 2 nil undo-tree-visualizer-active-branch-face t undo-tree-draw-node switch-to-buffer-other-window deactivate-mark funcall make-byte-code "\301\n\306H>\204 \307\310\311\312#\210\n\313H\240\210\314\f!\210\203\" \315\300\301\242\"\210\316\317\301\242\320\"\210)\2053 \321 \207" vconcat vector [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-buffer-name undo-tree-visualizer-lazy-drawing 0 error #1# undo-tree-current undo-tree 2 switch-to-buffer-other-window undo-tree-expand-down t undo-tree-draw-node current undo-tree-visualizer-update-diff inhibit-read-only undo-tree-visualizer-diff] 5 "\n\n(fn)" undo-tree-redo-1] 11 (#$ . 110443) "p"])
#@170 Switch to next branch of the undo tree.
This will affect which branch to descend when *redoing* changes
using `undo-tree-redo' or `undo-tree-visualizer-redo'.

(fn ARG)
(defalias 'undo-tree-visualize-switch-branch-right #[257 "\304\305H	>\204 \306\307\310\311#\210\312H\313H\314\"\315!\205& \211G\316U\205& \211\317H\262b\210\320\321\322\305H	>\204= \306\307\310\311#\210\312H!\210*\305H	>\204Q \306\307\310\311#\210\312H\323H\305H	>\204d \306\307\310\311#\210\312H\211\323\\\305H	>\204z \306\307\310\311#\210\312H\324HGY\203\234 \305H	>\204\222 \306\307\310\311#\210\312H\324HGS\202\253 \\\305X\203\250 \305\202\253 \\I\266\321\304\305H	>\204\277 \306\307\310\311#\210\312H\313H\314\"\315!\205\326 \211G\316U\205\326 \211\317H\262b\210\325\322\305H	>\204\353 \306\307\310\311#\210\312H!\210)\326\305H	>\204 \306\307\310\311#\210\312H\327\")\207" [buffer-undo-tree cl-struct-undo-tree-tags inhibit-read-only undo-tree-insert-face plist-get 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 6 :visualizer vectorp 4 3 undo-tree-visualizer-default-face t undo-tree-highlight-active-branch 5 1 undo-tree-visualizer-active-branch-face undo-tree-draw-node current] 10 (#$ . 111641) "p"])
#@174 Switch to previous branch of the undo tree.
This will affect which branch to descend when *redoing* changes
using `undo-tree-redo' or `undo-tree-visualizer-redo'.

(fn ARG)
(defalias 'undo-tree-visualize-switch-branch-left #[257 "\300[!\207" [undo-tree-visualize-switch-branch-right] 3 (#$ . 112877) "p"])
#@38 Quit the undo-tree visualizer.

(fn)
(defalias 'undo-tree-visualizer-quit #[0 "\302!\210\303\304DC\216r	q\210\305\306\307\310#*\207" [buffer-undo-tree undo-tree-visualizer-parent-buffer undo-tree-clear-visualizer-data funcall #[0 "\203 \302 \210	\303\304\303!\210\305\306DC\216\307!\211\262\203! \310!\202$ \311!)\207" [undo-tree-visualizer-diff undo-tree-visualizer-parent-buffer undo-tree-visualizer-hide-diff nil kill-buffer funcall #[0 "\300\207" [nil] 1 "\n\n(fn)"] get-buffer-window select-window switch-to-buffer] 4 "\n\n(fn)"] remove-hook before-change-functions undo-tree-kill-visualizer t] 4 (#$ . 113190) nil])
#@74 Quit the undo-tree visualizer and return buffer to original state.

(fn)
(defalias 'undo-tree-visualizer-abort #[0 "\301 \210\302!\207" [undo-tree-visualizer-initial-node undo-tree-visualizer-quit undo-tree-set] 3 (#$ . 113825) nil])
#@105 Set buffer to state corresponding to undo tree node
at POS, or point if POS is nil.

(fn &optional POS)
(defalias 'undo-tree-visualizer-set #[256 "\211\204 `\262\306\307\"\211\205+ \310!\210\311\312!\210)\310\n!\210\311\313\f!\210)\205+ \314 \207" [undo-tree-visualizer-parent-buffer undo-tree-inhibit-kill-visualizer undo-tree-visualizer-buffer-name inhibit-read-only buffer-undo-tree undo-tree-visualizer-diff get-text-property undo-tree-node switch-to-buffer-other-window t undo-tree-set undo-tree-draw-tree undo-tree-visualizer-update-diff] 4 (#$ . 114068) nil])
#@83 Set buffer to state corresponding to undo tree node
at mouse event POS.

(fn POS)
(defalias 'undo-tree-visualizer-mouse-set #[257 "\300\301A@!!\207" [undo-tree-visualizer-set event-start] 4 (#$ . 114649) "@e"])
#@485 Undo to last branch point, register, or saved state.
If X is the symbol `branch', undo to last branch point. If X is
the symbol `register', undo to last register. If X is the sumbol
`saved', undo to last saved state. If X is null, undo to first of
these that's encountered.

Interactively, a single \[universal-argument] specifies
`branch', a double \[universal-argument] \[universal-argument]
specifies `saved', and a negative prefix argument specifies
`register'.

(fn &optional X)
(defalias 'undo-tree-visualize-undo-to-x #[256 "\306\307!\203& \211\203& \310!\262\211\311W\203 \312\202$ \211\313X\203# \314\202$ \315\262\203. 	\202? \n\311H>\204< \316\317\320\321#\210\n\322H\f\323\324 \210\311H\203\337 \203X \325 \210	\211\262\202o \326 \210\n\311H>\204i \316\317\320\321#\210\n\322H\211\262\210\203z \314=\203\223 \n\311H>\204\210 \316\317\320\321#\210\n\322H\327HG\327V\204\337 \203\235 \312=\203\317 \330\331H\332\"\211\262\203\317 \333\334!\211\311H>\204\273 \316\317\335\336#\210\211\327H\262\211\262!\203\317 \327H=\204\337 \203\331 \315=\203D \337!\203D \205\352 \340\205\351 	!\207" [undo-tree-visualizer-selection-mode undo-tree-visualizer-selected-node buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-diff cl-struct-registerv-tags called-interactively-p any prefix-numeric-value 0 register 4 branch saved error "%s accessing a non-%s" undo-tree-current undo-tree 2 nil undo-tree-visualizer-hide-diff undo-tree-visualizer-select-previous undo-tree-visualize-undo 1 plist-get 6 :register undo-tree-register-data-p get-register registerv-data registerv undo-tree-node-unmodified-p undo-tree-visualizer-show-diff] 10 (#$ . 114868) "P"])
#@485 Redo to last branch point, register, or saved state.
If X is the symbol `branch', redo to last branch point. If X is
the symbol `register', redo to last register. If X is the sumbol
`saved', redo to last saved state. If X is null, redo to first of
these that's encountered.

Interactively, a single \[universal-argument] specifies
`branch', a double \[universal-argument] \[universal-argument]
specifies `saved', and a negative prefix argument specifies
`register'.

(fn &optional X)
(defalias 'undo-tree-visualize-redo-to-x #[256 "\306\307!\203& \211\203& \310!\262\211\311W\203 \312\202$ \211\313X\203# \314\202$ \315\262\203. 	\202? \n\311H>\204< \316\317\320\321#\210\n\322H\f\323\324 \210\325H\203\337 \203X \326 \210	\211\262\202o \327 \210\n\311H>\204i \316\317\320\321#\210\n\322H\211\262\210\203z \314=\203\223 \n\311H>\204\210 \316\317\320\321#\210\n\322H\325HG\325V\204\337 \203\235 \312=\203\317 \330\331H\332\"\211\262\203\317 \333\334!\211\311H>\204\273 \316\317\335\336#\210\211\325H\262\211\262!\203\317 \325H=\204\337 \203\331 \315=\203D \337!\203D \205\352 \340\205\351 	!\207" [undo-tree-visualizer-selection-mode undo-tree-visualizer-selected-node buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-diff cl-struct-registerv-tags called-interactively-p any prefix-numeric-value 0 register 4 branch saved error "%s accessing a non-%s" undo-tree-current undo-tree 2 nil undo-tree-visualizer-hide-diff 1 undo-tree-visualizer-select-next undo-tree-visualize-redo plist-get 6 :register undo-tree-register-data-p get-register registerv-data registerv undo-tree-node-unmodified-p undo-tree-visualizer-show-diff] 10 (#$ . 116567) "P"])
#@38 Toggle display of time-stamps.

(fn)
(defalias 'undo-tree-visualizer-toggle-timestamps #[0 "?\211\203 	\203 \305\202 \306\202 \307\310\311\f!)\207" [undo-tree-visualizer-timestamps undo-tree-visualizer-relative-timestamps undo-tree-visualizer-spacing inhibit-read-only buffer-undo-tree 9 13 3 t undo-tree-draw-tree] 3 (#$ . 118261) nil])
(defalias 'undo-tree-visualizer-scroll-left #[256 "\300\206 \301\302\"\207" [scroll-left 1 t] 4 "\n\n(fn &optional ARG)" "p"])
(defalias 'undo-tree-visualizer-scroll-right #[256 "\300\206 \301\302\"\207" [scroll-right 1 t] 4 "\n\n(fn &optional ARG)" "p"])
(defalias 'undo-tree-visualizer-scroll-up #[256 "\211\247\203 \211\301W\204 \211\302=\203 \303!\207\304\305DC\216\306!\210)?\205* m\205* \307 \207" [undo-tree-visualizer-needs-extending-down 0 - undo-tree-visualizer-scroll-down funcall #[0 "\302\303H	>\204 \304\305\306\307#\210\310H\311H\303H	>\204\" \304\305\306\307#\210\310H\312H8!\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-expand-down 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 5 1] 6 "\n\n(fn)"] scroll-up-command scroll-up] 3 "\n\n(fn &optional ARG)" "P"])
(defalias 'undo-tree-visualizer-scroll-down #[256 "\211\247\203 \211\304W\204 \211\305=\203 \306!\207\211\206 \307 Z\310\311 !S	\2038 \211W\2038 \312eb\210\313Z!\210)\266\314\315DC\216\316!\210)?\205O o\205O \317 \207" [next-screen-context-lines undo-tree-visualizer-needs-extending-up inhibit-read-only undo-tree-visualizer-needs-extending-down 0 - undo-tree-visualizer-scroll-up window-height line-number-at-pos window-start t undo-tree-move-up funcall #[0 "\302\303H	>\204 \304\305\306\307#\210\310H\303H!\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-expand-up 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2] 5 "\n\n(fn)"] scroll-down-command scroll-down] 6 "\n\n(fn &optional ARG)" "P"])
#@139 Non-nil if Undo-Tree-Visualizer-Selection mode is enabled.
Use the command `undo-tree-visualizer-selection-mode' to change this variable.
(defvar undo-tree-visualizer-selection-mode nil (#$ . 120170))
(make-variable-buffer-local 'undo-tree-visualizer-selection-mode)
#@74 Toggle mode to select nodes in undo-tree visualizer.

(fn &optional ARG)
(defalias 'undo-tree-visualizer-selection-mode #[256 "\306 \307=\203 ?\202 \310!\311V\211\203G \312\n\311H>\204' \313\314\315\316#\210\n\317H\203| \320&!\321'\211\203B r\211q\210\322 \210))\210\202| \323\211\324\n\311H>\204Z \313\314\315\316#\210\n\317H\325H\326\"\327!\205q \211G\330U\205q \211\331H\262b\210\203| \332 \210\333\334\203\206 \335\202\207 \336\"\210\337\340!\203\250 \306 \203\233 \211\306 \232\203\250 \341\342\203\245 \343\202\246 \344\"\210\210\345 \210\207" [undo-tree-visualizer-selection-mode cursor-type buffer-undo-tree cl-struct-undo-tree-tags undo-tree-visualizer-selected-node undo-tree-visualizer-diff current-message toggle prefix-numeric-value 0 box error "%s accessing a non-%s" undo-tree-current undo-tree 2 get-buffer t erase-buffer nil plist-get 6 :visualizer vectorp 4 3 undo-tree-visualizer-update-diff run-hooks undo-tree-visualizer-selection-mode-hook undo-tree-visualizer-selection-mode-on-hook undo-tree-visualizer-selection-mode-off-hook called-interactively-p any message "Undo-Tree-Visualizer-Selection mode %sabled" "en" "dis" force-mode-line-update undo-tree-diff-buffer-name inhibit-read-only] 8 (#$ . 120443) (byte-code "\206 \301C\207" [current-prefix-arg toggle] 1)])
#@200 Hook run after entering or leaving `undo-tree-visualizer-selection-mode'.
No problems result if this variable is not bound.
`add-hook' automatically binds it.  (This is true for all hook variables.)
(defvar undo-tree-visualizer-selection-mode-hook nil (#$ . 121762))
(byte-code "\301\302\303\304\211%\207" [undo-tree-visualizer-selection-mode-map add-minor-mode undo-tree-visualizer-selection-mode "Select" nil] 6)
#@44 Move to previous node.

(fn &optional ARG)
(defalias 'undo-tree-visualizer-select-previous #[256 "C\303\304\305\306\307\310\311\"\312\"\313\314%D\215\210	\203  \315\242\"\210\n\2030 \211\242=\2040 \316\242!\210\317\242\313H\320\"\321!\205G \211G\322U\205G \211\323H\262b\210\211\242\211\207" [undo-tree-visualizer-selected-node undo-tree-visualizer-lazy-drawing undo-tree-visualizer-diff top funcall make-byte-code 0 "\300\206 \302\303\211W\205( \211\301\242\303H\204 \304\305\306\"\210\301\211\242\303H\240\266\211T\262\202 \207" vconcat vector [1 0 throw top t] 6 "\n\n(fn)" undo-tree-expand-up undo-tree-visualizer-update-diff plist-get :visualizer vectorp 4 3] 11 (#$ . 122184) "p"])
#@40 Move to next node.

(fn &optional ARG)
(defalias 'undo-tree-visualizer-select-next #[256 "C\303\304\305\306\307\310\311\"\312\"\313\314%D\215\210	\203  \315\242\"\210\n\2030 \211\242=\2040 \316\242!\210\317\242\320H\321\"\322!\205G \211G\323U\205G \211\324H\262b\210\211\242\211\207" [undo-tree-visualizer-selected-node undo-tree-visualizer-lazy-drawing undo-tree-visualizer-diff bottom funcall make-byte-code 0 "\300\206 \302\303\211W\2052 \211\301\242\304H\301\242\302H8\204 \305\306\307\"\210\301\211\242\304H\301\242\302H8\240\266\211T\262\202 \207" vconcat vector [1 0 5 throw bottom t] 7 "\n\n(fn)" undo-tree-expand-down undo-tree-visualizer-update-diff plist-get 6 :visualizer vectorp 4 3] 11 (#$ . 122897) "p"])
#@51 Move right to a sibling node.

(fn &optional ARG)
(defalias 'undo-tree-visualizer-select-right #[256 "C\302C\303\304H\305\"\306!\205 \211G\307U\205 \211\310H\262b\210\211\311 \240\210\312\313\314\315\316\317\320			#\321\"\322\323%D\215\210\303\242\206@ \304H\305\"\306!\205T \211G\307U\205T \211\310H\262b\210	\203m \242\203m \242=\204m \324\242!\210\242\205v \242\211\207" [undo-tree-visualizer-selected-node undo-tree-visualizer-diff nil plist-get 6 :visualizer vectorp 4 3 line-end-position end funcall make-byte-code 0 "\300\304\211W\2056 \211\301\242\203 \301\242=\203. \305u\210\301\306`\307\"\240\210`\302\242U\203	 \310\311\312\"\210\202	 \210\211T\262\202 \207" vconcat vector [undo-tree-visualizer-selected-node 0 nil get-text-property undo-tree-node throw end t] 7 "\n\n(fn)" undo-tree-visualizer-update-diff] 13 (#$ . 123642) "p"])
#@50 Move left to a sibling node.

(fn &optional ARG)
(defalias 'undo-tree-visualizer-select-left #[256 "\302`\303\"C\304C\305\306H\307\"\310!\205 \211G\311U\205 \211\312H\262b\210\211\313 \240\210\314\315\316\317\320\321\322			#\323\"\324\325%D\215\210\305\242\206C \306H\307\"\310!\205W \211G\311U\205W \211\312H\262b\210	\203p \242\203p \242=\204p \326\242!\210\242\205y \242\211\207" [undo-tree-visualizer-selected-node undo-tree-visualizer-diff get-text-property undo-tree-node nil plist-get 6 :visualizer vectorp 4 3 line-beginning-position beg funcall make-byte-code 0 "\300\304\211W\2056 \211\301\242\203 \301\242=\203. \305u\210\301\306`\307\"\240\210`\302\242U\203	 \310\311\312\"\210\202	 \210\211T\262\202 \207" vconcat vector [undo-tree-visualizer-selected-node 0 -1 get-text-property undo-tree-node throw beg t] 7 "\n\n(fn)" undo-tree-visualizer-update-diff] 13 (#$ . 124517) "p"])
(defalias 'undo-tree-visualizer-select #[257 "\303\304\"\211\205A \305\306H\307\"\310!\205 \211G\311U\205 \211\312H\262b\210\2030 \313	\"\210\314	\"\210\n\203> \211	=\204> \315!\210\211\211\207" [undo-tree-visualizer-lazy-drawing undo-tree-visualizer-selected-node undo-tree-visualizer-diff get-text-property undo-tree-node plist-get 6 :visualizer vectorp 4 3 undo-tree-expand-up undo-tree-expand-down undo-tree-visualizer-update-diff] 5 "\n\n(fn POS)"])
#@53 Select undo tree node at mouse event POS.

(fn POS)
(defalias 'undo-tree-visualizer-mouse-select #[257 "\300\301A@!!\207" [undo-tree-visualizer-select event-start] 4 (#$ . 125904) "@e"])
#@52 Toggle diff display in undo-tree visualizer.

(fn)
(defalias 'undo-tree-visualizer-toggle-diff #[0 "\203 \301 \207\302 \207" [undo-tree-visualizer-diff undo-tree-visualizer-hide-diff undo-tree-visualizer-show-diff] 1 (#$ . 126098) nil])
#@67 Toggle diff display in undo-tree visualizer selection mode.

(fn)
(defalias 'undo-tree-visualizer-selection-toggle-diff #[0 "\203 \301 \207\302`\303\"\211\205 \304!\207" [undo-tree-visualizer-diff undo-tree-visualizer-hide-diff get-text-property undo-tree-node undo-tree-visualizer-show-diff] 3 (#$ . 126343) nil])
(defalias 'undo-tree-visualizer-show-diff #[256 "\303r	q\210\304!)\305\306\307 \262\310\"\210\311!)\207" [undo-tree-visualizer-diff undo-tree-visualizer-parent-buffer display-buffer-mark-dedicated t undo-tree-diff soft nil split-window set-window-buffer shrink-window-if-larger-than-buffer] 7 "\n\n(fn &optional NODE)"])
(defalias 'undo-tree-visualizer-hide-diff #[0 "\302\303	!\211\205) \304!r\305\306\307\310\311\312!\313\"\314\315%DC\216\316@\317\"\210\320 *\262\207" [undo-tree-visualizer-diff undo-tree-diff-buffer-name nil get-buffer-window internal--before-with-selected-window funcall make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 "\n\n(fn)" select-window norecord kill-buffer-and-window] 9 "\n\n(fn)"])
(defalias 'undo-tree-diff #[256 "\306\211\307\310H	>\204 \311\312\313\314#\210\315H\316\206\" \310H\206\" \317\"\210\320p!\262\316\317\"\210)\266\321p\306\322\323!%\262\307r\211q\210eb\210`\324\325!T|\210db\210\326y\210`d|\210\306\307*\207" [buffer-undo-tree cl-struct-undo-tree-tags undo-tree-inhibit-kill-visualizer undo-tree-diff-buffer-name inhibit-read-only cursor-type nil t 0 error "%s accessing a non-%s" undo-tree-current undo-tree 2 undo-tree-set preserve-timestamps diff-file-local-copy diff-no-select noasync get-buffer-create line-end-position 3 -2 buffer-read-only] 10 "\n\n(fn &optional NODE)"])
(defalias 'undo-tree-visualizer-update-diff #[256 "rq\210\302!\210)\303	!\211\205 \304 \210\305!\207" [undo-tree-visualizer-parent-buffer undo-tree-diff-buffer-name undo-tree-diff get-buffer-window balance-windows shrink-window-if-larger-than-buffer] 4 "\n\n(fn &optional NODE)"])
(provide 'undo-tree)
