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

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

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


(byte-code "\301\302!\210\301\303!\210\304\305\306\307\310C%\207" [lisp-mode-abbrev-table require cl-generic lisp-mode define-abbrev-table emacs-lisp-mode-abbrev-table nil "Abbrev table for Emacs Lisp mode.\nIt has `lisp-mode-abbrev-table' as its parent." :parents] 6)
#@41 Syntax table used in `emacs-lisp-mode'.
(defvar emacs-lisp-mode-syntax-table (byte-code "\301!\302\303\304#\210\302\305\306#\210\211\207" [lisp--mode-syntax-table make-syntax-table modify-syntax-entry 91 "(]  " 93 ")[  "] 5) (#$ . 678))
#@95 Keymap for Emacs Lisp mode.
All commands in `lisp-mode-shared-map' are inherited by this map.
(defvar emacs-lisp-mode-map (byte-code "\302\303!\302\303!\302 \302 \302 \304\"\210\305\306\307#\210\305\310\311#\210\305\312\313#\210\314\315\303B#\210\314\316\317#\210\314\320\321#\210\314\322\323#\210\314\324\325B#\210\314\326\327#\210\314\330\331#\210\314\332	#\210\314\333\334#\210\314\335\336#\210\314\337\340B#\210\314\341\342#\210\314\343\344#\210\314\345	#\210\314\346\347#\210\314\350\351#\210\314\352\353#\210\314\354\355#\210\314\356\357#\210\314\360	#\210\314\361\362#\210\314\363\364#\210\314\365\366#\210\314\367\370B#\210\314\371\372#\210\314\373\374#\210\314\375\376#\210\314\377\201@ #\210\314\201A \201B #\210\314\201C 	#\210\314\201D \201E #\210\314\201F \201G #\210\314\201H \201I #\210\314\201J \201K #\210\314\201L 	#\210\314\201M \201N #\210\314\201O \201P #\210\314\201Q \201R #\210\314\201S \201T #\210\314\201U 	#\210\314\201V \201W #\210\314\201X \201Y #\210\314\201Z \201[ #\210\207" [lisp-mode-shared-map menu-bar-separator make-sparse-keymap "Emacs-Lisp" set-keymap-parent define-key "	" completion-at-point "" eval-defun "" indent-pp-sexp bindings--define-key [menu-bar emacs-lisp] [eldoc] (menu-item "Auto-Display Documentation Strings" eldoc-mode :button (:toggle bound-and-true-p eldoc-mode) :help "Display the documentation string for the item under cursor") [checkdoc] (menu-item "Check Documentation Strings" checkdoc :help "Check documentation strings for style requirements") [re-builder] (menu-item "Construct Regexp" re-builder :help "Construct a regexp interactively") [tracing] "Tracing" [tr-a] (menu-item "Untrace All" untrace-all :help "Untrace all currently traced functions") [tr-uf] (menu-item "Untrace Function..." untrace-function :help "Untrace function, and possibly activate all remaining advice") [tr-sep] [tr-q] (menu-item "Trace Function Quietly..." trace-function-background :help "Trace the function with trace output going quietly to a buffer") [tr-f] (menu-item "Trace Function..." trace-function :help "Trace the function given as an argument") [profiling] "Profiling" [prof-restall] (menu-item "Remove Instrumentation for All Functions" elp-restore-all :help "Restore the original definitions of all functions being profiled") [prof-restfunc] (menu-item "Remove Instrumentation for Function..." elp-restore-function :help "Restore an instrumented function to its original definition") [sep-rem] [prof-resall] (menu-item "Reset Counters for All Functions" elp-reset-all :help "Reset the profiling information for all functions being profiled") [prof-resfunc] (menu-item "Reset Counters for Function..." elp-reset-function :help "Reset the profiling information for a function") [prof-res] (menu-item "Show Profiling Results" elp-results :help "Display current profiling results") [prof-pack] (menu-item "Instrument Package..." elp-instrument-package :help "Instrument for profiling all function that start with a prefix") [prof-func] (menu-item "Instrument Function..." elp-instrument-function :help "Instrument a function for profiling") [sep-natprof] [prof-natprof-stop] (menu-item "Stop Native Profiler" profiler-stop :help "Stop recording profiling information" :enable (and (featurep 'profiler) (profiler-running-p))) [prof-natprof-report] (menu-item "Show Profiler Report" profiler-report :help "Show the current profiler report" :enable (and (featurep 'profiler) (profiler-running-p))) [prof-natprof-start] (menu-item "Start Native Profiler..." profiler-start :help "Start recording profiling information") [lint] "Linting" [lint-di] (menu-item "Lint Directory..." elint-directory :help "Lint a directory") [lint-f] (menu-item "Lint File..." elint-file :help "Lint a file") [lint-b] (menu-item "Lint Buffer" elint-current-buffer :help "Lint the current buffer") [lint-d] (menu-item "Lint Defun" elint-defun :help "Lint the function at point") [edebug-defun] (menu-item "Instrument Function for Debugging" edebug-defun :help "Evaluate the top level form point is in, stepping through with Edebug" :keys "C-u C-M-x") [separator-byte] [disas] (menu-item "Disassemble Byte Compiled Object..." disassemble :help "Print disassembled code for OBJECT in a buffer") [byte-recompile] (menu-item "Byte-recompile Directory..." byte-recompile-directory :help "Recompile every `.el' file in DIRECTORY that needs recompilation") [emacs-byte-compile-and-load] (menu-item "Byte-compile and Load" emacs-lisp-byte-compile-and-load :help "Byte-compile the current file (if it has changed), then load compiled code") [byte-compile] (menu-item "Byte-compile This File" emacs-lisp-byte-compile :help "Byte compile the file containing the current buffer") [separator-eval] [ielm] (menu-item "Interactive Expression Evaluation" ielm :help "Interactively evaluate Emacs Lisp expressions") [eval-buffer] (menu-item "Evaluate Buffer" eval-buffer :help "Execute the current buffer as Lisp code") [eval-region] (menu-item "Evaluate Region" eval-region :help "Execute the region as Lisp code" :enable mark-active) [eval-sexp] (menu-item "Evaluate Last S-expression" eval-last-sexp :help "Evaluate sexp before point; print value in echo area") [separator-format] [comment-region] (menu-item "Comment Out Region" comment-region :help "Comment or uncomment each line in the region" :enable mark-active) [indent-region] (menu-item "Indent Region" indent-region :help "Indent each nonblank line in the region" :enable mark-active) [indent-line] (menu-item "Indent Line" lisp-indent-line)] 10) (#$ . 924))
#@54 Byte compile the file containing the current buffer.
(defalias 'emacs-lisp-byte-compile #[0 "\203 \301!\207\302\303!\207" [buffer-file-name byte-compile-file error "The buffer must be saved in a file first"] 2 (#$ . 6522) nil])
#@77 Byte-compile the current file (if it has changed), then load compiled code.
(defalias 'emacs-lisp-byte-compile-and-load #[0 "\204 \301\302!\210\303\304!\210\305 \203 \306\307\310\311 \"!\203 \312 \210\313\314\315\316$\207" [buffer-file-name error "The buffer must be saved in a file first" require bytecomp buffer-modified-p y-or-n-p format "Save buffer %s first? " buffer-name save-buffer byte-recompile-file nil 0 t] 5 (#$ . 6759) nil])
#@70 Macroexpand the form after point.
Comments in the form will be lost.
(defalias 'emacs-lisp-macroexpand #[0 "`\300p!\301!\232\203 \302\303!\202( `|\210\304p\"\210n\203$ \305\306!\210\307`\"\207" [read macroexpand-1 message "Not a macro call, nothing to expand" pp delete-char -1 indent-region] 6 (#$ . 7209) nil])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable emacs-lisp-mode-hook funcall function #[0 "\300\207" [nil] 1] "Hook run when entering Emacs Lisp mode." :options (eldoc-mode imenu-add-menubar-index checkdoc-minor-mode) :type hook :group lisp] 10)
(defvar emacs-lisp-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [emacs-lisp-mode-hook variable-documentation put "Hook run after entering Emacs-Lisp mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp emacs-lisp-mode-map definition-name emacs-lisp-mode] 4)
(defvar emacs-lisp-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204 \303\307\310\311#\210\312\313 !\210\307\302N\204- \303\307\302\304\314!#\210\306\300!\204B \303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P \303\300\302\304\320!#\210\303\311\321\322#\210\303\311\323\324#\207" [emacs-lisp-mode-abbrev-table emacs-lisp-mode-map variable-documentation put purecopy "Keymap for `emacs-lisp-mode'." boundp emacs-lisp-mode-syntax-table definition-name emacs-lisp-mode (lambda (#1=#:def-tmp-var) (defvar emacs-lisp-mode-syntax-table #1#)) make-syntax-table "Syntax table for `emacs-lisp-mode'." (lambda (#1#) (defvar emacs-lisp-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `emacs-lisp-mode'." derived-mode-parent prog-mode custom-mode-group lisp] 5)
#@369 Major mode for editing Lisp code to run in Emacs.
Commands:
Delete converts tabs to spaces as it moves back.
Blank lines separate paragraphs.  Semicolons start comments.

\{emacs-lisp-mode-map}

In addition to any hooks its parent mode `prog-mode' might have run,
this mode runs the hook `emacs-lisp-mode-hook', as the final or penultimate step
during initialization.
(defalias 'emacs-lisp-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\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324\325\"\204R 6=\204R \326\3256C#\210\327!\210\330\f!\2106\331\332\211\333#\210\334\335\336\"\2107\204\203 \337\340!\210\306\341!\210\342\343!\"!\306\344!\210\307$\3328\345\346\347\350B\351\332$\210\334\352\353\332\307$\210\306\354!\210\355,\334\356\357\332\360$\210\334\361\362\332\307$\210\334\361\363\332\307$\210)\364\365!\207" [delay-mode-hooks major-mode mode-name emacs-lisp-mode-map emacs-lisp-mode-syntax-table emacs-lisp-mode-abbrev-table make-local-variable t prog-mode emacs-lisp-mode "Emacs-Lisp" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table lisp-mode-variables nil elisp add-hook after-load-functions elisp--font-lock-flush-elisp-buffers require elec-pair electric-pair-text-pairs append ((96 . 39) (8216 . 8217)) electric-quote-string advice--add-function :before-until #[0 "\300\301!\207" [advice--buffer-local eldoc-documentation-function] 2] #[257 "\300\301\"\207" [advice--set-buffer-local eldoc-documentation-function] 4 "\n\n(fn GV--VAL)"] elisp-eldoc-documentation-function xref-backend-functions elisp--xref-backend project-vc-external-roots-function elisp-load-path-roots completion-at-point-functions elisp-completion-at-point local flymake-diagnostic-functions elisp-flymake-checkdoc elisp-flymake-byte-compile run-mode-hooks emacs-lisp-mode-hook local-abbrev-table noninteractive imenu-case-fold-search] 5 (#$ . 9071) nil])
#@23 

(fn &optional FILE)
(defalias 'elisp--font-lock-flush-elisp-buffers #[256 "\203 \211\205' \301 \211\205% \211@r\211q\210\302\303!\203 \304 \210)A\266\202\202\n \262\207" [load-in-progress buffer-list derived-mode-p emacs-lisp-mode font-lock-flush] 5 (#$ . 11174)])
#@88 Return the vars locally bound around the witness, or nil if not found.

(fn VARS SEXP)
(defalias 'elisp--local-variables-1 #[514 "\211C\300\301\302\303\304\242:\203\273\242@\211\305>\203\347 \242A\211:\203\317 \211@A\211\204` \f\211\f\242@\306=\203P \307!A\211\203O \211@\211\242\206D \211B\262A\266\202\2028 \210\310\311!@\243@\"\266\202\262\202\312 \312>\203o \f#\202\312 \313=\203 \f#\202\312 \314=\203\267 \211:\203\252 \211@A\211\204\235 \310\"\262\202\245 	#\266\202\202\312 \310\f\311\f\242!@\"\202\312 \315=\203\304 	\300\240\202\312 \f\"\266\202\202\342 \315=\203\334 \300\240\202\342 \n	\"\262\202\266\211\316>\203\242A\211:\203\211@A\f#\266\202\202\315=\203\300\240\202\n	\"\262\202\266\211\313=\203U\242A\211:\203J\211@A\211\204>\n\300\240\262\202E\f#\266\202\202P\n	\"\262\202\266\211\314=\203\243\242A\211:\203\230\211@A\211:\203\215\211@A\211\204\200\310\"\262\202\210	#\266\202\202\223\f\"\266\202\202\236\n	\"\262\202\266\211\315=\203\260\300\240\202\266	\"\262\202\314\242\317=\203\313\206\314\320\202\314\300\266\204\211\262\204\347\3211\341\322\242!0\202\343\210\300\240\204 \211\262\207" [nil #[771 "\300B\301!@A\"\207" [elisp--local-variables-1 last] 7 "\n\n(fn VARS CATCHES V)"] #[771 "\300\301\302\303\302\304\"\"\"\305!@\"\207" [elisp--local-variables-1 append remq &optional &rest last] 10 "\n\n(fn VARS BODY ARGS)"] #[771 "\211\203 \211@\211\242\206 \211B\262A\266\202\202 \210\300\301!@\"\207" [elisp--local-variables-1 last] 8 "\n\n(fn VARS BODY BINDINGS)"] #[514 "\300\301\242!@\"\207" [elisp--local-variables-1 last] 6 "\n\n(fn VARS SEXP)"] (let* let) let* reverse elisp--local-variables-1 last (let* let) lambda condition-case quote (let* let) elisp--witness--lisp (nil) (error) butlast] 19 (#$ . 11452)])
#@56 Return a list of locally let-bound variables at point.
(defalias 'elisp--local-variables #[0 "\212\301\302!\210\303 \304\3058@\206 `\3068\206 `\"\307\3058\211\2031 \211@\310!AB\262A\266\202\202 \210\311\312\"\262\3131G \314\315Q!@0\202I \210\307\316\317\320\321\322\323!\324\"\325$\216\326\327\330\331#\210\332!*\333\307\"\334\307\335\336\"\"\266\204\266\203)\207" [warning-minimum-log-level skip-syntax-backward "w_" syntax-ppss buffer-substring-no-properties 9 8 nil syntax-after apply string (invalid-read-syntax end-of-file) read-from-string "elisp--witness--lisp" #[642 "\3001 \301#0\207\210\207" [(error) apply] 7 "\n\n(fn EXPANDER FORM &rest ARGS)"] make-byte-code 0 "\301\302\300\"\207" vconcat vector [advice-remove macroexpand] 3 :emergency advice-add macroexpand :around macroexpand-all elisp--local-variables-1 delq mapcar #[257 "\2119\205 \300\301!\302\"?\205 \303!\205 \211\207" [string-match symbol-name "\\`[&_]" intern-soft] 4 "\n\n(fn VAR)"]] 12 (#$ . 13373)])
(defvar elisp--local-variables-completion-table (byte-code "\300C\300C\300C\211\301\302\303\304\305\"\306\"\307$\240\210\310\301\311\312\304\305#\313\"\314\315%!\262\207" [nil make-byte-code 0 "\300\302\240\210\303\304\301\242\"\207" vconcat vector [nil remove-hook post-command-hook] 3 completion-table-dynamic 257 "\212\303\304!\210`pB\300\242\232\204! \305\306\302\242\"\210\300\240\210\301\307\310\311 \"\240\210\210)\301\242\207" [skip-syntax-backward "_w" add-hook post-command-hook mapcar symbol-name elisp--local-variables] 6 "\n\n(fn STRING)"] 12))
#@79 Return non-nil if the symbol at point is expected to be a function.

(fn POS)
(defalias 'elisp--expect-function-p #[257 "\211\206 `Sf\300=\203 \211S\206 `Sf\301=\2063 \212\302!A@\211\2050 \211b\210\303\304!\2050 \305\225=\262)\207" [39 35 syntax-ppss looking-at "(\\(cl-\\)?\\(?:callf2?\\|de\\(?:clare-function\\|f\\(?:advice\\|setf\\)\\)\\|function\\)[ 	\n]+" 0] 4 (#$ . 14959)])
#@109 Return non-nil if the form at POS is not evaluated.
It can be quoted, or be inside a quoted form.

(fn POS)
(defalias 'elisp--form-quoted-p #[257 "\212\300!\3018\206K `\302\3038!B\304\203I \211\204I \211A\262\242b\210\304f\305=\2045 \306\304x\210`Sf\307>\203; \310\262\202 `Sf\311=\203 \304\262\202 \262\262)\207" [syntax-ppss 8 reverse 9 nil 91 " " (39 96 8216) t 44] 6 (#$ . 15354)])
#@12 

(fn STR)
(defalias 'elisp--company-doc-buffer #[257 "\301!\302 \303\304\305\306\307!\310\"\311$\216\312\3131V \314!\203$ \315!\210\202P \316!\2031 \317!\210\202P \320!\203> \321!\210\202P \322!\203K \323!\210\202P \324\325\326\"\210\327 0\202X \210\326*\262\207" [display-buffer-overriding-action intern-soft current-window-configuration make-byte-code 0 "\301\300!\207" vconcat vector [set-window-configuration] 2 (nil (inhibit-switch-frame . t)) (error) fboundp describe-function boundp describe-variable featurep describe-package facep describe-face signal user-error nil help-buffer] 9 (#$ . 15759)])
#@12 

(fn STR)
(defalias 'elisp--company-doc-string #[257 "\300!\301!\203 \302\303\"\202 \304\305\303#\211;\205% \306\307\"\205% \310\311\"\207" [intern-soft fboundp documentation t documentation-property variable-documentation string-match ".*$" match-string 0] 6 (#$ . 16384)])
#@12 

(fn STR)
(defalias 'elisp--company-location #[257 "\300!\301!\203 \302\303\"\202= \304!\203 \302\305\"\202= \306!\2033 \307\310!\210\311\312\313!!!\314B\202= \315!\205= \302\316\"\207" [intern-soft fboundp find-definition-noselect nil boundp defvar featurep require find-func find-file-noselect find-library-name symbol-name 0 facep defface] 6 (#$ . 16674)])
#@385 Function used for `completion-at-point-functions' in `emacs-lisp-mode'.
If the context at point allows only a certain category of
symbols (e.g. functions, or variables) then the returned
completions are restricted to that category.  In contexts where
any symbol is possible (following a quote, for example),
functions are annotated with "<f>" via the
`:annotation-function' property.
(defalias 'elisp-completion-at-point #[0 "\305 p\306\307\310\311\312\"\313\"\314$\216\315!\210`\3161* \212\317\320!\210\321\322w\210`)0\202, \210\211\211d=\2067 \211fz\323\235?\205Y \3241W \212\211b\210\325\320!\210\326\322x\210`Y\205R `)0\202Y \210\206^ `Sf\327=\330!\205\331\331\332 8\203| \206u `Sf\333>\205\331\203\204 \211\203\303 \334!\203\231 \322	\335\336\337\340\341\342\343\344\257\n\202\244\211\203\256 \322	\335\345\346\347\337\340\341\342\343\344\257\f\202\244\322\350\n\351\352	\353\354$\"\337\340\341\342\343\344\257\202\244\212Sb\210\3551\357 \356\357!\210\320u\210\322f\211\327=\203\337 \327\202\351 \211z\360>\205\351 \361p!\2620\202\361 \210\322\362\363\364=\203\365\366\367\370\371\f\322#!\"D\202\237\372>\203s\212\3731\325\314!\210`W0\202!\210\322)\203-\365	\335\374F\202\237\375>\2048\211 \202\237\212Sb\210\327=\203H\356\357!\210\376\357!\210\377\201@ !)\203d\365	\335\353\337\340\341\342\343\344\257\n\202\237\322	\335\336\337\340\341\342\343\344\257\n\202\237\201A >\203\230\212Sb\210\327=\203\213\356\357!\210\376\357!\210\377\201@ !)\204\235\211 \202\237 \266\202\262)D@\204\261A\202\326f\206\271\201B z\201C >\203\307A@\202\322\351\201D \201E A@#AAB\244\262\266\205)\207" [emacs-lisp-mode-syntax-table obarray elisp--local-variables-completion-table macro-declarations-alist defun-declarations-alist syntax-table make-byte-code 0 "r\301q\210\302\300!)\207" vconcat vector [set-syntax-table] 2 set-syntax-table (scan-error) backward-sexp 1 "`',‘#" nil (32 34 40 41) (scan-error) forward-sexp "'’" 40 elisp--form-quoted-p 8 syntax-ppss (96 8216) elisp--expect-function-p :predicate fboundp :company-doc-buffer elisp--company-doc-buffer :company-docsig elisp--company-doc-string :company-location elisp--company-location #[257 "\300!\206 \301!\206 \302!\206 \303!\207" [boundp fboundp featurep symbol-plist] 3 "\n\n(fn SYM)"] :annotation-function #[257 "\300\301!!\205	 \302\207" [fboundp intern-soft " <f>"] 4 "\n\n(fn STR)"] completion-table-merge apply-partially completion-table-with-predicate boundp strict (error) up-list -1 (119 95) read #[0 "\301\302\303\304\305\306\307\310\311\257\n\207" [obarray t :predicate boundp :company-doc-buffer elisp--company-doc-buffer :company-docsig elisp--company-doc-string :company-location elisp--company-location] 10] #[0 "\301\302\303\304\305\306\307\310\311\257\n\207" [obarray nil :predicate fboundp :company-doc-buffer elisp--company-doc-buffer :company-docsig elisp--company-doc-string :company-location elisp--company-location] 10] declare t mapcar #[257 "\300@!\207" [symbol-name] 3 "\n\n(fn X)"] delete-dups append (condition-case-unless-debug condition-case) (error) #[257 "\211\300N\207" [error-conditions] 3 "\n\n(fn SYM)"] (let* let 40) forward-symbol looking-at "\\_<let\\*?\\_>" (let* let 40) 32 (32 62) completion-table-with-terminator " "] 20 (#$ . 17053)])
#@28 

(fn &optional PREDICATE)
(defalias 'lisp-completion-at-point #[256 "\300 \207" [elisp-completion-at-point] 2 (#$ . 20370)])
(make-obsolete 'lisp-completion-at-point 'elisp-completion-at-point "25.1")
(defalias 'elisp--xref-backend #[0 "\300\207" [elisp] 1])
(defvar elisp--xref-format (byte-code "\300\301\302\303\304\305%\210\301\306\307\304\310%\210\211\207" ["(%s %s)" put-text-property 1 3 face font-lock-keyword-face 4 6 font-lock-function-name-face] 7))
(defvar elisp--xref-format-extra (byte-code "\300\301\302\303\304\305%\210\301\306\307\304\310%\210\211\207" ["(%s %s %s)" put-text-property 1 3 face font-lock-keyword-face 4 6 font-lock-function-name-face] 7))
#@254 Return an xref for TYPE SYMBOL in FILE.
TYPE must be a type in `find-function-regexp-alist' (use nil for
'defun).  If SUMMARY is non-nil, use it for the summary;
otherwise build the summary from TYPE and SYMBOL.

(fn TYPE SYMBOL FILE &optional SUMMARY)
(defalias 'elisp--xref-make-xref #[1027 "\301\206 \302\206 \303#\304\305$\"\207" [elisp--xref-format xref-make format defun record xref-elisp-location] 11 (#$ . 21054)])
#@294 List of functions to be run from `elisp--xref-find-definitions' to add additional xrefs.
Called with one arg; the symbol whose definition is desired.
Each function should return a list of xrefs, or nil; the first
non-nil result supercedes the xrefs produced by
`elisp--xref-find-definitions'.
(defvar elisp-xref-find-def-functions nil (#$ . 21498))
(cl-generic-define-method 'xref-backend-definitions nil '((_backend (eql elisp)) identifier) nil #[514 "\300\301!\210\302!\211\205 \303!\207" [require find-func intern-soft elisp--xref-find-definitions] 5 "\n\n(fn BACKEND IDENTIFIER)"])
#@15 

(fn SYMBOL)
(defalias 'elisp--xref-find-definitions #[257 "\305\204 \211\203 \306\211A\262\242!\"\262\202 \210\211\2049\203U K\203U K9\203U \307!K\310\311\"\211\203F \312\305#B\262\203S \312\313#B\262\266\314!\203m \310\315\"\211\203l \312\315#B\262\210\316!\203\260\310\211K\"\305\211\203\256\317=\203\226 \312\305\320K\321\"#B\262\202\256\322\323\"\211\262\203\321 \324\325\"\203\321 \326\327\"\330!\310\331\"\332	\333\334P\335\336!\337Q$\312\331$B\262\266\202\256\340N\211\262\203\244\341!\n>\204\351 \342\343\340D\"\210\344H\211\203\205\211@\345!\341!>\204\342\343\346D\"\210\327H\305\347\n\341!>\204\342\343\346D\"\210\350H#\310\351\"\211\203=\211@\2064\211\323\232?\262A\266\202\202&\210\211\203|\204L\3508\203|\203i\332	\351A@$\312\351$\fB\262\f\210\202|\332	\351\352$\312\351$\fB\262\f\210\266A\266\202\202\354 \210\322\323\"\211\262\203\227\324\353\"\204\256\312\354#B\262\202\256\312\305#B\262\266\355!\203\371\310\356\"\211\203\370\211\317=\203\324\312\356\320\357\"#B\262\202\370\211\360\361O\362\230\203\351\312\356#B\262\202\370\f>\204\370\312\356#B\262\210\363!\203\3641\f\365\336!!0\202\210\305\211\203\312\366#B\262\210\211\207" [elisp-xref-find-def-functions elisp--xref-format-extra cl-struct-cl--generic-tags cl-struct-cl--generic-method-tags minor-mode-list nil append symbol-file find-lisp-object-file-name defun elisp--xref-make-xref defalias facep defface fboundp C-source help-C-file-name subr documentation t string-match "Constructor for objects of type `\\(.*\\)'" match-string 1 intern define-type format cl-defstruct "(" "(:constructor " symbol-name "))" cl--generic type-of signal wrong-type-argument 3 cl--generic-method-info cl--generic-method cl--generic-load-hist-format 2 cl-defmethod "()" "\n\n(fn ARG &rest ARGS)" cl-defgeneric boundp defvar var 0 4 "src/" featurep (error) find-library-name feature] 18 (#$ . 22093)])
(cl-generic-define-method 'xref-backend-apropos nil '((_backend (eql elisp)) regexp) nil #[514 "\300\301\302\303!\211\203 \211@\304!B\262A\266\202\202 \210\211\237\262\"\207" [apply nconc nil apropos-internal elisp--xref-find-definitions] 9 "\n\n(fn BACKEND REGEXP)"])
(defvar elisp--xref-identifier-completion-table (apply-partially 'completion-table-with-predicate obarray #[257 "\300!\206 \301!\206 \302!\206 \303!\207" [boundp fboundp featurep facep] 3 "\n\n(fn SYM)"] 'strict))
(cl-generic-define-method 'xref-backend-identifier-completion-table nil '((_backend (eql elisp))) nil #[257 "\207" [elisp--xref-identifier-completion-table] 2 "\n\n(fn BACKEND)"])
#@78 compiler-macro for inlining `xref-elisp-location-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-elisp-location-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-elisp-location-p (and (memq (type-of cl-x) cl-struct-xref-elisp-location-tags) t)) nil] 9 (#$ . 24812)])
(put 'xref-elisp-location-p 'compiler-macro 'xref-elisp-location-p--cmacro)
#@13 

(fn CL-X)
(defalias 'xref-elisp-location-p #[257 "\301!>\205	 \302\207" [cl-struct-xref-elisp-location-tags type-of t] 3 (#$ . 25201)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put xref-elisp-location-p side-effect-free error-free put xref-elisp-location cl-deftype-satisfies] 5)
#@83 compiler-macro for inlining `xref-elisp-location-symbol'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-elisp-location-symbol--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-elisp-location-symbol (or (xref-elisp-location-p cl-x) (signal 'wrong-type-argument (list 'xref-elisp-location cl-x))) (aref cl-x 1)) nil] 9 (#$ . 25512)])
(put 'xref-elisp-location-symbol 'compiler-macro 'xref-elisp-location-symbol--cmacro)
#@132 Access slot "symbol" of `(xref-elisp-location (:constructor xref-make-elisp-location (symbol type file)))' struct CL-X.

(fn CL-X)
(defalias 'xref-elisp-location-symbol #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-xref-elisp-location-tags type-of signal wrong-type-argument xref-elisp-location 1] 5 (#$ . 25973)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-elisp-location-symbol side-effect-free t] 4)
#@81 compiler-macro for inlining `xref-elisp-location-type'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-elisp-location-type--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-elisp-location-type (or (xref-elisp-location-p cl-x) (signal 'wrong-type-argument (list 'xref-elisp-location cl-x))) (aref cl-x 2)) nil] 9 (#$ . 26418)])
(put 'xref-elisp-location-type 'compiler-macro 'xref-elisp-location-type--cmacro)
#@130 Access slot "type" of `(xref-elisp-location (:constructor xref-make-elisp-location (symbol type file)))' struct CL-X.

(fn CL-X)
(defalias 'xref-elisp-location-type #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-xref-elisp-location-tags type-of signal wrong-type-argument xref-elisp-location 2] 5 (#$ . 26869)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-elisp-location-type side-effect-free t] 4)
#@81 compiler-macro for inlining `xref-elisp-location-file'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-elisp-location-file--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-elisp-location-file (or (xref-elisp-location-p cl-x) (signal 'wrong-type-argument (list 'xref-elisp-location cl-x))) (aref cl-x 3)) nil] 9 (#$ . 27308)])
(put 'xref-elisp-location-file 'compiler-macro 'xref-elisp-location-file--cmacro)
#@130 Access slot "file" of `(xref-elisp-location (:constructor xref-make-elisp-location (symbol type file)))' struct CL-X.

(fn CL-X)
(defalias 'xref-elisp-location-file #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-xref-elisp-location-tags type-of signal wrong-type-argument xref-elisp-location 3] 5 (#$ . 27759)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put xref-elisp-location-file side-effect-free t defalias copy-xref-elisp-location copy-sequence] 4)
#@104 compiler-macro for inlining `make-xref-elisp-location'.

(fn CL-WHOLE &cl-quote &key SYMBOL TYPE FILE)
(defalias 'make-xref-elisp-location--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203= \211@\304>\203& \211AA\262\202 \305>A@\2034 \306\262\202 \307\310@\"\210\202 \210\311\312\313\306\306&\207" [plist-member :symbol :type :file (:symbol :type :file :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:symbol :type :file)" cl--defsubst-expand (symbol type file) (cl-block make-xref-elisp-location (record 'xref-elisp-location symbol type file))] 14 (#$ . 28257)])
(put 'make-xref-elisp-location 'compiler-macro 'make-xref-elisp-location--cmacro)
#@84 Constructor for objects of type `xref-elisp-location'.

(fn &key SYMBOL TYPE FILE)
(defalias 'make-xref-elisp-location #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203= \211@\304>\203& \211AA\262\202 \305>A@\2034 \306\262\202 \307\310@\"\210\202 \210\311\312$\207" [plist-member :symbol :type :file (:symbol :type :file :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:symbol :type :file)" record xref-elisp-location] 9 (#$ . 28971)])
(byte-code "\300\301\302\303#\300\207" [function-put make-xref-elisp-location side-effect-free t] 4)
#@93 compiler-macro for inlining `xref-make-elisp-location'.

(fn CL-WHOLE-ARG SYMBOL TYPE FILE)
(defalias 'xref-make-elisp-location--cmacro #[1028 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (symbol type file) (cl-block xref-make-elisp-location (record 'xref-elisp-location symbol type file)) nil] 13 (#$ . 29562)])
(put 'xref-make-elisp-location 'compiler-macro 'xref-make-elisp-location--cmacro)
#@79 Constructor for objects of type `xref-elisp-location'.

(fn SYMBOL TYPE FILE)
(defalias 'xref-make-elisp-location #[771 "\300\301$\207" [record xref-elisp-location] 8 (#$ . 29978)])
(byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&	\210\314\315\311\316\311\317%\210\314\320\311\321\311\322%\207" [function-put xref-make-elisp-location side-effect-free t cl-struct-define xref-elisp-location "Location of an Emacs Lisp symbol definition." cl-structure-object record nil ((cl-tag-slot) (symbol) (type) (file)) cl-struct-xref-elisp-location-tags cl-generic-define-method xref-location-marker ((l xref-elisp-location)) #[257 "\211\300H\301H\302H\211\303#r\211@q\210\212\211A\206 eb\210\304 *\262\266\203\207" [1 2 3 find-function-search-for-symbol point-marker] 11 "\n\n(fn L)"] xref-location-group ((l xref-elisp-location)) #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-xref-elisp-location-tags type-of signal wrong-type-argument xref-elisp-location 3] 5 "\n\n(fn L)"]] 11)
(defalias 'elisp-load-path-roots #[0 "\302\300!\203\n 	B\207	\207" [package-user-dir load-path boundp] 2])
#@101 Keymap for Lisp Interaction mode.
All commands in `lisp-mode-shared-map' are inherited by this map.
(defvar lisp-interaction-mode-map (byte-code "\301 \301\302!\303\"\210\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\315\316\302B#\210\315\317\320#\210\315\321\322#\210\315\323\324#\210\315\325\326#\210\315\327\330#\210\207" [lisp-mode-shared-map make-sparse-keymap "Lisp-Interaction" set-keymap-parent define-key "" eval-defun "" indent-pp-sexp "	" completion-at-point "\n" eval-print-last-sexp bindings--define-key [menu-bar lisp-interaction] [eval-defun] (menu-item "Evaluate Defun" eval-defun :help "Evaluate the top-level form containing point, or after point") [eval-print-last-sexp] (menu-item "Evaluate and Print" eval-print-last-sexp :help "Evaluate sexp before point; print value into current buffer") [edebug-defun-lisp-interaction] (menu-item "Instrument Function for Debugging" edebug-defun :help "Evaluate the top level form point is in, stepping through with Edebug" :keys "C-u C-M-x") [indent-pp-sexp] (menu-item "Indent or Pretty-Print" indent-pp-sexp :help "Indent each line of the list starting just after point, or prettyprint it") [complete-symbol] (menu-item "Complete Lisp Symbol" completion-at-point :help "Perform completion on Lisp symbol preceding point")] 7) (#$ . 31118))
(defvar lisp-interaction-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [lisp-interaction-mode-hook variable-documentation put "Hook run after entering Lisp Interaction mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp lisp-interaction-mode-map definition-name lisp-interaction-mode] 4)
(defvar lisp-interaction-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204 \302\300\301\303\304!#\210\305\306!\204 \302\306\307\310#\210\311\312 !\210\306\301N\204- \302\306\301\303\313!#\210\302\310\314\315#\207" [lisp-interaction-mode-map variable-documentation put purecopy "Keymap for `lisp-interaction-mode'." boundp lisp-interaction-mode-syntax-table definition-name lisp-interaction-mode (lambda (#1=#:def-tmp-var) (defvar lisp-interaction-mode-syntax-table #1#)) make-syntax-table "Syntax table for `lisp-interaction-mode'." derived-mode-parent emacs-lisp-mode] 5)
#@647 Major mode for typing and evaluating Lisp forms.
Like Lisp mode except that \[eval-print-last-sexp] evals the Lisp expression
before point, and prints its value into the buffer, advancing point.
Note that printing is controlled by `eval-expression-print-length'
and `eval-expression-print-level'.

Commands:
Delete converts tabs to spaces as it moves back.
Paragraphs are separated only by blank lines.
Semicolons start comments.

\{lisp-interaction-mode-map}

In addition to any hooks its parent mode `emacs-lisp-mode' might have run,
this mode runs the hook `lisp-interaction-mode-hook', as the final or penultimate step
during initialization.
(defalias 'lisp-interaction-mode #[0 "\305\300!\210\306\307 \210\310\311\307\312N\203 \313\310\312\307\312N#\210\314!\204' \315\316 \"\210\317\f!\211\2035 \211\320 =\203; \321\f\322 \"\210\210\323!\210\324\f!\210)\325\326!\207" [delay-mode-hooks major-mode mode-name lisp-interaction-mode-map lisp-interaction-mode-syntax-table make-local-variable t emacs-lisp-mode lisp-interaction-mode "Lisp Interaction" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table use-local-map set-syntax-table run-mode-hooks lisp-interaction-mode-hook] 5 (#$ . 33490) nil])
(defconst emacs-list-byte-code-comment-re "\\(#\\)@\\([0-9]+\\) \\(?:[^(]\\|([^\"]\\)")
#@101 Try to syntactically mark the #@NNN ....^_ docstrings in byte-code files.

(fn END &optional POINT)
(defalias 'elisp--byte-code-comment #[513 "\301 \3028\205z \3038f\304=\205z \212\3038b\210\305!\205\" \306\307\310!!)\211\205x \310\225\311!\211\\b\210\312\311`!#\211\313U?\205_ \211V\203J \262\211[u\210\211\313V\203X \211\202\\ S\314]\262\315\262\2042 \266`X\203v \316`S`\317\320$\202x b\266\202\207" [emacs-list-byte-code-comment-re syntax-ppss 4 8 35 looking-at string-to-number match-string 2 position-bytes - 0 1 t put-text-property syntax-table (2097164)] 11 (#$ . 34880)])
#@18 

(fn START END)
(defalias 'elisp-byte-code-syntax-propertize #[514 "b\210\300`\"\210b\210`W\2051 \301\302\303#\2051 \304\224\203 \305\304\224\304\225\306\307$\210\300`\"\210\202 \207" [elisp--byte-code-comment re-search-forward "\\(#\\)@\\([0-9]+\\) \\(?:[^(]\\|([^\"]\\)" t 1 put-text-property syntax-table (2097163)] 9 (#$ . 35485)])
(add-to-list 'auto-mode-alist '("\\.elc\\'" . elisp-byte-code-mode))
(defvar elisp-byte-code-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [elisp-byte-code-mode-hook variable-documentation put "Hook run after entering Elisp-Byte-Code mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp elisp-byte-code-mode-map definition-name elisp-byte-code-mode] 4)
(defvar elisp-byte-code-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204 \303\307\310\311#\210\312\313 !\210\307\302N\204- \303\307\302\304\314!#\210\306\300!\204B \303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P \303\300\302\304\320!#\210\303\311\321\322#\207" [elisp-byte-code-mode-abbrev-table elisp-byte-code-mode-map variable-documentation put purecopy "Keymap for `elisp-byte-code-mode'." boundp elisp-byte-code-mode-syntax-table definition-name elisp-byte-code-mode (lambda (#1=#:def-tmp-var) (defvar elisp-byte-code-mode-syntax-table #1#)) make-syntax-table "Syntax table for `elisp-byte-code-mode'." (lambda (#1#) (defvar elisp-byte-code-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `elisp-byte-code-mode'." derived-mode-parent emacs-lisp-mode] 5)
#@243 Major mode for *.elc files.

In addition to any hooks its parent mode `emacs-lisp-mode' might have run,
this mode runs the hook `elisp-byte-code-mode-hook', as the final or penultimate step
during initialization.

\{elisp-byte-code-mode-map}
(defalias 'elisp-byte-code-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\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324\325\"\204R =\204R \326\325C#\210\327!\210\330\f!\210\306\331!\210\332\306\333!\210\334)\335\336!\207" [delay-mode-hooks major-mode mode-name elisp-byte-code-mode-map elisp-byte-code-mode-syntax-table elisp-byte-code-mode-abbrev-table make-local-variable t emacs-lisp-mode elisp-byte-code-mode "Elisp-Byte-Code" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table open-paren-in-column-0-is-defun-start nil syntax-propertize-function elisp-byte-code-syntax-propertize run-mode-hooks elisp-byte-code-mode-hook local-abbrev-table] 5 (#$ . 37187) nil])
#@587 Evaluate sexp before point; print value into current buffer.

Normally, this function truncates long output according to the value
of the variables `eval-expression-print-length' and
`eval-expression-print-level'.  With a prefix argument of zero,
however, there is no such truncation.  Such a prefix argument
also causes integers to be printed in several additional formats
(octal, hexadecimal, and character).

If `eval-expression-debug-on-error' is non-nil, which is the default,
this command arranges for all errors to enter the debugger.

(fn &optional EVAL-LAST-SEXP-ARG-INTERNAL)
(defalias 'eval-print-last-sexp #[256 "p\301 \210\302\206 \303!\210\301 )\207" [standard-output terpri eval-last-sexp t] 3 (#$ . 38363) "P"])
#@290 Set up text properties for the output of `elisp--eval-last-sexp'.
BEG and END are the start and end of the output in current-buffer.
VALUE is the Lisp value printed, ALT1 and ALT2 are strings for the
alternative printed representations that can be displayed.

(fn BEG END VALUE ALT1 ALT2)
(defalias 'last-sexp-setup-props #[1285 "\300 \301\302\303#\210\301\304\305#\210\301\306\303#\210\307\310E\311\312\313\314BBBBBB#\207" [make-sparse-keymap define-key "" elisp-last-sexp-toggle-display [down-mouse-2] mouse-set-point [mouse-2] add-text-properties printed-value mouse-face highlight keymap (help-echo "RET, mouse-2: toggle abbreviated display" rear-nonsticky (mouse-face keymap help-echo printed-value))] 16 (#$ . 39101)])
#@91 Toggle between abbreviated and unabbreviated printed representations.

(fn &optional ARG)
(defalias 'elisp-last-sexp-toggle-display #[256 "\214~\210\301`\302\"\211\205L \303d`T^\302\"\206 `\304`\302\"\206 `p`|\210A@c\210U\2045 `S\262\305`@\306	8	A@%\210d^b)\266\204\262)\207" [standard-output get-text-property printed-value previous-single-property-change next-single-char-property-change last-sexp-setup-props 2] 12 (#$ . 39848) "P"])
#@128 Return a string representing CHAR as a character rather than as an integer.
If CHAR is not a character, return nil.

(fn CHAR)
(defalias 'prin1-char #[257 "\211\250\205u \301!\205u \302!\303!\304\305>\2033 \306\307\"\310U\2033 \304\311\211\226\")\2043 \226\262\304\262\3121` \313\314\315\316#\317>\203K \320\321\"\202X \322=\203U \323\202X \320!Q\211\2620\202d \210\202e \210\211\205s \324!@U\205s \211\266\203\207" [case-fold-search eventp event-basic-type event-modifiers nil shift logand 33554432 0 char-equal (error) "?" mapconcat #[257 "\211\300=\203 \301\207\302\303\304!\305H\226\306#\207" [super "\\s-" string 92 symbol-name 0 45] 5 "\n\n(fn MODIF)"] "" (59 40 41 123 125 91 93 34 39 92) string 92 127 "\\C-?" read-from-string] 9 (#$ . 40309)])
#@31 Return sexp before the point.
(defalias 'elisp--preceding-sexp #[0 "`\302\303\212\304 p\305\306\307\310\311\"\312\"\313$\216\314!\210h\315=\203) \316u\210`\262\2028 g\317=\2045 h\317=\2038 \320\262h\321U\203_ \212\316u\210\322\323!\210\324u\210\325\326\327!)\262\205V `)\211\203^ \211b\210\210\330\316!\210h\331=\203u \316u\210h\332=\203u \316u\210`eTV\203\210 \333\334`\313Z\"\203\210 \335u\210h\336=\203\243 \303\212\337\303x\210\327\340!\262)\211\203\242 \330\316!\210\210\214g=\203\255 \303u\210\327\341!\203\267 \306\225b\210e}\210\342p!\262\242\343=\203\322 \344\345\346\347BBBD\262*\266\202)\207" [emacs-lisp-mode-syntax-table inhibit-changing-match-data 8216 nil syntax-table make-byte-code 0 "r\301q\210\302\300!)\207" vconcat vector [set-syntax-table] 2 set-syntax-table 8217 -1 39 96 125 skip-syntax-backward "w-" -3 "\\\\N{" t looking-at forward-sexp 92 63 looking-back "#s" -2 61 "0-9#=" "\\(#[0-9]+=\\)+" ",@?" read interactive call-interactively lambda (&rest args) (args)] 12 (#$ . 41089)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias preceding-sexp elisp--preceding-sexp nil make-obsolete "25.1"] 4)
#@352 Evaluate sexp before point; print value in the echo area.
If EVAL-LAST-SEXP-ARG-INTERNAL is non-nil, print output into
current buffer.  If EVAL-LAST-SEXP-ARG-INTERNAL is `0', print
output with no limit on the length and level of lists, and
include additional formats for integers (octal, hexadecimal, and
character).

(fn EVAL-LAST-SEXP-ARG-INTERNAL)
(defalias 'elisp--eval-last-sexp #[257 "\301!\211@A\211@A\211@A\302\303\304\305 !\"\203# p\202$ \306$\266\203\207" [lexical-binding eval-expression-get-print-arguments elisp--eval-last-sexp-print-value eval eval-sexp-add-defvars elisp--preceding-sexp t] 16 (#$ . 42253)])
#@60 

(fn VALUE OUTPUT &optional NO-TRUNCATE CHAR-PRINT-LIMIT)
(defalias 'elisp--eval-last-sexp-print-value #[1026 "\305\211\306!*?\205 ?\205 \f`\305\307\"\205( \310!\211\2032 \311	\"\210\210`\262\312!\203] 	\204E \203] \313\"\230\204] \314\n\313\"%\210+\207" [print-level print-length eval-expression-print-maximum-character eval-expression-print-length eval-expression-print-level nil prin1-to-string prin1 eval-expression-print-format princ bufferp buffer-substring-no-properties last-sexp-setup-props] 16 (#$ . 42895)])
(defvar elisp--eval-last-sexp-fake-value (make-symbol "t"))
#@170 Prepend EXP with all the `defvar's that precede it in the buffer.
POS specifies the starting position where EXP was found and defaults to point.

(fn EXP &optional POS)
(defalias 'eval-sexp-add-defvars #[513 "\301!\262\204 \207\212\211\204 `\262\302eb\210\303\304\305#\203? \306\307\310!!\311!\204; \212\312\313\224!@\313U)\203; \211B\262\210\202 \314\315\316\317\"C\"B\262)\207" [lexical-binding macroexpand-all nil re-search-forward "(def\\(?:var\\|const\\|custom\\)[ 	\n]+\\([^; '()\n	]+\\)" t intern match-string 1 special-variable-p syntax-ppss 0 progn append mapcar #[257 "\300D\207" [defvar] 3 "\n\n(fn V)"]] 8 (#$ . 43519)])
#@780 Evaluate sexp before point; print value in the echo area.
Interactively, with a non `-' prefix argument, print output into
current buffer.

Normally, this function truncates long output according to the
value of the variables `eval-expression-print-length' and
`eval-expression-print-level'.  With a prefix argument of zero,
however, there is no such truncation.
Integer values are printed in several formats (decimal, octal,
and hexadecimal).  When the prefix argument is -1 or the value
doesn't exceed `eval-expression-print-maximum-character', an
integer value is also printed as a character of that codepoint.

If `eval-expression-debug-on-error' is non-nil, which is the default,
this command arranges for all errors to enter the debugger.

(fn EVAL-LAST-SEXP-ARG-INTERNAL)
(defalias 'eval-last-sexp #[257 "\204 \303!\207	\303!\n)B\211A	=\204 \211A\211@\207" [eval-expression-debug-on-error elisp--eval-last-sexp-fake-value debug-on-error elisp--eval-last-sexp] 4 (#$ . 44175) "P"])
#@235 Treat some expressions specially.
Reset the `defvar' and `defcustom' variables to the initial value.
(For `defcustom', use the :set function if there is one.)
Reinitialize the face according to the `defface' specification.

(fn FORM)
(defalias 'elisp--eval-defun-1 #[257 "\211<\204 \207\211@\302=\2031 \211\243\243\2031 \303A@!\2031 \304\302A@\305\306\233BBB\307A@\3108EE\207\211@\311=\203p \312\313A@\"!\203p \314>\211\203X \211\243\242\262\315!\204X \305\262\211\206] \316\313A@\"\313\211\3108\"!\"\266\207\211@\317=\203\220 \313A@\"\320	\"\321\322\305#\210\321\323\305#\266\207\211@\304=\203\237 \304\324\325A\"B\207\207" [lexical-binding face-new-frame-defaults defvar boundp progn nil 3 setq-default 2 custom-declare-variable default-boundp eval :set functionp set-default custom-declare-face assq-delete-all put face-defface-spec face-override-spec mapcar elisp--eval-defun-1] 8 (#$ . 45177)])
#@366 Evaluate defun that point is in or before.
The value is displayed in the echo area.
If the current defun is actually a call to `defvar',
then reset the variable using the initial value expression
even if the variable already has some other value.
(Normally `defvar' does not change the variable's value
if it already has a value.)

Return the result of evaluation.
(defalias 'elisp--eval-defun #[0 "	\n\212\306\307\211C\307\212\310 \210\311 \210`\262\312p!\262`\240\210)\313\314\315!!!\316\242\317\320\321\322\323\n\"\324\"\325\326%$\266)\266,\327@!\211\203S \330!\210\210@\207" [eval-expression-debug-on-error eval-expression-print-length eval-expression-print-level print-level print-length debug-on-error t nil end-of-defun beginning-of-defun read eval-sexp-add-defvars elisp--eval-defun-1 macroexpand eval-region make-byte-code 257 "\300\242b\210\301\207" vconcat vector [] 2 "\n\n(fn IGNORE)" eval-expression-print-format princ standard-output values] 16 (#$ . 46110)])
#@1137 Evaluate the top-level form containing point, or after point.

If the current defun is actually a call to `defvar' or `defcustom',
evaluating it this way resets the variable using its initial value
expression (using the defcustom's :set function if there is one), even
if the variable already has some other value.  (Normally `defvar' and
`defcustom' do not alter the value if there already is one.)  In an
analogous way, evaluating a `defface' overrides any customizations of
the face, so that it becomes defined exactly as the `defface' expression
says.

If `eval-expression-debug-on-error' is non-nil, which is the default,
this command arranges for all errors to enter the debugger.

With a prefix argument, instrument the code for Edebug.

If acting on a `defun' for FUNCTION, and the function was
instrumented, `Edebug: FUNCTION' is printed in the echo area.  If not
instrumented, just FUNCTION is printed.

If not acting on a `defun', the result of evaluation is displayed in
the echo area.  This display is controlled by the variables
`eval-expression-print-length' and `eval-expression-print-level',
which see.

(fn EDEBUG-IT)
(defalias 'eval-defun #[257 "\211\203 \304\305!\210\306?!\207	\204 \307 \207\310\211\n\307 \262\262)\n=\204( \207" [edebug-all-defs eval-expression-debug-on-error elisp--eval-last-sexp-fake-value debug-on-error require edebug eval-defun elisp--eval-defun nil] 5 (#$ . 47118) "P"])
#@278 Bookkeeping; elements are as follows:
  0 - contains the last symbol read from the buffer.
  1 - contains the string last displayed in the echo area for variables,
      or argument string for functions.
  2 - `function' if function args, `variable' if variable documentation.
(defvar elisp--eldoc-last-data (make-vector 3 nil) (#$ . 48552))
#@60 `eldoc-documentation-function' (which see) for Emacs Lisp.
(defalias 'elisp-eldoc-documentation-function #[0 "\300 \301 \211\204\f \302\202* @=\203  \303\304\"\206* \305!\202* \305!\206* \303\304\"\207" [elisp--current-symbol elisp--fnsym-in-current-sexp nil apply elisp-get-fnsym-args-string elisp-get-var-docstring] 5 (#$ . 48900)])
#@207 Return a string containing the parameter list of the function SYM.
If SYM is a subr and no arglist is obtainable from the docstring
or elsewhere, return a 1-line docstring.

(fn SYM &optional INDEX PREFIX)
(defalias 'elisp-get-fnsym-args-string #[769 "\203 9\203 \302!\204 \303\202g \304H=\203) \305H\306=\203) \307H\202g \310\311!	\312#\303<\203: \202] \313\3141H \315\312\"0\202J \210\303\"\211\262\203Z \316@!\202] \317!\320\321!\306#\266\203\211\205\211 \322\206\210 \323\324	!\325\326!\203\204 \327\202\205 \330#\331P$\207" [elisp--eldoc-last-data advertised-signature-table fboundp nil 0 2 function 1 gethash indirect-function t help-split-fundoc (invalid-function) documentation substitute-command-keys help-function-arglist elisp--last-data-store elisp-function-argstring elisp--highlight-function-argument propertize symbol-name face functionp font-lock-function-name-face font-lock-keyword-face ": "] 13 (#$ . 49248)])
#@154 Highlight argument INDEX in ARGS list for function SYM.
In the absence of INDEX, just call `eldoc-docstring-format-sym-doc'.

(fn SYM ARGS INDEX PREFIX)
(defalias 'elisp--highlight-function-argument #[1028 "\302\303\304\305\306\307!\"\310\235A\211\203\325 GGZY\203\325 \302\211\311\n!\312\313!\212\314\302\313#\2052 \303\225)\203E \315\316\"\203E \317\302O\202e \212\302\314\320\313#\205b \307\321\317!\322\313#\262\211@A\203b \313\262\262)\211;\205} \205} \211\226\235?\205} \323!@\226\203\322 \230\204\322 \203\254 \212\324\325\326 \313#)\204\254 \315\327\"\203\254 \302\262\317\224\262\317\225\262\n\202\322 \203\322 \315\330\226\331Q\"\204\307 \315\330\331Q\"\203\322 \302\262\303\224\262\303\225\262\n)\266\203|\317Y\203|\315\332	#\203j\303\224\262\303\225\262\321\303	\"\211\333\230\203\317\262\202f\211\334\230\204f\211\335\230\204f\336\302\313\315#)\266\203\203)\211\323!@\230\204[\336	\317GSO\302\313\315#)\266\203\203a\337\340\"G\341U\203a\317V\203a\342\317\"\317=\203a\303\262\202fS\262\210\202\325 G\262S\262\343\262\303\262\202\325 \203\224\344	!\262\345\346D$\210\347\"\262\211\262\207" [case-fold-search inhibit-changing-match-data nil 0 eldoc-highlight-function-argument mapcar #[257 "\300\301\302#\207" [replace-regexp-in-string "\\`[(]\\|[)]\\'" ""] 5 "\n\n(fn X)"] split-string "&key" symbol-name current-word t re-search-backward string-match ":\\([^ ()]*\\)" 1 ":\\([^ ()\n]*\\)" match-string " " last re-search-forward ":.*" point-at-eol "&rest \\([^ ()]*\\)" "\\_<" "\\_>" "[^ ()]+" "&rest" "&optional" "&allow-other-keys" "\\.\\.\\.\\'" remove "..." 2 logand font-lock-warning-face copy-sequence add-text-properties face eldoc-docstring-format-sym-doc] 20 (#$ . 50214)])
#@12 

(fn SYM)
(defalias 'elisp-get-var-docstring #[257 "\211\204 \301\207\211\302H=\203 \303H\304=\203 \305H\207\306\307\310#\211\2051 \311\312!\313#\314\304#\262\207" [elisp--eldoc-last-data nil 0 2 variable 1 documentation-property variable-documentation t eldoc-docstring-format-sym-doc elisp--docstring-first-line font-lock-variable-name-face elisp--last-data-store] 7 (#$ . 52030)])
#@24 

(fn SYMBOL DOC TYPE)
(defalias 'elisp--last-data-store #[771 "\301I\210\302I\210\303I\210\207" [elisp--eldoc-last-data 0 1 2] 6 (#$ . 52433)])
#@12 

(fn DOC)
(defalias 'elisp--docstring-first-line #[257 "\211;\205D \300\301 \302\303\304\305\306!\307\"\310$\216\311\312\"\203  \303\225\202! \303\311\313\"\2030 \303\224O\202> \211\303U\203: \202> \314O\262)\262!\207" [substitute-command-keys match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 string-match "\\`\\*" "\n" nil] 9 (#$ . 52591)])
(defalias 'elisp--fnsym-in-current-sexp #[0 "\212\300 S\211\301W\203 \301\262`Sf\206 \301\302U?\205 \303 D\262)\207" [elisp--beginning-of-sexp 0 34 elisp--current-symbol] 3])
(defalias 'elisp--beginning-of-sexp #[0 "\301\302\3031E \3041% `\305\306!\210\305\307!\210`W\205 \307\211\262\2620\202( \310\262\210`\305\306!\210`W\2059 T\211\262\262\205A \202) 0\202H \310\262\210)\207" [parse-sexp-ignore-comments t 0 (error) (error) forward-sexp -1 1 nil] 5])
(defalias 'elisp--current-symbol #[0 "`f\211\205 \211z\300>\205 \301\302 !\207" [(119 95) intern-soft current-word] 3])
#@119 Return ARGLIST as a string enclosed by ().
ARGLIST is either a string, or a list of strings or symbols.

(fn ARGLIST)
(defalias 'elisp-function-argstring #[257 "\211;\203	 \211\202 \211<\204 \300\202 \301\302\303\"!\211\203, \304\305\"\203, \306\307\310\211$\202- \211\207" [nil substitute-command-keys help--make-usage-docstring toto string-match "\\`([^ )]+ ?" replace-match "(" t] 7 (#$ . 53590)])
#@88 A Flymake backend for `checkdoc'.
Calls REPORT-FN directly.

(fn REPORT-FN &rest ARGS)
(defalias 'elisp-flymake-checkdoc #[385 "\304C\305\306\307\310\311!\312\"\313\314%\304\211\315\316!\317\216\212\3201% \321\322!0\202) \210\202* \210.\242\304\211\211\211\211\211:\203r @\262\211A\262\242\262\211A\262\242\262\211A\262\242\262@\262\323p\324\n%B\262A\262\2025 \211\237\266\207!\210\211\242\207" [checkdoc-create-error-function checkdoc-autofix-flag checkdoc-generate-compile-warnings-flag checkdoc-diagnostic-buffer nil make-byte-code 1027 "\300F\300\242B\240\210\301\207" vconcat vector [nil] 9 "\n\n(fn TEXT START END &optional UNFIXABLE)" generate-new-buffer " *checkdoc-temp*" #[0 "\301!\207" [checkdoc-diagnostic-buffer kill-buffer] 2] (error) checkdoc-current-buffer t flymake-make-diagnostic :note] 18 (#$ . 54003)])
#@46 

(fn REPORT-FN SOURCE-BUFFER OUTPUT-BUFFER)
(defalias 'elisp-flymake--byte-compile-done #[771 "rq\210\212\214~\210rq\210eb\210\300\301!\210\302\303 !)\211\304\211\211\211\211\211\211\211:\203\210 @\262\211A\262\242\262\211A\262\242\262\211A\262\242\262@\262b\210`dW\203W `\202Y \305 \262\306 \307\310!A\206e d^\262\311pU\203u S\202v 	\f%B\262A\262	\202\" \211\237\266\212!+\207" [search-forward ":elisp-flymake-output-start" read point-marker nil line-beginning-position line-end-position bounds-of-thing-at-point sexp flymake-make-diagnostic] 20 (#$ . 54872)])
#@61 Buffer-local process started for byte-compiling the buffer.
(defvar elisp-flymake--byte-compile-process nil (#$ . 55475))
(make-variable-buffer-local 'elisp-flymake--byte-compile-process)
#@192 A Flymake backend for elisp byte compilation.
Spawn an Emacs process that byte-compiles a file representing the
current buffer state and calls REPORT-FN when done.

(fn REPORT-FN &rest ARGS)
(defalias 'elisp-flymake-byte-compile #[385 "\203 \305!\203 \306!\210\307\310!p\214~\210\311ed\312\313%\210)\314\315!\316\317\310\320\321\322	\n\"\323\324\325\326\327\257\330\331\332\333\334\335\336\337$\340\"\341\342%&\n\f\210\343\262\207" [elisp-flymake--byte-compile-process invocation-name invocation-directory default-directory null-device process-live-p kill-process make-temp-file "elisp-flymake-byte-compile" write-region nil nomessage generate-new-buffer " *elisp-flymake-byte-compile*" make-process :name :buffer :command expand-file-name "-Q" "--batch" "-L" "-f" "elisp-flymake--batch-compile-for-flymake" :connection-type pipe :sentinel make-byte-code 514 "\305!\306=\205I \307\310\311\312\313\301\303\"\314\"\315$\216\316\302!\203& r\302q\210\f)=\204/ \317\320\321\322$\202H \323!\310U\203? \324\300\302\303#\202H \300\325\326\327\330\"#)\207" vconcat vector [elisp-flymake--byte-compile-process process-status exit make-byte-code 0 "\3021 \303\300!0\202 \210\202 \210\304\301!\207" vconcat vector [(error) delete-file kill-buffer] 2 buffer-live-p flymake--log-1 :warning elisp-mode "byte-compile process %s obsolete" process-exit-status elisp-flymake--byte-compile-done :panic :explanation format "byte-compile process %s died"] 9 "\n\n(fn PROC EVENT)" t] 24 (#$ . 55670)])
#@148 Helper for `elisp-flymake-byte-compile'.
Runs in a batch-mode Emacs.  Interactively use variable
`buffer-file-name' for FILE.

(fn &optional FILE)
(defalias 'elisp-flymake--batch-compile-for-flymake #[256 "\211\206 @\304C\305\306!\307\310\311\312\313!\314\"\315\316%\304C\307\317\320\312\313!\321\"\322\323%\307\324\325\312\313!\326\"\327$\216\330!\210)\331\332!\210\333 \210\334\242!+\207" [command-line-args-left byte-compile-log-buffer byte-compile-dest-file-function byte-compile-log-warning-function nil generate-new-buffer " *dummy-byte-compile-log-buffer*" make-byte-code 257 "\300\301\302!!\240\207" vconcat vector [make-temp-file file-name-nondirectory] 5 "\n\n(fn SOURCE)" 1025 "\300F\300\242B\240\210\301\207" [t] 9 "\n\n(fn STRING &optional POSITION FILL LEVEL)" 0 "\3021 \303\300\242!\210\304	!0\207\210\305\207" [byte-compile-log-buffer (error) delete-file kill-buffer nil] 2 byte-compile-file prin1 :elisp-flymake-output-start terpri pp] 10 (#$ . 57186) (list buffer-file-name)])
(provide 'elisp-mode)
