;ELC   
;;; Compiled
;;; in Emacs version 29.3
;;; with all optimizations.



(byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\312\313\314\315\316DD\317\320\321\310\303\322\323&	\210\312\324\314\315\325DD\326\320\327\310\303\322\330&	\210\312\331\314\315\332DD\333\310\303\322\334&\210\312\335\314\315\336DD\337\320\340\310\303\322\341&	\210\312\342\314\315\343DD\344\310\303\322\345&\210\312\346\314\315\347DD\350\310\303\322\351&\210\312\352\314\315\353DD\354\320\355\310\303\322\356\357\360\361\362\363D&\207" [require magit custom-declare-group magit-blame nil "Blame support for Magit." :link (info-link "(magit)Blaming") :group magit-modes custom-declare-variable magit-blame-styles funcall function #[0 "\300\207" [((headings (heading-format . "%-20a %C %s\n")) (highlight (highlight-face . magit-blame-highlight)) (lines (show-lines . t) (show-message . t)))] 1 #1=""] "List of styles used to visualize blame information.\n\nThe style used in the current buffer can be cycled from the blame\npopup.  Blame commands (except `magit-blame-echo') use the first\nstyle as the initial style when beginning to blame in a buffer.\n\nEach entry has the form (IDENT (KEY . VALUE)...).  IDENT has\nto be a symbol uniquely identifying the style.  The following\nKEYs are recognized:\n\n `show-lines'\n    Whether to prefix each chunk of lines with a thin line.\n    This has no effect if `heading-format' is non-nil.\n `show-message'\n    Whether to display a commit's summary line in the echo area\n    when crossing chunks.\n `highlight-face'\n    Face used to highlight the first line of each chunk.\n    If this is nil, then those lines are not highlighted.\n `heading-format'\n    String specifying the information to be shown above each\n    chunk of lines.  It must end with a newline character.\n `margin-format'\n    String specifying the information to be shown in the left\n    buffer margin.  It must NOT end with a newline character.\n    This can also be a list of formats used for the lines at\n    the same positions within the chunk.  If the chunk has\n    more lines than formats are specified, then the last is\n    repeated.  WARNING: Adding this key affects performance;\n    see the note at the end of this docstring.\n `margin-width'\n    Width of the margin, provided `margin-format' is non-nil.\n `margin-face'\n    Face used in the margin, provided `margin-format' is\n    non-nil.  This face is used in combination with the faces\n    that are specific to the used %-specs.  If this is nil,\n    then `magit-blame-margin' is used.\n `margin-body-face'\n    Face used in the margin for all but first line of a chunk.\n    This face is used in combination with the faces that are\n    specific to the used %-specs.  This can also be a list of\n    faces (usually one face), in which case only these faces\n    are used and the %-spec faces are ignored.  A good value\n    might be `(magit-blame-dimmed)'.  If this is nil, then\n    the same face as for the first line is used.\n\nThe following %-specs can be used in `heading-format' and\n`margin-format':\n\n  %H    hash              using face `magit-blame-hash'\n  %h    truncated hash    using face `magit-blame-hash'\n  %s    summary           using face `magit-blame-summary'\n  %a    author            using face `magit-blame-name'\n  %A    author time       using face `magit-blame-date'\n  %c    committer         using face `magit-blame-name'\n  %C    committer time    using face `magit-blame-date'\n\nNote that for performance reasons %h results in truncated\nhashes, as opposed to properly abbreviated hashes that are\nguaranteed to uniquely identify a commit.\n\nAdditionally if `margin-format' ends with %f, then the string\nthat is displayed in the margin is made at least `margin-width'\ncharacters wide, which may be desirable if the used face sets\nthe background color.\n\nBlame information is displayed using overlays.  Such extensive\nuse of overlays is known to slow down even basic operations, such\nas moving the cursor.  To reduce the number of overlays the margin\nstyle had to be removed from the default value of this option.\n\nNote that the margin overlays are created even if another style\nis currently active.  This can only be prevented by not even\ndefining a style that uses the margin.  If you want to use this\nstyle anyway, you can restore this definition, which used to be\npart of the default value:\n\n  (margin\n   (margin-format    . (\" %s%f\" \" %C %a\" \" %H\"))\n   (margin-width     . 42)\n   (margin-face      . magit-blame-margin)\n   (margin-body-face . (magit-blame-dimmed)))" :package-version (magit . "2.13.0") :type (alist :key-type symbol :value-type (alist :key-type symbol :value-type sexp)) magit-blame-echo-style #[0 "\300\207" [lines] 1 #1#] "The blame visualization style used by `magit-blame-echo'.\nA symbol that has to be used as the identifier for one of the\nstyles defined in `magit-blame-styles'." (magit . "2.13.0") symbol magit-blame-time-format #[0 "\300\207" ["%F %H:%M"] 1 #1#] "Format for time strings in blame headings." string magit-blame-read-only #[0 "\300\207" [t] 1 #1#] "Whether to initially make the blamed buffer read-only." (magit . "2.13.0") boolean magit-blame-disable-modes #[0 "\300\207" [(fci-mode yascroll-bar-mode)] 1 #1#] "List of modes not compatible with Magit-Blame mode.\nThis modes are turned off when Magit-Blame mode is turned on,\nand then turned on again when turning off the latter." (repeat (symbol :tag "Mode")) magit-blame-mode-lighter #[0 "\300\207" [" Blame"] 1 #1#] "The mode-line lighter of the Magit-Blame mode." (choice (const :tag "No lighter" #1#) string) magit-blame-goto-chunk-hook #[0 "\300\301D\207" [magit-blame-maybe-update-revision-buffer magit-blame-maybe-show-message] 2 #1#] "Hook run after point entered another chunk." (magit . "2.13.0") hook :get magit-hook-custom-get :options magit-blame-maybe-update-revision-buffer magit-blame-maybe-show-message] 15)
(custom-declare-face 'magit-blame-highlight '((((class color) (background light)) :extend t :background "grey80" :foreground "black") (((class color) (background dark)) :extend t :background "grey25" :foreground "white")) "Face used for highlighting when blaming.\nAlso see option `magit-blame-styles'." :group 'magit-faces)
(custom-declare-face 'magit-blame-margin '((t :inherit magit-blame-highlight :weight normal :slant normal)) "Face used for the blame margin by default when blaming.\nAlso see option `magit-blame-styles'." :group 'magit-faces)
(custom-declare-face 'magit-blame-dimmed '((t :inherit magit-dimmed :weight normal :slant normal)) "Face used for the blame margin in some cases when blaming.\nAlso see option `magit-blame-styles'." :group 'magit-faces)
(custom-declare-face 'magit-blame-heading '((t :extend t :inherit magit-blame-highlight :weight normal :slant normal)) "Face used for blame headings by default when blaming.\nAlso see option `magit-blame-styles'." :group 'magit-faces)
(custom-declare-face 'magit-blame-summary '((t nil)) "Face used for commit summaries when blaming." :group 'magit-faces)
(custom-declare-face 'magit-blame-hash '((t nil)) "Face used for commit hashes when blaming." :group 'magit-faces)
(custom-declare-face 'magit-blame-name '((t nil)) "Face used for author and committer names when blaming." :group 'magit-faces)
(custom-declare-face 'magit-blame-date '((t nil)) "Face used for dates when blaming." :group 'magit-faces)
(defvar magit-blame-buffer-read-only nil nil)
(make-variable-buffer-local 'magit-blame-buffer-read-only)
(defvar magit-blame-cache nil nil)
(make-variable-buffer-local 'magit-blame-cache)
(defvar magit-blame-disabled-modes nil nil)
(make-variable-buffer-local 'magit-blame-disabled-modes)
(defvar magit-blame-process nil nil)
(make-variable-buffer-local 'magit-blame-process)
(defvar magit-blame-recursive-p nil nil)
(make-variable-buffer-local 'magit-blame-recursive-p)
(defvar magit-blame-type nil nil)
(make-variable-buffer-local 'magit-blame-type)
(defvar magit-blame-separator nil nil)
(make-variable-buffer-local 'magit-blame-separator)
(defvar magit-blame-previous-chunk nil nil)
(make-variable-buffer-local 'magit-blame-previous-chunk)
(defvar magit-blame--make-margin-overlays nil nil)
(make-variable-buffer-local 'magit-blame--make-margin-overlays)
(defvar magit-blame--style nil nil)
(byte-code "\300\301!\210\302\303\304\305!\"\210\302\306\307\305!\"\210\302\310\306\"\210\311\310\312\313#\210\314\305\315\306#\316\305\317\320\317$\207" [make-variable-buffer-local magit-blame--style defalias magit-blame-chunk-p eieio-make-class-predicate magit-blame-chunk magit-blame-chunk--eieio-childp eieio-make-child-predicate magit-blame-chunk-child-p make-obsolete "use (cl-typep ... 'magit-blame-chunk) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((orig-rev :initarg :orig-rev) (orig-line :initarg :orig-line) (final-line :initarg :final-line) (num-lines :initarg :num-lines) (prev-rev :initform nil) (prev-file :initform nil) (orig-file))] 6)#@74 Create a new object of class type `magit-blame-chunk'.

(fn &rest SLOTS)
(defalias 'magit-blame-chunk #[128 "\300\301\302#\207" [apply make-instance magit-blame-chunk] 5 (#$ . 9045)])
(byte-code "\300\301\302\303#\300\207" [function-put magit-blame-chunk compiler-macro magit-blame-chunk--anon-cmacro] 4)#@26 

(fn WHOLE &rest SLOTS)
(defalias 'magit-blame-chunk--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\304\211@%\207" [macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity nil] 8 (#$ . 9356)])#@31 

(fn &optional TYPE NOERROR)
(defalias 'magit-current-blame-chunk #[512 "\203\n =\203 \304`!\206z \205z 	\305\306!?\205! \307\310\n?\"\311\312\313 \"\203p \314\315\316\"r\211q\210\317\320\"\216\321 \322\323\324\325>\203J \326\327 B\202L \327 \330	\331\n&\210eb\210m\204f \332!@\202n ?\205n \333\334!+\207?\205x \333\335!\266\203\207" [magit-blame-type magit-buffer-revision magit-buffer-file-name default-directory magit-blame-chunk-at derived-mode-p dired-mode magit-file-relative-name nil format "%d,+1" line-number-at-pos generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] magit--toplevel-safe magit-git-insert "blame" "--porcelain" (final removal) "--reverse" magit-blame-arguments "-L" "--" magit-blame--parse-chunk error "Cannot get blame chunk at eob" "Buffer does not visit a tracked file"] 15 (#$ . 9603)])#@12 

(fn POS)
(defalias 'magit-blame-chunk-at #[257 "\300\301\302!\"\207" [seq-some #[257 "\300\301\"\207" [overlay-get magit-blame-chunk] 4 "\n\n(fn %)"] overlays-at] 5 (#$ . 10504)])#@26 

(fn &optional POS KEY)
(defalias 'magit-blame--overlay-at #[512 "\204 `\262\300\301\302\"\303!\304\211\"\244\"\207" [seq-find make-closure #[257 "\301\300\206 \302\"\207" [V0 overlay-get magit-blame-chunk] 4 "\n\n(fn %)"] overlays-at overlays-in] 8 (#$ . 10693)])#@125 Keymap for `magit-blame-mode'.
Note that most blaming key bindings are defined
in `magit-blame-read-only-mode-map' instead.
(defvar magit-blame-mode-map (define-keymap "C-c C-q" 'magit-blame-quit) (#$ . 10973))#@42 Keymap for `magit-blame-read-only-mode'.
(defvar magit-blame-read-only-mode-map (define-keymap "C-m" 'magit-show-commit "p" 'magit-blame-previous-chunk "P" 'magit-blame-previous-chunk-same-commit "n" 'magit-blame-next-chunk "N" 'magit-blame-next-chunk-same-commit "b" 'magit-blame-addition "r" 'magit-blame-removal "f" 'magit-blame-reverse "B" 'magit-blame "c" 'magit-blame-cycle-style "q" 'magit-blame-quit "M-w" 'magit-blame-copy-hash "SPC" 'magit-diff-show-or-scroll-up "S-SPC" 'magit-diff-show-or-scroll-down "DEL" 'magit-diff-show-or-scroll-down) (#$ . 11189))#@101 Non-nil if Magit-Blame mode is enabled.
Use the command `magit-blame-mode' to change this variable.
(defvar magit-blame-mode nil (#$ . 11761))
(make-variable-buffer-local 'magit-blame-mode)#@616 Display blame information inline.

This is a minor mode.  If called interactively, toggle the
`Magit-Blame mode' mode.  If the prefix argument is positive,
enable the mode, and if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `magit-blame-mode'.

The mode's hook is called both when the mode is enabled and when
it is disabled.

\{magit-blame-mode-map}

(fn &optional ARG)
(defalias 'magit-blame-mode #[256 "\306 \307=\203 ?\202 \247\203 \310W\203 \311\202 \312\313\301!\2031 \314\300	\"\2031 \300	B\203\253 \315\316\317\312\211$\210\315\320\321\312\211$\210\315\322\323\312\211$\210\315\324\317\312\211$\210\315\325\326\312\211$\210\n\f\204b \203f \327\310!\2106\211\203\212 \211@\313!\203\203 \211J\203\203 \211\330!\210\211%B%A\266\202\202h \210\331 7'\204\231 8@'\332\3338\"\205\242 \3129\334\335!\210\202\336:!\203\303 \337:!\210:\203\303 \340\341!\210\202\267 \342\316\317\312#\210\342\320\321\312#\210\342\322\323\312#\210\342\324\317\312#\210\342\325\326\312#\210\204\351 \327\330!\210\343\330!\210%\211\203 \211@\211\310!\210A\266\202\202\357 \210\344\345!\210\344\346!\210\344\347!\210\334\350!\210\323 \210\351\352\203\353\202\354\"\210\355\356!\203B\306 \2033\211\306 \232\203B\357\360\361\203>\362\202?\363\364$\210\210\365 \210\207" [magit-blame-mode local-minor-modes buffer-read-only magit-blame-buffer-read-only magit-blame-read-only magit-buffer-file-name current-message toggle 1 nil t boundp delq add-hook after-save-hook magit-blame--refresh post-command-hook magit-blame-goto-chunk-hook before-revert-hook magit-blame--remove-overlays after-revert-hook read-only-mode-hook magit-blame-toggle-read-only read-only-mode -1 magit-blame--format-separator cl-find-if #[257 "\300A\236\207" [margin-format] 3 "\n\n(fn %)"] magit-blame--update-margin enable process-live-p kill-process sit-for 0.01 remove-hook magit-blame-read-only-mode kill-local-variable magit-blame-disabled-modes magit-blame-type magit-blame--style disable run-hooks magit-blame-mode-hook magit-blame-mode-on-hook magit-blame-mode-off-hook called-interactively-p any message "%s %sabled%s" "Magit-Blame mode" "en" "dis" " in current buffer" force-mode-line-update magit-blame-disable-modes magit-blame-separator magit-blame-styles magit-blame--make-margin-overlays magit-blame-process] 7 (#$ . 11957)])
(defvar magit-blame-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\314\300!\205# \310\211%\207" [magit-blame-mode-map magit-blame-mode-hook variable-documentation put "Hook run after entering or leaving `magit-blame-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode magit-blame-mode magit-blame-mode-lighter boundp] 6)
(defalias 'magit-blame--refresh #[0 "\300\301 !\207" [magit-blame--run magit-blame-arguments] 2])
(defalias 'magit-blame-goto-chunk-hook #[0 "\301`!\302!\205 \211=\204 \303\304!\210\211\211\207" [magit-blame-previous-chunk magit-blame-chunk-at magit-blame-chunk--eieio-childp run-hooks magit-blame-goto-chunk-hook] 3])
(defalias 'magit-blame-toggle-read-only #[0 "\301\203	 \302\202\n \303!\207" [buffer-read-only magit-blame-read-only-mode 1 -1] 2])#@121 Non-nil if Magit-Blame-Read-Only mode is enabled.
Use the command `magit-blame-read-only-mode' to change this variable.
(defvar magit-blame-read-only-mode nil (#$ . 15528))
(make-variable-buffer-local 'magit-blame-read-only-mode)#@1039 Provide keybindings for Magit-Blame mode.

This minor-mode provides the key bindings for Magit-Blame mode,
but only when Read-Only mode is also enabled because these key
bindings would otherwise conflict badly with regular bindings.

When both Magit-Blame mode and Read-Only mode are enabled, then
this mode gets automatically enabled too and when one of these
modes is toggled, then this mode also gets toggled automatically.

\{magit-blame-read-only-mode-map}

This is a minor mode.  If called interactively, toggle the
`Magit-Blame-Read-Only mode' mode.  If the prefix argument is
positive, enable the mode, and if it is zero or negative, disable
the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `magit-blame-read-only-mode'.

The mode's hook is called both when the mode is enabled and when
it is disabled.

(fn &optional ARG)
(defalias 'magit-blame-read-only-mode #[256 "\302 \303=\203 ?\202 \247\203 \304W\203 \305\202 \306\307\301!\2031 \310\300	\"\2031 \300	B\311\312\203; \313\202< \314\"\210\315\316!\203_ \302 \203P \211\302 \232\203_ \317\320\321\203[ \322\202\\ \323\324$\210\210\325 \210\207" [magit-blame-read-only-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks magit-blame-read-only-mode-hook magit-blame-read-only-mode-on-hook magit-blame-read-only-mode-off-hook called-interactively-p any message "%s %sabled%s" "Magit-Blame-Read-Only mode" "en" "dis" " in current buffer" force-mode-line-update] 7 (#$ . 15765) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar magit-blame-read-only-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\207" [magit-blame-read-only-mode-map magit-blame-read-only-mode-hook variable-documentation put "Hook run after entering or leaving `magit-blame-read-only-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode magit-blame-read-only-mode boundp] 6)#@82 Put `magit-blame-read-only-mode' ahead of `view-mode' in `minor-mode-map-alist'.
(defalias 'magit-blame-put-keymap-before-view-mode #[0 "\301\302\303\304\305$\236\211\203 \211\306\"B\210\307\310\311\"\207" [minor-mode-map-alist magit-blame-read-only-mode cl-member view-mode :key car delq remove-hook view-mode-hook magit-blame-put-keymap-before-view-mode] 6 (#$ . 18103)])
(add-hook 'view-mode-hook 'magit-blame-put-keymap-before-view-mode)#@13 

(fn ARGS)
(defalias 'magit-blame--run #[257 "\306 	\204 \301\307!\210\310\311!\210\312\n\313\232?\205 \n\314\315?\"\f\316>\203) \317B\202* \320\321 !\320\322\315\323\"S!D$\210\324\325\")\207" [default-directory magit-blame-mode magit-buffer-revision magit-buffer-file-name magit-blame-type magit-this-process magit--toplevel-safe 1 message "Blaming..." magit-blame-run-process "{index}" magit-file-relative-name nil (final removal) "--reverse" line-number-at-pos window-start window-end t set-process-sentinel magit-blame-process-quickstart-sentinel] 10 (#$ . 18555)])#@38 

(fn REV FILE ARGS &optional LINES)
(defalias 'magit-blame-run-process #[1027 "\302\303\304\205 \305\306\307\310#D\311	&\312\313\"\210\314\315\"\210\316\317E#\210\320\321\322\"\211\211\207" [magit-blame-cache magit-blame-process magit-parse-git-async "blame" "--incremental" "-L" apply format "%s,%s" "--" set-process-filter magit-blame-process-filter set-process-sentinel magit-blame-process-sentinel process-put arguments make-hash-table :test equal] 13 (#$ . 19138)])#@22 

(fn PROCESS EVENT)
(defalias 'magit-blame-process-quickstart-sentinel #[514 "\302!\303>\205) \304\305#\210\306!\210r\307\310\"q\210\205( \311 \312\313\307\314\"\"))\207" [magit-blame-mode default-directory process-status (exit signal) magit-blame-process-sentinel t magit-blame-assert-buffer process-get command-buf magit-toplevel apply magit-blame-run-process arguments] 7 (#$ . 19635)])#@38 

(fn PROCESS EVENT &optional QUIET)
(defalias 'magit-blame-process-sentinel #[770 "\301!\211\302>\205Q \303\304!!\210\303\305\306\"!\210\211\307=\203/ \310!\311U\203/ \204N \312\313!\210\202N \314!\210r\305\315\"q\210\203I \300\316!\210\312\317!\210\202M \312\320!\210)\321\322!\207" [magit-blame-mode process-status (exit signal) kill-buffer process-buffer process-get stderr-buf exit process-exit-status 0 message "Blaming...done" magit-blame-assert-buffer command-buf -1 "Blaming...failed" "Blaming...aborted" kill-local-variable magit-blame-process] 8 (#$ . 20039)])#@23 

(fn PROCESS STRING)
(defalias 'magit-blame-process-filter #[514 "\302\"\210\303\304\"\303\305\"\306!\307\211rq\210\262	)\262r\310!q\210b\210`W\205z \212\311\312\307\313#)\205z \314!\211\242\243\211\242\243\315\316\"\203U \317\n#\210\202g \320	\"\206e \317\321!\n#\262\322\f#\266\323\305`#\210\202' )\207" [magit-blame-type magit-blame-cache internal-default-process-filter process-get command-buf parsed process-mark nil process-buffer re-search-forward "^filename .+\n" t magit-blame--parse-chunk eieio-oref orig-rev puthash gethash magit-blame--commit-alist magit-blame--make-overlays process-put] 18 (#$ . 20624)])#@13 

(fn TYPE)
(defalias 'magit-blame--parse-chunk #[257 "\300\211\301\302!\204 \303\304\305`\306 \"\"\210\307\310\311\312!\313\314\311\315!!\316\314\311\317!!\320\314\311\321!!&\211\262\300y\210\300\211\204} \301\322!\203K \323\262\324\325\326\311\312!!#\210\202w \301\327!\203f \324\330\311\312!#\210\324\331\326\311\315!!#\210\202w \301\332!\203w \311\312!\311\315!BB\262\300y\210\2021 \210\333=\203\264 \334\330\"\203\264 \324\335\334\330\"\324\330\334\335\"#\210#\210\324\325\334\331\"\324\331\334\325\"#\210#\210\300\262\210D\207" [nil looking-at "^\\(.\\{40,\\}\\) \\([0-9]+\\) \\([0-9]+\\) \\([0-9]+\\)" error "Blaming failed due to unexpected output: %s" buffer-substring-no-properties line-end-position magit-blame-chunk :orig-rev match-string-no-properties 1 :orig-line string-to-number 2 :final-line 3 :num-lines 4 "^filename \\(.+\\)" t eieio-oset orig-file magit-decode-git-path "^previous \\(.\\{40,\\}\\) \\(.+\\)" prev-rev prev-file "^\\([^ ]+\\) \\(.+\\)" removal slot-value orig-rev] 14 (#$ . 21284)])#@12 

(fn REV)
(defalias 'magit-blame--commit-alist #[257 "\300\301\302\303\304\305\306#\307\"#\207" [cl-mapcar cons ("summary" "author" "author-time" "author-tz" "committer" "committer-time" "committer-tz") split-string magit-rev-format "%s%an%ad%cn%cd" "--date=format:%s%z" ""] 9 (#$ . 22331)])#@16 

(fn PROCESS)
(defalias 'magit-blame-assert-buffer #[257 "\300\301\302\"!?\205 \303!\210\304\305!\207" [buffer-live-p process-get command-buf kill-process user-error "Buffer being blamed has been killed"] 5 (#$ . 22637)])
(defvar magit-blame--previous-margin-width nil nil)
(make-variable-buffer-local 'magit-blame--previous-margin-width)#@12 

(fn KEY)
(defalias 'magit-blame--style-get #[257 "\301A\"A\207" [magit-blame--style assoc] 4 (#$ . 22985)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put magit-blame--style-get speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@26 

(fn BUF CHUNK REVINFO)
(defalias 'magit-blame--make-overlays #[771 "rq\210\212\214~\210\301\302\"\303!\303\301\304\"\\!\305S!\211\203J \301\306\"\301\306\"\232\203J \303\307\302\301\302\"#!\262\307\304\301	\304\"\301\304\"\\#\210\310\"\210\203\\ \300$\210\311$\210\312\"\266\204+\207" [magit-blame--make-margin-overlays eieio-oref final-line magit-blame--line-beginning-position num-lines magit-blame-chunk-at orig-rev eieio-oset magit-blame--remove-overlays magit-blame--make-heading-overlay magit-blame--make-highlight-overlay] 14 (#$ . 23250)])#@13 

(fn LINE)
(defalias 'magit-blame--line-beginning-position #[257 "\212eb\210\211Sy\210`)\207" [] 2 (#$ . 23841)])#@30 

(fn CHUNK REVINFO BEG END)
(defalias 'magit-blame--make-margin-overlays #[1028 "\212\300b\210`W\205 \301#\210\302y\210\211T\262\202 )\207" [0 magit-blame--make-margin-overlay nil] 9 (#$ . 23961)])#@27 

(fn CHUNK REVINFO LINE)
(defalias 'magit-blame--make-margin-overlay #[771 "\300 \301 T^\302\"\303\304#\210\303\305#\210\303\306#\210\307!\207" [line-end-position line-beginning-position make-overlay overlay-put magit-blame-chunk magit-blame-revinfo magit-blame-margin magit-blame--update-margin-overlay] 10 (#$ . 24173)])#@30 

(fn CHUNK REVINFO BEG END)
(defalias 'magit-blame--make-heading-overlay #[1028 "\300\"\301\302#\210\301\303#\210\301\304\305#\210\306!\207" [make-overlay overlay-put magit-blame-chunk magit-blame-revinfo magit-blame-heading t magit-blame--update-heading-overlay] 9 (#$ . 24515)])#@18 

(fn CHUNK BEG)
(defalias 'magit-blame--make-highlight-overlay #[514 "\300\301!T\"\302\303#\210\302\304\305#\210\306!\207" [make-overlay magit--eol-position overlay-put magit-blame-chunk magit-blame-highlight t magit-blame--update-highlight-overlay] 7 (#$ . 24812)])#@25 

(fn &optional ACTION)
(defalias 'magit-blame--update-margin #[256 "\211\303=\203 \211\304=\203 	\305\202! \306\307\nA\"A\262\206! 	\310\311 p\"\207" [left-margin-width magit-blame--previous-margin-width magit-blame--style enable disable nil margin-width assoc set-window-buffer selected-window] 5 (#$ . 25091)])
(defalias 'magit-blame--update-overlays #[0 "\214~\210\300ed\"\211\205; \211@\301\302\"\203 \303!\210\2024 \301\304\"\203) \305!\210\2024 \301\306\"\2034 \307!\210A\266\202\202 )\207" [overlays-in overlay-get magit-blame-heading magit-blame--update-heading-overlay magit-blame-margin magit-blame--update-margin-overlay magit-blame-highlight magit-blame--update-highlight-overlay] 5])#@11 

(fn OV)
(defalias 'magit-blame--update-margin-overlay #[257 "\301\302\303\304A\"A\262\205^ \305\306\307\310\311D\312\313\"\314\304A\"A\262\315\304A\"A\262\316:\2048 \206B 8\206B \317!@\320U\204T \321\304A\"A\262\206Y \206Y \313#\266\203D##\207" [magit-blame--style overlay-put before-string margin-width assoc propertize "o" display margin left-margin overlay-get magit-blame-margin margin-format margin-face magit-blame--format-string last 0 margin-body-face] 18 (#$ . 25811)])#@11 

(fn OV)
(defalias 'magit-blame--update-heading-overlay #[257 "\302\303\304\305\306A\"A\262\211\262\203 \307\310#\202C \311\306A\"A\262\205C \312\306A\"A\262\203B \212\313!b\210`\314 U)?\205C 	\262#\207" [magit-blame--style magit-blame-separator overlay-put before-string nil heading-format assoc magit-blame--format-string (magit-blame-heading default) show-lines margin-format overlay-start line-end-position] 9 (#$ . 26321)])#@11 

(fn OV)
(defalias 'magit-blame--update-highlight-overlay #[257 "\301\302\303\304A\"A\262#\207" [magit-blame--style overlay-put font-lock-face highlight-face assoc] 8 (#$ . 26772)])#@23 

(fn OV FORMAT FACE)
(defalias 'magit-blame--format-string #[771 "\300\301\"\300\302\"D\303\"A\211\204, \205# \304\305\306\"$\262BC\244\210\207" [overlay-get magit-blame-chunk magit-blame-revinfo assoc magit-blame--format-string-1 eieio-oref orig-rev] 12 (#$ . 26964)])#@32 

(fn REV REVINFO FORMAT FACE)
(defalias 'magit-blame--format-string-1 #[1028 "\301\302\303\304$\266\203\2030 \305\306\307\"\203 \307\202 \310\311\312\313\"\203( \313\202) \310Q\314#\202\222 \315\305\314#\316\317\"\320\321\322\n\323\"B\324\325\f!\323\"B\326\327\330$B\331\f\332\333$B\334	\335\333$B\336\n\337\340\341%B\342\343\344\341%B\345BBBBBBB\262\262\262\"\302\312\346\"\205\243 \347\350A\"A\262\211\262\203\273 \305\351\352GZ]\353\"\314#P\207\207" [magit-blame--style "\\`0\\{40,\\}\\'" nil string-match t propertize string-prefix-p " " #1="" "Not Yet Committed" string-suffix-p "\n" font-lock-face magit--format-spec make-closure #[514 "\301\302\300\203 \303\300!B\202 #\207" [V0 propertize font-lock-face ensure-list] 8 "\n\n(fn S F)"] #[1028 "\300\"A\"\207" [assoc] 8 "\n\n(fn REVINFO --CL-P0-- K F)"] #[1285 "\300\301\"A\301	\"A\"\"\207" [magit-blame--format-time-string assoc] 11 "\n\n(fn REVINFO --CL-P0-- K1 K2 F)"] 72 magit-blame-hash 104 magit-blame--abbrev-hash 115 "summary" magit-blame-summary 97 "author" magit-blame-name 99 "committer" 65 "author-time" "author-tz" magit-blame-date 67 "committer-time" "committer-tz" ((102 . #1#)) "%f" margin-width assoc make-string 0 32] 22 (#$ . 27257)])
(defalias 'magit-blame--format-separator #[0 "\300\211\301\302\303#\300\304\305\306#P\307\310\306\311\312\313\311\314\306$F#\207" [propertize " " display (space :height (2)) "\n" line-height t font-lock-face :extend :background face-attribute magit-blame-heading nil] 11])#@16 

(fn TIME TZ)
(defalias 'magit-blame--format-time-string #[514 "\302\303A\"A\262\206 	\304\305\"\205 \306\307!!@\310\311\312!!#\207" [magit-blame--style magit-blame-time-format time-format assoc string-search "%z" last parse-time-string format-time-string seconds-to-time string-to-number] 9 (#$ . 28820)])
(defvar magit-blame--abbrev-length nil nil)
(make-variable-buffer-local 'magit-blame--abbrev-length)#@12 

(fn REV)
(defalias 'magit-blame--abbrev-hash #[257 "\211\301\206\n \302 \211O\207" [magit-blame--abbrev-length 0 magit-abbrev-length] 5 (#$ . 29245)])#@26 

(fn &optional BEG END)
(defalias 'magit-blame--remove-overlays #[512 "\214~\210\300\206	 e\206 d\"\211\205' \211@\301\302\"\203  \303!\210A\266\202\202 )\207" [overlays-in overlay-get magit-blame-chunk delete-overlay] 7 (#$ . 29405)])
(defalias 'magit-blame-maybe-show-message #[0 "\3022> \303\304A\"A\262?\211\203 \305\302\"\210\210\304\306\307\310\311 \312\"	\"\"A\211\2039 \305\302\313\314G\315$\210\316\317\"\"\210\210\316\320!0\207" [magit-blame--style magit-blame-cache #1=#::cond-let1811 show-message assoc throw "summary" gethash eieio-oref magit-current-blame-chunk orig-rev set-text-properties 0 nil magit-msg "%S" "Commit data not available yet.  Still blaming."] 8])#@13 

(fn ARGS)
(defalias 'magit-blame-echo #[257 "\203 \306\307!\210\310\303!\210	\n\236\310\304!\210\311\fB\204, \312\313\314!\210\315\314!\210\316!)\207\317\320!\210\321 \207" [magit-buffer-file-name magit-blame-echo-style magit-blame-styles magit-blame--style magit-blame-disable-modes magit-blame-mode user-error "Blob buffers aren't supported" make-local-variable eldoc-mode nil magit-blame--pre-blame-assert addition magit-blame--pre-blame-setup magit-blame--run read-only-mode -1 magit-blame--update-overlays magit-blame-read-only] 3 (#$ . 30107) (byte-code "\300 C\207" [magit-blame-arguments] 1)])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312$#\207" [put magit-blame-echo interactive-only t function-documentation "For each line show the revision in which it was added.\nShow the information about the chunk at point in the echo area\nwhen moving between chunks.  Unlike other blaming commands, do\nnot turn on `read-only-mode'." transient--suffix transient-suffix :command :if #[0 "\205\n 	?\206\n \n\207" [buffer-file-name magit-blame-mode buffer-read-only] 1]] 8)#@13 

(fn ARGS)
(defalias 'magit-blame-addition #[257 "\300\301!\210\302\301!\210\303!\207" [magit-blame--pre-blame-assert addition magit-blame--pre-blame-setup magit-blame--run] 3 (#$ . 31236) (byte-code "\300 C\207" [magit-blame-arguments] 1)])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\"#\207" [put magit-blame-addition interactive-only t function-documentation "For each line show the revision in which it was added." transient--suffix transient-suffix :command] 6)#@13 

(fn ARGS)
(defalias 'magit-blame-removal #[257 "\204 \301\302!\210\303\304!\210\305\304!\210\306!\207" [magit-buffer-file-name user-error "Only blob buffers can be blamed in reverse" magit-blame--pre-blame-assert removal magit-blame--pre-blame-setup magit-blame--run] 3 (#$ . 31745) (byte-code "\300 C\207" [magit-blame-arguments] 1)])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312$#\207" [put magit-blame-removal interactive-only t function-documentation "For each line show the revision in which it was removed." transient--suffix transient-suffix :command :if-nil buffer-file-name] 8)#@13 

(fn ARGS)
(defalias 'magit-blame-reverse #[257 "\204 \301\302!\210\303\304!\210\305\304!\210\306!\207" [magit-buffer-file-name user-error "Only blob buffers can be blamed in reverse" magit-blame--pre-blame-assert final magit-blame--pre-blame-setup magit-blame--run] 3 (#$ . 32384) (byte-code "\300 C\207" [magit-blame-arguments] 1)])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312$#\207" [put magit-blame-reverse interactive-only t function-documentation "For each line show the last revision in which it still exists." transient--suffix transient-suffix :command :if-nil buffer-file-name] 8)#@13 

(fn TYPE)
(defalias 'magit-blame--pre-blame-assert #[257 "\304 \204 \305 \210\203+ \211	=\203+ \306\307 \211\262\203' \310\311\"?\205* \312\313!\207\314\315!\207\316\306\n?\"?\205? \203< \312\317!\207\312\320!\207" [magit-blame-mode magit-blame-type magit-buffer-file-name buffer-file-name magit-toplevel magit--not-inside-repository-error nil magit-current-blame-chunk eieio-oref prev-rev user-error "Chunk has no further history" message "Still blaming, commit data not available yet" magit-file-relative-name "Buffer isn't visiting a tracked file" "Buffer isn't visiting a file"] 5 (#$ . 33027)])#@13 

(fn TYPE)
(defalias 'magit-blame--pre-blame-setup #[257 "\203$ \211	=\203! \n\304 \210\305\302!\210\211\305\303!\210\306\307 \266\202$ \310 \210\211\211\207" [magit-blame-mode magit-blame-type magit-blame--style magit-blame-recursive-p magit-blame-visit-other-file make-local-variable t redisplay magit-blame--remove-overlays] 4 (#$ . 33639)])#@50 Visit another blob related to the current chunk.
(defalias 'magit-blame-visit-other-file #[0 "\301 \302\303\"\204 \304\305!\210\306 \307\302\303\"\302\310\"\")\210eb\210\302\311\"Sy\207" [default-directory magit-current-blame-chunk slot-value prev-rev user-error "Chunk has no further history" magit--toplevel-safe magit-find-file prev-file orig-line] 6 (#$ . 33995) nil])#@46 Visit the blob related to the current chunk.
(defalias 'magit-blame-visit-file #[0 "\301 \302 \303\304\305\"\304\306\"\")\210eb\210\304\307\"Sy\207" [default-directory magit-current-blame-chunk magit--toplevel-safe magit-find-file slot-value orig-rev orig-file orig-line] 6 (#$ . 34379) nil])
(defalias 'magit-blame-quit #[0 "\301\302!\210\205\n \303 \207" [magit-blame-recursive-p magit-blame-mode -1 kill-buffer] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312$#\207" [put magit-blame-quit interactive-only t function-documentation "Turn off Magit-Blame mode.\nIf the buffer was created during a recursive blame,\nthen also kill the buffer." transient--suffix transient-suffix :command :if-non-nil magit-blame-mode] 8)#@25 Move to the next chunk.
(defalias 'magit-blame-next-chunk #[0 "\300\301`\302\"\211\262\203 \211b\207\303\304!\207" [nil next-single-char-property-change magit-blame-chunk user-error "No more chunks"] 4 (#$ . 35161) nil])#@29 Move to the previous chunk.
(defalias 'magit-blame-previous-chunk #[0 "\300\301`\302\"\211\262\203 \211b\207\303\304!\207" [nil previous-single-char-property-change magit-blame-chunk user-error "No more chunks"] 4 (#$ . 35389) nil])#@52 Move to the next chunk from the same commit.

(fn)
(defalias 'magit-blame-next-chunk-same-commit #[256 "\300\301\302 \303\"\211\262\203] `\300\212\211\204O \203 e\202 dU\204O \203) \304\202* \305\306\"\211\262\203O \300\307!\211\262\203K \301\310!\303\"\232\203K \211\262\210\202 )\211\203Y \311!b\207\312\313!\207\312\314!\207" [nil eieio-oref magit-current-blame-chunk orig-rev previous-single-char-property-change next-single-char-property-change magit-blame-chunk magit-blame--overlay-at magit-blame-chunk-at overlay-start user-error "No more chunks from same commit" "This chunk hasn't been blamed yet"] 8 (#$ . 35629) nil])#@50 Move to the previous chunk from the same commit.
(defalias 'magit-blame-previous-chunk-same-commit #[0 "\300\301!\207" [magit-blame-next-chunk-same-commit previous-single-char-property-change] 2 (#$ . 36279) nil])#@104 Change how blame information is visualized.
Cycle through the elements of option `magit-blame-styles'.
(defalias 'magit-blame-cycle-style #[0 "\302@	\303\304$A@\206 	@\305 \210\306 \207" [magit-blame--style magit-blame-styles cl-member :key car magit-blame--update-margin magit-blame--update-overlays] 5 (#$ . 36499) nil])#@168 Save hash of the current chunk's commit to the kill ring.

When the region is active, then save the region's content
instead of the hash, like `kill-ring-save' would.
(defalias 'magit-blame-copy-hash #[0 "\300 \203	 \301\302!\207\303\304\305\306\307 \310\"\"!\207" [use-region-p call-interactively copy-region-as-kill kill-new message "%s" eieio-oref magit-current-blame-chunk orig-rev] 6 (#$ . 36831) nil])
(defalias 'magit-blame #[0 "\300\301!\207" [transient-setup magit-blame] 2 nil nil])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307\310\301\311\312\313\314&#\210\315\301\316\317\320\321D\322\323\324\320\325\326\324\327\324\310\300\330\302\303#\210\300\330\331\332#\210\333\330\334\"\210\330\257\322\323\335\320\336\327\337\310\300\340\302\303#\210\300\340\331\332#\210\333\340\334\"\210\340\257	\322\323\341\320\342\327\343\310\300\344\302\303#\210\300\344\331\332#\210\333\344\334\"\210\344\257	\345\310\346E\345\310\347E\257#\316\317\320\350D\345\323\351\320\352\310\353\257\345\323\354\320\355\310\356\257\345\323\357\320\360\310\361\257\345\323\362\320\363\310\364\257\345\323\365\320\366\310\367\257\257#\316\317\320\370\371\372F\345\323\373\320\374\310\375\376\303\257	C#E\"\207" [put magit-blame interactive-only t function-documentation "Show the commits that added or removed lines in the visited file." transient--prefix transient-prefix :command :man-page "git-blame" :value ("-w") transient--set-layout vector transient-column :description "Arguments" transient-switch :key "-w" "Ignore whitespace" :shortarg :argument transient:magit-blame:-w completion-predicate transient--suffix-only defalias transient--default-infix-command "-r" "Do not treat root commits as boundaries" "--root" transient:magit-blame:--root "-P" "Follow only first parent" "--first-parent" transient:magit-blame:--first-parent transient-suffix magit-blame:-M magit-blame:-C "Actions" "b" "Show commits adding lines" magit-blame-addition "r" "Show commits removing lines" magit-blame-removal "f" "Show last commits that still have lines" magit-blame-reverse "m" "Blame echo" magit-blame-echo "q" "Quit blaming" magit-blame-quit "Refresh" :if-non-nil magit-blame-mode "c" "Cycle style" magit-blame-cycle-style :transient] 19)
(defalias 'magit-blame-arguments #[0 "\300\301!\207" [transient-args magit-blame] 2])
(byte-code "\300\301\302\"\210\303\301\304\305#\210\303\301\306\307#\210\303\301\310\311#\210\303\301\312\313\314\301\315\316\317\320\321\305\322\323&\n#\210\300\324\302\"\210\303\324\304\305#\210\303\324\306\307#\210\303\324\310\311#\210\303\324\312\313\314\324\315\325\317\326\321\305\322\323&\n#\207" [defalias magit-blame:-M transient--default-infix-command put interactive-only t completion-predicate transient--suffix-only function-documentation nil transient--suffix transient-option :command :description "Detect lines moved or copied within a file" :argument "-M" :allow-empty :reader transient-read-number-N+ magit-blame:-C "Detect lines moved or copied between files" "-C"] 14)
(defalias 'magit-blame-maybe-update-revision-buffer #[0 "\302 \211\205\n \303\304\"\211\205 \305\306\307\310#\211\205* \203! D\211\207D\311	\307\312#\207" [magit--update-revision-buffer magit-update-other-window-delay magit-current-blame-chunk eieio-oref orig-rev magit-get-mode-buffer magit-revision-mode nil t run-with-idle-timer #[0 "\210\242\243\211\242\243\302\303!\205 \304\305\306\307\310!#)\207" [magit--update-revision-buffer magit-display-buffer-noselect nil buffer-live-p t apply magit-show-commit magit-diff-arguments magit-revision-mode] 9]] 7])
(provide 'magit-blame)
