;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.

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


(require 'evil-states)
#@49 Returns non-nil iff a recording is in progress.
(defalias 'evil-repeat-recording-p #[nil "\301=\207" [evil-recording-repeat t] 2 (#$ . 433)])
(byte-code "\300\301\302\303#\207" [put evil-repeat-recording-p byte-optimizer byte-compile-inline-expand] 4)
#@55 Start recording a new repeat into `evil-repeat-info'.
(defalias 'evil-repeat-start #[nil "\305\306!\210\307 \210\310 \205` \311 \312!\313!S\314\n!\314	!Z\315\f\316=\203@ \317\n\320!\2034 	\202; \212\nb\210\321 )ZE\202^ \f\322=\203L \323D\202^ \f\324=\205^ \325\326\327	!\327\n!Z!E!,\207" [range beg end nfwdlines evil-visual-selection evil-repeat-reset t evil-repeat-record-buffer evil-visual-state-p evil-visual-range evil-range-beginning evil-range-end line-number-at-pos evil-repeat-record char evil-repeat-visual-char zerop line-beginning-position line evil-repeat-visual-line block evil-repeat-visual-block abs evil-column] 7 (#$ . 692)])
#@124 Stop recording a repeat.
Update `evil-repeat-ring' with the accumulated changes
in `evil-repeat-info' and clear variables.
(defalias 'evil-repeat-stop #[nil "\303\216\304=\205 \305	!\211\205 \n\205 \306\n	\")\207" [evil-recording-repeat evil-repeat-info evil-repeat-ring ((evil-repeat-reset nil)) t evil-normalize-repeat-info ring-insert] 4 (#$ . 1353)])
#@26 Abort current repeation.
(defalias 'evil-repeat-abort #[nil "\300\301!\207" [evil-repeat-reset abort] 2 (#$ . 1719)])
#@76 Clear all repeat recording variables.
Set `evil-recording-repeat' to FLAG.
(defalias 'evil-repeat-reset #[(flag) "\304\211\211\207" [flag evil-recording-repeat evil-repeat-info evil-repeat-buffer nil] 3 (#$ . 1843)])
#@40 Set `evil-repeat-pos' to POS or point.
(defalias 'evil-repeat-record-position #[(&optional pos) "\206 `\211\207" [pos evil-repeat-pos] 2 (#$ . 2070)])
(byte-code "\300\301\302\303#\207" [put evil-repeat-record-position byte-optimizer byte-compile-inline-expand] 4)
#@49 Set `evil-repeat-buffer' to the current buffer.
(defalias 'evil-repeat-record-buffer #[nil "\301 ?\205	 p\211\207" [evil-repeat-buffer minibufferp] 2 (#$ . 2344)])
#@58 Execute BODY, protecting the values of repeat variables.
(defalias 'evil-save-repeat-info '(macro . #[(&rest body) "\301\302BB\207" [body let (evil-repeat-ring evil-recording-repeat evil-recording-current-command evil-repeat-info evil-repeat-changes evil-repeat-pos evil-repeat-keys evil-repeat-buffer this-command last-command)] 3 (#$ . 2515)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put evil-save-repeat-info lisp-indent-function defun edebug-form-spec t] 4)
#@208 Whether the buffer has changed in a repeat.
If STRICT is non-nil, returns t if the previous buffer
is unknown; otherwise returns t only if the previous
buffer is known and different from the current buffer.
(defalias 'evil-repeat-different-buffer-p #[(&optional strict) "\302!\204\n 	\205 \303 ?\205 p=?\207" [evil-repeat-buffer strict buffer-live-p minibufferp] 2 (#$ . 3003)])
#@96 Return the :repeat property of COMMAND.
If COMMAND doesn't have this property, return DEFAULT.
(defalias 'evil-repeat-type #[(command &optional default) "\305!\205 \306\307	#\211\236\211\203 \fA\202 \n*\207" [command default type evil-repeat-types repeat-type functionp evil-get-command-property :repeat] 5 (#$ . 3392)])
#@91 Returns non-nil iff the current command should abort the recording of repeat information.
(defalias 'evil-repeat-force-abort-p #[(repeat-type) "\302 \206% \303=\206% 	\303=\206% \304 \206% \305\306 !\203# \307=\206% \310 \207" [repeat-type evil-recording-repeat evil-repeat-different-buffer-p abort evil-emacs-state-p evil-mouse-events-p this-command-keys nil minibufferp] 2 (#$ . 3727)])
#@44 Add INFO to the end of `evil-repeat-info'.
(defalias 'evil-repeat-record #[(info) "\303=\205\f 	\nC\244\211\207" [evil-recording-repeat evil-repeat-info info t] 2 (#$ . 4124)])
#@122 Record a new repeat when exiting Normal state.
Does not record in Emacs state or if the current command
has :repeat nil.
(defalias 'evil-repeat-start-hook #[nil "\301\302\"\302=\205 \303 ?\205 \304 \207" [this-command evil-repeat-type t evil-emacs-state-p evil-repeat-start] 3 (#$ . 4310)])
#@58 Prepare the current command for recording the repeation.
(defalias 'evil-repeat-pre-hook #[nil "\205, \304	\305\"\306\n!\203 \307 \202+ \n?\206+ \310 \204# \311 \203& \312 \210\305\n\313!)\207" [evil-local-mode this-command repeat-type evil-recording-current-command evil-repeat-type t evil-repeat-force-abort-p evil-repeat-abort evil-normal-state-p evil-visual-state-p evil-repeat-start pre] 3 (#$ . 4610)])
(put 'evil-repeat-pre-hook 'permanent-local-hook t)
#@65 Finish recording of repeat-information for the current-command.
(defalias 'evil-repeat-post-hook #[nil "\2052 	\2052 \305\n\306\"\307!\203 \310\311!\210\202. \203. \f\203. \312!\210\313 \203. \314 \210)\311\211\207" [evil-local-mode evil-recording-repeat this-command repeat-type evil-recording-current-command evil-repeat-type t evil-repeat-force-abort-p evil-repeat-reset nil post evil-normal-state-p evil-repeat-stop] 3 (#$ . 5081)])
(put 'evil-repeat-post-hook 'permanent-local-hook t)
#@173 Clear `this-command-keys' and all information about the current command keys.
Calling this function prevents further recording of the keys that
invoked the current command
(defalias 'evil-clear-command-keys #[nil "\301\302!\210\303\211\207" [evil-repeat-keys clear-this-command-keys t ""] 2 (#$ . 5585)])
#@76 Repeation recording function for commands that are repeated by keystrokes.
(defalias 'evil-repeat-keystrokes #[(flag) "\302=\203 \303 \211\207\304=\205$ \305\306\303 G!\203 	\202  \303 !\210\307 \207" [flag evil-repeat-keys pre this-command-keys post evil-repeat-record zerop evil-clear-command-keys] 3 (#$ . 5897)])
#@84 Repeation for motions. Motions are recorded by keystroke but only in insert state.
(defalias 'evil-repeat-motion #[(flag) "\302>\205	 \303	!\207" [evil-state flag (insert replace) evil-repeat-keystrokes] 2 (#$ . 6225)])
#@80 Repeation recording function for commands that are repeated by buffer changes.
(defalias 'evil-repeat-changes #[(flag) "\301=\203 \302\303\304\305\306$\210\307 \207\310=\205 \311\303\304\306#\210\312 \207" [flag pre add-hook after-change-functions evil-repeat-change-hook nil t evil-repeat-start-record-changes post remove-hook evil-repeat-finish-record-changes] 5 (#$ . 6452)])
#@48 Record change information for current command.
(defalias 'evil-repeat-change-hook #[(beg end length) "\306\307\"\n\307=\2056 	\310=\2056 \311 ?\2056 \312\307!?\2056 \2056 \n\307=\204+ \313 \210\314\fZ\f{#)\207" [this-command repeat-type evil-recording-repeat evil-state beg evil-repeat-pos evil-repeat-type t evil-repeat-changes evil-emacs-state-p evil-repeat-different-buffer-p evil-repeat-start evil-repeat-record-change end length] 4 (#$ . 6841)])
(put 'evil-repeat-change-hook 'permanent-local-hook t)
#@114 Record the current buffer changes during a repeat.
If CHANGE is specified, it is added to `evil-repeat-changes'.
(defalias 'evil-repeat-record-change #[(relpos ins ndel) "\305=\205 	\n\fEC\244\211\207" [evil-recording-repeat evil-repeat-changes relpos ins ndel t] 4 (#$ . 7362)])
#@54 Starts the recording of a new set of buffer changes.
(defalias 'evil-repeat-start-record-changes #[nil "\303\211`\211)\207" [evil-repeat-changes pos evil-repeat-pos nil] 3 (#$ . 7652)])
#@70 Finishes the recording of buffer changes and records them as repeat.
(defalias 'evil-repeat-finish-record-changes #[nil "\303=\205 \304\305	`\nZE!\210\306\211\207" [evil-recording-repeat evil-repeat-changes evil-repeat-pos t evil-repeat-record evil-execute-change nil] 5 (#$ . 7847)])
#@172 Repeation recording function for commands that insert text in region.
This records text insertion when a command inserts some text in a
buffer between (point) and (mark).
(defalias 'evil-repeat-insert-at-point #[(flag) "\301=\203 \302\303\304\305\306$\207\307=\205 \310\303\304\306#\207" [flag pre add-hook after-change-functions evil-repeat-insert-at-point-hook nil t post remove-hook] 5 (#$ . 8142)])
(defalias 'evil-repeat-insert-at-point-hook #[(beg end length) "\306\307\"\n\307=\205, 	\310=\205, \311 ?\205, \312\307!?\205, \205, \f\313\314\f{D!)\207" [this-command repeat-type evil-recording-repeat evil-state beg evil-repeat-pos evil-repeat-type t evil-repeat-insert-at-point evil-emacs-state-p evil-repeat-different-buffer-p evil-repeat-record insert end] 4])
(put 'evil-repeat-insert-at-point-hook 'permanent-local-hook t)
#@72 Concatenate consecutive arrays in REPEAT-INFO.
Returns a single array.
(defalias 'evil-normalize-repeat-info #[(repeat-info) "\306\211B\211\306\211\f\306\211\203b @\211\203Y \307!\203> \310!\n\2035 \306B\241\210A\202Y \306B\211\202Y \n\203P 	\311\312\n\"\306B\241\210	A\306	\306B\241\210	AA\211\204 *\n\203p 	\311\312\n\"\306B\241\210A,\207" [result result-last cur cur-last repeat-info rep nil arrayp listify-key-sequence apply vconcat --dolist-tail--] 5 (#$ . 8991)])
#@318 Restores a character visual selection.
If the selection is in a single line, the restored visual
selection covers the same number of characters. If the selection
covers several lines, the restored selection covers the same
number of lines and the same number of characters in the last
line as the original selection.
(defalias 'evil-repeat-visual-char #[(nfwdlines nfwdchars) "\302 \210\303V\203\f y\210	u\207" [nfwdlines nfwdchars evil-visual-char 0] 2 (#$ . 9498)])
#@318 Restores a character visual selection.
If the selection is in a single line, the restored visual
selection covers the same number of characters. If the selection
covers several lines, the restored selection covers the same
number of lines and the same number of characters in the last
line as the original selection.
(defalias 'evil-repeat-visual-line #[(nfwdlines) "\301 \210y\207" [nfwdlines evil-visual-line] 1 (#$ . 9975)])
#@318 Restores a character visual selection.
If the selection is in a single line, the restored visual
selection covers the same number of characters. If the selection
covers several lines, the restored selection covers the same
number of lines and the same number of characters in the last
line as the original selection.
(defalias 'evil-repeat-visual-block #[(nfwdlines nfwdchars) "\303 \210i	y\210\304\n\\\305\")\207" [col nfwdlines nfwdchars evil-visual-block move-to-column t] 3 (#$ . 10411)])
#@413 Executes as list of changes.

CHANGES is a list of triples (REL-BEG INSERT-TEXT NDEL).
REL-BEG is the relative position (to point) where the change
takes place. INSERT-TEXT is the text to be inserted at that
position and NDEL the number of characters to be deleted at that
position before insertion.

REL-POINT is the relative position to point before the changed
where point should be placed after all changes.
(defalias 'evil-execute-change #[(changes rel-point) "\306\211\211\211\211\211\211\211\211\211	\n\f`\306\211\203I @@\\b\210\307\3108!\210A@c\210A\211\204& *\\b.\207" [last-command this-command evil-repeat-buffer evil-repeat-keys evil-repeat-pos evil-repeat-changes nil delete-char 2 evil-repeat-info evil-recording-current-command evil-recording-repeat evil-repeat-ring point changes change --dolist-tail-- rel-point] 11 (#$ . 10913)])
#@44 Executes a repeat-information REPEAT-INFO.
(defalias 'evil-execute-repeat-info #[(repeat-info) "\306\211\211\211\211\211\211\211\211\211\f\306\211\205_ @\307!\2045 ;\203= \310!\210\202U :\203O \311@A\"\210\202U \312\313\"\210A\211\204# \306.\f\207" [last-command this-command evil-repeat-buffer evil-repeat-keys evil-repeat-pos evil-repeat-changes nil arrayp execute-kbd-macro apply error "Unexpected repeat-info: %S" evil-repeat-info evil-recording-current-command evil-recording-repeat evil-repeat-ring repeat-info rep --dolist-tail--] 11 (#$ . 11807)])
#@153 Repeat the repeat-information REPEAT-INFO with the count of
the first command replaced by COUNT. The count is replaced if
and only if COUNT is non-nil.
(defalias 'evil-execute-repeat-info-with-count #[(count repeat-info) "\306\211\211\211\211\211\211\211\211\211\203$ \307!\206s \203o \306\203g \310@!\203g \204g \311\211A\242!\312\313!\3148\3158#B\316)\2020 \317!*\202s \317!.\n\207" [last-command this-command evil-repeat-buffer evil-repeat-keys evil-repeat-pos evil-repeat-changes nil zerop arrayp evil-extract-count vconcat number-to-string 2 3 t evil-execute-repeat-info evil-repeat-info evil-recording-current-command evil-recording-repeat evil-repeat-ring count done evil-repeat-count repeat-info count-and-cmd] 10 (#$ . 12411)])
#@108 Repeat the last editing command with count replaced by COUNT.
If SAVE-POINT is non-nil, do not move point.
(defalias 'evil-repeat #[(count &optional save-point) "\204 \306\307!\207	\203 \212\310\n!)\207\311\216\312\313B\f\314\315\216\314\316\216\317 \210\312`\nE\320\n\321\322\"\"*\f\211\242\203H \314B.\207" [evil-repeat-ring save-point count kill-buffer-hook buffer-undo-list undo-pointer error "Already executing repeat" evil-repeat ((evil-normal-state)) t #[nil "\300\301!\207" [error "Cannot delete buffer in repeat command"] 2] nil ((byte-code "\302=\204 	A\203 	\244\202 \303\303\207" [buffer-undo-list evil-temporary-undo t nil] 2)) ((evil-end-undo-step)) evil-start-undo-step evil-execute-repeat-info-with-count ring-ref 0 confirm-kill-emacs evil-undo-list-pointer evil-in-single-undo evil-last-repeat evil-temporary-undo] 6 (#$ . 13209) (list current-prefix-arg (not evil-repeat-move-cursor))])
(byte-code "\301\302\303\304\305\306%\210\210)\301\207" [func evil-repeat evil-set-command-properties :repeat ignore :suppress-operator t] 6)
#@319 Replace the just repeated command with a previously executed command.
Only allowed after `evil-repeat', `evil-repeat-pop' or
`evil-repeat-pop-next'. Uses the same repeat count that
was used for the first repeat.

The COUNT argument inserts the COUNT-th previous kill.
If COUNT is negative, this is a more recent kill.
(defalias 'evil-repeat-pop #[(count &optional save-point) "\306=\203\n 	\204 \307\310\"\207\n\203 \212\311!)\207\f\312	8=\204$ \313 \210	@b\210\314V\203A \203: \315\316\314\"\"\210S\211\202) \314W\203Y \203R \317\316!\"\210T\211\202B \306\211	\211A@\262!\207" [last-command evil-last-repeat save-point count buffer-undo-list evil-repeat-ring evil-repeat error "Previous command was not evil-repeat: %s" evil-repeat-pop 2 evil-undo-pop 0 ring-insert-at-beginning ring-remove ring-insert this-command] 6 (#$ . 14298) (list (prefix-numeric-value current-prefix-arg) (not evil-repeat-move-cursor))])
(byte-code "\301\302\303\304\305\306%\210\210)\304\207" [func evil-repeat-pop evil-set-command-properties :repeat nil :suppress-operator t] 6)
#@53 Same as `evil-repeat-pop', but with negative COUNT.
(defalias 'evil-repeat-pop-next #[(count &optional save-point) "\302[	\"\207" [count save-point evil-repeat-pop] 3 (#$ . 15384) (list (prefix-numeric-value current-prefix-arg) (not evil-repeat-move-cursor))])
(byte-code "\301\302\303\304\305\306%\210\210)\307\310\311\312\304$\210\313\310\304\"\210\314\315!\207" [func evil-repeat-pop-next evil-set-command-properties :repeat nil :suppress-operator t ad-add-advice read-key-sequence (evil nil t (advice lambda nil "Record `this-command-keys' before it is reset." (when (and (evil-repeat-recording-p) evil-recording-current-command) (let ((repeat-type (evil-repeat-type this-command t))) (if (functionp repeat-type) (funcall repeat-type 'post)))))) before ad-activate provide evil-repeat] 6)
