;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:38:57 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/emacs-lisp/cl-extra.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.
;;; Function definitions are lazy-loaded.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`cl-extra.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\301>\204\n \302\303!\210\301\207" [features cl-19 error "Tried to load `cl-extra' before `cl'!"] 2)
(defalias 'cl-push '(macro . #[(x place) #@45 ("\302\303	EE\207" . [place x setq cons])(#$ . 826) nil 5]))
(defalias 'cl-pop '(macro . #[(place) #@62 ("\301\302\303\304DEED\207" . [place car prog1 setq cdr])(#$ . 933) nil 7]))
#@67 Coerce OBJECT to type TYPE.
TYPE is a Common Lisp type specifier.
(defalias 'coerce #[(x type) #@464 ("\302=\2030	<\2030	\207\303	\304\"\207\305=\203$0\306	!\203 0	\207\307	!\207\310=\20350	;\20310	\207	\260\207\311=\203G0\312	!\203C0	\207\307	!\207\313=\203]0	;\203]0	G\314U\203]0	\315H\207\313=\203o0	9\203o0\316\317	!\"\207\320=\203y0\320	!\207\321	\"\203\2020	\207\322\323	#\207" . [type x list append nil vector vectorp vconcat string array arrayp character 1 0 coerce symbol-name float typep error "Can't coerce %s to type %s"])(#$ . 1121) nil 4 (#$ . 1019)])
#@218 T if two Lisp objects have similar structures and contents.
This is like `equal', except that it accepts numerically equal
numbers of different types (float vs. integer), and also compares
strings case-insensitively.
(defalias 'equalp #[(x y) #@352 ("	=\2030\303\207;\203&0	;\205\2230G	GU\205\2230	\230\206%0\227	\227\230\207\247\20340	\247\205\2230	U\207:\203`0:\203U0	:\203U0\304@	@\"\203U0A	A\20290:?\205\2230\304	\"\207\305!\203\2200\305	!\205\2230G	GU\205\2230G\nS\211\306Y\203\2130\304\nH	\nH\"\204w0\n\306W)\207	\232\207" . [x y i t equalp vectorp 0])(#$ . 1872) nil 4 (#$ . 1622)])
(defalias 'cl-mapcar-many #[(cl-func cl-seqs) #@460 ("AA\203g0\306\307\310\311\312\"\"\313\314!\306\306\314!\nW\203b0\f\203S0@:\203B0@@\211@A\240\210\202F0@H\240\210AA\202*0\307\f\"	BT\211\202 0	\237.\207\306@A@GG^\315T\211\nW\203\2660:\203\2270\211A@\202\2330H:\203\2530\211A@\202\2570H\"	B\202|0*	\237+\207" . [cl-seqs cl-res cl-n cl-i cl-args cl-p1 nil apply min mapcar length 0 copy-sequence -1 cl-p2 cl-func cl-y cl-x])(#$ . 2307) nil 6])
#@164 Map a function across one or more sequences, returning a sequence.
TYPE is the sequence type to return, FUNC is the function, and SEQS
are the argument sequences.
(defalias 'map #[(cl-type cl-func cl-seq &rest cl-rest) #@106 ("\305\306	\n$\f\2050\307\f\")\207" . [cl-func cl-seq cl-rest cl-res cl-type apply mapcar* coerce])(#$ . 3018) nil 5 (#$ . 2792)])
#@139 Map FUNC to each sublist of LIST or LISTS.
Like `mapcar', except applies to lists and their cdr's rather than to
the elements themselves.
(defalias 'maplist #[(cl-func cl-list &rest cl-rest) #@226 ("\20310\306	\307!B\306\306>\204-0\310\"\fB\n\2030\n\211\211A@A\240\210\2020\f\237+\207\306	\203D0	!\fB	A\211\20470\f\237)\207" . [cl-rest cl-list cl-p cl-args cl-res cl-func nil copy-sequence apply])(#$ . 3359) nil 5 (#$ . 3161)])
#@73 Like `mapcar', but does not accumulate values returned by the function.
(defalias 'cl-mapc #[(cl-func cl-seq &rest cl-rest) #@100 ("\2030\303\304\305	\n%\210\n\207\306	\n\"\207" . [cl-rest cl-func cl-seq apply map nil mapc])(#$ . 3752) nil 6 (#$ . 3621)])
#@74 Like `maplist', but does not accumulate values returned by the function.
(defalias 'mapl #[(cl-func cl-list &rest cl-rest) #@128 ("\2030\304\305	\n$\210\202 0\n\211\203_0	!\210A\211\2040)\n\207" . [cl-rest cl-func cl-list cl-p apply maplist])(#$ . 4018) nil 6 (#$ . 3888)])
#@74 Like `mapcar', but nconc's together the values returned by the function.
(defalias 'mapcan #[(cl-func cl-seq &rest cl-rest) #@80 ("\303\304\303\305	\n$\"\207" . [cl-func cl-seq cl-rest apply nconc mapcar*])(#$ . 4312) nil 7 (#$ . 4182)])
#@75 Like `maplist', but nconc's together the values returned by the function.
(defalias 'mapcon #[(cl-func cl-list &rest cl-rest) #@81 ("\303\304\303\305	\n$\"\207" . [cl-func cl-list cl-rest apply nconc maplist])(#$ . 4560) nil 7 (#$ . 4428)])
#@127 Return true if PREDICATE is true of any element of SEQ or SEQs.
If so, return the true (non-nil) value returned by PREDICATE.
(defalias 'some #[(cl-pred cl-seq &rest cl-rest) #@305 ("\204	0	<\2040\304\305\215\207\306	\203_0	\211A@!\211\2030\n)\207" . [cl-rest cl-seq cl-x cl-pred cl-some (byte-code "\302\303\304\305	%\210\304\207" [cl-seq cl-rest apply map nil #[(&rest cl-x) "\303	\"\211\2050\304\305\n\")\207" [cl-pred cl-x cl-res apply throw cl-some] 4]] 6) nil])(#$ . 4860) nil 3 (#$ . 4678)])
#@67 Return true if PREDICATE is true of every element of SEQ or SEQs.
(defalias 'every #[(cl-pred cl-seq &rest cl-rest) #@292 ("\204	0	<\2040\303\304\215\207	\203_0\n	@!\203_0	A\211\2040	?\207" . [cl-rest cl-seq cl-pred cl-every (byte-code "\302\303\304\305	%\210\306\207" [cl-seq cl-rest apply map nil #[(&rest cl-x) "\302	\"\2060\303\304\305\"\207" [cl-pred cl-x apply throw cl-every nil] 3] t] 6)])(#$ . 5324) nil 3 (#$ . 5201)])
#@68 Return true if PREDICATE is false of every element of SEQ or SEQs.
(defalias 'notany #[(cl-pred cl-seq &rest cl-rest) #@62 ("\303\304	\n$?\207" . [cl-pred cl-seq cl-rest apply some])(#$ . 5776) nil 5 (#$ . 5652)])
#@67 Return true if PREDICATE is false of some element of SEQ or SEQs.
(defalias 'notevery #[(cl-pred cl-seq &rest cl-rest) #@63 ("\303\304	\n$?\207" . [cl-pred cl-seq cl-rest apply every])(#$ . 5999) nil 5 (#$ . 5874)])
(defalias 'cl-map-keymap #[(cl-func cl-map) #@306 ("9\203\f0K\211\2020<\203S0	A\211:\205Q0	@:\203-0\n	@@	@A\"\210\2020\304	@!\204;0\305	@!\203D0\306\n	@\"\210\2020	@\307=\2030\310\211\2020)\207\311T\211GW\205o0H\203U0\nH\"\210\202U0)\207" . [cl-map cl-p cl-func cl-i vectorp char-table-p cl-map-keymap keymap nil -1])(#$ . 6143) nil 5])
(defalias 'cl-map-keymap-recursively #[(cl-func-rec cl-map &optional cl-base) #@257 ("\2040\302\303!\304\305	\"\207" . [cl-base cl-map copy-sequence [0] cl-map-keymap #[(cl-key cl-bind) "\211GS	I\210\304\n!\2030\305\n\306\307C\"#\207\n\"\207" [cl-base cl-key cl-bind cl-func-rec keymapp cl-map-keymap-recursively vconcat 0] 6]])(#$ . 6552) nil 3])
(defalias 'cl-map-intervals #[(cl-func &optional cl-what cl-prop cl-start cl-end) #@578 ("\2040p\306!\203\2000\307\211\310\307rq\210\311\2060e!\205)0\311!)\n\203q0\20390\fW\203q0\203G0\312\f#\202K0\313\f\"\211\206V0rq\210d)\314\f!\f	\307\223\210\203k0	^\202l0	\"\210\202+0\f\307\211\223\210\205~0\307\211\223,\207\204\2060\315\204\2170GW\205\2750\203\2440\312#\202\2500\313\"\206\2550\n^\"\210\n)\202\2170\207" . [cl-what cl-next2 cl-next cl-mark2 cl-mark cl-start bufferp nil t copy-marker next-single-property-change next-property-change marker-position 0 cl-end cl-prop cl-func])(#$ . 6916) nil 6])
(defalias 'cl-map-overlays #[(cl-func &optional cl-buffer cl-start cl-end cl-arg) #@742 ("\2040p\306\307!\203s0\310rq\210\307 \n\2030\311\n!\203%0\311!)	@	A\244\211\203`0\312	@!\203Y0\203D0\312	@!Y\204Y0\n\203Q0\313	@!\nX\204Y0\f	@\"\204`0	A\211\20400\n\203i0\n\310\211\223\210\205q0\310\211\223)\207rq\210\311\n\206}0e!)\205\2130rq\210\311!)\310\211\212\314!\211\205\2730\206\2470dW\205\2730q\210\315!\316!\310\223)\203\3470	\203\2240\312	@!U\203\3350\f	@\"\203\3350\310\211\223\204\2240	A\211\204\3030\202\2240\310\211\223\210\205\3670\310\211\223,\207" . [cl-buffer cl-ovl cl-start cl-end cl-func cl-arg fboundp overlay-lists nil copy-marker overlay-start overlay-end marker-position overlays-at next-overlay-change cl-pos cl-mark2 cl-mark])(#$ . 7601) nil 5])
(defalias 'cl-set-frame-visible-p #[(frame val) #@149 ("\2040\302	!\210\2020\303=\2030\304	!\210\2020\305	!\210\207" . [val frame make-frame-invisible icon iconify-frame make-frame-visible])(#$ . 8416) nil 2])
(byte-code "\301B\301\207" [current-load-list cl-progv-save] 2)
(defalias 'cl-progv-before #[(syms values) #@162 ("\20570\303@!\2030@@JB\2020@	B\n\203,0\211A@\n\211A@L\210\20200\304\211A@!\210\20200\207" . [syms cl-progv-save values boundp makunbound])(#$ . 8699) nil 3])
(defalias 'cl-progv-after #[nil #@106 ("\205#0@:\2030@@@AL\210\2020\301@!\210\211A@\210\20200\207" . [cl-progv-save makunbound])(#$ . 8918) nil 2])
#@54 Return the greatest common divisor of the arguments.
(defalias 'gcd #[(&rest args) #@128 ("\303\211A@\206\n0\304!\203,0\303\211A@!\211\304V\203(0	\n\211\246\211\2020)\202\f0	)\207" . [args a b abs 0])(#$ . 9138) nil 4 (#$ . 9048)])
#@52 Return the least common multiple of the arguments.
(defalias 'lcm #[(&rest args) #@131 ("\303>\2030\303\207\304\211A@\2060\305!\203-0\304\211A@!	\306	\n\"\245\n_)\2020	)\207" . [args a b 0 abs 1 gcd])(#$ . 9390) nil 4 (#$ . 9302)])
#@49 Return the integer square root of the argument.
(defalias 'isqrt #[(a) #@270 ("\250\203D0\303V\203D0\304X\2030\305\202*0\306X\203_0\304\202*0\307X\203)0\310\202*0\311\211\n\245\\\312\245\211\nW\203A0	\211\202.0\n*\207\303=\203L0\303\207\313\314\311\"\207" . [a g2 g 0 100 10 10000 1000000 1000 nil 2 signal arith-error])(#$ . 9635) nil 4 (#$ . 9557)])
#@129 Return a list of the floor of X and the fractional part of X.
With two arguments, return floor and remainder of their quotient.
(defalias 'floor* #[(x &optional y) #@64 ("\303	\"\211	\2030	\n_\2020\nZ)D\207" . [x y q floor])(#$ . 10112) nil 5 (#$ . 9942)])
#@133 Return a list of the ceiling of X and the fractional part of X.
With two arguments, return ceiling and remainder of their quotient.
(defalias 'ceiling* #[(x &optional y) #@92 ("\303	\"\211A@\304U\2030\n\2020\n@T\nA@	\2060\305ZD)\207" . [x y res floor* 0 1])(#$ . 10390) nil 4 (#$ . 10214)])
#@141 Return a list of the integer part of X and the fractional part of X.
With two arguments, return truncation and remainder of their quotient.
(defalias 'truncate* #[(x &optional y) #@85 ("\302Y	?\2060	\302Y=\2030\303	\"\207\304	\"\207" . [x y 0 floor* ceiling*])(#$ . 10706) nil 3 (#$ . 10521)])
#@139 Return a list of X rounded to the nearest integer and the remainder.
With two arguments, return rounding and remainder of their quotient.
(defalias 'round* #[(x &optional y) #@251 ("\203S0	\250\203D0\250\203D0\305\245\306	\n\\\"\211A@\307U\203:0\n\211\\U\203:0@\305\246\307U\204:0@S\nD\202B0@A@\nZD*\207\310	\245!\211	\f_Z)D\207	\250\203\\0	\307D\207\310	!\211	\fZ)D\207" . [y x hy res q 2 floor* 0 round])(#$ . 11011) nil 5 (#$ . 10830)])
#@59 The remainder of X divided by Y, with the same sign as Y.
(defalias 'mod* #[(x y) #@35 ("\302	\"A@\207" . [x y floor*])(#$ . 11388) nil 3 (#$ . 11300)])
#@59 The remainder of X divided by Y, with the same sign as X.
(defalias 'rem* #[(x y) #@38 ("\302	\"A@\207" . [x y truncate*])(#$ . 11549) nil 3 (#$ . 11461)])
#@55 Return 1 if A is positive, -1 if negative, 0 if zero.
(defalias 'signum #[(a) #@69 ("\301V\2030\302\207\301W\2030\303\207\301\207" . [a 0 1 -1])(#$ . 11709) nil 2 (#$ . 11625)])
(byte-code "\301B\301\207" [current-load-list *random-state*] 2)
#@124 Return a random nonnegative number less than LIM, an integer or float.
Optional second arg STATE is a random-state object.
(defalias 'random* #[(lim &optional state) #@668 ("\2040	\306H\211\250\203^0\307\310\311\n!\312\246Z\313\314\306\315\316\314\"\211I\210\n\307I\210\317\\\316\246\211\307V\203J0\n\f\fZ\211I\210\202-0T\211\320W\203]0\321\322\"\210\202J0,\313\313HT\316\246I\322\322HT\316\246I\323\n\nH\nHZI\324\"\250\203\3370\325X\203\2310\246\202\3460\324V\203\2540\326\327\"\321\325\"\\\330\330SW\203\3020\211\\T\211\202\2600\323\"\211W\203\3260\202\3330\321\")\202\3460\331\245_,\207" . [state *random-state* vec ii k j 3 0 1357335 abs 1357333 1 nil make-vector 55 21 200 random* 2 logand 8388607 512 lsh 9 1023 8388608.0 i n lim mask])(#$ . 12057) nil 7 (#$ . 11884)])
#@143 Return a copy of random-state STATE, or of `*random-state*' if omitted.
If STATE is t, return a new state object seeded from the time of day.
(defalias 'make-random-state #[(&optional state) #@215 ("\2040\302	!\207\303!\2030\304\305\"\207\250\203_0\306\307\310\311$\207\302\312 !\207" . [state *random-state* make-random-state vectorp cl-copy-tree t vector cl-random-state-tag -1 30 cl-random-time])(#$ . 12962) nil 5 (#$ . 12764)])
#@46 Return t if OBJECT is a random-state object.
(defalias 'random-state-p #[(object) #@91 ("\301!\2050G\302U\2050\303H\304=\207" . [object vectorp 4 0 cl-random-state-tag])(#$ . 13303) nil 2 (#$ . 13215)])
(defalias 'cl-finite-do #[(func a b) #@134 ("\300\301\302\217\207" . [err (byte-code "	\n\"\211\247\2050\211\304\245U?\2050)\207" [func a b res 2] 4) ((arith-error))])(#$ . 13470) nil 3])
(byte-code "\301B\302B\303B\304B\305B\306B\307B\310B\301\207" [current-load-list most-positive-float most-negative-float least-positive-float least-negative-float least-positive-normalized-float least-negative-normalized-float float-epsilon float-negative-epsilon] 2)
(defalias 'cl-float-limits #[nil #@937 ("\204\3260\306\247\203\3260\307\310\211\311\312\211#\2030\211_\2020\311\312\211\313\245#\20310\211\313\245_\2020\311\314\211#\203@0\211\\\20210\313\245\311\314\n#\203a0\n\\U\204a0\n\\\n\313\245\202F0[	\245\315	\245\n_\316\317\320\217\203\2040\313\245\n\313\245\202r0\n\n[\321	\245\211\316\322\323\217\203\2360\313\245\202\2200[\324\325\\\326U\204\2660\313\245\202\2470\211\\\327\\\330\331Z\332U\204\3160\313\245\202\2770\211\\\327\\_+\310\207" . [most-positive-float z y x most-negative-float least-positive-normalized-float 20.0 2.0 nil cl-finite-do * 2 + 16 err (byte-code "\211\302\245\302_U\2050	\302\245\303V\207" [x y 2 0] 3) ((arith-error)) 1 (byte-code "\301\245\302V\207" [x 2 0] 2) ((arith-error)) 1.0 1.0 1.0 0 1.0 1.0 1.0 least-negative-normalized-float least-positive-float least-negative-float float-epsilon float-negative-epsilon])(#$ . 13947) nil 6])
#@165 Return the subsequence of SEQ from START to END.
If END is omitted, it defaults to the length of the sequence.
If START or END is negative, it counts from the end.
(defalias 'subseq #[(seq start &optional end) #@364 (";\203\n0	\nO\207\306\n\2030\n\307W\2030\nG\211\\	\307W\203.0	\206,0G\211\\<\203c0	\307V\203=0	\233\n\203]0\306\nS\211	Y\203W0\211A@\fB\202C0\f\237)\202\2220\310!\202\2220\n\204n0\206m0G\311\n	Z\307]\306\"\307	\nW\203\2200\f	HI\210T	T\211\202z0\f*)\207" . [seq start end len res i nil 0 copy-sequence make-vector])(#$ . 15127) nil 5 (#$ . 14910)])
#@68 Concatenate, into a sequence of type TYPE, the argument SEQUENCES.
(defalias 'concatenate #[(type &rest seqs) #@219 ("\302=\2030\303\304	\"\207\305=\2030\303\306	\"\207\307=\203$0\303\310\211	\311\"\"\207\312\313\"\207" . [type seqs vector apply vconcat string concat list append (nil) error "Not a sequence type name: %s"])(#$ . 15646) nil 5 (#$ . 15529)])
#@39 Equivalent to (append (reverse X) Y).
(defalias 'revappend #[(x y) #@37 ("\302!	\244\207" . [x y reverse])(#$ . 15976) nil 2 (#$ . 15903)])
#@39 Equivalent to (nconc (nreverse X) Y).
(defalias 'nreconc #[(x y) #@28 ("\237	\244\207" . [x y])(#$ . 16122) nil 2 (#$ . 16051)])
#@63 Return the length of a list.  Return nil if list is circular.
(defalias 'list-length #[(x) #@132 ("\304\211\nA\203%0\n	=\2030\304V\204%0\305\\\nAA	A\2020\n\20340\nA?\20550T\20250+\207" . [x slow fast n 0 2])(#$ . 16286) nil 3 (#$ . 16188)])
#@43 Return true if SUBLIST is a tail of LIST.
(defalias 'tailp #[(sublist list) #@86 (":\2030	=\2040A\211\2020	\247\2030	\232\207	=\207" . [list sublist])(#$ . 16538) nil 3 (#$ . 16456)])
#@224 Make a copy of TREE.
If TREE is a cons cell, this recursively copies both its car and its cdr.
Contrast to copy-sequence, which copies only along the cdrs.  With second
argument VECP, this copies vectors as well as conses.
(defalias 'cl-copy-tree #[(tree &optional vecp) #@294 (":\203D0\304!\211	:\203@0	@:\204!0\n\203)0\305	@!\203)0	\306	@\n\"\240\210	A<\20470	\306	A\n\"\241\210	\211A@\210\2020)\202l0\n\203l0\305!\203l0\307!\211GS\211\310Y\203k0\306H\n\"I\210\202U0)\207" . [tree p vecp i copy-list vectorp cl-copy-tree copy-sequence 0])(#$ . 16941) nil 5 (#$ . 16663)])
(defalias 'copy-tree 'cl-copy-tree)
#@69 Return the value of SYMBOL's PROPNAME property, or DEFAULT if none.
(defalias 'get* #[(sym tag &optional def) #@129 ("	N\206-0\n\205-0\304!\211\203!0@	=\204!0AA\211\2040\203+0A@\202,0\n)\207" . [sym tag def plist symbol-plist])(#$ . 17426) nil 3 (#$ . 17309)])
#@128 Search PROPLIST for property PROPNAME; return its value or DEFAULT.
PROPLIST is a list of the sort returned by `symbol-plist'.
(defalias 'getf #[(plist tag &optional def) #@146 ("\303\304\"\210\304	N\206+0\n\205+0\203\"0@	=\204\"0AA\211\2040\203*0A@\207\n\207" . [plist tag def setplist --cl-getf-symbol--])(#$ . 17772) nil 4 (#$ . 17594)])
(defalias 'cl-set-getf #[(plist tag val) #@105 ("\211\2030	@\n=\2040	AA\211\2040	\203\"0	A\240\210\202'0\nBB)\207" . [plist p tag val])(#$ . 17998) nil 4])
(defalias 'cl-do-remf #[(plist tag) #@101 ("A\211A\2030	A@\n=\2040	AA\211\2020	A\205%0	\211AAA\241\210\303)\207" . [plist p tag t])(#$ . 18165) nil 3])
#@61 Remove from SYMBOL's plist the property PROP and its value.
(defalias 'cl-remprop #[(sym tag) #@128 ("\303!\211\2030\n	@=\2030\304	AA\"\210\305\2020\306	\n\")\207" . [sym plist tag symbol-plist setplist t cl-do-remf])(#$ . 18392) nil 4 (#$ . 18291)])
(defalias 'remprop 'cl-remprop)
#@151 Make an empty Common Lisp-style hash-table.
Keywords supported:  :test :size
The Common Lisp keywords :rehash-size and :rehash-threshold are ignored.
(defalias 'cl-make-hash-table #[(&rest cl-keys) #@129 ("\303>A@\206	0\304\305>A@\2060\306\307\305	\303	$*\207" . [cl-keys cl-size cl-test :test eql :size 20 make-hash-table])(#$ . 18796) nil 5 (#$ . 18591)])
#@37 Return t if OBJECT is a hash table.
(defalias 'cl-hash-table-p #[(x) #@71 ("\301!\206\n0\242\302=\207" . [x hash-table-p cl-hash-table-tag])(#$ . 19038) nil 2 (#$ . 18963)])
(defalias 'cl-not-hash-table #[(x &optional y &rest z) #@85 ("\302\303\304\2060	D\"\207" . [y x signal wrong-type-argument cl-hash-table-p])(#$ . 19202) nil 4])
(defalias 'cl-hash-lookup #[(key table) #@716 ("\242\306=\2040\307!\210\3108A@\311	9\203$0\311	J\202\2070\f:\20460\312\f!\203>0\fG\313V\203>0\f\313\234\211\202%0\f;\203O0\n\314=\203\2010\f\227\202\2010\f9\203[0\315\f!\202\2010\f\247\2030\f\316V\2030\f\317W\2030\f\250\204u0\320\f!\321\322\f\323\"H\202\2010\324\325\f	\"J\205\2650\n\326=\204\2340\n\327=\203\2420\247\204\2420\236\202\2650\n\330>\203\2570\331\"\202\2650\332\333\n$\fE,\207" . [table array test key str sym cl-hash-table-tag cl-not-hash-table 2 nil vectorp 0 equalp symbol-name -8000000 8000000 truncate ["0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15"] logand 15 "*" intern-soft eq eql (eql equal) assoc assoc* :test])(#$ . 19353) nil 6])
(byte-code "\301B\305\301!\204 \306K\302B\305\302!\204 \307K\303B\305\303!\204' \310K\304B\305\304!\2044 \311K\301\207" [current-load-list cl-builtin-gethash cl-builtin-remhash cl-builtin-clrhash cl-builtin-maphash boundp gethash remhash clrhash maphash] 2)
#@68 Look up KEY in HASH-TABLE; return corresponding value, or DEFAULT.
(defalias 'cl-gethash #[(key table &optional def) #@112 (":\2030\304	\"\211@\2030\n@A\2020)\207\305	#\207" . [table key found def cl-hash-lookup gethash])(#$ . 20490) nil 5 (#$ . 20366)])
(defalias 'cl-puthash #[(key val table) #@408 (":\203m0\305	\"\211@\2030\n@\241\210\202i0\306\n8\203S0\3078\3068G\307_V\203?0\310\3078\311\"\312\313\3068\"\210AA\f\240\210)\314\306\n8\3068\"	B\nA@BL\210\202_0\3068	B\nA@BL\210AAA\3078T\240\210)\202s0\315	#\210\207" . [table key found val new-table cl-hash-lookup 2 3 make-vector 0 mapatoms #[(sym) "\302\303!	\"JL\207" [sym new-table intern symbol-name] 3] intern puthash])(#$ . 20681) nil 5])
#@29 Remove KEY from HASH-TABLE.
(defalias 'cl-remhash #[(key table) #@250 (":\203?0\304	\"\211@\205=0\305\n@\nA@\"AAA\3068S\240\210\307\n8\20350\310\307\n8\3078\"L\210\202;0\3078L\210)\311)\207\312	\313#\313=?\314	\"\210\207" . [table key found del cl-hash-lookup delq 3 2 intern t gethash --cl-- remhash])(#$ . 21185) nil 5 (#$ . 21114)])
#@19 Clear HASH-TABLE.
(defalias 'cl-clrhash #[(table) #@216 (":\20350\301!\2040\302!\210\30389\203_0\3038\304L\210\202+0AA\305\3038G\306\"\240\210AAA\306\240\210\20290\307!\210\304\207" . [table cl-hash-table-p cl-not-hash-table 2 nil make-vector 0 clrhash])(#$ . 21530) nil 4 (#$ . 21473)])
#@51 Call FUNCTION on keys and values from HASH-TABLE.
(defalias 'cl-maphash #[(cl-func cl-table) #@267 ("\302!\204\n0\303!\210:\203%0\304\305\30689\203 0\307\3068!\202#0\3068\"\207\310	\"\207" . [cl-table cl-func cl-hash-table-p cl-not-hash-table mapatoms #[(cl-x) "J\211\2050	@@@A\"\210A\211\2040\302\207" [cl-x cl-func nil] 4] 2 vector maphash])(#$ . 21884) nil 5 (#$ . 21784)])
#@45 Return the number of entries in HASH-TABLE.
(defalias 'cl-hash-table-count #[(table) #@122 ("\301!\204\n0\302!\210:\2030\3038\207\304!\207" . [table cl-hash-table-p cl-not-hash-table 3 hash-table-count])(#$ . 22281) nil 2 (#$ . 22189)])
#@69 Insert a pretty-printed rendition of a Lisp FORM in current buffer.
(defalias 'cl-prettyprint #[(form) #@276 ("`\303\304\305\n!\304\261\210`	Tb\210\306\307\310#\203+0\311\312!\210\313c\210\314 \210\315\316!\210\2020	Tb\210\317 *\207" . [last pt form nil "\n" prin1-to-string search-forward "(quote " t delete-backward-char 7 "'" forward-sexp delete-char 1 cl-do-prettyprint])(#$ . 22551) nil 4 (#$ . 22441)])
(defalias 'cl-do-prettyprint #[nil #@668 ("\305\306w\210\307\310!\203\2260\307\311!\206%0\307\312!\206%0\307\313!\206%0\307\314!\206%0\307\315!\307\316!\206.0\307\317!\307\320!\20670\307\321!\307\322!\211\204R0	\204R0\323 \210i\324Y\205\2240\325 \210\326\327u\210\330 \210\204g0\307\331!\204g0\330 \210\n\203t0\307\331!\204t0\330 \210\307\331!\204\2210\203\2010\f?\f\203\2100\332c\210\333 \210\330 \210\202t0\327u),\207\323 \207" . [set let two skip nl " " nil looking-at "(" "((" "(prog" "(unwind-protect " "(function (" "(cl-block-wrapper " "(defun " "(defmacro " "(let\\*? " "(while " "(p?set[qf] " forward-sexp 78 backward-sexp t 1 cl-do-prettyprint ")" "\n" lisp-indent-line])(#$ . 22901) nil 6])
(byte-code "\301B\303\301!\204\f \304\302B\303\302!\204 \304\304\207" [current-load-list cl-macroexpand-cmacs cl-closure-vars boundp nil] 2)
#@114 Expand all macro calls through a Lisp FORM.
This also does some trivial optimizations to make the form prettier.
(defalias 'cl-macroexpand-all #[(form &optional env) #@1784 ("\306	\"\211=\20300\n\2030\307!\211=\20300:\204 0\207@\310>\203\2720A@\20490\311\312\211AA)B	\"\207\313\211\211A@)\f\203\2250\f@:\203r0\311\f\211@@)	\"\211/9\204b0\314/\315\f\211@A)	\")B\202\2130\311\f@	\"\211/9\203\2030/\202\2120\314/\313D)B\fA\211\204I0\203\2510@\316=\203\2450\317\202\2530\320\202\2530@\237\315\211AA)	\"+BB\207@\321=\203\3120@\322\323A\"B\207@\324=\203\3520@A@\311\3258	\"\322\326\211AA)A\"BBB\207@\327>\203\333A@\242\330=\203\243\315\211A@)AA	\"01\203\221@\331=\203\221\33201\"\203\221\322\3331\"2\33412\"3\31340@;\204>0@\242\335=\203O\3360\211A0@D4B4\202.\337\3401!@\341\314#\210\342\343\344\345E\34634\237\"\343\347\343\350\331\330\3422\211A@)A@\"\34630\"BBDE\322\3511\"\352\244BBBC#+\202\241@\330\211A@)A@0BBD)\207\211A@)	\236\2115\211AA)@\211A@)\353=\203\330\3115\211AA)A@\211AA)@\211A@)	\"\202\331)\207@\354>\203\363@A@\315\211AA)	\"BB\207@\312=\203\n\211AA)\204\n\311A@	\"\207@\355=\203G\315A	\"\2116\2117\20337@9\20337\211AA)\2117\204_7\203A\311\3566B!\202E\3556B*\207@\315A	\"B\207" . [form env cl-macroexpand-cmacs x lets res macroexpand compiler-macroexpand (let let*) cl-macroexpand-all progn nil t cl-macroexpand-body let letf letf* cond mapcar #[(x) "\302	\"\207" [x env cl-macroexpand-body] 3] condition-case 2 #[(x) "@\302A	\"B\207" [x env cl-macroexpand-body] 4] 'function lambda function cl-expr-contains-any gensym pairlis interactive quote put last used append list 'lambda '(&rest --cl-rest--) sublis 'apply 'quote #[(x) "\301\302E\207" [x list 'quote] 3] ('--cl-rest--) cl-labels-args (defun defmacro) setq setf exp body cl-closure-vars new sub decls found args p])(#$ . 23917) nil 14 (#$ . 23743)])
(defalias 'cl-macroexpand-body #[(body &optional env) #@88 ("\301\302\"\207" . [body mapcar #[(x) "\302	\"\207" [x env cl-macroexpand-all] 3]])(#$ . 25794) nil 3])
(defalias 'cl-prettyexpand #[(form &optional full) #@277 ("\305\306!\210\211\307\310\f?\2050\311\"\305\312!\210\313\f!\305\314!\210+\207" . [full byte-compile-macro-environment cl-compiling-file cl-macroexpand-cmacs form message "Expanding..." nil cl-macroexpand-all ((block) (eval-when)) "Formatting..." cl-prettyprint ""])(#$ . 25959) nil 3])
(run-hooks 'cl-extra-load-hook)
