;ELC   
;;; Compiled by buildd@lcy01-24.buildd on Tue Sep 19 22:18:17 2017
;;; from file /build/emacs24-8smh0b/emacs24-24.3+1/debian/build-x/lisp/nxml/nxml-rap.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; 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.

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


(byte-code "\300\301!\210\300\302!\207" [require xmltok nxml-util] 2)
#@54 Integer giving position following end of the prolog.
(defvar nxml-prolog-end nil (#$ . 622))
(make-variable-buffer-local 'nxml-prolog-end)
#@788 Marker giving position up to which we have scanned.
nxml-scan-end must be >= nxml-prolog-end.  Furthermore, nxml-scan-end
must not be an inside position in the following sense.  A position is
inside if the following character is a part of, but not the first
character of, a CDATA section, comment or processing instruction.
Furthermore all positions >= nxml-prolog-end and < nxml-scan-end that
are inside positions must have a non-nil `nxml-inside' property whose
value is a symbol specifying what it is inside.  Any characters with a
non-nil `fontified' property must have position < nxml-scan-end and
the correct face.  Dependent regions must also be established for any
unclosed constructs starting before nxml-scan-end.
There must be no `nxml-inside' properties after nxml-scan-end.
(defvar nxml-scan-end nil (#$ . 768))
(make-variable-buffer-local 'nxml-scan-end)
(defalias 'nxml-get-inside #[(pos) "\301\302\"\207" [pos get-text-property nxml-inside] 3])
(put 'nxml-get-inside 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nxml-clear-inside #[(start end) "\302	\303#\207" [start end remove-text-properties (nxml-inside nil)] 4])
(put 'nxml-clear-inside 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nxml-set-inside #[(start end type) "\303	\304\n$\207" [start end type put-text-property nxml-inside] 5])
(put 'nxml-set-inside 'byte-optimizer 'byte-compile-inline-expand)
#@103 Return the end of the inside region containing POS.
Return nil if the character at POS is not inside.
(defalias 'nxml-inside-end #[(pos) "\301\302\")\205 \303\302\"\206 d\207" [pos get-text-property nxml-inside next-single-property-change] 3 (#$ . 2175)])
#@105 Return the start of the inside region containing POS.
Return nil if the character at POS is not inside.
(defalias 'nxml-inside-start #[(pos) "\301\302\")\205 \303T\302\"\206 e\207" [pos get-text-property nxml-inside previous-single-property-change] 3 (#$ . 2444)])
#@261 Restore `nxml-scan-end' invariants after a change.
The change happened between START and END.
Return position after which lexical state is unchanged.
END must be > `nxml-prolog-end'.  START must be outside
any 'inside' regions and at the beginning of a token.
(defalias 'nxml-scan-after-change #[(start end) "	Y\203 	\207\306\211\307	^!\203I \310>\203? \fT\311\312#*\210T`\313\314$+\210``	^W\204 `\315!\211\205V \316)\204 \f\311\312#*\210\317\"\210\320 \210+	V\203y 	\306\223\210\207" [start nxml-scan-end xmltok-dependent-regions xmltok-errors inside-remove-start end nil xmltok-forward-special (comment cdata-section processing-instruction) remove-text-properties (nxml-inside nil) put-text-property nxml-inside nxml-inside-end t nxml-clear-dependent-regions nxml-mark-parse-dependent-regions xmltok-type xmltok-start type inside-end] 6 (#$ . 2722)])
(defalias 'nxml-scan-prolog #[nil "eb\210\306\211\211\307 `e\f\f\310\f\311#*\210\312e\f\"\210\313 \210+\fW\2050 \f\306\223\207" [xmltok-dependent-regions xmltok-errors xmltok-dtd nxml-prolog-regions nxml-prolog-end end nil xmltok-forward-prolog remove-text-properties (nxml-inside nil) nxml-clear-dependent-regions nxml-mark-parse-dependent-regions start nxml-scan-end] 4])
(defalias 'nxml-adjust-start-for-dependent-regions #[(start end pre-change-length) "\306S\"\211\203H \n@\307!\310\311\"\312=\203@ \f	W\203@ \310\313\"\314@\315\f\316!\257A\"\"\203? \f)*\nA\211\204\f 	*\207" [start adjusted-start overlays overlay ostart funargs overlays-in overlay-start overlay-get category nxml-dependent nxml-funargs apply append overlay-end end pre-change-length] 10])
(defalias 'nxml-mark-parse-dependent-regions #[nil "\205 \301\302@\"\210A\211\204 \303\207" [xmltok-dependent-regions apply nxml-mark-parse-dependent-region nil] 4])
(defalias 'nxml-mark-parse-dependent-region #[(fun start end &rest args) "\305	\306\307\211%\310\n\311\312#\210\310\n\313\fB#)\207" [start end overlay fun args make-overlay nil t overlay-put category nxml-dependent nxml-funargs] 6])
(put 'nxml-dependent 'evaporate t)
(defalias 'nxml-clear-dependent-regions #[(start end) "\305	\"\211\205, \n@\306\304\"\211\307=\203# \310!X\203# \311!\210*\nA\211\204	 \312)\207" [start end overlays overlay category overlays-in overlay-get nxml-dependent overlay-start delete-overlay nil] 4])
#@322 Return the position after the token containing the char after point.
Sets up the variables `xmltok-type', `xmltok-start',
`xmltok-name-end', `xmltok-name-colon', `xmltok-attributes',
`xmltok-namespace-attributes' in the same was as does
`xmltok-forward'.  The prolog will be treated as a single token with
type `prolog'.
(defalias 'nxml-token-after #[nil "`\211	W\203 \304e	d^\202c \305 \210\306\307\")\203+ \212\310 \210\311 \210`)\202c \212\312f\313=\204= \314\315e	]\316#\203C \310 \210\202V e	X\203M 	\202T \317e!\206T eb\210\320 \203a `X\204V `))\207" [pos nxml-prolog-end xmltok-type xmltok-start prolog nxml-ensure-scan-up-to-date get-text-property nxml-inside nxml-move-outside-backwards xmltok-forward nil 60 search-backward "<" t nxml-inside-end nxml-tokenize-forward] 5 (#$ . 5140)])
#@111 Return the position after the token containing the char before point.
Sets variables like `nxml-token-after'.
(defalias 'nxml-token-before #[nil "e`U\204 \212`Sb\210\302 )\207`\303`\207" [xmltok-start xmltok-type nxml-token-after nil] 2 (#$ . 5950)])
(defalias 'nxml-tokenize-forward #[nil "\306\211\307 \203R `\nV\203R \310>\203F \311 \312\211\211\306\211\211\313\216T`\314\315$+\210.\202M 	\203M \316 \210\n`\306\223\210*\207" [xmltok-errors xmltok-dependent-regions nxml-scan-end xmltok-type buffer-file-truename buffer-file-name nil xmltok-forward (comment cdata-section processing-instruction) buffer-modified-p t ((byte-code "\204 \301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) put-text-property nxml-inside nxml-mark-parse-dependent-regions deactivate-mark buffer-undo-list inhibit-modification-hooks inhibit-read-only #1# xmltok-start type end start] 7])
#@269 Move point backwards outside any 'inside' regions or tags.
Point will not move past `nxml-prolog-end'.
Point will either be at BOUND or a '<' character starting a tag
outside any 'inside' regions.  Ignores dependent regions.
As a precondition, point must be >= BOUND.
(defalias 'nxml-move-tag-backwards #[(bound) "\301 \210\302f\303\232?\205& \304\305\306#\203$ \301 \210\302f\303\232?\205& \304\305\306#\207b\207" [bound nxml-move-outside-backwards nil 60 search-backward "<" t] 4 (#$ . 6883)])
#@122 Move point to first character of the containing special thing.
Leave point unmoved if it is not inside anything special.
(defalias 'nxml-move-outside-backwards #[nil "\302`!\211\205! Sb\210`\303	\304\")\205! \305\306``\303	\304\")#)\207" [start pos nxml-inside-start get-text-property nxml-inside error "Char before inside-start at %s had nxml-inside property %s"] 7 (#$ . 7389)])
(defalias 'nxml-ensure-scan-up-to-date #[nil "`	W\205` \212	b\210\306\211\307!\203S \f\310>\203K \311 \312\211\211\306\211\211\313\216T`\f\314\315$+\210.`W\204 `\316	\"\210\317 \210	\306\223+)\207" [pos nxml-scan-end xmltok-dependent-regions xmltok-errors xmltok-type buffer-file-truename nil xmltok-forward-special (comment processing-instruction cdata-section) buffer-modified-p t ((byte-code "\204 \301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) put-text-property nxml-inside nxml-clear-dependent-regions nxml-mark-parse-dependent-regions buffer-file-name deactivate-mark buffer-undo-list inhibit-modification-hooks inhibit-read-only #1# xmltok-start type end start] 7])
#@423 Scan forward from FROM over a single balanced element.
Point must be between tokens.  Return the position of the end of
the tag that ends the element. `xmltok-start' will contain the
position of the start of the tag.  If UP is non-nil, then scan
past end-tag of element containing point.  If no element is
found, return nil.  If a well-formedness error prevents scanning,
signal an `nxml-scan-error'.  Point is not moved.
(defalias 'nxml-scan-element-forward #[(from &optional up) "\205 \306\307\212b\210\310 \204# \n:\203\261 \311\n\211A@)\312\"\210\202\261 \313=\2034 \314 \nBB\202\f \315=\203l \n\203\261 \n:\204H `\202\261 \n@\316 \230\204\\ \311\317\\\320\n@#\202\256 \n\211AA)\211\204\f `\202\261 \321>\203{ \n\204\f `\202\261 \322=\203\237 \n\203\261 \n:\204\217 `\202\261 \n\211AA)\211\204\f `\202\261 \323=\203\255 \311\324\"\202\256 \306\204\f )	*\207" [up found open-tags from x xmltok-type t nil nxml-tokenize-forward nxml-scan-error "Start-tag has no end-tag" start-tag xmltok-start-tag-qname end-tag xmltok-end-tag-qname 2 "Mismatched end-tag; expected `%s'" (empty-element partial-empty-element) partial-end-tag partial-start-tag "Missing `>'" xmltok-start] 5 (#$ . 8520)])
#@483 Scan backward from FROM over a single balanced element.
Point must be between tokens.  Return the position of the end of
the tag that starts the element. `xmltok-start' will contain the
position of the start of the tag.  If UP is non-nil, then scan
past start-tag of element containing point.  If BOUND is non-nil,
then don't scan back past BOUND.  If no element is found, return
nil.  If a well-formedness error prevents scanning, signal an
`nxml-scan-error'.  Point is not moved.
(defalias 'nxml-scan-element-backward #[(from &optional up bound) "\205 \306\307\211\212\fb\210`W\204# \310\311\206 \312]\306#\204; :\203\311 \204\311 \313\211A@)\314\"\210\202\311 \315 \210\212\316 \210`)\317=\203W \320 BB\202 \321=\203\225 \203\311 :\204l \n\202\311 @\203\204 @\322 \230\204\204 \313T\323@#\202\306 \211AA)\211\204 \n\202\311 \324>\203\245 \204 \n\202\311 \325=\203\266 \307BB\202 \326=\203\305 \313\327\"\202\306 \306\204 )	+\207" [up found token-end open-tags from nxml-prolog-end t nil search-backward "<" 0 nxml-scan-error "End-tag has no start-tag" nxml-move-outside-backwards nxml-tokenize-forward end-tag xmltok-end-tag-qname start-tag xmltok-start-tag-qname "Mismatched start-tag; expected `%s'" (empty-element partial-empty-element) partial-end-tag partial-start-tag "Missing `>'" bound x xmltok-type xmltok-start] 5 (#$ . 9743)])
(defalias 'nxml-scan-error #[(&rest args) "\301\302\"\207" [args signal nxml-scan-error] 3])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\306\307!\207" [put nxml-scan-error error-conditions (error nxml-error nxml-scan-error) error-message "Scan over element that is not well-formed" provide nxml-rap] 4)
