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



(byte-code "\300\301\302\303#\210\304\211\203( \211@\301N\203! \302N\204! \305\302\301N#\210A\266\202\202 \210\306\301\302\307#\207" [defvaralias crm-default-separator crm-separator nil (saved-value saved-variable-comment) put make-obsolete-variable "29.1"] 7)#@154 Separator regexp used for separating strings in `completing-read-multiple'.
It should be a regexp that does not match the list of completion candidates.
(defvar crm-separator "[ 	]*,[ 	]*" (#$ . 351))#@106 Local keymap for minibuffer multiple input with completion.
Analog of `minibuffer-local-completion-map'.
(defvar crm-local-completion-map (define-keymap :parent minibuffer-local-completion-map "<remap> <minibuffer-complete>" 'crm-complete "<remap> <minibuffer-complete-word>" 'crm-complete-word "<remap> <minibuffer-completion-help>" 'crm-completion-help) (#$ . 558))#@126 Local keymap for minibuffer multiple input with exact match completion.
Analog of `minibuffer-local-must-match-map' for crm.
(defvar crm-local-must-match-map (define-keymap :parent minibuffer-local-must-match-map "<remap> <minibuffer-complete>" 'crm-complete "<remap> <minibuffer-complete-word>" 'crm-complete-word "<remap> <minibuffer-completion-help>" 'crm-completion-help "<remap> <minibuffer-complete-and-exit>" 'crm-complete-and-exit) (#$ . 932))#@155 An alist whose elements' cars are strings, or an obarray.
This is a table used for completion by `completing-read-multiple' and its
supporting functions.
(defvar crm-completion-table nil (#$ . 1390))#@606 Function used by `completing-read-multiple' to compute completion values.
The value of STRING is the string to be completed.

The value of PREDICATE is a function to filter possible matches, or
nil if none.

The value of FLAG is used to specify the type of completion operation.
A value of nil specifies `try-completion'.  A value of t specifies
`all-completions'.  A value of lambda specifies a test for an exact match.

For more information on STRING, PREDICATE, and FLAG, see the Elisp
Reference sections on “Programmed Completion” and “Basic Completion
Functions”.

(fn STRING PREDICATE FLAG)
(defalias 'crm--collection-fn #[771 "\302\303#\203 \302\225\262\202 \304\302O	\305O%\207" [crm-separator crm-completion-table 0 string-match completion-table-with-context nil] 10 (#$ . 1596)])#@101 Parse the minibuffer to find the current element.
Return the element's boundaries as (START . END).
(defalias 'crm--current-element #[0 "\301 \212\302\303#\203 \304\225\202 \211)\212\305\306\303#\203  \304\224\202! d)B\207" [crm-separator minibuffer-prompt-end re-search-backward t 0 re-search-forward nil] 6 (#$ . 2415)])#@95 Run BODY with BEG and END bound to the current element's boundaries.

(fn BEG END &rest BODY)
(defalias 'crm--completion-command '(macro . #[642 "\300\301\302B\303BEBB\207" [let* (crm--boundaries (crm--current-element)) ((car crm--boundaries)) ((cdr crm--boundaries))] 8 (#$ . 2748)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put crm--completion-command lisp-indent-function 2 put edebug-form-spec (sexp sexp body)] 5)#@75 Display a list of possible completions of the current minibuffer element.
(defalias 'crm-completion-help #[0 "\300 \211@A\301\"\266\302\207" [crm--current-element minibuffer-completion-help nil] 6 (#$ . 3197) nil])#@183 Complete the current element.
If no characters can be completed, display a list of possible completions.

Return t if the current element is now a valid match; otherwise return nil.
(defalias 'crm-complete #[0 "\302 \211@A\303	$\207" [minibuffer-completion-table minibuffer-completion-predicate crm--current-element completion-in-region] 8 (#$ . 3422) nil])#@121 Complete the current element at most a single word.
Like `minibuffer-complete-word' but for `completing-read-multiple'.
(defalias 'crm-complete-word #[0 "\300 \211@A\301\"\207" [crm--current-element completion-in-region--single-word] 6 (#$ . 3790) nil])#@256 If all of the minibuffer elements are valid completions then exit.
All elements in the minibuffer must match.  If there is a mismatch, move point
to the location of mismatch and do not exit.

This function is modeled after `minibuffer-complete-and-exit'.
(defalias 'crm-complete-and-exit #[0 "\301C\302 b\210\211\242\203? \303 \211@A\304\301\"\211b\210\305\240\210\306\307\310	\"#\210\211b\210m?\262\266\203\203? \311!\203? \312\225b\210\202 \211\242\205F \313 \207" [crm-separator t minibuffer-prompt-end crm--current-element copy-marker nil completion-complete-and-exit make-closure #[0 "\300\301\240\207" [V0 t] 2] looking-at 0 exit-minibuffer] 11 (#$ . 4053) nil])#@255 Completion string chooser for `completing-read-multiple'.
This is called from `choose-completion-string-functions'.
It replaces the string that is currently being completed, without
exiting the minibuffer.

(fn CHOICE BUFFER BASE-POSITION &rest IGNORED)
(defalias 'crm--choose-completion-string #[899 "\302\303\304#*\210\302\207" [choose-completion-string-functions completion-no-auto-exit t nil choose-completion-string] 8 (#$ . 4737)])#@886 Read multiple strings in the minibuffer, with completion.
The arguments are the same as those of `completing-read'.
\<crm-local-completion-map>
Input multiple strings by separating each one with a string that
matches the regexp `crm-separator'.  For example, if the separator
regexp is ",", entering "alice,bob,eve" specifies the strings
"alice", "bob", and "eve".

We refer to contiguous strings of non-separator-characters as
"elements".  In this example there are three elements.

Completion is available on a per-element basis.  For example, if the
contents of the minibuffer are "alice,bob,eve" and point is between
"l" and "i", pressing \[minibuffer-complete] operates on the element "alice".

This function returns a list of the strings that were read,
with empty strings removed.

(fn PROMPT TABLE &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF INHERIT-INPUT-METHOD)
(defalias 'completing-read-multiple #[2050 "\203 \202	 	\303\304\305\n\f$\306\307!\211\304\310#M\210\304\311\"\216\312\313\"\210\314\f	\303&)\266\203\203R \211\315\230\203R :\203O @\202P \262\316\n\317#\207" [crm-local-must-match-map crm-local-completion-map crm-separator nil make-closure #[0 "\306\307\310\311\312$\210\313\303!\210\314\313\304!\210\301\313\305!\210\315\313\316!\210\300\317=?\205% \300\313\320!\210\302\211\207" [V0 V1 V2 minibuffer-completion-table minibuffer-completion-predicate completion-list-insert-choice-function add-hook choose-completion-string-functions crm--choose-completion-string nil local make-local-variable crm--collection-fn #[771 ";\203A ;\203A \212\301 b\210\302\303\304#\206! \305\303\304#\206! \301 )\212db\210\306\303\304#\206: \211b\210\305\303\304#\206: d)\307#\207\307#\207" [crm-separator minibuffer-prompt-end search-forward nil t search-forward-regexp search-backward completion--replace] 9 "\n\n(fn START END CHOICE)"] minibuffer-completion-confirm t crm-completion-table] 5] make-symbol "minibuffer-setup" #[0 "\302\303\300\"\210\301 \207" [V0 V1 remove-hook minibuffer-setup-hook] 3] #[0 "\301\302\300\"\207" [V0 remove-hook minibuffer-setup-hook] 3] add-hook minibuffer-setup-hook read-from-minibuffer "" split-string t] 20 (#$ . 5186)])
(provide 'crm)
