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


#@578 Call FUNCTION for each line of rectangle with corners at START, END.
If COERCE-TABS is non-nil, convert multi-column characters
that span the starting or ending columns on any line
to multiple spaces before calling FUNCTION.
FUNCTION is called with three arguments:
 position of start of segment of this line within the rectangle,
 number of columns that belong to rectangle but are before that position,
 number of columns that belong to rectangle but are after point.
Point is at the end of the segment of this line within the rectangle.

(fn FUNCTION START END COERCE-TABS)#@24 

(fn STARTCOL ENDCOL)
(custom-declare-group 'rectangle nil "Operations on rectangles." :version "25.1" :group 'editing)
(defalias 'operate-on-rectangle #[1028 "\300\301\302##\207" [apply-on-rectangle make-closure #[514 "\302\211\211\303\300\"\210iZ\262`\262\303\300\"\210\300\204\" iV\203\" \304u\210iZ\262\305W\2035 \211\\\262\305\262\301#\207" [V0 V1 nil move-to-column -1 0] 9 (#$ . 666)]] 9 (#$ . 84)])#@57 (POS . COL) to override the column to use for the mark.
(defvar rectangle--mark-crutches nil (#$ . 1099))#@35 

(fn START END &optional WINDOW)
(make-variable-buffer-local 'rectangle--mark-crutches)
(defalias 'rectangle--pos-cols #[770 "\212\301\302\"@=\203> \211A@=\203 A\202$ \203  \303b\210i=\2036 ^]B\266\203\202\275 B\266\203\202\275 @=\203h @=\203V AAB\262\202\275 \203\\ \303b\210iAB\262\202\275 \211\203r \304\303\302\303#\210@=\203\231 Ab\210i=\203\221 ^]B\266\203\202\275 B\266\203\202\275 @=\203\254 b\210iAB\262\202\275 \203\262 \303b\210ib\210iB\262)\207" [rectangle--mark-crutches window-parameter rectangle--point-crutches nil set-window-parameter] 9 (#$ . 1210)])#@17 

(fn COL KIND)
(defalias 'rectangle--col-pos #[514 "\301!\211U\203( l\204( \302=\203  \303\304\305\"\205E \306\304\305\304#\207\205E \304\211\207\211V\2031 \307u\210\302=\203@ \306\304\305`B#\207`B\211\207" [rectangle--mark-crutches move-to-column point window-parameter nil rectangle--point-crutches set-window-parameter -1] 8 (#$ . 1837)])#@12 

(fn POS)
(defalias 'rectangle--point-col #[257 "\300\301\302\"@=\203 A\207bi\207" [window-parameter nil rectangle--point-crutches] 5 (#$ . 2196)])
(defalias 'rectangle--crutches #[0 "\301\302\303\"B\207" [rectangle--mark-crutches window-parameter nil rectangle--point-crutches] 4])
(defalias 'rectangle--reset-point-crutches #[0 "\300\301\302\"\205\f \303\301\302\301#\207" [window-parameter nil rectangle--point-crutches set-window-parameter] 4])
(defalias 'rectangle--reset-crutches #[0 "\300\301!\210\302 \207" [kill-local-variable rectangle--mark-crutches rectangle--reset-point-crutches] 2])#@339 Call FUNCTION for each line of rectangle with corners at START, END.
FUNCTION is called with two arguments: the start and end columns of the
rectangle, plus ARGS extra arguments.  Point is at the beginning of line when
the function is called.
The final point after the last operation will be returned.

(fn FUNCTION START END &rest ARGS)
(defalias 'apply-on-rectangle #[899 "\212\300\"\211@Ab\210\301 b\210\302\303 !\304W\203\" \262\262b\210\305\n\n$\266`\306y\307U\203C n\203C `X\204% )\207" [rectangle--pos-cols line-beginning-position copy-marker line-end-position nil apply 1 0] 15 (#$ . 2806)])#@174 Return cons of the column and line values of POSITION.
POSITION specifies a position of the current buffer.  The value
returned has the form (COLUMN . LINE).

(fn POSITION)
(defalias 'rectangle-position-as-coordinates #[257 "\212\211b\210i\300 )B\207" [line-number-at-pos] 5 (#$ . 3432)])#@324 Return non-nil if two rectangles intersect.
POS1 and POS2 specify the positions of the upper-left corners of
the first and second rectangles as conses of the form (COLUMN . LINE).
SIZE1 and SIZE2 specify the dimensions of the first and second
rectangles, as conses of the form (WIDTH . HEIGHT).

(fn POS1 SIZE1 POS2 SIZE2)
(defalias 'rectangle-intersect-p #[1028 "@A@A@A@A\\X\2066 \\X\2066 \\X\2066 \\X?\207" [] 14 (#$ . 3729)])#@140 Return the dimensions of the rectangle with corners at START and END.
The returned value has the form of (WIDTH . HEIGHT).

(fn START END)
(defalias 'rectangle-dimensions #[514 "\212\300\301!\301!Z!T\302\"\300A@Z!)\211B\207" [abs line-number-at-pos rectangle--pos-cols] 7 (#$ . 4193)])#@29 

(fn STARTCOL ENDCOL FILL)
(defalias 'delete-rectangle-line #[771 "\300\203\n \301\202 \302\"Y\205 `\300\302\"\210`|\207" [move-to-column t coerce] 7 (#$ . 4491)])#@35 

(fn STARTCOL ENDCOL LINES FILL)
(defalias 'delete-extract-rectangle-line #[1028 "\300 \301\203\f \302\202 \303\"W\203 \304Z!AB\241\207\210`\301\302\"\210\305`\302#AB\241\207" [line-end-position move-to-column t coerce spaces-string filter-buffer-substring] 10 (#$ . 4667)])#@30 

(fn STARTCOL ENDCOL LINES)
(defalias 'extract-rectangle-line #[771 "\300\211\211\211\211\301!\210`\262iZ\262\301!\210`\262iZ\262`{\262\302W\2034 \\\262\302\262\302W\203= \302\262b\210\303\304\305#\203k i\212\306u\210i)Z\302`ZSO\307!\211G`	Z\\\300OQ\266\202\202@ \302V\204w \302V\203\201 \307!\307!Q\262AB\241\207" [nil move-to-column 0 search-forward "	" t -1 spaces-string] 15 (#$ . 4962)])
(defconst spaces-strings ["" " " "  " "   " "    " "     " "      " "       " "        "])#@40 Return a string with N spaces.

(fn N)
(defalias 'spaces-string #[257 "\211\301X\203\n H\207\302\303\"\207" [spaces-strings 8 make-string 32] 4 (#$ . 5491)])#@383 Delete (don't save) text in the region-rectangle.
The same range of columns is deleted in each line starting with the
line where the region begins and ending with the line where the region
ends.

When called from a program the rectangle's corners are START and END.
With a prefix (or a FILL) argument, also fill lines where nothing has
to be deleted.

(fn START END &optional FILL)
(defalias 'delete-rectangle #[770 "\301\302\303$)\207" [indent-tabs-mode nil apply-on-rectangle delete-rectangle-line] 8 (#$ . 5658) "*r\nP"])#@320 Delete the contents of the rectangle with corners at START and END.
Return it as a list of strings, one for each line of the rectangle.

When called from a program the rectangle's corners are START and END.
With an optional FILL argument, also fill lines where nothing has to be
deleted.

(fn START END &optional FILL)
(defalias 'delete-extract-rectangle #[770 "\300C\301\302%\210\211A\237\207" [nil apply-on-rectangle delete-extract-rectangle-line] 10 (#$ . 6193)])#@153 Return the contents of the rectangle with corners at START and END.
Return it as a list of strings, one for each line of the rectangle.

(fn START END)
(defalias 'extract-rectangle #[514 "\300C\301\302$\210\211A\237\207" [nil apply-on-rectangle extract-rectangle-line] 8 (#$ . 6671)])#@167 Return the bounds of the rectangle with corners at START and END.
Return it as a list of (START . END) positions, one for each line of
the rectangle.

(fn START END)
(defalias 'extract-rectangle-bounds #[514 "\300C\301\302\303\"#\210\211\242\237\207" [nil apply-on-rectangle make-closure #[514 "\301!\210\300`\301!\210`B\300\242B\240\207" [V0 move-to-column] 6 (#$ . 666)]] 7 (#$ . 6965)])#@43 Rectangle for `yank-rectangle' to insert.
(defvar killed-rectangle nil (#$ . 7365))#@604 Delete the region-rectangle and save it as the last killed one.

When called from a program the rectangle's corners are START and END.
You might prefer to use `delete-extract-rectangle' from a program.

With a prefix (or a FILL) argument, also fill lines where nothing has to be
deleted.

If the buffer is read-only, Emacs will beep and refrain from deleting
the rectangle, but put it in `killed-rectangle' anyway.  This means that
you can use this command to copy text from a read-only buffer.
(If the variable `kill-read-only-ok' is non-nil, then this won't
even beep.)

(fn START END &optional FILL)
(defalias 'kill-rectangle #[770 "\3041 \305\306#\211)0\207\210\307\310\"\203! \311\312!\305\207\313 \210\314\315pC\"\207" [indent-tabs-mode killed-rectangle deactivate-mark kill-read-only-ok (buffer-read-only text-read-only) nil delete-extract-rectangle t extract-rectangle message "Read only text copied to `killed-rectangle'" barf-if-buffer-read-only signal text-read-only] 8 (#$ . 7455) "r\nP"])#@79 Copy the region-rectangle and save it as the last killed one.

(fn START END)
(defalias 'copy-rectangle-as-kill #[514 "\302\"\303\304\305!\205 \306@G!\207" [killed-rectangle deactivate-mark extract-rectangle t called-interactively-p interactive indicate-copied-region] 5 (#$ . 8473) "r"])#@65 Yank the last killed rectangle with upper left corner at point.
(defalias 'yank-rectangle #[0 "\301!\207" [killed-rectangle insert-rectangle] 2 (#$ . 8773) "*"])#@324 Insert text of RECTANGLE with upper left corner at point.
RECTANGLE's first line is inserted at point, its second
line is inserted at a point vertically under point, etc.
RECTANGLE should be a list of strings.
After this command, the mark is at the upper left corner
and point is at the lower right corner.

(fn RECTANGLE)
(defalias 'insert-rectangle #[257 "\211i\300\301 \210\205+ \211\204 \302y\210n\204 \303c\210\304\300\"\210\210\305\306@!\210A\262\202 \207" [t push-mark 1 10 move-to-column nil insert-for-yank] 7 (#$ . 8942)])#@391 Blank out the region-rectangle, shifting text right.

The text previously in the region is not overwritten by the blanks,
but instead winds up to the right of the rectangle.

When called from a program the rectangle's corners are START and END.
With a prefix (or a FILL) argument, fill with blanks even if there is
no text on the right side of the rectangle.

(fn START END &optional FILL)
(defalias 'open-rectangle #[770 "\300\301$\210b\207" [apply-on-rectangle open-rectangle-line] 8 (#$ . 9489) "*r\nP"])
(defalias 'open-rectangle-line #[771 "\300\203\n \301\202 \302\"U\205  \211?\205 `\303 U?\205  j\207" [move-to-column t coerce line-end-position] 6 (#$ . 4491)])
(defalias 'delete-whitespace-rectangle-line #[771 "\300\203\n \301\202 \302\"U\205\" `\303 U?\205\" `\304\305\303 \"\210`|\207" [move-to-column t coerce line-end-position skip-syntax-forward " "] 7 (#$ . 4491)])#@435 Delete all whitespace following a specified column in each line.
The left edge of the rectangle specifies the position in each line
at which whitespace deletion should begin.  On each line in the
rectangle, all contiguous whitespace starting at that column is deleted.

When called from a program the rectangle's corners are START and END.
With a prefix (or a FILL) argument, also fill too short lines.

(fn START END &optional FILL)
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias close-rectangle delete-whitespace-rectangle nil make-obsolete "29.1"] 4)
(defalias 'delete-whitespace-rectangle #[770 "\300\301$\207" [apply-on-rectangle delete-whitespace-rectangle-line] 8 (#$ . 10391) "*r\nP"])
(defvar string-rectangle-history nil)#@38 

(fn STARTCOL ENDCOL STRING DELETE)
(defalias 'string-rectangle-line #[1028 "\300\301\"\210\211\203 \302\303#\210c\207" [move-to-column t delete-rectangle-line nil] 8 (#$ . 11150)])
(defvar rectangle--string-preview-state nil)
(make-variable-buffer-local 'rectangle--string-preview-state)
(defvar rectangle--string-preview-window nil)
(make-variable-buffer-local 'rectangle--string-preview-window)
(defalias 'rectangle--string-flush-preview #[0 "\301\302AAA\"\210AA\303\241\207" [rectangle--string-preview-state mapc delete-overlay nil] 3])
(defalias 'rectangle--string-erase-preview #[0 "\301!r\302\303\"\216\304@\305\"\210\306 *\207" [rectangle--string-preview-window internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord rectangle--string-flush-preview] 4])#@12 

(fn COL)
(defalias 'rectangle--space-to #[257 "\300\301\302\303\304E#\207" [propertize " " display space :align-to] 7 (#$ . 12012)])#@53 The face to use for the `string-rectangle' preview.
(custom-declare-face 'rectangle-preview '((t :inherit region)) '(#$ . 12153) :version "25.1")#@65 If non-nil, `string-rectangle' will show an on-the-fly preview.#@2 
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable rectangle-preview funcall function #[0 "\300\207" [t] 1 (#$ . 12372)] (#$ . 12304) :version "25.1" :type boolean] 8)
(defalias 'rectangle--string-preview #[0 "\205D \303 C\211\242\203 \211\304\242\305\300#\240\210\306	!r\307\310\"\216\311@\312\"\210\n?\206. \242\n@\232?\205A \313 \210\314\307\315\"\nA@\316\n8#*\266\202\207" [rectangle-preview rectangle--string-preview-window rectangle--string-preview-state minibuffer-contents propertize face internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord rectangle--string-flush-preview apply-on-rectangle #[514 "\302!\211X\203 `\202 \303u\266i`\302!`\304\"	AA	AAAB\241\210W\2036 \305\306\307\n!#\210W\205B \310Z!U\203Z \305\311\203V \300\242P\202X \300\242#\207\305\312\300\242#\210\211\205j \305\311#\207" [V0 rectangle--string-preview-state move-to-column -1 make-overlay overlay-put before-string rectangle--space-to spaces-string after-string display] 13 (#$ . 666)] 2] 7])
(defvar rectangle--inhibit-region-highlight nil)#@348 Replace rectangle contents with STRING on each line.
The length of STRING need not be the same as the rectangle width.

When called interactively and option `rectangle-preview' is
non-nil, display the result as the user enters the string into
the minibuffer.

Called from a program, takes three args; START, END and STRING.

(fn START END STRING)
(defalias 'string-rectangle #[771 "\301=\204\n `B\302\303\301%b\207" [buffer-undo-list t apply-on-rectangle string-rectangle-line] 9 (#$ . 13558) (byte-code "\303\300!\210\303\301!\210p\304 =\205 \305 \306 \307 \310E\311\312 \210\313\314\"\315\316!\211\313\317#M\210\313\320\"\216\321\322\"\210\323\324\325\n@\206E \326\"\310\302\n@\327%+\266\202E\207" [rectangle--string-preview-state rectangle--inhibit-region-highlight string-rectangle-history make-local-variable window-buffer selected-window region-beginning region-end nil t barf-if-buffer-read-only make-closure #[0 "\300\302\303\304\305\306$\210\302\307\310\305\306$\207" [V0 rectangle--string-preview-window add-hook minibuffer-exit-hook rectangle--string-erase-preview nil t post-command-hook rectangle--string-preview] 5] make-symbol "minibuffer-setup" #[0 "\302\303\300\"\210\301 \207" [V0 V1 remove-hook minibuffer-setup-hook] 3] #[0 "\301\302\300\"\207" [V0 remove-hook minibuffer-setup-hook] 3] add-hook minibuffer-setup-hook read-string format-prompt "String rectangle" "" inherit-input-method] 14)])#@293 Insert STRING on each line of region-rectangle, shifting text right.

When called from a program, the rectangle's corners are START and END.
The left edge of the rectangle specifies the column for insertion.
This command does not delete or overwrite any existing text.

(fn START END STRING)
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias replace-rectangle string-rectangle nil make-obsolete "29.1"] 4)
(defalias 'string-insert-rectangle #[771 "\300\301\302%\207" [apply-on-rectangle string-rectangle-line nil] 9 (#$ . 14999) (byte-code "\301 \210\302 \303 \304\305\306@\206 \307\"\310\300@$E\207" [string-rectangle-history barf-if-buffer-read-only region-beginning region-end read-string format-prompt "String insert rectangle" "" nil] 7)])#@300 Blank out the region-rectangle.
The text previously in the region is overwritten with blanks.

When called from a program the rectangle's corners are START and END.
With a prefix (or a FILL) argument, also fill with blanks the parts of the
rectangle which were empty.

(fn START END &optional FILL)
(defalias 'clear-rectangle #[770 "\300\301$\207" [apply-on-rectangle clear-rectangle-line] 8 (#$ . 15772) "*r\nP"])
(defalias 'clear-rectangle-line #[771 "\300 \301\203\f \302\202 \303\"U\2056 \204& \212\211b\210i)X\203& `|\207\210`\301\302\"\210i\262\211`|\210j\207" [line-end-position move-to-column t coerce] 7 (#$ . 4491)])#@32 

(fn START END FORMAT-STRING)
(defalias 'rectangle-number-line-callback #[771 "\301\302\"\210\303\"c\210T\211\207" [rectangle-number-line-counter move-to-column t format] 6 (#$ . 16417)])#@27 

(fn START END START-AT)
(defalias 'rectangle--default-line-number-format #[771 "\300\301\211\302\"\\!G!\303Q\207" ["%" int-to-string count-lines "d "] 9 (#$ . 16616)])#@341 Insert numbers in front of the region-rectangle.

START-AT, if non-nil, should be a number from which to begin
counting.  FORMAT, if non-nil, should be a format string to pass
to `format' along with the line count.  When called interactively
with a prefix argument, prompt for START-AT and FORMAT.

(fn START END START-AT &optional FORMAT)
(defalias 'rectangle-number-lines #[1027 "\211\204 \301#\262\302\303$)\207" [rectangle-number-line-counter rectangle--default-line-number-format apply-on-rectangle rectangle-number-line-callback] 9 (#$ . 16797) (byte-code "\203 \301 \302 \303\304\305\"\306\307\310#\"F\207\301 \302 \305\311F\207" [current-prefix-arg region-beginning region-end read-number "Number to count from: " 1 read-string "Format string: " rectangle--default-line-number-format nil] 12)])#@16 

(fn GV--VAL)#@49 Keymap used while marking a rectangular region.
(byte-code "\300\301\302\303B\304\305$\210\300\301\306\307B\310\305$\210\300\301\311\312B\313\305$\210\300\301\314\315B\316\305$\207" [advice--add-function :around #[0 "\300\301!\207" [default-value redisplay-highlight-region-function] 2] #[257 "\300\301\"\207" [set-default redisplay-highlight-region-function] 4 (#$ . 17626)] rectangle--highlight-for-redisplay nil #[0 "\300\301!\207" [default-value redisplay-unhighlight-region-function] 2] #[257 "\300\301\"\207" [set-default redisplay-unhighlight-region-function] 4 (#$ . 17626)] rectangle--unhighlight-for-redisplay #[0 "\300\301!\207" [default-value region-extract-function] 2] #[257 "\300\301\"\207" [set-default region-extract-function] 4 (#$ . 17626)] rectangle--extract-region #[0 "\300\301!\207" [default-value region-insert-function] 2] #[257 "\300\301\"\207" [set-default region-insert-function] 4 (#$ . 17626)] rectangle--insert-region] 5)
(defvar rectangle-mark-mode-map (define-keymap "C-o" 'open-rectangle "C-t" 'string-rectangle "<remap> <exchange-point-and-mark>" 'rectangle-exchange-point-and-mark "<remap> <right-char>" 'rectangle-right-char "<remap> <left-char>" 'rectangle-left-char "<remap> <forward-char>" 'rectangle-forward-char "<remap> <backward-char>" 'rectangle-backward-char "<remap> <next-line>" 'rectangle-next-line "<remap> <previous-line>" 'rectangle-previous-line) (#$ . 17646))#@107 Non-nil if Rectangle-Mark mode is enabled.
Use the command `rectangle-mark-mode' to change this variable.
(defvar rectangle-mark-mode nil (#$ . 19070))#@731 Toggle the region as rectangular.

Activates the region if it's inactive and Transient Mark mode is
on.  Only lasts until the region is next deactivated.

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

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

To check whether the minor mode is enabled in the current buffer,
evaluate the variable `rectangle-mark-mode'.

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

(fn &optional ARG)
(make-variable-buffer-local 'rectangle-mark-mode)
(defalias 'rectangle-mark-mode #[256 "\302 \303=\203 ?\202 \247\203 \304W\203 \305\202 \306\307\301!\2031 \310\300	\"\2031 \300	B\311 \210\203X \312\313\314\315#\210\312\316\314\317#\210\320\321\322\"\210\323 \204X \324`\306\211#\210\325\326!\210\327\330\203b \331\202c \332\"\210\333\334!\203\206 \302 \203w \211\302 \232\203\206 \325\335\336\203\202 \337\202\203 \340\341$\210\210\342 \207" [rectangle-mark-mode local-minor-modes current-message toggle 1 nil t boundp delq rectangle--reset-crutches advice-add region-beginning :around rectangle--region-beginning region-end rectangle--region-end add-hook deactivate-mark-hook #[0 "\300\301!\207" [rectangle-mark-mode -1] 2] region-active-p push-mark message "Mark set (rectangle mode)" run-hooks rectangle-mark-mode-hook rectangle-mark-mode-on-hook rectangle-mark-mode-off-hook called-interactively-p any "%s %sabled%s" "Rectangle-Mark mode" "en" "dis" " in current buffer" force-mode-line-update] 8 (#$ . 19228) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar rectangle-mark-mode-hook nil)#@96 Like `exchange-point-and-mark' but cycles through the rectangle's corners.

(fn &optional ARG)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\207" [rectangle-mark-mode-map rectangle-mark-mode-hook variable-documentation put "Hook run after entering or leaving `rectangle-mark-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode rectangle-mark-mode boundp] 6)
(defalias 'rectangle-exchange-point-and-mark #[256 "\211\203\n \302\211!\207`	=\303 W\211\203 \304\"\202\" \304\"\203+ \211@\202- \211A\2036 A\2028 @\203> \302\305 \210b\210\306\203O \202P \303\"\210\307`!\210b\210\306\203d \202e \310\"\207" [this-command last-command exchange-point-and-mark mark rectangle--pos-cols rectangle--reset-crutches rectangle--col-pos set-mark point] 12 (#$ . 21130) "P"])#@34 

(fn CMD N &optional OTHER-CMD)
(defalias 'rectangle--*-char #[770 "\300W\203\f \301[\"\207\302`!\303\300V\203\350 \304 \305 i\3061S \3071I \212!\210`V\2034 \211S\202C `W\203B T\\\202C i)00\202V 0\210T\\\202V \210\211S\310Z!W\203\221 W\203\221 Z\211\nX\203\202 	Z\262\n\262\266\202\344 \nZ\262\300\262\n\266\202\344 \300W\203\245 \311 \210\300\262	\300\262\266\202\344 U\203\264 	\303!\266\202\344 \211	X\203\311 Z\262	\262\266\202\344 W\203\330 	\\\202\335 	Z\262\300\262	\266T\202 \312\313\"\207" [0 rectangle--*-char rectangle--point-col 1 line-beginning-position line-end-position (beginning-of-buffer) (end-of-buffer) abs ding rectangle--col-pos point] 13 (#$ . 22139)])#@83 Like `right-char' but steps into wide chars and moves past EOL.

(fn &optional N)
(defalias 'rectangle-right-char #[256 "\300\301\302#\207" [rectangle--*-char right-char left-char] 5 (#$ . 22885) "p"])#@82 Like `left-char' but steps into wide chars and moves past EOL.

(fn &optional N)
(defalias 'rectangle-left-char #[256 "\300\301\302#\207" [rectangle--*-char left-char right-char] 5 (#$ . 23093) "p"])#@85 Like `forward-char' but steps into wide chars and moves past EOL.

(fn &optional N)
(defalias 'rectangle-forward-char #[256 "\300\301\302#\207" [rectangle--*-char forward-char backward-char] 5 (#$ . 23299) "p"])#@86 Like `backward-char' but steps into wide chars and moves past EOL.

(fn &optional N)
(defalias 'rectangle-backward-char #[256 "\300\301\302#\207" [rectangle--*-char backward-char forward-char] 5 (#$ . 23517) "p"])#@110 Like `next-line' but steps into wide chars and moves past EOL.
Ignores `line-move-visual'.

(fn &optional N)
(defalias 'rectangle-next-line #[256 "\300`!y\210\301\302\"\207" [rectangle--point-col rectangle--col-pos point] 5 (#$ . 23738) "p"])#@114 Like `previous-line' but steps into wide chars and moves past EOL.
Ignores `line-move-visual'.

(fn &optional N)
(defalias 'rectangle-previous-line #[256 "\300`![y\210\301\302\"\207" [rectangle--point-col rectangle--col-pos point] 5 (#$ . 23989) "p"])#@70 Like `region-beginning' but supports rectangular regions.

(fn ORIG)
(defalias 'rectangle--region-beginning #[257 "\204 \211 \207\301\302\303\304\305\306 )\"\"\207" [rectangle-mark-mode apply min mapcar car nil region-bounds] 6 (#$ . 24248)])#@64 Like `region-end' but supports rectangular regions.

(fn ORIG)
(defalias 'rectangle--region-end #[257 "\204 \211 \207\301\302\303\304\305\306 )\"\"\207" [rectangle-mark-mode apply max mapcar cdr nil region-bounds] 6 (#$ . 24499)])#@30 

(fn ORIG &optional DELETE)
(defalias 'rectangle--extract-region #[513 "\204 !\207\211\302=\203 \303\304\305 )\304\306 )\"\207\211\203# \307\202$ \310\304\305 )\304\306 )\"\311\312\313#	\314=\203< \315\205O \316\317G\320\321\322BB%\210\211\207" [rectangle-mark-mode last-command bounds extract-rectangle-bounds nil region-beginning region-end delete-extract-rectangle extract-rectangle mapconcat identity "\n" kill-region kill-region-dont-append put-text-property 0 yank-handler rectangle--insert-for-yank (t)] 11 (#$ . 24738)])#@21 

(fn ORIG STRINGS)
(defalias 'rectangle--insert-region #[514 "\204 !\207\301!\207" [rectangle-mark-mode insert-rectangle] 4 (#$ . 25289)])#@13 

(fn STRS)#@18 

(fn START END)
(defalias 'rectangle--insert-for-yank #[257 "`B\211\302!\210\303\304\"\211\207" [buffer-undo-list yank-undo-function insert-rectangle make-closure #[514 "\302 \210\300\303\240\210	\300A=?\205 \304\305!\210\202 \207" [V0 pending-undo-list undo-start nil undo-more 1] 4 (#$ . 25456)]] 6 (#$ . 25439)])#@25 

(fn LEFTCOL LEFT STR)
(defalias 'rectangle--place-cursor #[771 "\300\301\302\"@=\205 A=\205 \303\304\305\306\305%\207" [window-parameter nil rectangle--point-crutches put-text-property 0 1 cursor] 10 (#$ . 25785)])#@34 

(fn ORIG START END WINDOW ROL)#@25 

(fn LEFTCOL RIGHTCOL)
(defalias 'rectangle--highlight-for-redisplay #[1285 "\204 $\207	\203 \n!\303\207\211\242\304=\203> \211A@\305 =\203> \3068=\203> \3078=\203> \310 \3118\232\203> \207\212\303C\242\304=\203N \312\233\202S \n!\210\303C\313!p=\204` \314\315!\210\316!r\317\320\"\216\321@\322\"\210\323\317\324	$#*\266\325\326\242\"\210\304\305 \310 \242)BBBBB\207" [rectangle-mark-mode rectangle--inhibit-region-highlight redisplay-unhighlight-region-function nil rectangle buffer-chars-modified-tick 2 3 rectangle--crutches 4 5 window-buffer cl--assertion-failed (eq (window-buffer window) (current-buffer)) internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord apply-on-rectangle #[514 "\304!`\304!`\300\242\204  \305\"\306\307\302#\210\306\310\311#\210\2020 \300\242\300\211\242A\240\210\242\312p$\210W\203I \306\313\314\n!#\210]\262\202\202 V\203u \206U `Sf\315=\203u S\262\312#\210b\210\306\313\314\n!#\210\202\202 \316\313\"\203\202 \306\313\317#\210\203\226 \316\320\"\203\306\320\317#\210\202W\203\274 \314!\321\322G\310\311%\210\323#\210\306\320#\266\202V\203\206\310 `Sf\315=\203S\262\312#\210U\203\351 \306\320\317#\210\202b\210\314!\321\322G\310\311%\210U\203\323#\210\306\320#\266\202\316\320\"\203\306\320\317#\210U\203:\324 \203:\306\320\325\326\310\327#\316\320\"P#\210\301\301\242B\240\207" [V0 V1 V2 rectangle--string-preview-state move-to-column make-overlay overlay-put window face region move-overlay before-string rectangle--space-to 9 overlay-get nil after-string put-text-property 0 rectangle--place-cursor display-graphic-p propertize " " (region (:height 0.2))] 14 (#$ . 26053)] mapc delete-overlay] 15 (#$ . 26015)])#@17 

(fn ORIG ROL)
(defalias 'rectangle--unhighlight-for-redisplay #[514 "\211\242\300=\204 !\207\301\302\303\233\"\210\211A\304\240\207" [rectangle mapc delete-overlay 5 nil] 6 (#$ . 27935)])#@155 Duplicate the rectangular region N times on the right-hand side.
Leave the region moved DISPLACEMENT region-wide steps to the right.

(fn N DISPLACEMENT)
(defalias 'rectangle--duplicate-right #[514 "\300`\301 \"\302\303\304\"`\301 ^`\301 ]#\210`\301 @A\305Z!_\306 \210b\210\307\\\310\"\210\211\311U\203< \312`!\210\202@ \313`!\210b\210\307\\\310\"\207" [rectangle--pos-cols mark apply-on-rectangle make-closure #[514 "\301C\302#\210\303\304\"\210\305\211\300W\205 \301A@c\266T\202 \207" [V0 nil extract-rectangle-line move-to-column t 0] 7 (#$ . 666)] abs rectangle--reset-crutches move-to-column t 0 set-mark push-mark] 11 (#$ . 28135)])
(provide 'rect)
