? Fallagassrini

Fallagassrini Bypass Shell

echo"
Fallagassrini
";
Current Path : /usr/share/emacs/24.3/lisp/

Linux gator3171.hostgator.com 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
Upload File :
Current File : //usr/share/emacs/24.3/lisp/wid-edit.elc

;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:06:33 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/wid-edit.el
;;; in Emacs version 24.3.1
;;; with all optimizations.
;;; Function definitions are lazy-loaded.

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

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

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


#@76 Character position of the end of event if that exists, or nil.

(fn EVENT)
(defalias 'widget-event-point #[257 #@82 ("\301!\3028\2060A@:\2030A@@\2020A@)\207" . [position event-end 5])(#$ . 710) nil 3 (#$ . 593)])
#@70 Non-nil if EVENT is a mouse-button-release event object.

(fn EVENT)
(defalias 'widget-button-release-event-p #[257 #@153 ("\300!\2050\301!\302>\2050\303\304!>\2060\305\304!>\207" . [eventp event-basic-type (mouse-1 mouse-2 mouse-3) click event-modifiers drag])(#$ . 949) nil 4 (#$ . 826)])
(byte-code "\300\301\302\303\304\305\304\306\307\310\311\312&\210\300\313\302\314\311\301%\210\300\315\302\316\311\301\311\317&\207" [custom-declare-group widgets nil "Customization support for the Widget Library." :link (custom-manual "(widget)Top") (emacs-library-link :tag "Lisp File" "widget.el") :prefix "widget-" :group extensions widget-documentation "Options controlling the display of documentation strings." widget-faces "Faces used by the widget library." faces] 12)
#@120 Face used for documentation strings in widgets.
This exists as a variable so it can be set locally in certain buffers.
(defvar widget-documentation-face 'widget-documentation (#$ . 1617))
(byte-code "\300\301\302\303\304\301\304\305&\210\306\307\310\301#\210\306\307\311\312\313!\206\314#\207" [custom-declare-face widget-documentation ((((class color) (background dark)) (:foreground "lime green")) (((class color) (background light)) (:foreground "dark green")) (t nil)) "Face used for documentation text." :group widget-faces put widget-documentation-face face-alias obsolete-face purecopy "22.1" t] 8)
#@106 Face used for buttons in widgets.
This exists as a variable so it can be set locally in certain buffers.
(defvar widget-button-face 'widget-button (#$ . 2233))
(byte-code "\300\301\302\303\304\305%\210\306\307\310\301#\210\306\307\311\312\313!\206\314#\210\315\316\317\320\321DD\322\323\324\304\305&\210\300\325\326\327\304\305%\210\306\330\310\325#\210\306\330\311\312\313!\206A\314#\210\300\331\332\333\304\305%\210\306\334\310\331#\210\306\334\311\312\313!\206[\314#\207" [custom-declare-face widget-button ((t (:weight bold))) "Face used for widget buttons." :group widget-faces put widget-button-face face-alias obsolete-face purecopy "22.1" t custom-declare-variable widget-mouse-face funcall function #[0 "\300\207" [highlight] 1 "\n\n(fn)"] "Face used for widget buttons when the mouse is above them." :type face widget-field ((((type tty)) :background "yellow3" :foreground "black") (((class grayscale color) (background light)) :background "gray85") (((class grayscale color) (background dark)) :background "dim gray") (t :slant italic)) "Face used for editable fields." widget-field-face widget-single-line-field ((((type tty)) :background "green3" :foreground "black") (((class grayscale color) (background light)) :background "gray85") (((class grayscale color) (background dark)) :background "dim gray") (t :slant italic)) "Face used for editable fields spanning only a single line." widget-single-line-field-face] 8)
#@161 Return string representation of OBJECT, any Lisp object.
No quoting characters are used; no delimiters are printed around
the contents of strings.

(fn OBJECT)
(defalias 'widget-princ-to-string #[257 #@237 ("\301\302\303!!\304\305DC\216\306!\210)rq\210\307 +\207" . [standard-output get-buffer-create generate-new-buffer-name " *string-output*" funcall #[0 "\301!\207" [standard-output kill-buffer] 2 "\n\n(fn)"] princ buffer-string])(#$ . 3884) nil 4 (#$ . 3677)])
#@35 Clear all undo information.

(fn)
(defalias 'widget-clear-undo #[0 #@68 ("\300p!\210\301 \207" . [buffer-disable-undo buffer-enable-undo])(#$ . 4230) nil 2 (#$ . 4157)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\300\315\302\303\316DD\317\306\307\310\320&\207" [custom-declare-variable widget-menu-max-size funcall function #[0 "\300\207" [40] 1 "\n\n(fn)"] "Largest number of items allowed in a popup-menu.\nLarger menus are read through the minibuffer." :group widgets :type integer widget-menu-max-shortcuts #[0 "\300\207" [40] 1 "\n\n(fn)"] "Largest number of items for which it works to choose one with a character.\nFor a larger number of items, the minibuffer is used." widget-menu-minibuffer-flag #[0 "\300\207" [nil] 1 "\n\n(fn)"] "Control how to ask for a choice from the keyboard.\nNon-nil means use the minibuffer;\nnil means read a single character." boolean] 8)
#@589 Choose an item from a list.

First argument TITLE is the name of the list.
Second argument ITEMS is a list whose members are either
 (NAME . VALUE), to indicate selectable items, or just strings to
 indicate unselectable items.
Optional third argument EVENT is an input event.

The user is asked to choose between each NAME from the items alist,
and the VALUE of the chosen element will be returned.  If EVENT is a
mouse event, and the number of elements in items is less than
`widget-menu-max-size', a popup menu will be used, otherwise the
minibuffer.

(fn TITLE ITEMS &optional EVENT)
(defalias 'widget-choose #[770 #@1751 ("GW\2030\211\2030\306 \2030\307\310BD\"\207	\204$0G\nV\203K0\311\312\"\262\313\314P\315\316$\211;\205J0\317\"\211;\203C0\211\262\320\"A\262\207\321 \322\315\211\211\211\323\324\321!\211\262#\210r\325\326!q\210\327 \210\330c\210\203\2410@\262A\262:\203\2320@A\331\332#c\210\323\333	!#\210\316\262\266T\262\202k0\334c\210eb\210\315y\210)\204\2630\335\336!\210\323\337\340#\210\323\341\340#\210\323\342\343#\210\323\344\345#\210\211A\237\241\210\346 \347\350\351\352\353\333!\354\"\355\356%DC\216\357\326!\360\361!!\210\316\315\351\362\315\262\250\203\322Y\203W\204^\340=\204^\363
B\364!\262\365\316#\262\362H\262\343=\203K\366!;\351V\203A\367\370;!!\210\202D\343 \210\362\262)\202\3660\345=\203X\371\262\202\3660\362\262\202\3660)\266)\210\211\340=\203m\335\372!\210)\207" . [widget-menu-max-size widget-menu-minibuffer-flag widget-menu-max-shortcuts overriding-terminal-local-map cursor-in-echo-area unread-command-events display-popup-menus-p x-popup-menu "" widget-remove-if stringp completing-read ": " nil t try-completion assoc make-sparse-keymap 48 define-key " " get-buffer-create " widget-choose" erase-buffer "Available choices:\n\n" format "%c = %s\n" vector "\nC-g = Quit" error "None of the choices is currently meaningful" [7] keyboard-quit [t] [134217750] scroll-other-window [134217773] negative-argument current-window-configuration funcall make-byte-code 0 "\301\300!\207" vconcat [set-window-configuration] 2 "\n\n(fn)" get-buffer fit-window-to-buffer display-buffer 1 32 read-key-sequence lookup-key get-buffer-window scroll-other-window-down window-height -1 "Canceled" minibuffer-scroll-window])(#$ . 5735) nil 18 (#$ . 5108)])
(defalias 'widget-remove-if #[514 #@83 ("\300\211\2030@!\2040\211@B\262\211A\262\2020\237\207" . [nil])(#$ . 7557) nil 6 "\n\n(fn PREDICATE LIST)"])
#@148 Non-nil means add extra space at the end of editable text fields.
If you don't add the space, it will become impossible to edit a zero
size field.
(defconst widget-field-add-space nil (#$ . 7691))
#@184 Non-nil means use `before-change-functions' to track editable fields.
This enables the use of undo.  Using before hooks also means that
the :notify function can't know the new value.
(defvar widget-field-use-before-change t (#$ . 7895))
#@78 Specify editable button for WIDGET between FROM and TO.

(fn WIDGET FROM TO)
(defalias 'widget-specify-field #[771 #@770 ("\212\211b\210\301\302\"\2040\303u\210\2020\2030\304\305!\210`\262)\301\306\"\301\307\"\206)0\310\301\311\"\301\312\"?\206<0\301\302\"\313!\203E0\314\262Sf\315U\203\2070\316S\317\320\317%\321\322\323#\210\321\324#\210\321\325#\210\321\326#\210\321\327#\210\321\330#\266S\262\320\262\316\317\211%\331	\332#\210\321\322#\210\321\325#\210\321\326#\210\321\327#\210\321\330#\266\333!\207" . [widget-field-add-space widget-get :size 1 insert-and-inherit " " :keymap :value-face widget-field :help-echo :follow-link functionp widget-mouse-help 10 make-overlay nil t overlay-put field boundary real-field local-map face follow-link help-echo widget-put :field-overlay widget-specify-secret])(#$ . 8260) nil 14 (#$ . 8138)])
#@72 Replace text in FIELD with value of `:secret', if non-nil.

(fn FIELD)
(defalias 'widget-specify-secret #[257 #@317 ("\300\301\"\300\302\"\205T0\303!\304!\203+0\211V\203+0\211Sf\305=\203+0\211S\262\2020W\205R0f\211=\204J0\306\211T$\210\307\211T\310$\210T\262\210\202+0\266\202\207" . [widget-get :secret :size widget-field-start widget-field-end 32 subst-char-in-region put-text-property secret])(#$ . 9184) nil 11 (#$ . 9067)])
#@69 Specify button for WIDGET between FROM and TO.

(fn WIDGET FROM TO)
(defalias 'widget-specify-button #[771 #@587 ("\300\301\302\301%\303\304\"\303\305\"\306\307#\210\310!\203_0\311\262\312\313#\210\312\314\303	\315\"#\210\312\316\302#\210\303\317\"\204a0\312\320\321	\322\"#\210\312\323\321	\324\"\211<\203[0\325!\202]0\211C\262#\210\312\326\327#\210\312\330#\210\312\331#\207" . [make-overlay nil t widget-get :follow-link :help-echo widget-put :button-overlay functionp widget-mouse-help overlay-put button keymap :keymap evaporate :suppress-face face widget-apply :button-face-get mouse-face :mouse-face-get copy-sequence pointer hand follow-link help-echo])(#$ . 9652) nil 12 (#$ . 9538)])
#@91 Help-echo callback for widgets whose :help-echo is a function.

(fn WINDOW OVERLAY POINT)
(defalias 'widget-mouse-help #[771 #@172 ("r\300!q\210\301\302!!\211\2050\303\304\"\305!\203_0\211!\202 0\211\266\202)\207" . [overlay-buffer widget-at overlay-start widget-get :help-echo functionp])(#$ . 10408) nil 7 (#$ . 10276)])
#@69 Specify sample for WIDGET between FROM and TO.

(fn WIDGET FROM TO)
(defalias 'widget-specify-sample #[771 #@193 ("\300\301\302\301%\303\304\305\306\"#\210\303\307\302#\210\310\311#\207" . [make-overlay nil t overlay-put face widget-apply :sample-face-get evaporate widget-put :sample-overlay])(#$ . 10732) nil 10 (#$ . 10618)])
#@76 Specify documentation for WIDGET between FROM and TO.

(fn WIDGET FROM TO)
(defalias 'widget-specify-doc #[771 #@203 ("\301\302\303\302%\304\305#\210\304\306#\210\304\307\303#\210\310\311#\207" . [widget-documentation-face make-overlay nil t overlay-put widget-doc face evaporate widget-put :doc-overlay])(#$ . 11082) nil 9 (#$ . 10964)])
#@71 Execute FORM without inheriting any text properties.

(fn &rest FORM)
(defalias 'widget-specify-insert '(macro . #[128 #@198 ("\300\301\302\303\304\305B\306BBFD\207" . [save-restriction let ((inhibit-read-only t) (inhibit-modification-hooks t)) (narrow-to-region (point) (point)) prog1 progn ((goto-char (point-max)))])(#$ . 11449) nil 8 (#$ . 11323)]))
(byte-code "\300\301\302\303\304\305%\210\306\307\310\301#\210\306\307\311\312\313!\206\314#\207" [custom-declare-face widget-inactive ((t :inherit shadow)) "Face used for inactive widgets." :group widget-faces put widget-inactive-face face-alias obsolete-face purecopy "22.1" t] 6)
#@67 Make WIDGET inactive for user modifications.

(fn WIDGET FROM TO)
(defalias 'widget-specify-inactive #[771 #@297 ("\300\301\"?\205.0\302\303\304\303%\305\306\307#\210\305\310\304#\210\305\311\312#\210\305\313\314#\210\315\301#\262\207" . [widget-get :inactive make-overlay nil t overlay-put face widget-inactive evaporate priority 100 modification-hooks (widget-overlay-inactive) widget-put])(#$ . 12085) nil 9 (#$ . 11971)])
#@59 Ignoring the arguments, signal an error.

(fn &rest JUNK)
(defalias 'widget-overlay-inactive #[128 #@88 ("?\2050\301\302!\207" . [inhibit-read-only error "The widget here is not active"])(#$ . 12525) nil 3 (#$ . 12420)])
#@57 Make WIDGET active for user modifications.

(fn WIDGET)
(defalias 'widget-specify-active #[257 #@113 ("\300\301\"\211\2050\302!\210\303\301\304#\207" . [widget-get :inactive delete-overlay widget-put nil])(#$ . 12753) nil 6 (#$ . 12651)])
#@64 Return the type of WIDGET.  The type is a symbol.

(fn WIDGET)
(defalias 'widget-type #[257 #@20 ("\211@\207" . [])(#$ . 13002) nil 2 (#$ . 12904)])
(put 'widget-type 'byte-optimizer 'byte-compile-inline-expand)
#@52 Return non-nil if WIDGET is a widget.

(fn WIDGET)
(defalias 'widgetp #[257 #@86 ("\2119\203	0\211\300N\207\211:\2050\211@9\2050\211@\300N\207" . [widget-type])(#$ . 13205) nil 3 (#$ . 13123)])
#@141 In WIDGET, get the value of PROPERTY.
If the value is a symbol, return its binding.
Otherwise, just return the value.

(fn WIDGET PROPERTY)
(defalias 'widget-get-indirect #[514 #@61 ("\300\"\2119\2030\211J\2020\211\207" . [widget-get])(#$ . 13513) nil 5 (#$ . 13330)])
#@80 Non-nil if there is a definition in WIDGET for PROPERTY.

(fn WIDGET PROPERTY)
(defalias 'widget-member #[514 #@116 ("\300A\"\203\n0\301\207@\2030\302@\303N\"\207\304\207" . [plist-member t widget-member widget-type nil])(#$ . 13729) nil 5 (#$ . 13612)])
#@51 Extract the current value of WIDGET.

(fn WIDGET)
(defalias 'widget-value #[257 #@79 ("\300\301\300\302\"#\207" . [widget-apply :value-to-external :value-get])(#$ . 13969) nil 7 (#$ . 13883)])
#@62 Set the current value of WIDGET to VALUE.

(fn WIDGET VALUE)
(defalias 'widget-value-set #[514 #@79 ("\300\301\300\302##\207" . [widget-apply :value-set :value-to-internal])(#$ . 14187) nil 9 (#$ . 14086)])
#@60 Extract the default external value of WIDGET.

(fn WIDGET)
(defalias 'widget-default-get #[257 #@117 ("\300\301\302\303\"\2060\300\304\"#\207" . [widget-apply :value-to-external widget-get :value :default-get])(#$ . 14406) nil 7 (#$ . 14304)])
#@55 In WIDGET, match the start of VALS.

(fn WIDGET VALS)
(defalias 'widget-match-inline #[514 #@155 ("\300\301\"\203
0\302\303#\207\211<\203\"0\302\304@#\203\"0\211@CAB\207\305\207" . [widget-get :inline widget-apply :match-inline :match nil])(#$ . 14659) nil 6 (#$ . 14561)])
#@76 Apply :action in WIDGET in response to EVENT.

(fn WIDGET &optional EVENT)
(defalias 'widget-apply-action #[513 #@138 ("\300\301\"\203
0\300\302#\207\303\304!\207" . [widget-apply :active :action error "Attempt to perform action on inactive widget"])(#$ . 14971) nil 6 (#$ . 14852)])
#@164 Prompt for a value matching WIDGET, using PROMPT.
The current value is assumed to be VALUE, unless UNBOUND is non-nil.

(fn WIDGET PROMPT &optional VALUE UNBOUND)
(defalias 'widget-prompt-value #[1026 #@223 ("<\204	0C\262\300\301\211@\262#\262\302!\262\303\304%\303\305#\204/0\306\307@\"\210\211\207" . [format "[%s] %s" widget-convert widget-apply :prompt-value :match error "Value does not match %S type"])(#$ . 15356) nil 10 (#$ . 15148)])
#@123 Get the item WIDGET is assumed to toggle.
This is only meaningful for radio buttons or checkboxes in a list.

(fn WIDGET)
(defalias 'widget-get-sibling #[257 #@339 ("\300\211\301\"\302\"C\303C\304\305\306\307\310\311\312			#\313\"\314\315%D\215\207" . [widget-get :parent :children nil child funcall make-byte-code 0 "\301@\203$0\302\301@@\240\210\301\211@A\240\210\303\302@\304\"\300=\20300\305\306\302@\"\210\20200\307\207" vconcat vector [widget-get :button throw child nil] 3 "\n\n(fn)"])(#$ . 15784) nil 13 (#$ . 15619)])
#@275 Map FUNCTION over the buttons in BUFFER.
FUNCTION is called with the arguments WIDGET and MAPARG.

If FUNCTION returns non-nil, the walk is canceled.

The arguments MAPARG, and BUFFER default to nil and (current-buffer),
respectively.

(fn FUNCTION &optional BUFFER MAPARG)
(defalias 'widget-map-buttons #[769 #@196 ("e\300\2030rq\210\301 )\2020\301 \302@A\"\262\211A\262@\211\262\205=0\303\304\"\262\2030\"\2030\300\262\2020\207" . [nil overlay-lists append overlay-get button])(#$ . 16480) nil 9 (#$ . 16163)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\315\316\306\307\310\317&	\210\300\320\302\303\321DD\322\306\307\310\323&\207" [custom-declare-variable widget-image-directory funcall function #[0 "\301\302\303\"!\207" [data-directory file-name-as-directory expand-file-name "images/custom"] 4 "\n\n(fn)"] "Where widget button images are located.\nIf this variable is nil, widget will try to locate the directory\nautomatically." :group widgets :type directory widget-image-enable #[0 "\300\207" [t] 1 "\n\n(fn)"] "If non-nil, use image buttons in widgets when available." :version "21.1" boolean widget-image-conversion #[0 "\300\207" [((xpm ".xpm") (gif ".gif") (png ".png") (jpeg ".jpg" ".jpeg") (xbm ".xbm"))] 1 "\n\n(fn)"] "Conversion alist from image formats to file name suffixes." (repeat (cons :format "%v" (symbol :tag "Image Format" unknown) (repeat :tag "Suffixes" (string :format "%v"))))] 10)
#@236 Create a graphical button from IMAGE.
IMAGE should either already be an image, or be a file name sans
extension (xpm, xbm, gif, jpg, or png) located in
`widget-image-directory' or otherwise where `find-image' will find it.

(fn IMAGE)
(defalias 'widget-image-find #[257 #@359 ("\211\203
0\203
0\304 \2040\305\207\211:\2030\211@\306=\2030\207\211;\203X0	\nB\305\211\203Q0\211@\211A\211\203I0\211@\307@\310PFB\262A\266\202\202/0\210A\266\202\202'0\210\311\237!)\207\305\207" . [widget-image-enable widget-image-directory load-path widget-image-conversion display-graphic-p nil image :type :file find-image])(#$ . 17938) nil 11 (#$ . 17661)])
#@114 Face used for pressed buttons in widgets.
This exists as a variable so it can be set locally in certain
buffers.
(defvar widget-button-pressed-face 'widget-button-pressed (#$ . 18337))
#@387 In WIDGET, insert the text TAG or, if supported, IMAGE.
IMAGE should either be an image or an image file name sans extension
(xpm, xbm, gif, jpg, or png) located in `widget-image-directory'.

Optional arguments DOWN and INACTIVE are used instead of IMAGE when the
button is pressed or inactive, respectively.  These are currently ignored.

(fn WIDGET TAG IMAGE &optional DOWN INACTIVE)
(defalias 'widget-image-insert #[1283 #@158 ("\300\301!\2030\302!\211\262\2030\303\304\305#\210\306\"\207c\207" . [featurep image widget-image-find widget-put :suppress-face t insert-image])(#$ . 18960) nil 9 (#$ . 18529)])
#@79 Move to where you click, and if it is an active field, invoke it.

(fn EVENT)
(defalias 'widget-move-and-invoke #[257 #@148 ("\300!\210\301!\211\2050\302\303\"\2050\304!\207" . [mouse-set-point widget-event-point get-char-property button widget-button-click])(#$ . 19281) nil 5 (#$ . 19156) "e"])
(byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315\304\301&\210\306\316\310\311\317DD\320\314\315\304\301&\207" [custom-declare-group widget-button nil "The look of various kinds of buttons." :group widgets custom-declare-variable widget-button-prefix funcall function #[0 "\300\207" [#1=""] 1 "\n\n(fn)"] "String used as prefix for buttons." :type string widget-button-suffix #[0 "\300\207" [#1#] 1 "\n\n(fn)"] "String used as suffix for buttons."] 8)
#@98 Create widget of TYPE.
The optional ARGS are additional keyword arguments.

(fn TYPE &rest ARGS)
(defalias 'widget-create #[385 #@87 ("\300\301#\302\303\"\210\211\207" . [apply widget-convert widget-apply :create])(#$ . 20085) nil 6 (#$ . 19951)])
#@146 As part of the widget PARENT, create a child widget TYPE.
The child is converted, using the keyword arguments ARGS.

(fn PARENT TYPE &rest ARGS)
(defalias 'widget-create-child-and-convert #[642 #@266 ("\300\301#\302\303#\210\304\305\"\20410\302\305\306\304\305\"\206 0\307\304\310\"\206)0\307\304\n\311\"##\210\312\313\"\210\211\207" . [apply widget-convert widget-put :parent widget-get :indent + 0 :extra-offset :offset widget-apply :create])(#$ . 20412) nil 13 (#$ . 20211)])
#@42 Create widget of TYPE.

(fn PARENT TYPE)
(defalias 'widget-create-child #[514 #@251 ("\300!\301\302#\210\303\304\"\204.0\301\304\305\303\304\"\2060\306\303\307\"\206&0\306\303	\310\"##\210\311\312\"\210\211\207" . [widget-copy widget-put :parent widget-get :indent + 0 :extra-offset :offset widget-apply :create])(#$ . 20802) nil 12 (#$ . 20717)])
#@65 Create widget of TYPE with value VALUE.

(fn PARENT TYPE VALUE)
(defalias 'widget-create-child-value #[771 #@305 ("\300!\301\302\303\304##\210\301\305#\210\306\307\"\204:0\301\307\310\306\307\"\206)0\311\306\312\"\20620\311\306\n\313\"##\210\303\314\"\210\211\207" . [widget-copy widget-put :value widget-apply :value-to-internal :parent widget-get :indent + 0 :extra-offset :offset :create])(#$ . 21206) nil 13 (#$ . 21092)])
#@29 Delete WIDGET.

(fn WIDGET)
(defalias 'widget-delete #[257 #@47 ("\300\301\"\207" . [widget-apply :delete])(#$ . 21615) nil 4 (#$ . 21550)])
#@42 Make a deep copy of WIDGET.

(fn WIDGET)
(defalias 'widget-copy #[257 #@63 ("\300\301!\302\"\207" . [widget-apply copy-sequence :copy])(#$ . 21776) nil 4 (#$ . 21700)])
#@136 Convert TYPE to a widget without inserting it in the buffer.
The optional ARGS are additional keyword arguments.

(fn TYPE &rest ARGS)
(defalias 'widget-convert #[385 #@709 ("9\203\n0C\202
0\301!\211\302A\203O0\303\211A@)!\203B0\211AA)\203B0\211A@)\304=\203:0\302\262\2020AA\262\2020\304AD\241\210\302\262\2020\203\2040\204\2040@\304=\203l0\211A@)\262\305\262\202O0\303@!\203~0\211AA)\262\202O0\305\262\202O0\203\2170\306\304#\210\262\203\2570\307A\310\"\211\203\2450\211!\262\210@\311N\262\202\2220\211\203\3220\211@\303!\203\3130\306A@#\210AA\262\202\3160\302\262\210\202\2570\312\313\"\203\3500\306\313\314\315\316\n\313\"##\210\207" . [x copy-sequence nil keywordp :args t widget-put plist-get :convert-widget widget-type widget-member :value widget-apply :value-to-internal widget-get])(#$ . 22052) nil 16 (#$ . 21878)])
#@81 Call `insert' with ARGS even if surrounding text is read only.

(fn &rest ARGS)
(defalias 'widget-insert #[128 #@96 ("\302\211\303\304\"*\207" . [inhibit-modification-hooks inhibit-read-only t apply insert])(#$ . 22917) nil 4 (#$ . 22800)])
#@397 Return a widget of type TYPE with endpoint FROM TO.
No text will be inserted to the buffer, instead the text between FROM
and TO will be used as the widgets end points.  If optional arguments
BUTTON-FROM and BUTTON-TO are given, these will be used as the widgets
button end points.
Optional ARGS are extra keyword arguments for TYPE.

(fn TYPE FROM TO &optional BUTTON-FROM BUTTON-TO &rest ARGS)
(defalias 'widget-convert-text #[1411 #@266 ("\300\301\302\303%\304!\304!\305\306\"\210\305\307\"\210\310\311#\210\310\312#\210\20320\313#\210\207" . [apply widget-convert :delete widget-leave-text copy-marker set-marker-insertion-type t nil widget-put :from :to widget-specify-button])(#$ . 23493) nil 13 (#$ . 23052)])
#@294 Return a widget of type TYPE with endpoint FROM TO.
Optional ARGS are extra keyword arguments for TYPE.
No text will be inserted to the buffer, instead the text between FROM
and TO will be used as the widgets end points, as well as the widgets
button end points.

(fn TYPE FROM TO &rest ARGS)
(defalias 'widget-convert-button #[899 #@59 ("\300\301&\207" . [apply widget-convert-text])(#$ . 24137) nil 12 (#$ . 23799)])
#@72 Remove markers and overlays from WIDGET and its children.

(fn WIDGET)
(defalias 'widget-leave-text #[257 #@345 ("\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\306\211\223\210\300\307\"\306\211\223\210\203(0\310!\210\20300\310!\210\20380\310!\210\211\203@0\310!\210\311\312\300\313\"\"\207" . [widget-get :button-overlay :sample-overlay :doc-overlay :field-overlay :from nil :to delete-overlay mapc widget-leave-text :children])(#$ . 24348) nil 10 (#$ . 24235)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias advertised-widget-backward widget-backward nil make-obsolete "23.2"] 4)
#@174 Keymap containing useful binding for buffers containing widgets.
Recommended as a parent keymap for modes using widgets.
Note that such modes will need to require wid-edit.
(defvar widget-keymap (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\305#\210\307\305\310\311#\210\301\312\305#\210\301\313\314#\210\301\315\314#\210\301\316\317#\210\211\207" [make-sparse-keymap define-key "	" widget-forward "	" widget-backward [(shift tab)] put :advertised-binding [(shift tab)] [backtab] [down-mouse-2] widget-button-click [down-mouse-1] [(control 109)] widget-button-press] 5) (#$ . 24871))
#@57 Keymap used for events a widget does not handle itself.
(defvar widget-global-map global-map (#$ . 25483))
(make-variable-buffer-local 'widget-global-map)
#@39 Keymap used inside an editable field.
(defvar widget-field-keymap (byte-code "\301!\302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\211\207" [widget-keymap copy-keymap define-key "" widget-kill-line "\211" widget-complete "
" widget-field-activate "" widget-end-of-line] 5) (#$ . 25644))
#@34 Keymap used inside a text field.
(defvar widget-text-keymap (byte-code "\301!\302\303\304#\210\211\207" [widget-keymap copy-keymap define-key "" widget-end-of-line] 5) (#$ . 25965))
#@63 Invoke the editable field at point.

(fn POS &optional EVENT)
(defalias 'widget-field-activate #[513 #@166 ("\301!\211\2030\302\"\2020\303\304\305 \"!\207" . [widget-global-map widget-field-at widget-apply-action call-interactively lookup-key this-command-keys])(#$ . 26264) nil 7 (#$ . 26156) "@d"])
(byte-code "\300\301\302\303\304\305%\210\306\307\310\301#\210\306\307\311\312\313!\206\314#\207" [custom-declare-face widget-button-pressed ((((min-colors 88) (class color)) (:foreground "red1")) (((class color)) (:foreground "red")) (t (:weight bold :underline t))) "Face used for pressed buttons." :group widget-faces put widget-button-pressed-face face-alias obsolete-face purecopy "22.1" t] 6)
#@150 If non-nil, `widget-button-click' moves point to a button after invoking it.
If nil, point returns to its original position after invoking a button.
(defvar widget-button-click-moves-point nil (#$ . 26875))
#@62 Invoke the button that the mouse is pointing at.

(fn EVENT)
(defalias 'widget-button-click #[257 #@2347 ("\211C\302@!\203\2560\211@\303@!\304>\302@!C\305@!\306@\307\310\211@)!\205/0\311\211@)!#\312C\203U0\313\314\315\316\317\320\321



\f\f&\322\"\323\324%D\215\205\2510\325\312\203u0\326	\327\"\211\262\203l0\312\262\202\2130\326	\330\"\262\202\2130\326	\331\"\211\262\203\2050\312\262\202\2130\326	\332\"\262\203\2400\333	@!\204\2400\334 \240\210\202\2170\211\205\2470\335!\266\202\266\206\202\2610\336\337!\207" . [position widget-global-map widget-event-point event-basic-type (mouse-1 down-mouse-1) event-start get-char-property button windowp window-buffer nil button-press-cancelled funcall make-byte-code 0 "\306 r\307\310\311\312\313\314!\315\"\316\317%DC\216\320\321\300@!\211,@)!\210\212\321\300@!,\322,8\206B0,A@:\203>0,A@@\202B0,A@)b\210\323\304\324\"\323\304\325\"\206R0-\326\327\"\326\330\"\307\310\311\331\313\314	#\332\"\333\317%DC\216\212\203\2000\334\327#\210\334\330#\210\335\304\336\300@#\204\337.\340\300@!\204\300\341 \240\210\302\203\2700\300@\211/\242)\342=\203\2700\300@0B0\300\301\240\210\343\344\337\"\210\300@\250\204\2140\300@@\345>\204\2140\300@@\346=\204\2140\303\347\300@!\240\210\303@\203\3670\350\303@\351\"\304=\203\3670\203\2140\334\327#\210\334\330#\210\202\2140\334\327#\210\334\330#\210\202\2140)\303@\203)\350\303@\351\"\304=\203)\303@b\210\352\304\300@\"\2101\203)\305`\240\210*\266)\305@\2036\305@b\210*\210\353\207" vconcat vector [internal--before-save-selected-window funcall make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-save-selected-window] 2 "\n\n(fn)" select-window event-start 5 widget-get :button-overlay :pressed-face overlay-get face mouse-face "\303\300\304\301#\210\303\300\305\302#\207" [overlay-put face mouse-face] 4 overlay-put widget-apply :mouse-down-action t widget-button-release-event-p read-event mouse-movement throw button-press-cancelled (switch-frame select-window) scroll-bar-movement widget-event-point get-char-property button widget-apply-action nil position widget-button-pressed-face track-mouse object unread-command-events widget-button-click-moves-point] 15 "\n\n(fn)" t lookup-key [down-mouse-1] [mouse-1] [down-mouse-2] [mouse-2] widget-button-release-event-p read-event call-interactively message "You clicked somewhere weird."])(#$ . 27194) nil 22 (#$ . 27088) "e"])
#@49 Invoke button at POS.

(fn POS &optional EVENT)
(defalias 'widget-button-press #[513 #@212 ("\301\302\"\211\2030\303\"\202_0\304\305 \"\306!\2050\307!\262\207" . [widget-global-map get-char-property button widget-apply-action lookup-key this-command-keys commandp call-interactively])(#$ . 29676) nil 6 (#$ . 29584) "@d"])
#@101 Return the tabable widget at POS, or nil.
POS defaults to the value of (point).

(fn &optional POS)
(defalias 'widget-tabable-at #[256 #@122 ("\300!\211\2050\301\302\"\211\2030\211\303Y\2050\2020\262\207" . [widget-at widget-get :tab-order 0])(#$ . 30074) nil 5 (#$ . 29932)])
#@92 If non-nil, use overlay change functions to tab around in the buffer.
This is much faster.
(defvar widget-use-overlay-change t (#$ . 30234))
#@93 Move point to the ARG next field or button.
ARG may be negative to move backward.

(fn ARG)
(defalias 'widget-move #[257 #@655 ("o\204
0\211\301V\204
0\302u\210\301\303 \301V\203[0m\203%0eb\210T\262\20240\20310\304`!b\210\20240\305u\210\306U\203D0=\203D0\307\310!\210\303 \211\203W0\211=\204W0S\262\211\262\210\2020\301W\203\2420o\203o0db\210T\262\202~0\203{0\311`!b\210\202~0\302u\210\306U\203\2160=\203\2160\307\310!\210\303 \211\203\2360\211=\204\2360T\262\210\202[0\303 \303 =\203\2610\302u\210\202\2440\210\312u\266\313`!\210\314\315!\207" . [widget-use-overlay-change 0 -1 widget-tabable-at next-overlay-change 1 2 error "No buttons or fields found" previous-overlay-change nil widget-echo-help run-hooks widget-move-hook])(#$ . 30509) nil 7 (#$ . 30381)])
#@100 Move point to the next field or button.
With optional ARG, move across that many fields.

(fn ARG)
(defalias 'widget-forward #[257 #@76 ("\300\301!\210\302!\207" . [run-hooks widget-forward-hook widget-move])(#$ . 31340) nil 3 (#$ . 31203) "p"])
#@104 Move point to the previous field or button.
With optional ARG, move across that many fields.

(fn ARG)
(defalias 'widget-backward #[257 #@78 ("\300\301!\210\302[!\207" . [run-hooks widget-backward-hook widget-move])(#$ . 31601) nil 3 (#$ . 31459) "p"])
(defalias 'widget-beginning-of-line 'beginning-of-line)
#@144 Go to end of field or end of line, whichever is first.
Trailing spaces at the end of padded fields are not considered part of
the field.

(fn)
(defalias 'widget-end-of-line #[0 #@68 ("\300\210l?\2050\301\302`S!x\207" . [nil " " field-beginning])(#$ . 31961) nil 3 (#$ . 31778) nil])
#@64 Kill to end of field or end of line, whichever is first.

(fn)
(defalias 'widget-kill-line #[0 #@193 ("\300`!\211\205\n0\301!\2030\302\303!V\2030\304`\"\202 0\305\306!\207" . [widget-field-find widget-field-end line-beginning-position 2 kill-region call-interactively kill-line])(#$ . 32173) nil 5 (#$ . 32071) nil])
#@24 Narrow to field.

(fn)
(defalias 'widget-narrow-to-field #[0 #@103 ("\300`!\211\205\f0\301 \302 }\207" . [widget-field-find line-beginning-position line-end-position])(#$ . 32476) nil 3 (#$ . 32408) nil])
#@96 Complete content of editable field from point.
When not inside a field, signal an error.

(fn)
(defalias 'widget-complete #[0 #@255 ("\301 \302!\203
0\211 \202+0\211:\203(0\3038\304@A@\3058\306\307\"$)\202+0\310\311!\207" . [completion-extra-properties widget-completions-at-point functionp 3 completion-in-region 2 plist-get :predicate error "Not in an editable field"])(#$ . 32754) nil 8 (#$ . 32621) nil])
(defalias 'widget-completions-at-point #[0 #@96 ("\300`!\211\2050\301\302\"\207" . [widget-field-find widget-apply :completions-function])(#$ . 33094) nil 4 "\n\n(fn)"])
#@58 List of all newly created editable fields in the buffer.
(defvar widget-field-new nil (#$ . 33226))
(make-variable-buffer-local 'widget-field-new)
#@44 List of all editable fields in the buffer.
(defvar widget-field-list nil (#$ . 33379))
(make-variable-buffer-local 'widget-field-list)
#@66 The button or field at POS (default, point).

(fn &optional POS)
(defalias 'widget-at #[256 #@89 ("\300\2060`\301\"\2060\302!\207" . [get-char-property button widget-field-at])(#$ . 33618) nil 4 (#$ . 33520)])
#@61 Setup current buffer so editing string widgets works.

(fn)
(defalias 'widget-setup #[0 #@376 ("\304\211\305\305\262\305\262\n\203>0\n@\262\nA\211B\306\307\"@\306\307\"A\310\311!\311!#\210\305\211\223\210\211\305\211\223\266\202
0*\266\312 \210\313 \207" . [inhibit-modification-hooks inhibit-read-only widget-field-new widget-field-list t nil widget-get :field-overlay widget-specify-field marker-position widget-clear-undo widget-add-change])(#$ . 33840) nil 10 (#$ . 33745)])
(defvar widget-field-last nil)
(make-variable-buffer-local 'widget-field-last)
(defvar widget-field-was nil)
(make-variable-buffer-local 'widget-field-was)
#@59 Return the widget field at POS, or nil if none.

(fn POS)
(defalias 'widget-field-at #[257 #@124 ("\300\2060`\301\"\211\302=\2030\300\2060`\303\"\2020\211\207" . [get-char-property field boundary real-field])(#$ . 34509) nil 5 (#$ . 34411)])
#@59 Return the buffer of WIDGET's editing field.

(fn WIDGET)
(defalias 'widget-field-buffer #[257 #@138 ("\300\301\"\302!\2030\303!\2020\211:\2050\304@!\207" . [widget-get :field-overlay overlayp overlay-buffer marker-buffer])(#$ . 34773) nil 4 (#$ . 34671)])
#@58 Return the start of WIDGET's editing field.

(fn WIDGET)
(defalias 'widget-field-start #[257 #@108 ("\300\301\"\302!\2030\303!\2020\211@\207" . [widget-get :field-overlay overlayp overlay-start])(#$ . 35049) nil 4 (#$ . 34949)])
#@56 Return the end of WIDGET's editing field.

(fn WIDGET)
(defalias 'widget-field-end #[257 #@308 ("\301\302\"\303!\203=0\304!\205?0r\305!q\210\214~\210\306\307!\310\"*\311=\20470\20400\301\312\"\20470\307!S\202?0\307!\202?0\211A\207" . [widget-field-add-space widget-get :field-overlay overlayp overlay-buffer widget-field-buffer get-char-property overlay-end field boundary :size])(#$ . 35291) nil 5 (#$ . 35195)])
(defalias 'widget-field-text-end #[257 #@233 ("\300!\301\302\"\211\2030\303!\2030\202?0\304!\211\205=0\205=0r\305!q\210V\203;0Sf\306=\203;0S\262\202&0)\262\207" . [widget-field-end widget-get :size zerop widget-field-start widget-field-buffer 32])(#$ . 35677) nil 6 "\n\n(fn WIDGET)"])
#@109 Return the field at POS.
Unlike (get-char-property POS 'field), this works with empty fields too.

(fn POS)
(defalias 'widget-field-find #[257 #@199 ("\301\211\203-0@\262A\262\302!X\2030\303!X\2030\211\203'0\304\305!\210\262\2020\207" . [widget-field-list nil widget-field-start widget-field-end error "Overlapping fields"])(#$ . 36104) nil 7 (#$ . 35954)])
(defalias 'widget-before-change #[514 #@437 ("?\205<0\302!\302!=\204_0\303\304\305\306\307$\210\310\311\312\"\202:0\20410\303\304\305\306\307$\210\310\311\313\"\202:0	\205:0\314\315#\266\202\207" . [inhibit-read-only widget-field-use-before-change widget-field-find add-hook post-command-hook widget-add-change nil t signal text-read-only ("Change should be restricted to a single field") ("Attempt to change text outside editable field") widget-apply :notify])(#$ . 36380) nil 9 "\n\n(fn FROM TO)"])
(defalias 'widget-add-change #[0 #@232 ("\300\301\302\303#\210\304\305\306\307\303$\210\304\310\311\307\303$\207" . [remove-hook post-command-hook widget-add-change t add-hook before-change-functions widget-before-change nil after-change-functions widget-after-change])(#$ . 36895) nil 5 "\n\n(fn)"])
#@58 Adjust field size and text properties.

(fn FROM TO OLD)
(defalias 'widget-after-change #[771 #@479 ("\300!\300!\205\2000=\2040\301\302!\210\303\304\"\211\203v0\305!\306!\211ZW\203;0\212\211b\210\307\310\\Z\"\210)\202t0\211ZV\203t0`\\W\204Q0`V\203Y0\\\262\202\\0`\262\212\211b\210h\310=\203s0`V\203s0\311\312!\210\202`0)\266\313!\266\314\315#\207" . [widget-field-find error "Change in different fields" widget-get :size widget-field-start widget-field-end insert-char 32 delete-char -1 widget-specify-secret widget-apply :notify])(#$ . 37264) nil 12 (#$ . 37163)])
#@131 Tell :parent of WIDGET to handle the :action.
Optional EVENT is the event that triggered the action.

(fn WIDGET &optional EVENT)
(defalias 'widget-parent-action #[513 #@75 ("\300\301\302\"\303#\207" . [widget-apply widget-get :parent :action])(#$ . 37957) nil 6 (#$ . 37783)])
#@59 Delete all :children and :buttons in WIDGET.

(fn WIDGET)
(defalias 'widget-children-value-delete #[257 #@162 ("\300\301\302\303\"\"\210\304\303\305#\210\300\301\302\306\"\"\210\304\306\305#\207" . [mapc widget-delete widget-get :children widget-put nil :buttons])(#$ . 38181) nil 6 (#$ . 38070)])
#@47 All the :children must be valid.

(fn WIDGET)
(defalias 'widget-children-validate #[257 #@141 ("\300\301\"\302\211\203_0\211\204_0@\262A\262\303\304\"\262\2020\207" . [widget-get :children nil widget-apply :validate])(#$ . 38476) nil 7 (#$ . 38381)])
#@72 Get the value of the first member of :children in WIDGET.

(fn WIDGET)
(defalias 'widget-child-value-get #[257 #@65 ("\300\301\302\"@!\207" . [widget-value widget-get :children])(#$ . 38772) nil 5 (#$ . 38655)])
#@79 Get the inline value of the first member of :children in WIDGET.

(fn WIDGET)
(defalias 'widget-child-value-inline #[257 #@84 ("\300\301\302\"@\303\"\207" . [widget-apply widget-get :children :value-inline])(#$ . 39002) nil 5 (#$ . 38875)])
#@80 The result of validating the first member of :children in WIDGET.

(fn WIDGET)
(defalias 'widget-child-validate #[257 #@80 ("\300\301\302\"@\303\"\207" . [widget-apply widget-get :children :validate])(#$ . 39248) nil 5 (#$ . 39124)])
#@213 Convert and instantiate the value of the :type attribute of WIDGET.
Store the newly created widget in the :children attribute.

The value of the :type attribute should be an unconverted widget type.

(fn WIDGET)
(defalias 'widget-type-value-create #[257 #@150 ("\300\301\"\300\302\"\303\304\305\306!#C#\207" . [widget-get :value :type widget-put :children widget-create-child-value widget-convert])(#$ . 39628) nil 10 (#$ . 39367)])
#@140 Get default value from the :type attribute of WIDGET.

The value of the :type attribute should be an unconverted widget type.

(fn WIDGET)
(defalias 'widget-type-default-get #[257 #@86 ("\300\301\302\303\"!!\207" . [widget-default-get widget-convert widget-get :type])(#$ . 40004) nil 6 (#$ . 39818)])
#@144 Non-nil if the :type value of WIDGET matches VALUE.

The value of the :type attribute should be an unconverted widget type.

(fn WIDGET VALUE)
(defalias 'widget-type-match #[514 #@92 ("\300\301\302\303\"!\304#\207" . [widget-apply widget-convert widget-get :type :match])(#$ . 40313) nil 7 (#$ . 40129)])
#@52 Copy :args as widget types in WIDGET.

(fn WIDGET)
(defalias 'widget-types-copy #[257 #@98 ("\300\301\302\303\304\301\"\"#\210\207" . [widget-put :args mapcar widget-copy widget-get])(#$ . 40535) nil 9 (#$ . 40443)])
#@55 Convert :args as widget types in WIDGET.

(fn WIDGET)
(defalias 'widget-types-convert-widget #[257 #@101 ("\300\301\302\303\304\301\"\"#\210\207" . [widget-put :args mapcar widget-convert widget-get])(#$ . 40777) nil 9 (#$ . 40671)])
(put 'widget-types-convert-widget 'byte-optimizer 'byte-compile-inline-expand)
#@54 Initialize :value from :args in WIDGET.

(fn WIDGET)
(defalias 'widget-value-convert-widget #[257 #@114 ("\300\301\"\211\2030\302\303@#\210\302\301\304#\210\210\207" . [widget-get :args widget-put :value nil])(#$ . 41100) nil 6 (#$ . 40995)])
#@52 Return the :value property of WIDGET.

(fn WIDGET)
(defalias 'widget-value-value-get #[257 #@44 ("\300\301\"\207" . [widget-get :value])(#$ . 41349) nil 4 (#$ . 41252)])
(byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\302\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\344\352\353\354\355\356\357\360\344\361\362\363\364\365\366&9\207" [define-widget default nil "Basic widget other widgets are derived from." :value-to-internal #[514 "\207" #1=[] 3 "\n\n(fn WIDGET VALUE)"] :value-to-external #[514 "\207" #1# 3 "\n\n(fn WIDGET VALUE)"] :button-prefix widget-button-prefix :button-suffix widget-button-suffix :completions-function widget-default-completions :create widget-default-create :indent :offset 0 :format-handler widget-default-format-handler :button-face-get widget-default-button-face-get :mouse-face-get widget-default-mouse-face-get :sample-face-get widget-default-sample-face-get :delete widget-default-delete :copy identity :value-set widget-default-value-set :value-inline widget-default-value-inline :value-delete ignore :default-get widget-default-default-get :menu-tag-get widget-default-menu-tag-get :validate :active widget-default-active :activate widget-specify-active :deactivate widget-default-deactivate :mouse-down-action :action widget-default-action :notify widget-default-notify :prompt-value widget-default-prompt-value] 58)
#@82 Return completion data, like `completion-at-point-functions' would.

(fn WIDGET)
(defalias 'widget-default-completions #[257 #@475 ("\300\301\"\211\2030\302!`\303!]E\202@0\300\304\"\203,0\305\306\307\310\311!\312\"\313\314%\202@0\300\315\"\205@0\305\306\316\310\311!\317\"\320\314%\207" . [widget-get :completions widget-field-start widget-field-text-end :complete make-byte-code 0 "\301\300\302\"\207" vconcat vector [widget-apply :complete] 3 "\n\n(fn)" :complete-function "\300\302\303\300\304\"!)\207" [widget--completing-widget call-interactively widget-get :complete-function] 4])(#$ . 42836) nil 8 (#$ . 42704)])
#@60 Create WIDGET at point in the current buffer.

(fn WIDGET)
(defalias 'widget-default-create #[257 #@1580 ("\214\302\211``}\210`\303\211\211\211\211\211\211\304	\305\"c\210b\210\306\307\303\302#\2030\310\224f\311\312!\210\211\313=\20370\313c\210\202,\211\314=\203J0`\262\315\n\316\"c\210\202,\211\317=\203]0\315\n\320\"c\210`\262\202,\211\321=\203i0`\262\202,\211\322=\203u0`\262\202,\211\323=\203\2220\304\n\324\"\203,\325c\210\326\327\304\f\324\"\"\210\202,\211\330=\203\3140\304\n\331\"\304\332\"\203\2640\333\f\206\2560\334#\210\202\3070\211\203\2760\211c\210\202\3070\335\304
\336\"p\"\210\266\202,\211\337=\203\3700\304\n\340\"\211\203\3640`\262\211c\210h\325=\203\3560\311\341!\210\202\3410\325c\210`\262\210\202,\211\342=\203\343\n!\210\202,\211\344=\203%\203_\204_\345\n\346\"\210\202,`\262\202,\345\n\347#\210\210\2020\203B\203B\350	#\210\203S\203S\351	#\210\203b\203b\352	#\210\211\203o\211b\210\345	\346\"\210\266\353 \354 \355\302\"\210\355\303\"\210\356\357#\210\356\360#\266db\210+\361 \207" . [inhibit-modification-hooks inhibit-read-only t nil widget-get :format re-search-forward "%\\(.\\)" 1 delete-char -2 37 91 widget-get-indirect :button-prefix 93 :button-suffix 123 125 110 :indent 10 insert-char 32 116 :tag-glyph :tag widget-image-insert "image" princ :value 100 :doc -1 104 widget-add-documentation-string-button 118 widget-apply :value-create :format-handler widget-specify-button widget-specify-sample widget-specify-doc point-min-marker point-max-marker set-marker-insertion-type widget-put :from :to widget-clear-undo])(#$ . 43455) nil 16 (#$ . 43349)])
(defalias 'widget-default-format-handler #[514 #@53 ("\300\301\"\207" . [error "Unknown escape `%c'"])(#$ . 45121) nil 5 "\n\n(fn WIDGET ESCAPE)"])
(defalias 'widget-default-button-face-get #[257 #@163 ("\301\302\"\2060\301\303\"\211\2030\304\305\"\2020\262\207" . [widget-button-face widget-get :button-face :parent widget-apply :button-face-get])(#$ . 45273) nil 5 "\n\n(fn WIDGET)"])
(defalias 'widget-default-mouse-face-get #[257 #@160 ("\301\302\"\2060\301\303\"\211\2030\304\305\"\2020\262\207" . [widget-mouse-face widget-get :mouse-face :parent widget-apply :mouse-face-get])(#$ . 45527) nil 5 "\n\n(fn WIDGET)"])
(defalias 'widget-default-sample-face-get #[257 #@50 ("\300\301\"\207" . [widget-get :sample-face])(#$ . 45778) nil 4 "\n\n(fn WIDGET)"])
#@45 Remove widget from the buffer.

(fn WIDGET)
(defalias 'widget-default-delete #[257 #@474 ("\302\303\"\302\304\"\302\305\"\302\306\"\302\307\"\302\310\"\311\211\312\313\"\210\314!\210\20300\315!\210\20380\315!\210\203@0\315!\210\211\203H0\315!\210W\203R0|\210\316\211\223\210\316\211\223\210*\266\317 \207" . [inhibit-read-only inhibit-modification-hooks widget-get :from :to :inactive :button-overlay :sample-overlay :doc-overlay t widget-apply :value-delete widget-children-value-delete delete-overlay nil widget-clear-undo])(#$ . 45961) nil 10 (#$ . 45871)])
#@52 Recreate widget with new value.

(fn WIDGET VALUE)
(defalias 'widget-default-value-set #[514 #@338 ("`\300\301\302\"!\300\301\303\"!X\205+0X\205+0SY\203(0\304\305#\202+0Z\212\301\302\"b\210\306\307\"\210\310\311#\210\306\312\"\210)\211\205j0\211\313W\203_0\314\301\303\"\305#b\202j0\\\301\303\"S^b\207" . [copy-marker widget-get :from :to - 1 widget-apply :delete widget-put :value :create 0 +])(#$ . 46574) nil 10 (#$ . 46474)])
#@56 Wrap value in a list unless it is inline.

(fn WIDGET)
(defalias 'widget-default-value-inline #[257 #@84 ("\300\301\"\2030\302!\207\302!C\207" . [widget-get :inline widget-value])(#$ . 47057) nil 4 (#$ . 46951)])
#@28 Get `:value'.

(fn WIDGET)
(defalias 'widget-default-default-get #[257 #@44 ("\300\301\"\207" . [widget-get :value])(#$ . 47256) nil 4 (#$ . 47179)])
#@42 Use tag or value for menus.

(fn WIDGET)
(defalias 'widget-default-menu-tag-get #[257 #@124 ("\300\301\"\2060\300\302\"\2060\303\300\304\"!\207" . [widget-get :menu-tag :tag widget-princ-to-string :value])(#$ . 47431) nil 5 (#$ . 47338)])
#@67 Return t if this widget is active (user modifiable).

(fn WIDGET)
(defalias 'widget-default-active #[257 #@160 ("\300\301\"\2060\300\302\"?\2050\300\303\"\211?\2060\304\305\"\262\207" . [widget-get :always-active :inactive :parent widget-apply :active])(#$ . 47705) nil 5 (#$ . 47593)])
#@59 Make WIDGET inactive for user modifications.

(fn WIDGET)
(defalias 'widget-default-deactivate #[257 #@88 ("\300\301\302\"\301\303\"#\207" . [widget-specify-inactive widget-get :from :to])(#$ . 48010) nil 7 (#$ . 47903)])
#@71 Notify the parent when a widget changes.

(fn WIDGET &optional EVENT)
(defalias 'widget-default-action #[513 #@89 ("\300\301\"\211\2050\302\303$\207" . [widget-get :parent widget-apply :notify])(#$ . 48251) nil 8 (#$ . 48136)])
#@65 Pass notification to parent.

(fn WIDGET CHILD &optional EVENT)
(defalias 'widget-default-notify #[770 #@44 ("\300\"\207" . [widget-default-action])(#$ . 48487) nil 6 (#$ . 48378)])
#@60 Read an arbitrary value.

(fn WIDGET PROMPT VALUE UNBOUND)
(defalias 'widget-default-prompt-value #[1028 #@36 ("\300!\207" . [eval-minibuffer])(#$ . 48680) nil 6 (#$ . 48569)])
#@397 Return the documentation string specified by WIDGET, or nil if none.
If WIDGET has a `:doc' property, that specifies the documentation string.
Otherwise, try the `:documentation-property' property.  If this
is a function, call it with the widget's value as an argument; if
it is a symbol, use this symbol together with the widget's value
as the argument to `documentation-property'.

(fn WIDGET)
(defalias 'widget-docstring #[257 #@335 ("\300\301\"\206&0\300\302\"\300\303\"\304!\2030!\202$09\205$0\305\"\266\202\211;\205O0\211G\306V\205O0\211\306H\307=\203@0\211\310\311O\262\312\313\"\203N0\211\306\211\224O\262\211\207" . [widget-get :doc :documentation-property :value functionp documentation-property 0 42 1 nil string-match "\n+\\'"])(#$ . 49192) nil 6 (#$ . 48755)])
(define-widget 'item 'default "Constant items for inclusion in other widgets." :convert-widget 'widget-value-convert-widget :value-create 'widget-item-value-create :value-delete 'ignore :value-get 'widget-value-value-get :match 'widget-item-match :match-inline 'widget-item-match-inline :action 'widget-item-action :format "%t\n")
#@62 Insert the printed representation of the value.

(fn WIDGET)
(defalias 'widget-item-value-create #[257 #@56 ("\300\301\302\"p\"\207" . [princ widget-get :value])(#$ . 50005) nil 5 (#$ . 49896)])
(defalias 'widget-item-match #[514 #@49 ("\300\301\"\232\207" . [widget-get :value])(#$ . 50134) nil 5 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-item-match-inline #[514 #@135 ("\300\301\"\211<\205&0\211GGX\205&0\302\303G#\211\232\205$0\211\302G\"B\262\207" . [widget-get :value widget-sublist 0])(#$ . 50275) nil 8 "\n\n(fn WIDGET VALS)"])
#@132 Return the sublist of LIST from START to END.
If END is omitted, it defaults to the length of LIST.

(fn LIST START &optional END)
(defalias 'widget-sublist #[770 #@140 ("\300V\2030\233\262\211\203'0\211X?\205*0\301!\262\302\303#\233\304\241\210\207\301!\207" . [0 copy-sequence - 1 nil])(#$ . 50629) nil 7 (#$ . 50459)])
(defalias 'widget-item-action #[513 #@47 ("\300\301$\207" . [widget-apply :notify])(#$ . 50843) nil 7 "\n\n(fn WIDGET &optional EVENT)"])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\315\316\317\320\321\322\323\322\324\325\326\327&\207" [custom-declare-variable widget-push-button-prefix funcall function #[0 "\300\207" ["["] 1 "[\n\n(fn)"] "String used as prefix for buttons." :type string :group widget-button widget-push-button-suffix #[0 "\300\207" ["]"] 1 "]\n\n(fn)"] "String used as suffix for buttons." define-widget push-button item "A pushable button." :button-prefix "" :button-suffix :value-create widget-push-button-value-create :format "%[%v%]"] 12)
#@66 Insert text representing the `on' and `off' states.

(fn WIDGET)
(defalias 'widget-push-button-value-create #[257 #@196 ("\302\303\"\2060\302\304\"\302\305\"	Q\203_0\306#\202!0\211c\207" . [widget-push-button-prefix widget-push-button-suffix widget-get :tag :value :tag-glyph widget-image-insert])(#$ . 51661) nil 8 (#$ . 51540)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\315\316\317\320\321\301\322\312\323\324\325\326\327\330&
\210\315\331\316\332\333\334%\207" [custom-declare-variable widget-link-prefix funcall function #[0 "\300\207" ["["] 1 "[\n\n(fn)"] "String used as prefix for links." :type string :group widget-button widget-link-suffix #[0 "\300\207" ["]"] 1 "]\n\n(fn)"] "String used as suffix for links." define-widget link item "An embedded link." :button-prefix :button-suffix :follow-link mouse-face :help-echo "Follow the link." :format "%[%t%]" info-link "A link to an info file." :action widget-info-link-action] 14)
#@70 Open the info node specified by WIDGET.

(fn WIDGET &optional EVENT)
(defalias 'widget-info-link-action #[513 #@43 ("\300\301!!\207" . [info widget-value])(#$ . 52686) nil 5 (#$ . 52570)])
(define-widget 'url-link 'link "A link to an www page." :action 'widget-url-link-action)
#@64 Open the URL specified by WIDGET.

(fn WIDGET &optional EVENT)
(defalias 'widget-url-link-action #[513 #@49 ("\300\301!!\207" . [browse-url widget-value])(#$ . 52965) nil 5 (#$ . 52856)])
(define-widget 'function-link 'link "A link to an Emacs function." :action 'widget-function-link-action)
#@69 Show the function specified by WIDGET.

(fn WIDGET &optional EVENT)
(defalias 'widget-function-link-action #[513 #@56 ("\300\301!!\207" . [describe-function widget-value])(#$ . 53276) nil 5 (#$ . 53157)])
(define-widget 'variable-link 'link "A link to an Emacs variable." :action 'widget-variable-link-action)
#@69 Show the variable specified by WIDGET.

(fn WIDGET &optional EVENT)
(defalias 'widget-variable-link-action #[513 #@56 ("\300\301!!\207" . [describe-variable widget-value])(#$ . 53594) nil 5 (#$ . 53475)])
(define-widget 'file-link 'link "A link to a file." :action 'widget-file-link-action)
#@65 Find the file specified by WIDGET.

(fn WIDGET &optional EVENT)
(defalias 'widget-file-link-action #[513 #@48 ("\300\301!!\207" . [find-file widget-value])(#$ . 53885) nil 5 (#$ . 53774)])
(define-widget 'emacs-library-link 'link "A link to an Emacs Lisp library file." :action 'widget-emacs-library-link-action)
#@79 Find the Emacs library file specified by WIDGET.

(fn WIDGET &optional EVENT)
(defalias 'widget-emacs-library-link-action #[513 #@68 ("\300\301\302!!!\207" . [find-file locate-library widget-value])(#$ . 54229) nil 6 (#$ . 54095)])
(define-widget 'emacs-commentary-link 'link "A link to Commentary in an Emacs Lisp library file." :action 'widget-emacs-commentary-link-action)
#@97 Find the Commentary section of the Emacs file specified by WIDGET.

(fn WIDGET &optional EVENT)
(defalias 'widget-emacs-commentary-link-action #[513 #@56 ("\300\301!!\207" . [finder-commentary widget-value])(#$ . 54634) nil 5 (#$ . 54479)])
(define-widget 'editable-field 'default "An editable text field.\nNote: In an `editable-field' widget, the `%v' escape must be preceded\nby some other text in the `:format' string (if specified)." :convert-widget 'widget-value-convert-widget :keymap widget-field-keymap :format "%v" :help-echo "M-TAB: complete field; RET: enter value" :value #1="" :prompt-internal 'widget-field-prompt-internal :prompt-history 'widget-field-history :prompt-value 'widget-field-prompt-value :action 'widget-field-action :validate 'widget-field-validate :valid-regexp #1# :error "Field's value doesn't match allowed forms" :value-create 'widget-field-value-create :value-set 'widget-field-value-set :value-delete 'widget-field-value-delete :value-get 'widget-field-value-get :match 'widget-field-match)
#@36 History of field minibuffer edits.
(defvar widget-field-history nil (#$ . 55514))
#@166 Read string for WIDGET prompting with PROMPT.
INITIAL is the initial input and HISTORY is a symbol containing
the earlier input.

(fn WIDGET PROMPT INITIAL HISTORY)
(defalias 'widget-field-prompt-internal #[1028 #@34 ("\300#\207" . [read-string])(#$ . 55821) nil 8 (#$ . 55603)])
#@56 Prompt for a string.

(fn WIDGET PROMPT VALUE UNBOUND)
(defalias 'widget-field-prompt-value #[1028 #@175 ("\300\301\300\302?\2050\300\303#\304B\305\f\306\"%#\207" . [widget-apply :value-to-external :prompt-internal :value-to-internal 0 widget-get :prompt-history])(#$ . 55999) nil 15 (#$ . 55893)])
(defvar widget-edit-functions nil)
#@50 Move to next field.

(fn WIDGET &optional EVENT)
(defalias 'widget-field-action #[513 #@96 ("\300\301!\210\302\303\"\207" . [widget-forward 1 run-hook-with-args widget-edit-functions])(#$ . 56340) nil 5 (#$ . 56248)])
#@60 Valid if the content matches `:valid-regexp'.

(fn WIDGET)
(defalias 'widget-field-validate #[257 #@116 ("\300\301\302\"\303\304\"\"?\2050\211\207" . [string-match widget-get :valid-regexp widget-apply :value-get])(#$ . 56579) nil 6 (#$ . 56474)])
#@63 Set an editable text field WIDGET to VALUE

(fn WIDGET VALUE)
(defalias 'widget-field-value-set #[514 #@181 ("\300!\301!\302!\205'0\205'0\303!\205'0r\211q\210b\210\304Z!\210c)\207" . [widget-field-start widget-field-text-end widget-field-buffer buffer-live-p delete-char])(#$ . 56842) nil 8 (#$ . 56733)])
#@45 Create an editable text field.

(fn WIDGET)
(defalias 'widget-field-value-create #[257 #@351 ("\302\303\"\302\304\"`\305 \305 B\306\307#\210c\210\203*0GW\203*0\310\311GZ\"\210>\20440	B\211A`\312\223\210\313A\312\"\210\204G0\314c\210\211@\312\223\210\313@\315\"\207" . [widget-field-list widget-field-new widget-get :size :value make-marker widget-put :field-overlay insert-char 32 nil set-marker-insertion-type 10 t])(#$ . 57155) nil 9 (#$ . 57061)])
#@72 Remove the widget from the list of active editing fields.

(fn WIDGET)
(defalias 'widget-field-value-delete #[257 #@157 ("\302\"\302	\"\303\304\"\305!\2050\306!\207" . [widget-field-list widget-field-new delq widget-get :field-overlay overlayp delete-overlay])(#$ . 57665) nil 4 (#$ . 57544)])
#@185 Return current text in editing field.
Normally, trailing spaces within the editing field are truncated.
But if NO-TRUNCATE is non-nil, include them.

(fn WIDGET &optional NO-TRUNCATE)
(defalias 'widget-field-value-get #[513 #@368 ("\300!\203
0\301!\2020\302!\303!\304\305\"p\203R0\203R0q\210\306\"\203I0\307\\W\203H0\310	\\\311\"I\210\211T\262\202,0\210q\210\211\262\202W0\304\312\"\207" . [widget-field-start widget-field-end widget-field-text-end widget-field-buffer widget-get :secret buffer-substring-no-properties 0 get-char-property secret :value])(#$ . 58092) nil 14 (#$ . 57861)])
(defalias 'widget-field-match #[514 #@20 ("\211;\207" . [])(#$ . 58535) nil 3 "\n\n(fn WIDGET VALUE)"])
(byte-code "\301\302\303\304\305%\210\301\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350&#\207" [widget-text-keymap define-widget text editable-field "A multiline text area." :keymap menu-choice default "A menu of options." :convert-widget widget-types-convert-widget :copy widget-types-copy :format "%[%t%]: %v" :case-fold t :tag "choice" :void (item :format "invalid (%t)\n") :value-create widget-choice-value-create :value-get widget-child-value-get :value-inline widget-child-value-inline :default-get widget-choice-default-get :mouse-down-action widget-choice-mouse-down-action :action widget-choice-action :error "Make a choice" :validate widget-choice-validate :match widget-choice-match :match-inline widget-choice-match-inline] 36)
#@62 Insert the first choice that matches the value.

(fn WIDGET)
(defalias 'widget-choice-value-create #[257 #@460 ("\300\301\"\300\302\"\300\303\"\304\203-0\305\306\307	#C#\210\305\310#\210\305\303\304#\202}0\203^0@\262A\262\311\312#\203-0\305\306\307	#C#\210\305\310#\210\304\262\304\262\202-0\211\205}0\300\313\"\305\306\314	\301$C#\210\305\310#\262\207" . [widget-get :value :args :explicit-choice nil widget-put :children widget-create-child-value :choice widget-apply :match :void widget-create-child-and-convert])(#$ . 59551) nil 14 (#$ . 59439)])
(defalias 'widget-choice-default-get #[257 #@67 ("\300\301\302\"@!\207" . [widget-default-get widget-get :args])(#$ . 60093) nil 5 "\n\n(fn WIDGET)"])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable widget-choice-toggle funcall function #[0 "\300\207" [nil] 1 "\n\n(fn)"] "If non-nil, a binary choice will just toggle between the values.\nOtherwise, the user will explicitly have to choose between the values\nwhen he invoked the menu." :type boolean :group widgets] 8)
(defalias 'widget-choice-mouse-down-action #[513 #@267 ("\302\303\"\302\304\"\305 \2040\306\202A0G\307W\2030\306\202A0GV\203'0\306\202A0G\307V\20320\310\202A0	\203@0\211>\203@0\306\202A0\310\207" . [widget-menu-max-size widget-choice-toggle widget-get :args :choice display-popup-menus-p nil 2 t])(#$ . 60611) nil 6 "\n\n(fn WIDGET &optional EVENT)"])
(defalias 'widget-choice-action #[513 #@778 ("\302\303\"\302\304\"\305\306\"\302\307\"\310\211\211\310\262\20360\305	\311\"\20460\312	!\305\313#\314\315#\266G\316U\203B0\310\202\2370G\317U\203P0@\202\2370	\203x0G\320U\203x0>\203x0@=\203r0A@\202\2370@\202\2370\203\2240@\262A\262\305\306\"BB\262\202x0\321\262\322\323!\n#\262\203\3050\203\2600\314	\324#\210\325	\326!\"\210\327 \210\305	\330$\210)\266\331\332\"\207" . [completion-ignore-case widget-choice-toggle widget-get :args :choice widget-apply :menu-tag-get :case-fold nil :validate widget-value :value-to-internal widget-put :value 0 1 2 t widget-choose reverse :explicit-choice widget-value-set widget-default-get widget-setup :notify run-hook-with-args widget-edit-functions])(#$ . 60976) nil 15 "\n\n(fn WIDGET &optional EVENT)"])
(defalias 'widget-choice-validate #[257 #@129 ("\300\301\"\300\302\"=\203
0\207\303\300\304\"@\305\"\207" . [widget-get :void :choice widget-apply :children :validate])(#$ . 61855) nil 5 "\n\n(fn WIDGET)"])
(defalias 'widget-choice-match #[514 #@132 ("\300\301\"\302\211\203!0\211\204!0@\262A\262\303\304#\262\2020\207" . [widget-get :args nil widget-apply :match])(#$ . 62065) nil 9 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-choice-match-inline #[514 #@130 ("\300\301\"\302\211\203_0\211\204_0@\262A\262\303\"\262\2020\207" . [widget-get :args nil widget-match-inline])(#$ . 62291) nil 8 "\n\n(fn WIDGET VALS)"])
(define-widget 'toggle 'item "Toggle between two states." :format "%[%v%]\n" :value-create 'widget-toggle-value-create :action 'widget-toggle-action :match #[514 "\300\207" [t] 3 "\n\n(fn WIDGET VALUE)"] :on "on" :off "off")
#@66 Insert text representing the `on' and `off' states.

(fn WIDGET)
(defalias 'widget-toggle-value-create #[257 #@242 ("\300!\301\203
0\302\2020\303\"\304\301\2030\305\2020\306\"!\307\206$0\310\205,0\311\312\"#\207" . [widget-value widget-get :on :off widget-image-find :on-glyph :off-glyph widget-image-insert "" append (:ascent center)])(#$ . 62810) nil 10 (#$ . 62694)])
(defalias 'widget-toggle-action #[513 #@151 ("\300\301!?\"\210\302\303$\210\304\305\"\207" . [widget-value-set widget-value widget-apply :notify run-hook-with-args widget-edit-functions])(#$ . 63130) nil 7 "\n\n(fn WIDGET &optional EVENT)"])
(define-widget 'checkbox 'toggle "A checkbox toggle." :button-suffix #1="" :button-prefix #1# :format "%[%v%]" :on "[X]" :on-glyph "checked" :off "[ ]" :off-glyph "unchecked" :help-echo "Toggle this item." :action 'widget-checkbox-action)
#@95 Toggle checkbox, notify parent, and set active state of sibling.

(fn WIDGET &optional EVENT)
(defalias 'widget-checkbox-action #[513 #@207 ("\300\"\210\301!\211\205!0\302!\2030\303\304\"\210\202_0\303\305\"\210\306 \207" . [widget-toggle-action widget-get-sibling widget-value widget-apply :activate :deactivate widget-clear-undo])(#$ . 63720) nil 6 (#$ . 63579)])
(define-widget 'checklist 'default "A multiple choice widget." :convert-widget 'widget-types-convert-widget :copy 'widget-types-copy :format "%v" :offset 4 :entry-format "%b %v" :greedy nil :value-create 'widget-checklist-value-create :value-get 'widget-checklist-value-get :validate 'widget-checklist-validate :match 'widget-checklist-match :match-inline 'widget-checklist-match-inline)
(defalias 'widget-checklist-value-create #[257 #@213 ("\300!\301\302\"\211\211\2030\211@\303\211\236#\210A\266\202\2020\210\304\305\301\305\"\237#\207" . [widget-checklist-match-find widget-get :args widget-checklist-add-item widget-put :children])(#$ . 64401) nil 10 "\n\n(fn WIDGET)"])
#@137 Create checklist item in WIDGET of type TYPE.
If the item is checked, CHOSEN is a cons whose cdr is the value.

(fn WIDGET TYPE CHOSEN)
(defalias 'widget-checklist-add-item #[771 #@1004 ("h\302=\2030\303\304\"\2030\305\306\303\304\"\"\210\214\307\211``}\210\303\310\"\303\311\"\303\312\"\20610\303\313\"`\314\211\303	\315\"c\210b\210\316\317\314\307#\203\2720\320\224f\321\322!\210\211\323=\203Y0\323c\210\202\2660\211\324=\203r0\325\326\327\330\f??\n&\262\202\2660\211\331=\203\2610\204\2160\332\n\n\"\333\334\"\210\211\262\202\2540\303	\335\"\203\2420\336\n\n\nA#\202\2540\336\n\n\nA@#\262\202\2660\337\340\"\210\210\202>0\211\203\3100\203\3100\341\342#\210\211\203\3260\341	\311B#\210\205\3430\341	\310	B#\266\206db\210+\207" . [inhibit-modification-hooks inhibit-read-only 10 widget-get :indent insert-char 32 t :children :buttons :sibling-args :button-args nil :entry-format re-search-forward "%\\([bv%]\\)" 1 delete-char -2 37 98 apply widget-create-child-and-convert checkbox :value 118 widget-create-child widget-apply :deactivate :inline widget-create-child-value error "Unknown escape `%c'" widget-put :button])(#$ . 64846) nil 17 (#$ . 64659)])
(defalias 'widget-checklist-match #[514 #@66 ("\211<\2050\300\"A?\207" . [widget-checklist-match-inline])(#$ . 65929) nil 5 "\n\n(fn WIDGET VALS)"])
(defalias 'widget-checklist-match-inline #[514 #@315 ("\300\301\"\302\300\303\"!\304\211\203V0\305\"\211\20340\306\"\307@\"\262\211A\262\310\"\262\210\202R0\203H0\307@C\"\262A\262\202R0\307\"\262\304\262\210\202\f0B\207" . [widget-get :greedy copy-sequence :args nil widget-checklist-match-up widget-match-inline append delq])(#$ . 66091) nil 11 "\n\n(fn WIDGET VALS)"])
#@113 Find the vals which match a type in the checklist.
Return an alist of (TYPE MATCH).

(fn WIDGET &optional VALS)
(defalias 'widget-checklist-match-find #[513 #@301 ("\211\204\n0\300\301\"\262\300\302\"\303\300\304\"!\305\203N0\306\"\211\203<0\307\"@BB\262\211A\262\310\"\262\210\202J0\203G0A\262\202J0\305\262\210\2020\207" . [widget-get :value :greedy copy-sequence :args nil widget-checklist-match-up widget-match-inline delq])(#$ . 66620) nil 10 (#$ . 66456)])
#@68 Return the first type from ARGS that matches VALS.

(fn ARGS VALS)
(defalias 'widget-checklist-match-up #[514 #@113 ("\300\211\2030\211\2040@\262A\262\301\"\262\2020\211\205 0\207" . [nil widget-match-inline])(#$ . 67077) nil 7 (#$ . 66960)])
(defalias 'widget-checklist-value-get #[257 #@191 ("\300\301\"\302\211\203'0@\262A\262\303\300\304\"!\2030\305\306\307\"\"\262\2020\207" . [widget-get :children nil widget-value :button append widget-apply :value-inline])(#$ . 67273) nil 9 "\n\n(fn WIDGET)"])
(defalias 'widget-checklist-validate #[257 #@193 ("\300\301\"\302\211\211\203,0\211\204,0@\262A\262\300\303\"\262\304!\205'0\305\306\"\262\2020\207" . [widget-get :children nil :button widget-value widget-apply :validate])(#$ . 67551) nil 8 "\n\n(fn WIDGET)"])
(byte-code "\300\301\302\303\304\305%\210\300\306\307\310\311\312\313\314&\210\300\315\316\317\320\321\313\322\323\324\325\324\326\327\330\331\332\333\334\335&\207" [define-widget option checklist "An widget with an optional item." :inline t choice-item item "Button items that delegate action events to their parents." :action widget-parent-action :format "%[%t%] \n" radio-button toggle "A radio button for use in the `radio' widget." :notify widget-radio-button-notify "%[%v%]" :button-suffix "" :button-prefix :on "(*)" :on-glyph "radio1" :off "( )" :off-glyph "radio0"] 20)
(defalias 'widget-radio-button-notify #[770 #@76 ("\300\301\302\"\303$\207" . [widget-apply widget-get :parent :action])(#$ . 68412) nil 8 "\n\n(fn WIDGET CHILD &optional EVENT)"])
(define-widget 'radio-button-choice 'default "Select one of multiple options." :convert-widget 'widget-types-convert-widget :copy 'widget-types-copy :offset 4 :format "%v" :entry-format "%b %v" :value-create 'widget-radio-value-create :value-get 'widget-radio-value-get :value-inline 'widget-radio-value-inline :value-set 'widget-radio-value-set :error "You must push one of the buttons" :validate 'widget-radio-validate :match 'widget-choice-match :match-inline 'widget-choice-match-inline :action 'widget-radio-action)
(defalias 'widget-radio-value-create #[257 #@118 ("\300\301\"\302\2050@\262A\262\303\"\210\2020\207" . [widget-get :args nil widget-radio-add-item])(#$ . 69118) nil 6 "\n\n(fn WIDGET)"])
#@84 Add to radio widget WIDGET a new radio button item of type TYPE.

(fn WIDGET TYPE)
(defalias 'widget-radio-add-item #[514 #@1026 ("h\302=\2030\303\304\"\2030\305\306\303\304\"\"\210\214\307\211``}\210\303\310\"\303\311\"\303\312\"\303\313\"\20650\303\314\"`\303\315\"?\205F0\316\317#\320\211\303\n\321\"c\210b\210\322\323\320\307#\203\2700\324\224f\325\326!\210\211\327=\203m0\327c\210\202\2640\211\330=\203\2060\331\332\f\333\310??&\262\202\2640\211\334=\203\2570\203\2330\335#\202\2410\336\"\262\204\2640\316\337\"\210\202\2640\340\341\"\210\210\202R0\203\3040\342\n\315#\210\211\203\3310\342\343#\210\342\n\312C\244#\210\203\3500\342\n\311	C\244#\210\266\210db\210+\207" . [inhibit-modification-hooks inhibit-read-only 10 widget-get :indent insert-char 32 t :value :children :buttons :sibling-args :button-args :choice widget-apply :match nil :entry-format re-search-forward "%\\([bv%]\\)" 1 delete-char -2 37 98 apply widget-create-child-and-convert radio-button 118 widget-create-child-value widget-create-child :deactivate error "Unknown escape `%c'" widget-put :button])(#$ . 69409) nil 18 (#$ . 69279)])
(defalias 'widget-radio-value-get #[257 #@73 ("\300!\211\205\n0\301!\207" . [widget-radio-chosen widget-value])(#$ . 70514) nil 4 "\n\n(fn WIDGET)"])
#@70 Return the widget representing the chosen radio button.

(fn WIDGET)
(defalias 'widget-radio-chosen #[257 #@165 ("\300\301\"\302\211\203%0@\262A\262\303\300\304\"\305\"\2030\262\302\262\2020\207" . [widget-get :children nil widget-apply :button :value-get])(#$ . 70743) nil 8 (#$ . 70630)])
(defalias 'widget-radio-value-inline #[257 #@188 ("\300\301\"\302\211\203(0@\262A\262\303\300\304\"\305\"\2030\303\306\"\262\302\262\2020\207" . [widget-get :children nil widget-apply :button :value-get :value-inline])(#$ . 70990) nil 8 "\n\n(fn WIDGET)"])
(defalias 'widget-radio-value-set #[514 #@280 ("\300\301\"\302\211\205G0@\262A\262\300\303\"?\205!0\304\305#\306\"\210\211\20380\306\"\210\304\307\"\210\202=0\304\310\"\210\206B0\211\266\203\2020\207" . [widget-get :children nil :button widget-apply :match widget-value-set :activate :deactivate])(#$ . 71262) nil 10 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-radio-validate #[257 #@205 ("\300\301\"\302\211\211\203&0\204&0@\262A\262\300\303\"\262\304\305\"\262\2020\20310\304\306\"\20220\207" . [widget-get :children nil :button widget-apply :value-get :validate])(#$ . 71632) nil 8 "\n\n(fn WIDGET)"])
(defalias 'widget-radio-action #[771 #@324 ("\300\301\"\300\302\"\303>\203F0\203F0@\262A\262\300\304\"=\20320\305\306\"\210\307\310\"\210\202B0\311!\203B0\305\303\"\210\307\312\"\210\210\2020\266\307\313$\207" . [widget-get :children :buttons nil :button widget-value-set t widget-apply :activate widget-value :deactivate :notify])(#$ . 71918) nil 10 "\n\n(fn WIDGET CHILD EVENT)"])
(define-widget 'insert-button 'push-button "An insert button for the `editable-list' widget." :tag "INS" :help-echo "Insert a new item into the list at this position." :action 'widget-insert-button-action)
(defalias 'widget-insert-button-action #[513 #@100 ("\300\301\302\"\303\301\304\"#\207" . [widget-apply widget-get :parent :insert-before :widget])(#$ . 72550) nil 8 "\n\n(fn WIDGET &optional EVENT)"])
(define-widget 'delete-button 'push-button "A delete button for the `editable-list' widget." :tag "DEL" :help-echo "Delete this item from the list." :action 'widget-delete-button-action)
(defalias 'widget-delete-button-action #[513 #@96 ("\300\301\302\"\303\301\304\"#\207" . [widget-apply widget-get :parent :delete-at :widget])(#$ . 72941) nil 8 "\n\n(fn WIDGET &optional EVENT)"])
(define-widget 'editable-list 'default "A variable list of widgets of the same type." :convert-widget 'widget-types-convert-widget :copy 'widget-types-copy :offset 12 :format "%v%i\n" :format-handler 'widget-editable-list-format-handler :entry-format "%i %d %v" :value-create 'widget-editable-list-value-create :value-get 'widget-editable-list-value-get :validate 'widget-children-validate :match 'widget-editable-list-match :match-inline 'widget-editable-list-match-inline :insert-before 'widget-editable-list-insert-before :delete-at 'widget-editable-list-delete-at)
(defalias 'widget-editable-list-format-handler #[514 #@251 ("\211\300=\203 0\301\302\"\2030\303\304\301\302\"\"\210\305\306\307\301\310\"$\207\311\"\207" . [105 widget-get :indent insert-char 32 apply widget-create-child-and-convert insert-button :append-button-args widget-default-format-handler])(#$ . 73719) nil 9 "\n\n(fn WIDGET ESCAPE)"])
(defalias 'widget-editable-list-value-create #[257 #@375 ("\300\301\"\300\302\"@\303\304\305\306`!#\210\307\300\305\"\310\"\210\203K0\311\"\211\203D0\312\300\313\"\20340@\20270@@\310#B\262\211A\262\202G0\303\262\210\2020\304\314\237#\207" . [widget-get :value :args nil widget-put :value-pos copy-marker set-marker-insertion-type t widget-match-inline widget-editable-list-entry-create :inline :children])(#$ . 74072) nil 10 "\n\n(fn WIDGET)"])
(defalias 'widget-editable-list-value-get #[257 #@160 ("\300\301\302\303\304\305\"\"\"\207" . [apply append mapcar #[257 "\300\301\"\207" [widget-apply :value-inline] 4 "\n\n(fn CHILD)"] widget-get :children])(#$ . 74540) nil 8 "\n\n(fn WIDGET)"])
(defalias 'widget-editable-list-match #[514 #@70 ("\211<\2050\300\"A?\207" . [widget-editable-list-match-inline])(#$ . 74787) nil 5 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-editable-list-match-inline #[514 #@177 ("\300\301\"@\302\303\203,0\203,0\304\"\211\203%0\305@\"\262\211A\262\202(0\303\262\210\2020\211B\207" . [widget-get :args t nil widget-match-inline append])(#$ . 74958) nil 9 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-editable-list-insert-before #[514 #@480 ("\212\303\304\"\305\306\211\2030\303\307\"b\210\2020\303\310\"b\210\311\306\211#\303\307\"\303\312\"W\203:0\303\312\"\303\307\"\306\223\210@=\203L0\313\304B#\210\202b0A@=\204[0A\262\202L0AB\241\210\210+\210)\314 \210\315\316#\207" . [after-change-functions before-change-functions inhibit-read-only widget-get :children t nil :entry-from :value-pos widget-editable-list-entry-create :from widget-put widget-setup widget-apply :notify])(#$ . 75237) nil 9 "\n\n(fn WIDGET BEFORE)"])
(defalias 'widget-editable-list-delete-at #[514 #@521 ("\212\303\304\305\"!\306\307\306\211\20370@\262A\262\304\310\"=\2030\311\305\312\304	\305\"\"#\210\313!\210\2020+\266\304\314\"\304\315\"\307\306\211\313!\210|\210\306\211\223\210\211\306\211\223\210+\266\311\316\312\304\316\"\"#\210)\317 \210\320\321#\207" . [after-change-functions before-change-functions inhibit-read-only copy-sequence widget-get :buttons nil t :widget widget-put delq widget-delete :entry-from :entry-to :children widget-setup widget-apply :notify])(#$ . 75816) nil 12 "\n\n(fn WIDGET CHILD)"])
(defalias 'widget-editable-list-entry-create #[771 #@1107 ("\302\303\"@\304\211\211\214\305\211``}\210\212\302\306\"\203#0\307\310\302	\306\"\"\210\302\311\"c\210)\312\313\304\305#\203\2410\314\224f\315\316!\210\211\317=\203F0\317c\210\202\2350\211\320=\203\\0\321\322	\323\302\f\324\"$\262\202\2350\211\325=\203r0\321\322	\326\302\f\327\"$\262\202\2350\211\330=\203\2300\203\2110\331	#\262\202\2350\331\332!#\262\202\2350\333\334\"\210\210\202+0\302\335\"\203\2570B\262\203\2700B\262\336\335#\266\337 \340 \341\305\"\210\341\304\"\210\336\342#\210\336\343#\266db\210+\211\203\3510\336\344#\210\203\3630\336\344#\210\207" . [inhibit-modification-hooks inhibit-read-only widget-get :args nil t :indent insert-char 32 :entry-format re-search-forward "%\\(.\\)" 1 delete-char -2 37 105 apply widget-create-child-and-convert insert-button :insert-button-args 100 delete-button :delete-button-args 118 widget-create-child-value widget-default-get error "Unknown escape `%c'" :buttons widget-put point-min-marker point-max-marker set-marker-insertion-type :entry-from :entry-to :widget])(#$ . 76440) nil 15 "\n\n(fn WIDGET VALUE CONV)"])
(define-widget 'group 'default "A widget which groups other widgets inside." :convert-widget 'widget-types-convert-widget :copy 'widget-types-copy :format "%v" :value-create 'widget-group-value-create :value-get 'widget-editable-list-value-get :default-get 'widget-group-default-get :validate 'widget-children-validate :match 'widget-group-match :match-inline 'widget-group-match-inline)
(defalias 'widget-group-value-create #[257 #@402 ("\300\301\"\300\302\"\303\211\211\203d0@\262A\262\304\"\262A\262h\305=\20380\300\306\"\20380\307\310\300\306\"\"\210\204D0\311\"\202]0\300\312\"\203U0\313@#\202]0\313@@#B\262\2020\314\315\237#\207" . [widget-get :args :value nil widget-match-inline 10 :indent insert-char 32 widget-create-child :inline widget-create-child-value widget-put :children])(#$ . 78034) nil 11 "\n\n(fn WIDGET)"])
(defalias 'widget-group-default-get #[257 #@78 ("\300\301\302\303\"\"\207" . [mapcar widget-default-get widget-get :args])(#$ . 78522) nil 6 "\n\n(fn WIDGET)"])
(defalias 'widget-group-match #[514 #@83 ("\211<\2050\300\"\211\2050\211A?\262\207" . [widget-group-match-inline])(#$ . 78679) nil 5 "\n\n(fn WIDGET VALS)"])
(defalias 'widget-group-match-inline #[514 #@203 ("\300\301\"\302\211\211\20350@\262A\262\303\"\211\262\203,0\304@\"\262A\262\2020\302\262\302\262\2020\205<0\211B\207" . [widget-get :args nil widget-match-inline append])(#$ . 78854) nil 9 "\n\n(fn WIDGET VALS)"])
(byte-code "\300\301\302\303\304\305\306\307\310\307\311\312\313\314\315\316\317\320\321\322\323\324\325\326&\210\327\322\330\"\210\300\331\332\333\334\335\336\337\323\340&	\207" [define-widget visibility item "An indicator and manipulator for hidden items.\n\nThe following properties have special meanings for this widget:\n:on-glyph  Image filename or spec to display when the item is visible.\n:on        Text shown if the \"on\" image is nil or cannot be displayed.\n:off-glyph Image filename or spec to display when the item is hidden.\n:off       Text shown if the \"off\" image is nil cannot be displayed." :format "%[%v%]" :button-prefix "" :button-suffix :on-glyph "down" :on "Hide" :off-glyph "right" :off "Show" :value-create widget-visibility-value-create :action widget-toggle-action :match #[514 "\300\207" [t] 3 "\n\n(fn WIDGET VALUE)"] defalias widget-toggle-value-create documentation-link link "Link type used in documentation strings." :tab-order -1 :help-echo "Describe this symbol" widget-documentation-link-action] 24)
#@105 Display documentation for WIDGET's value.  Ignore optional argument EVENT.

(fn WIDGET &optional EVENT)
(defalias 'widget-documentation-link-action #[513 #@231 ("\300\301\"\302!\303!\2030\304!\2030\305\306\307!\310Q!\202-0\303!\203*0\311!\202-0\312!\207" . [widget-get :value intern fboundp boundp apropos "\\`" regexp-quote "\\'" describe-function describe-variable])(#$ . 80310) nil 8 (#$ . 80149)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\300\316\302\303\317DD\320\306\303\321\322\310\311&	\210\300\323\302\303\324DD\325\306\326\310\311&\207" [custom-declare-variable widget-documentation-links funcall function #[0 "\300\207" [t] 1 "\n\n(fn)"] "Add hyperlinks to documentation strings when non-nil." :type boolean :group widget-documentation widget-documentation-link-regexp #[0 "\300\207" ["`\\([^\n`' ]+\\)'"] 1 "`\\([^\n`' ]+\\)'\n\n(fn)"] "Regexp for matching potential links in documentation strings.\nThe first group should be the link itself." regexp widget-documentation-link-p #[0 "\300\207" [intern-soft] 1 "\n\n(fn)"] "Predicate used to test if a string is useful as a link.\nThe value should be a function.  The function will be called with one\nargument, a string, and should return non-nil if there should be a\nlink for that string." :options (widget-documentation-link-p) widget-documentation-link-type #[0 "\300\207" [documentation-link] 1 "\n\n(fn)"] "Widget type used for links in documentation strings." symbol] 10)
(defalias 'widget-documentation-link-add #[771 #@520 ("\306#\210\205L0	\307\310\"\311\305!\n\211\212b\210\312\313#\203C0\314\315!\315\224\315\225!\203>0\316\317%B\262\266\2020)\320\310#+\266\202\207" . [widget-documentation-links widget-documentation-link-regexp widget-documentation-face widget-button-pressed-face widget-button-face widget-mouse-face widget-specify-doc widget-get :buttons default-value re-search-forward t match-string 1 widget-convert-button :value widget-put widget-documentation-link-p widget-documentation-link-type])(#$ . 81735) nil 14 "\n\n(fn WIDGET FROM TO)"])
(define-widget 'documentation-string 'item "A documentation string." :format "%v" :action 'widget-documentation-string-action :value-create 'widget-documentation-string-value-create :visibility-widget 'visibility)
(defalias 'widget-documentation-string-value-create #[257 #@860 ("\300!\301\302\"\301\211\303\"\304\"`\305\306\"\203\2500\307\211\224O\307\225\310O\310\211\311!\210\312\261\210\313	`#\210\314	\301\315\"\316\317\320\321\322\323\324\325\326\327&
\262\203\2340\330c\210`\262\203h0\331!\204h0\332\312\"\210c\210`\262\313	#\210\203\2340\307V\203\2340\212\214}\210eb\210\333\306\310\325#\203\2330\311!\210\202\2130*\334	\335C#\266\202\2650\311!\210c\210\313`#\210\266\330c\207" . [widget-value widget-get :indent :parent :documentation-shown string-match "\n" 0 nil widget-documentation-string-indent-to 32 widget-documentation-link-add widget-create-child-and-convert :visibility-widget :help-echo "Show or hide rest of the documentation." :on "Hide" :off "More" :always-active t :action widget-parent-action 10 zerop insert-char search-forward widget-put :buttons])(#$ . 82580) nil 23 "\n\n(fn WIDGET)"])
(defalias 'widget-documentation-string-indent-to #[257 #@126 ("\211\247\2050\211\300V\2050`j\210\301`\302\303\304E$\262\207" . [0 put-text-property display space :align-to])(#$ . 83540) nil 9 "\n\n(fn COL)"])
(defalias 'widget-documentation-string-action #[385 #@147 ("\300\301\"\302\303\300\303\"?#\266\304\305!\"\207" . [widget-get :parent widget-put :documentation-shown widget-value-set widget-value])(#$ . 83759) nil 9 "\n\n(fn WIDGET &rest IGNORE)"])
#@347 Insert a new `documentation-string' widget based on WIDGET.
The new widget becomes a child of WIDGET, and is also added to
its `:buttons' list.  The documentation string is found from
WIDGET using the function `widget-docstring'.
Optional ARGS specifies additional keyword arguments for the
`documentation-string' widget.

(fn WIDGET &rest ARGS)
(defalias 'widget-add-documentation-string-button #[385 #@336 ("\300!\301\302\"\301\303\"\205D0h\304=\2030\2030\305\306\"\210\211\247\204*0\211\203*0\307\262\310\311\312\313	\314\302\f\fC\244&\301	\311\"B#\207" . [widget-docstring widget-get :indent :documentation-indent 10 insert-char 32 0 widget-put :buttons apply widget-create-child-and-convert documentation-string])(#$ . 84372) nil 16 (#$ . 83963)])
(define-widget 'const 'item "An immutable sexp." :prompt-value 'widget-const-prompt-value :format "%t\n%d")
(defalias 'widget-const-prompt-value #[1028 #@33 ("\300!\207" . [widget-value])(#$ . 84899) nil 6 "\n\n(fn WIDGET PROMPT VALUE UNBOUND)"])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\302\311\304\305\306\312&\210\300\313\314\315\316\317\304\320\321\313&	\207" [define-widget function-item const "An immutable function name." :format "%v\n%h" :documentation-property #[257 "\300\301\302\303\304\305\306!\307\"\310\311%D\312\301\313\300EDC\217\207" [#:err funcall make-byte-code 0 "\301\300\302\"\207" vconcat vector [documentation t] 3 "\n\n(fn)" error #[257 "\300\207" [nil] 2 "\n\n(fn IGNORED)"]] 9 "\n\n(fn SYMBOL)"] variable-item "An immutable variable name." variable-documentation other sexp "Matches any value, but doesn't let the user edit the value.\nThis is useful as last item in a `choice' widget.\nYou should use this widget type with a default value,\nas in (other DEFAULT) or (other :tag \"NAME\" DEFAULT).\nIf the user selects this alternative, that specifies DEFAULT\nas the value." :tag "Other" "%t%n" :value] 10)
#@51 History of input to `widget-string-prompt-value'.
(defvar widget-string-prompt-value-history nil (#$ . 85905))
(byte-code "\300\301\302\303\304\305\306\307\310\311\312\313&\210\300\314\301\315\316\317\320\321\304\322&	\207" [define-widget string editable-field "A string" :tag "String" :format "%{%t%}: %v" :complete-function ispell-complete-word :prompt-history widget-string-prompt-value-history regexp "A regular expression." :match widget-regexp-match :validate widget-regexp-validate "Regexp"] 12)
(defalias 'widget-regexp-match #[514 #@258 ("\211;\2050\300\301\302\303\304\305\306!\307\"\310\311%D\312\301\313\300EDC\217\207" . [#1=#:err funcall make-byte-code 0 "\301\302\300\303\"\210\207" vconcat vector [t string-match ""] 4 "\n\n(fn)" error #[257 "\300\207" [nil] 2 "\n\n(fn IGNORED)"]])(#$ . 86453) nil 10 "\n\n(fn WIDGET VALUE)"])
#@64 Check that the value of WIDGET is a valid regexp.

(fn WIDGET)
(defalias 'widget-regexp-validate #[257 #@352 ("\300\301\302\303\304\305\306!\307\"\310\311%D\312\301\302\313\314\305\306	!\315\"\316\317%\300EDC\217\207" . [#1=#:err funcall make-byte-code 0 "\301\302\303\300!\304\"\210\207" vconcat vector [nil string-match widget-value ""] 4 "\n\n(fn)" error 257 "\301\300\302\303!#\210\300\207" [widget-put :error error-message-string] 6 "\n\n(fn DATA)"])(#$ . 86871) nil 11 (#$ . 86761)])
(define-widget 'file 'string "A file widget.\nIt reads a file name from an editable text field." :completions 'completion-file-name-table :prompt-value 'widget-file-prompt-value :format "%{%t%}: %v" :tag "File")
(defalias 'widget-file-prompt-value #[1028 #@231 ("\300\2030\301!\202%0\302\303#\304!\305!\306\307\"\301\310%\266\204!\207" . [abbreviate-file-name read-file-name format "%s (default %s): " file-name-directory file-name-nondirectory widget-get :must-match nil])(#$ . 87518) nil 15 "\n\n(fn WIDGET PROMPT VALUE UNBOUND)"])
(define-widget 'directory 'file "A directory widget.\nIt reads a directory name from an editable text field." :tag "Directory")
#@51 History of input to `widget-symbol-prompt-value'.
(defvar widget-symbol-prompt-value-history nil (#$ . 87942))
(define-widget 'symbol 'editable-field "A Lisp symbol." :value nil :tag "Symbol" :format "%{%t%}: %v" :match #[514 "\2119\207" [] 3 "\n\n(fn WIDGET VALUE)"] :completions obarray :prompt-internal 'widget-symbol-prompt-internal :prompt-match 'symbolp :prompt-history 'widget-symbol-prompt-value-history :value-to-internal #[514 "\2119\203	\300!\207\207" [symbol-name] 4 "\n\n(fn WIDGET VALUE)"] :value-to-external #[514 "\211;\203	\300!\207\207" [intern] 4 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-symbol-prompt-internal #[1028 #@168 ("\301\302\303\"\304&\211;\203_0\305G!\204_0\211\202\"0\306\307!\207" . [obarray completing-read widget-get :prompt-match nil zerop error "No value"])(#$ . 88593) nil 11 "\n\n(fn WIDGET PROMPT INITIAL HISTORY)"])
#@53 History of input to `widget-function-prompt-value'.
(defvar widget-function-prompt-value-history nil (#$ . 88828))
(byte-code "\301\302\303\304\305\306\307\310\311$\312\313\314\315\316\310\317\320\321\322\323\324\325\326\327\330\331\332&\207" [obarray define-widget function restricted-sexp "A Lisp function." :completions apply-partially completion-table-with-predicate fboundp strict :prompt-value widget-field-prompt-value :prompt-internal widget-symbol-prompt-internal :prompt-match :prompt-history widget-function-prompt-value-history :action widget-field-action :match-alternatives (functionp) :validate #[257 "\300\301!!?\205\302\303\304\305\301!\"#\210\211\207" [functionp widget-value widget-put :error format "Invalid function: %S"] 8 "\n\n(fn WIDGET)"] :value ignore :tag "Function"] 24)
#@53 History of input to `widget-variable-prompt-value'.
(defvar widget-variable-prompt-value-history nil (#$ . 89641))
(byte-code "\301\302\303\304\305\306\307\310\311\312\313\306\314$\315\316&\210\301\317\303\320\321\322\315\323\324\325\307\326\327\330\331\332\311\312\313\333\314$\334\335\336\337\305\333&\207" [obarray define-widget variable symbol "A Lisp variable." :prompt-match boundp :prompt-history widget-variable-prompt-value-history :completions apply-partially completion-table-with-predicate strict :tag "Variable" coding-system "A MULE coding-system." :format "%{%t%}: %v" "Coding system" :base-only nil coding-system-value-history :prompt-value widget-coding-system-prompt-value :action widget-coding-system-action coding-system-p :validate #[257 "\300\301!!?\205\302\303\304\305\301!\"#\210\211\207" [coding-system-p widget-value widget-put :error format "Invalid coding system: %S"] 8 "\n\n(fn WIDGET)"] :value undecided] 24)
#@71 Read coding-system from minibuffer.

(fn WIDGET PROMPT VALUE UNBOUND)
(defalias 'widget-coding-system-prompt-value #[1028 #@260 ("\301\302\"\2030\303\304\305\306#\307\310\311\312!\"\313\211\211&!\207\314\305\306#\"\207" . [coding-system-history widget-get :base-only intern completing-read format "%s (default %s): " mapcar list coding-system-list t nil read-coding-system])(#$ . 90726) nil 12 (#$ . 90597)])
(defalias 'widget-coding-system-action #[513 #@188 ("\300\301\302\"\303!\304$\305\"\210\301\306$\210\307 \207" . [widget-coding-system-prompt-value widget-apply :menu-tag-get widget-value t widget-value-set :notify widget-setup])(#$ . 91071) nil 8 "\n\n(fn WIDGET &optional EVENT)"])
#@57 History of input to `widget-key-sequence-prompt-value'.
(defvar widget-key-sequence-prompt-value-history nil (#$ . 91318))
#@42 Default value for an empty key sequence.
(defvar widget-key-sequence-default-value [ignore] (#$ . 91447))
(defvar widget-key-sequence-map (byte-code "\301 \302\"\210\303\304\305#\210\211\207" [widget-field-keymap make-sparse-keymap set-keymap-parent define-key [(control 113)] widget-key-sequence-read-event] 5))
(define-widget 'key-sequence 'restricted-sexp "A key sequence." :prompt-value 'widget-field-prompt-value :prompt-internal 'widget-symbol-prompt-internal :prompt-history 'widget-key-sequence-prompt-value-history :action 'widget-field-action :match-alternatives '(stringp vectorp) :format "%{%t%}: %v" :validate 'widget-key-sequence-validate :value-to-internal 'widget-key-sequence-value-to-internal :value-to-external 'widget-key-sequence-value-to-external :value widget-key-sequence-default-value :keymap widget-key-sequence-map :help-echo "C-q: insert KEY, EVENT, or CODE; RET: enter value" :tag "Key sequence")
(defalias 'widget-key-sequence-read-event #[257 #@706 ("\303\304!>\205\n0\305 \306!\2050\307\310!\"\250\203^0\311X\203+0\311\312	^\\W\204?0\313\227X\203^0\227\314\313\315\316	^#W\203^0\nB\317\320\321	\"!\262\322\262\250\203^0\323!\204^0\324!c\210\325C!\262\326!\203\2030\325\327HC!\262\330\320\331\211$!\203\2030\211\262\322\262`Sf\332U\203\2170\333\202\2200\334\334\261\210\205\2400\325C!\334\261\207" . [function-key-map read-quoted-char-radix unread-command-events down event-modifiers read-event keymapp lookup-key vector 48 10 97 + -10 36 read-quoted-char format "Enter code (radix %d)" nil characterp char-to-string key-description arrayp 0 y-or-n-p "Key %s is translated to %s -- use %s? " 32 "" " "])(#$ . 92431) nil 9 "\n\n(fn EV)" (byte-code "\302\303\304\305!*C\207" [quit-flag inhibit-quit t nil read-event "Insert KEY, EVENT, or CODE: "] 2)])
(defalias 'widget-key-sequence-validate #[257 #@158 ("\300!;\206\f0\301\300!!?\2050\302\303\304\305\300!\"#\210\211\207" . [widget-value vectorp widget-put :error format "Invalid key sequence: %S"])(#$ . 93338) nil 8 "\n\n(fn WIDGET)"])
(defalias 'widget-key-sequence-value-to-internal #[514 #@140 ("\301\302#\2030\211\232\2030\303\207\304!\207\207" . [widget-key-sequence-default-value widget-apply :match "" key-description])(#$ . 93595) nil 6 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-key-sequence-value-to-external #[514 #@143 ("\211;\2030\301\302\"\2030\207\303!\207\207" . [widget-key-sequence-default-value string-match "\\`[[:space:]]*\\'" read-kbd-macro])(#$ . 93840) nil 5 "\n\n(fn WIDGET VALUE)"])
(define-widget 'sexp 'editable-field "An arbitrary Lisp expression." :tag "Lisp expression" :format "%{%t%}: %v" :value nil :validate 'widget-sexp-validate :match #[514 "\300\207" [t] 3 "\n\n(fn WIDGET VALUE)"] :value-to-internal 'widget-sexp-value-to-internal :value-to-external #[514 "\300!\207" [read] 4 "\n\n(fn WIDGET VALUE)"] :prompt-history 'widget-sexp-prompt-value-history :prompt-value 'widget-sexp-prompt-value)
(defalias 'widget-sexp-value-to-internal #[514 #@207 ("\2119\2030\300!\2020\301!\302\303\"\2030\211\304\305O\262\2020\302\303\"\204,0\211G\306V\20320\307P\20230\211\207" . [prin1-to-string pp-to-string string-match "\n\\'" 0 -1 40 "\n"])(#$ . 94504) nil 6 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-sexp-validate #[257 #@933 ("\300\301!r\211q\210\302\303\304\305\306\307!\310\"\311\312%DC\216\313\314\"c\210eb\210\315C\316\302\303\304\317\306\307	\"\320\"\321\312%D\322\302\303\323\324\306\307	!\325\"\326\327%\316ED\330\302\303\323\331\306\307\n!\332\"\333\327%\316EDD\217\210\211@\205i0\334\335@#\210\262*\207" . [generate-new-buffer " *temp*" funcall make-byte-code 0 "\301\300!\205	0\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 "\n\n(fn)" widget-apply :value-get nil #1=#:err "\302\303!\210m\2030\301\304\240\210\202 0\305\300\306\307p!#\204 0\301\310\300\311\"\240\210\302\303!\210m?\20570\301@?\20570\301\312\313`d{\"\240\207" [skip-syntax-forward "\\s-" "Empty sexp -- use `nil'?" widget-apply :match read widget-get :type-error format "Junk at end of expression: %s"] 5 end-of-file 257 "\300\301\240\207" ["Unbalanced sexp"] 3 "\n\n(fn DATA)" error "\300\301!\240\207" [error-message-string] 4 widget-put :error])(#$ . 94799) nil 14 "\n\n(fn WIDGET)"])
#@49 History of input to `widget-sexp-prompt-value'.
(defvar widget-sexp-prompt-value-history nil (#$ . 95776))
(defalias 'widget-sexp-prompt-value #[1028 #@224 ("\300?\205\f0\301!\302B\303\304\"#\305!\211AGU\204&0\306\307A\310O\"\210\211@\262\207" . [read-string prin1-to-string 0 widget-get :prompt-history read-from-string error "Junk at end of expression: %s" nil])(#$ . 95933) nil 11 "\n\n(fn WIDGET PROMPT VALUE UNBOUND)"])
(define-widget 'restricted-sexp 'sexp "A Lisp expression restricted to values that match.\nTo use this type, you must define :match or :match-alternatives." :type-error "The specified value is not valid" :match 'widget-restricted-sexp-match :value-to-internal #[514 "\300\301#\203\f\302!\207\207" [widget-apply :match prin1-to-string] 6 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-restricted-sexp-match #[514 #@193 ("\300\301\"\302\203<0\211\204<0\303@!\2030@!\202/0@:\20350@@\304=\20350@A@=\20350\305\262A\262\2020\207" . [widget-get :match-alternatives nil functionp quote t])(#$ . 96636) nil 6 "\n\n(fn WIDGET VALUE)"])
(byte-code "\300\301\302\303\304\305\306\307\310\311\312\313&\210\300\314\302\315\304\316\306\317\310\320\312\321&\210\300\322\302\323\304\324\306\325\310\326\312\327&\210\300\330\331\332\304\333\306\307\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353&\210\300\354\355\356\304\357\336\360&\210\300\361\355\362\304\363\336\360\352\364\346\365\350\366&
\207" [define-widget integer restricted-sexp "An integer." :tag "Integer" :value 0 :type-error "This field should contain an integer" :match-alternatives (integerp) number "A number (floating point or integer)." "Number" 0.0 "This field should contain a number (floating point or integer)" (numberp) float "A floating point number." "Floating point number" 0.0 "This field should contain a floating point number" (floatp) character editable-field "A character." "Character" :size 1 :format "%{%t%}: %v\n" :valid-regexp "\\`.\\'" :error "This field should contain a single character" :value-get #[257 "\300\301\"\207" [widget-field-value-get t] 4 "\n\n(fn W)"] :value-to-internal #[514 "\211;\203\207\300!\207" [char-to-string] 4 "\n\n(fn WIDGET VALUE)"] :value-to-external #[514 "\211;\203	\211\300H\207\207" [0] 4 "\n\n(fn WIDGET VALUE)"] :match #[514 "\300!\207" [characterp] 4 "\n\n(fn WIDGET VALUE)"] list group "A Lisp list." "List" "%{%t%}:\n%v" vector "A Lisp vector." "Vector" widget-vector-match #[514 "\300\301\"\207" [append nil] 5 "\n\n(fn WIDGET VALUE)"] #[514 "\300\301\"\207" [apply vector] 5 "\n\n(fn WIDGET VALUE)"]] 24)
(defalias 'widget-vector-match #[514 #@105 ("\300!\2050\301\302\303#\"\207" . [vectorp widget-group-match widget-apply :value-to-internal])(#$ . 98434) nil 8 "\n\n(fn WIDGET VALUE)"])
(define-widget 'cons 'group "A cons-cell." :tag "Cons-cell" :format "%{%t%}:\n%v" :match 'widget-cons-match :value-to-internal #[514 "\211@AD\207" [] 4 "\n\n(fn WIDGET VALUE)"] :value-to-external #[514 "\300\301\"\207" [apply cons] 5 "\n\n(fn WIDGET VALUE)"])
(defalias 'widget-cons-match #[514 #@95 ("\211:\205
0\300\301\302#\"\207" . [widget-group-match widget-apply :value-to-internal])(#$ . 98885) nil 8 "\n\n(fn WIDGET VALUE)"])
(byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323&\210\300\324\325\326\327\330\331\332\306\333\334\335&\207" [define-widget lazy default "Base widget for recursive datastructures.\n\nThe `lazy' widget will, when instantiated, contain a single inferior\nwidget, of the widget type specified by the :type parameter.  The\nvalue of the `lazy' widget is the same as the value of the inferior\nwidget.  When deriving a new widget from the 'lazy' widget, the :type\nparameter is allowed to refer to the widget currently being defined,\nthus allowing recursive datastructures to be described.\n\nThe :type parameter takes the same arguments as the defcustom\nparameter with the same name.\n\nMost composite widgets, i.e. widgets containing other widgets, does\nnot allow recursion.  That is, when you define a new widget type, none\nof the inferior widgets may be of the same type you are currently\ndefining.\n\nIn Lisp, however, it is custom to define datastructures in terms of\nthemselves.  A list, for example, is defined as either nil, or a cons\ncell whose cdr itself is a list.  The obvious way to translate this\ninto a widget type would be\n\n  (define-widget 'my-list 'choice\n    \"A list of sexps.\"\n    :tag \"Sexp list\"\n    :args '((const nil) (cons :value (nil) sexp my-list)))\n\nHere we attempt to define my-list as a choice of either the constant\nnil, or a cons-cell containing a sexp and my-lisp.  This will not work\nbecause the `choice' widget does not allow recursion.\n\nUsing the `lazy' widget you can overcome this problem, as in this\nexample:\n\n  (define-widget 'sexp-list 'lazy\n    \"A list of sexps.\"\n    :tag \"Sexp list\"\n    :type '(choice (const nil) (cons :value (nil) sexp sexp-list)))" :format "%{%t%}: %v" :convert-widget widget-value-convert-widget :value-create widget-type-value-create :value-get widget-child-value-get :value-inline widget-child-value-inline :default-get widget-type-default-get :match widget-type-match :validate widget-child-validate plist list "A property list." :key-type (symbol :tag "Key") :value-type (sexp :tag "Value") widget-plist-convert-widget :tag "Plist"] 20)
(defalias 'widget-plist-convert-widget #[257 #@325 ("\301\302\"\301\303\"\304\305\306\307\305\306\301\310\"\257F\20300\311\305\306\312\306\313\314\"BBBBBD\20220\211C\315\316#\210)\207" . [widget-plist-value-type widget-get :options :value-type editable-list :inline t group :key-type checklist :greedy mapcar widget-plist-convert-option widget-put :args])(#$ . 101255) nil 11 "\n\n(fn WIDGET)"])
(defalias 'widget-plist-convert-option #[257 #@208 ("\301\211<\203\"0@A@\262\211<\2030\211\262\2020\302D\262\210\202*0\302D\262\262\303\304\305\306\307\257\207" . [widget-plist-value-type nil const group :format "Key: %v" :inline t])(#$ . 101671) nil 10 "\n\n(fn OPTION)"])
(define-widget 'alist 'list "An association list." :key-type '(sexp :tag "Key") :value-type '(sexp :tag "Value") :convert-widget 'widget-alist-convert-widget :tag "Alist")
(defalias 'widget-alist-convert-widget #[257 #@337 ("\301\302\"\301\303\"\304\305\306\307\310\311\301\312\"\257F\20300\313\305\306\314\306\315\316\"BBBBBD\20220\211C\317\320#\210)\207" . [widget-alist-value-type widget-get :options :value-type editable-list :inline t cons :format "%v" :key-type checklist :greedy mapcar widget-alist-convert-option widget-put :args])(#$ . 102142) nil 11 "\n\n(fn WIDGET)"])
(defalias 'widget-alist-convert-option #[257 #@187 ("\301\211<\203\"0@A@\262\211<\2030\211\262\2020\302D\262\210\202*0\302D\262\262\303\304\305\257\207" . [widget-alist-value-type nil const cons :format "Key: %v"])(#$ . 102570) nil 8 "\n\n(fn OPTION)"])
(define-widget 'choice 'menu-choice "A union of several sexp types." :tag "Choice" :format "%{%t%}: %[Value Menu%] %v" :button-prefix 'widget-push-button-prefix :button-suffix 'widget-push-button-suffix :prompt-value 'widget-choice-prompt-value)
#@50 Make a choice.

(fn WIDGET PROMPT VALUE UNBOUND)
(defalias 'widget-choice-prompt-value #[1028 #@598 ("\301\302\"\301\303\"\304\211\211\304\262\211\20300\305@\306\n#\203)0\211@\262\304\262\2020\211A\262\2020\210G\307U\203<0\304\202\2410G\310U\203H0@\202\2410G\311U\203g0\211>\203g0\211@=\203b0A@\202\2410@\202\2410\203\2000@\262A\262\305\312\"BB\262\202g0\313\304\314$\211;\205\2370\315\"\211;\203\2300\211\262\316\"A\262\262\262\203\2610\317	\304\314$\202\2630)\207" . [completion-ignore-case widget-get :args :case-fold nil widget-apply :match 0 1 2 :menu-tag-get completing-read t try-completion assoc widget-prompt-value])(#$ . 103148) nil 14 (#$ . 103047)])
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\300\312\313\314\304\315\306\316&\210\300\317\320\321\304\322\306\307&\210\300\323\324\325\304\326\310\327\330\331\332\333\306\334\335\336\337\340&\207" [define-widget radio radio-button-choice "A union of several sexp types." :tag "Choice" :format "%{%t%}:\n%v" :prompt-value widget-choice-prompt-value repeat editable-list "A variable length homogeneous list." "Repeat" "%{%t%}:\n%v%i\n" set checklist "A list of members from a fixed set." "Set" boolean toggle "To be nil or non-nil, that is the question." "Boolean" widget-boolean-prompt-value :button-prefix widget-push-button-prefix :button-suffix widget-push-button-suffix "%{%t%}: %[Toggle%]  %v\n" :on "on (non-nil)" :off "off (nil)"] 18)
(defalias 'widget-boolean-prompt-value #[1028 #@29 ("\300!\207" . [y-or-n-p])(#$ . 104591) nil 6 "\n\n(fn WIDGET PROMPT VALUE UNBOUND)"])
(byte-code "\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\206\320 \321\322\323\324\325\326&\207" [facemenu-color-alist define-widget color editable-field "Choose a color name (with sample)." :format "%{%t%}: %v (%{sample%})\n" :value-create widget-color-value-create :size 10 :tag "Color" :value "black" :completions defined-colors :sample-face-get widget-color-sample-face-get :notify widget-color-notify :action widget-color-action] 22)
(defalias 'widget-color-value-create #[257 #@219 ("\300!\210\301\302!\210\303\304\305\306\307\310&\210\301\302!\207" . [widget-field-value-create widget-insert " " widget-create-child-and-convert push-button :tag " Choose " :action widget-color--choose-action])(#$ . 105187) nil 8 "\n\n(fn WIDGET)"])
(defalias 'widget-color--choose-action #[513 #@358 ("\300\301\211\302\303\304\305pD\306\307\310\311\"D\312BB\313\314pD\257E#\207" . [list-colors-display nil lambda (color) when buffer-live-p widget-value-set quote widget-get :parent (color) (let* ((buf (get-buffer "*Colors*")) (win (get-buffer-window buf 0))) (bury-buffer buf) (and win (> (length (window-list)) 1) (delete-window win))) pop-to-buffer])(#$ . 105496) nil 14 "\n\n(fn WIDGET &optional EVENT)"])
(defalias 'widget-color-sample-face-get #[257 #@357 ("\300\301\302\303\304\305\306!\307\"\310\311%D\312\301\302\313\314\305\306	!\315\"\316\317%\300EDC\217\320!\20310\321BC\20220\322\207" . [#1=#:err funcall make-byte-code 0 "\301\300!\207" vconcat vector [widget-value] 2 "\n\n(fn)" error 257 "\301\300\302\"\207" [widget-get :value] 4 "\n\n(fn IGNORED)" color-defined-p foreground-color default])(#$ . 105962) nil 11 "\n\n(fn WIDGET)"])
#@50 Prompt for a color.

(fn WIDGET &optional EVENT)
(defalias 'widget-color-action #[513 #@189 ("\300\301\"\211\302P\303!\304G!?\205\"0\305\"\210\306 \210\300\307$\207" . [widget-apply :menu-tag-get ": " facemenu-read-color zerop widget-value-set widget-setup :notify])(#$ . 106457) nil 10 (#$ . 106364)])
#@78 Update the sample, and notify the parent.

(fn WIDGET CHILD &optional EVENT)
(defalias 'widget-color-notify #[770 #@154 ("\300\301\302\"\303\304\305\"#\210\306#\207" . [overlay-put widget-get :sample-overlay face widget-apply :sample-face-get widget-default-notify])(#$ . 106808) nil 9 (#$ . 106687)])
#@53 Display help-echo text for widget at POS.

(fn POS)
(defalias 'widget-echo-help #[257 #@157 ("\300!\211\2050\301\302\"\303!\2030\211!\262\211\205 0\304\305\306!\"\207" . [widget-at widget-get :help-echo functionp message "%s" eval])(#$ . 107095) nil 7 (#$ . 107002)])
(provide 'wid-edit)

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net