403Webshell
Server IP : 202.61.199.114  /  Your IP : 216.73.217.139
Web Server : nginx/1.22.1
System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : web20 ( 1018)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /tmp/calpy/tinyhtml5/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /tmp/calpy/tinyhtml5/__pycache__/tokenizer.cpython-311.pyc
�

Υ=j����ddlmZddlmZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZddlmZeee����Zd�Zd�ZGd	�d
��ZdS)�)�bisect_left)�deque)�html5�)	�EOF�Token�
ascii_letters�ascii_upper_to_lower�digits�	hexdigits�replacement_characters�space_characters�tag_token_types)�HTMLInputStreamc��|tvrdStt|��x}tt��krdSt|�|��S)NTF)�entitiesr�entity_keys�len�
startswith��prefix�is  �F/tmp/claude-1015/pip-target-jmvfl800/lib/python/tinyhtml5/tokenizer.py�has_keys_with_prefixrsO��
�����t�
��f�
-�
-�-��#�h�-�-�?�?��u��q�>�$�$�V�,�,�,�c��|tvr|Stdt|��dz��D]!}|d|�tvr
|d|�cS�"t|���)Nr)r�ranger�KeyErrorrs  r�longest_prefixrss��
�����
�
�1�c�&�k�k�A�o�
&�
&�����#�A�2�#�;�(�"�"��#�A�2�#�;����#�
�6�
�
�rc���eZdZdZdOd�Zd�Zd�Zd�Zd�ZdPd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd �Z d!�Z!d"�Z"d#�Z#d$�Z$d%�Z%d&�Z&d'�Z'd(�Z(d)�Z)d*�Z*d+�Z+d,�Z,d-�Z-d.�Z.d/�Z/d0�Z0d1�Z1d2�Z2d3�Z3d4�Z4d5�Z5d6�Z6d7�Z7d8�Z8d9�Z9d:�Z:d;�Z;d<�Z<d=�Z=d>�Z>d?�Z?d@�Z@dA�ZAdB�ZBdC�ZCdD�ZDdE�ZEdF�ZFdG�ZGdH�ZHdI�ZIdJ�ZJdK�ZKdL�ZLdM�ZMdN�ZNdS)Q�
HTMLTokenizerzHTML tokenizer.Nc�^�t|fi|��|_||_|j|_d|_dS�N)r�stream�parser�
data_state�state�
current_token)�selfr$r%�kwargss    r�__init__zHTMLTokenizer.__init__)s9��%�f�7�7��7�7�������_��
�!����rc#�bK�t��|_|���r�|jjr:t
j|jj�d��d�V�|jj�:|jr"|j���V�|j�"|�����dSdS)z�This is where the magic happens.

        We do our usually processing through the states and when we have a token
        to return we yield the token which pauses processing until the next token
        is requested.

        r��type�dataN)	r�token_queuer'r$�errorsr�PARSE_ERROR�pop�popleft�r)s r�__iter__zHTMLTokenizer.__iter__1s�����!�7�7����j�j�l�l�	1��+�$�
�!�-� �K�.�2�2�1�5�5�������+�$�
�
�"�
1��&�.�.�0�0�0�0�0��"�
1�
�j�j�l�l�	1�	1�	1�	1�	1rc�f�tj|d�}|r||d<|j�|��dS)z%Add a parse error to the token queue.r-�datavarsN)rr2r0�append)r)�_datar8�tokens    r�parse_errorzHTMLTokenizer.parse_errorEsA���*�E�:�:���	)� (�E�*�������&�&�&�&�&rc�T�|j�tj|d���dS)z+Add a characters string to the token queue.r-N)r0r9r�
CHARACTERS)r)r:s  r�
characterszHTMLTokenizer.charactersLs*�������)9�5� I� I�J�J�J�J�Jrc�(�|rtnt}|rdnd}g}|j���}||vr2|�|��|j���}||v�2td�|��|��}|tvr%t|}|�d|���n�d|cxkrdksn|dkrd	}|�d|���nud
|cxkrdksBnd|cxkrd
ks3nd|cxkrdks$nd|cxkrdksn|tgd���vr|�d|���t|��}|dkr/|�d��|j�|��|S)z�Return either U+FFFD or the character based on the representation.

        It also discards ";" if present. If not present self.parse_error is
        invoked.

        ��
�z$illegal-codepoint-for-numeric-entity)�integeri�i�����r�����i�i�)#�i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��i��	i��	i��
i��
i��i��i��i��i��
i��
i��i��i��i��i��rE�;z numeric-entity-without-semicolon)rrr$�	characterr9�int�joinr
r<�	frozenset�chr�unget)r)�is_hex�allowed�radix�stackrNrD�replacements        r�consume_number_entityz#HTMLTokenizer.consume_number_entityPs(�� &�1�)�)�6���$���"�����K�)�)�+�+�	��7�"�"��L�L��#�#�#���-�-�/�/�I��7�"�"�
�b�g�g�e�n�n�e�,�,���,�,�,�0��9�K����C�W��U�U�U�U���)�)�)�)�6�)�)�)�)�w��/A�/A�"�K����C�W��U�U�U�U��7�,�,�,�,�f�,�,�,�,��7�,�,�,�,�f�,�,�,�,��7�,�,�,�,�f�,�,�,�,��7�,�,�,�,�f�,�,�,�,��9�&:�&:�&:�;�;�;�;�� � �:�G�!�M�M�M��g�,�,�K��������?�@�@�@��K���i�(�(�(��rFc���d}|j���g}|dtddgt�Rvp|duo||dk}|r"|j�|d���n&|ddk�rd}|�|j�����|ddvr.d}|�|j�����|d|rtntvr7|j�|d��|�|��}�nd|�	d	��|j�|�
����dd
�|����}�n	|dtur^td
�|����sn;|�|j�����|dtu�^	td
�|dd�����}|ddkr|�	d��t|��}||tvp||tvp||d
k}	|ddkrI|rG|	rE|j�|�
����dd
�|����}n�|j�|�
����t |�d
�||d�����}ni#t"$r\|�	d��|j�|�
����dd
�|����}YnwxYw|r#|jdddxx|z
cc<dS|tvrdnd}
|j�t(|
|d���dS)N�&r�<�#F���)�x�XTzexpected-numeric-entityrCrMznamed-entity-without-semicolon�=zexpected-named-entityr/r�SPACE_CHARACTERSr>r-)r$rNrrrSr9rrrYr<r3rPrrrr	rrr(r0r)r)rU�from_attribute�outputrWrS�hex�entity_name�
entity_length�allowed_characterr.s           r�consume_entityzHTMLTokenizer.consume_entity�s�������&�&�(�(�)���!�H��c�3�:�)9�:�:�:�
:�
�D�
 �
8�W��a��%8�	��7	X��K���e�A�h�'�'�'�'�
�1�X��_�_��C��L�L���.�.�0�0�1�1�1��R�y�J�&�&������T�[�2�2�4�4�5�5�5��R�y�#�9�Y�Y�6�:�:���!�!�%��)�,�,�,��3�3�C�8�8���� � �!:�;�;�;���!�!�%�)�)�+�+�.�.�.�-�R�W�W�U�^�^�-�-�����)�3�&�&�+�B�G�G�E�N�N�;�;������T�[�2�2�4�4�5�5�5���)�3�&�&�
X�,�R�W�W�U�3�B�3�Z�-@�-@�A�A���r�?�c�)�)��$�$�%E�F�F�F� #�K� 0� 0�
��-�(�M�9�0��-�(�F�2�0��-�(�C�/�"��r�?�c�)�)�n�)�AR�)��K�%�%�e�i�i�k�k�2�2�2�1�������1�1�F�F��K�%�%�e�i�i�k�k�2�2�2� (�� 5�W�r�w�w�u�]�^�^�?T�7U�7U�W�W�F�F��#�
.�
.�
.�� � �!8�9�9�9���!�!�%�)�)�+�+�.�.�.�-�R�W�W�U�^�^�-�-����
.����&�	K���v�&�r�*�1�-�-�-��7�-�-�-�-�-�)/�3C�)C�)C�%�%��D���#�#�U�4�[�&�$I�$I�J�J�J�J�Js�6*L(�(A#N�
Nc�4�|�|d���dS)z5Replace the need for entity_in_attribute_value_state.T)rUrcN)ri)r)rUs  r�process_entity_in_attributez)HTMLTokenizer.process_entity_in_attribute�s!�����G�D��A�A�A�A�Arc�D�|j}|dtvr�|d�t��|d<|dtjkrZ|d}t
|��}t|��t|��kr|�|ddd���||d<|dtj	kr:|dr|�
d��|dr|�
d��|j�|��|j
|_dS)	z�This method is a generic handler for emitting the tags.

        It also sets the state to "data" because that's what's needed after a
        token has been emitted.

        r.�namer/Nr^zattributes-in-end-tag�selfClosingzself-closing-flag-on-end-tag)r(r�	translater
r�	START_TAG�dictr�update�END_TAGr<r0r9r&r')r)r;�rawr/s    r�emit_current_tokenz HTMLTokenizer.emit_current_token�s���"����=�O�+�+�!�&�M�3�3�4H�I�I�E�&�M��V�}���/�/��F�m���C�y�y���s�8�8�c�$�i�i�'�'��K�K��D�D�b�D�	�*�*�*� $��f�
��V�}��
�-�-���=�>��$�$�%<�=�=�=���'�E��$�$�%C�D�D�D������&�&�&��_��
�
�
rc��|j���}|dkr
|j|_n�|dkr
|j|_n�|dkr+|�d��|�d��n�|turdS|tvrI|j	�
tj||j�
td��zd���n2|j�
d��}|�||z��dS)	Nr[r\��invalid-codepointFTr-�r[r\rw)r$rN�entity_data_stater'�tag_open_stater<r?rrr0r9rrb�chars_until�r)r/r?s   rr&zHTMLTokenizer.data_state�s���{�$�$�&�&���3�;�;��/�D�J�J�
�S�[�[��,�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%�%�
�S�[�[��5�
�%�
%�
%�
��#�#��.��t�{�6�6�7G��N�N�N�%�%�
�
�
�
���0�0�1E�F�F�J��O�O�D�:�-�.�.�.��trc�F�|���|j|_dS�NT)rir&r'r5s rrzzHTMLTokenizer.entity_data_states"���������_��
��trc��|j���}|dkr
|j|_n�|dkr
|j|_n�|t
urdS|dkr+|�d��|�d��n�|tvrI|j	�
tj||j�
td��zd���n2|j�
d	��}|�||z��dS)
Nr[r\FrwrxrFTr-ry)r$rN�$character_reference_in_rc_data_stater'�rcdata_less_than_sign_staterr<r?rr0r9rrbr|)r)r/�charss   r�rcdata_statezHTMLTokenizer.rcdata_states���{�$�$�&�&���3�;�;��B�D�J�J�
�S�[�[��9�D�J�J�
�S�[�[��5�
�X�
�
����0�1�1�1��O�O�H�%�%�%�%�
�%�
%�
%�
��#�#��.��t�{�6�6�7G��N�N�N�%�%�
�
�
�
��K�+�+�,@�A�A�E��O�O�D�5�L�)�)�)��trc�F�|���|j|_dSr)rir�r'r5s rr�z2HTMLTokenizer.character_reference_in_rc_data_state(s#���������&��
��trc�:�|j���}|dkr
|j|_nn|dkr+|�d��|�d��n=|turdS|j�d��}|�||z��dS�Nr\rwrxrFF)r\rwT)r$rN�rawtext_less_than_sign_stater'r<r?rr|r}s   r�
rawtext_statezHTMLTokenizer.rawtext_state-s����{�$�$�&�&���3�;�;��:�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%�%�
�S�[�[��5���0�0��A�A�J��O�O�D�:�-�.�.�.��trc�:�|j���}|dkr
|j|_nn|dkr+|�d��|�d��n=|turdS|j�d��}|�||z��dSr�)r$rN� script_data_less_than_sign_stater'r<r?rr|r}s   r�script_data_statezHTMLTokenizer.script_data_state;s����{�$�$�&�&���3�;�;��>�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%�%�
�S�[�[��5���0�0��A�A�J��O�O�D�:�-�.�.�.��trc��|j���}|turdS|dkr+|�d��|�d��n0|�||j�d��z��dS)NFrwrxrFT)r$rNrr<r?r|�r)r/s  r�plaintext_statezHTMLTokenizer.plaintext_stateIs����{�$�$�&�&���3�;�;��5�
�X�
�
����0�1�1�1��O�O�H�%�%�%�%��O�O�D�4�;�#:�#:�8�#D�#D�D�E�E�E��trc�~�|j���}|dkr|j|_�n|dkr
|j|_n�|t
vr$tj|gddd�|_|j	|_n�|dkr7|�
d��|�d��|j|_n�|dkr<|�
d	��|j�
|��|j|_nP|�
d
��|�d��|j�
|��|j|_dS)
N�!�/F)r.rmr/rn�selfClosingAcknowledged�>z'expected-tag-name-but-got-right-bracketz<>�?z'expected-tag-name-but-got-question-markzexpected-tag-namer\T)r$rN�markup_declaration_open_stater'�close_tag_open_stater	rrpr(�tag_name_stater<r?r&rS�bogus_comment_stater�s  rr{zHTMLTokenizer.tag_open_stateTsD���{�$�$�&�&���3�;�;��;�D�J�J�
�S�[�[��2�D�J�J�
�]�
"�
"�����$�+0�"�"�D���,�D�J�J�
�S�[�[�
���F�G�G�G��O�O�D�!�!�!���D�J�J�
�S�[�[�
���F�G�G�G��K���d�#�#�#��1�D�J�J�
���0�1�1�1��O�O�C� � � ��K���d�#�#�#���D�J��trc���|j���}|tvr#tj|gdd�|_|j|_n�|dkr"|�d��|j	|_n}|tur7|�d��|�d��|j	|_n=|�d|���|j�|��|j
|_d	S)
NF�r.rmr/rnr�z*expected-closing-tag-but-got-right-bracketz expected-closing-tag-but-got-eof�</z!expected-closing-tag-but-got-char�r/T)r$rNr	rrsr(r�r'r<r&rr?rSr�r�s  rr�z"HTMLTokenizer.close_tag_open_statews����{�$�$�&�&���=� � ��
���$�	"�"�D���,�D�J�J�
�S�[�[����I�J�J�J���D�J�J�
�S�[�[����?�@�@�@��O�O�D�!�!�!���D�J�J�
���@�t��L�L�L��K���d�#�#�#��1�D�J��trc��|j���}|tvr
|j|_n�|dkr|���n�|tur"|�d��|j|_nY|dkr
|j	|_nF|dkr+|�d��|j
dxxdz
cc<n|j
dxx|z
cc<dS)	Nr�zeof-in-tag-namer�rwrxrmrFT)r$rNr�before_attribute_name_stater'rurr<r&�self_closing_start_tag_stater(r�s  rr�zHTMLTokenizer.tag_name_state�s����{�$�$�&�&���#�#�#��9�D�J�J�
�S�[�[��#�#�%�%�%�%�
�S�[�[����.�/�/�/���D�J�J�
�S�[�[��:�D�J�J�
�X�
�
����0�1�1�1���v�&�&�&�(�2�&�&�&�&���v�&�&�&�$�.�&�&�&��trc���|j���}|dkrd|_|j|_n;|�d��|j�|��|j|_dS�Nr�rCr\T)r$rN�temporary_buffer�rcdata_end_tag_open_stater'r?rSr�r�s  rr�z)HTMLTokenizer.rcdata_less_than_sign_state�si���{�$�$�&�&���3�;�;�$&�D�!��7�D�J�J��O�O�C� � � ��K���d�#�#�#��*�D�J��trc��|j���}|tvr|xj|z
c_|j|_n;|�d��|j�|��|j|_dS�Nr�T)	r$rNr	r��rcdata_end_tag_name_stater'r?rSr�r�s  rr�z'HTMLTokenizer.rcdata_end_tag_open_state�sw���{�$�$�&�&���=� � ��!�!�T�)�!�!��7�D�J�J��O�O�D�!�!�!��K���d�#�#�#��*�D�J��trc���|jo9|jd���|j���k}|j���}|t
vr*|r(tj|jgdd�|_|j|_	n�|dkr*|r(tj|jgdd�|_|j
|_	n�|dkr>|r<tj|jgdd�|_|���|j|_	n]|tvr|xj|z
c_nC|�d|j����|j�|��|j|_	dS�NrmFr�r�r�r�T)r(�lowerr�r$rNrrrsr�r'r�rur&r	r?rSr��r)�appropriater/s   rr�z'HTMLTokenizer.rcdata_end_tag_name_state�s~����
P���v�&�,�,�.�.�$�2G�2M�2M�2O�2O�O�	��{�$�$�&�&���#�#�#��#��
��-��$�	"�"�D���9�D�J�J�
�S�[�[�[�[��
��-��$�	"�"�D���:�D�J�J�
�S�[�[�[�[��
��-��$�	"�"�D��
�#�#�%�%�%���D�J�J�
�]�
"�
"��!�!�T�)�!�!�!��O�O�8��!6�8�8�9�9�9��K���d�#�#�#��*�D�J��trc���|j���}|dkrd|_|j|_n;|�d��|j�|��|j|_dSr�)r$rNr��rawtext_end_tag_open_stater'r?rSr�r�s  rr�z*HTMLTokenizer.rawtext_less_than_sign_state�si���{�$�$�&�&���3�;�;�$&�D�!��8�D�J�J��O�O�C� � � ��K���d�#�#�#��+�D�J��trc��|j���}|tvr|xj|z
c_|j|_n;|�d��|j�|��|j|_dSr�)	r$rNr	r��rawtext_end_tag_name_stater'r?rSr�r�s  rr�z(HTMLTokenizer.rawtext_end_tag_open_state�sw���{�$�$�&�&���=� � ��!�!�T�)�!�!��8�D�J�J��O�O�D�!�!�!��K���d�#�#�#��+�D�J��trc���|jo9|jd���|j���k}|j���}|t
vr*|r(tj|jgdd�|_|j|_	n�|dkr*|r(tj|jgdd�|_|j
|_	n�|dkr>|r<tj|jgdd�|_|���|j|_	n]|tvr|xj|z
c_nC|�d|j����|j�|��|j|_	dSr�)r(r�r�r$rNrrrsr�r'r�rur&r	r?rSr�r�s   rr�z(HTMLTokenizer.rawtext_end_tag_name_state�s~����
P���v�&�,�,�.�.�$�2G�2M�2M�2O�2O�O�	��{�$�$�&�&���#�#�#��#��
��-��$�	"�"�D���9�D�J�J�
�S�[�[�[�[��
��-��$�	"�"�D���:�D�J�J�
�S�[�[�[�[��
��-��$�	"�"�D��
�#�#�%�%�%���D�J�J�
�]�
"�
"��!�!�T�)�!�!�!��O�O�8��!6�8�8�9�9�9��K���d�#�#�#��+�D�J��trc�2�|j���}|dkrd|_|j|_nc|dkr"|�d��|j|_n;|�d��|j�|��|j|_dS)Nr�rCr�z<!r\T)	r$rNr��script_data_end_tag_open_stater'r?�script_data_escape_start_staterSr�r�s  rr�z.HTMLTokenizer.script_data_less_than_sign_states����{�$�$�&�&���3�;�;�$&�D�!��<�D�J�J�
�S�[�[��O�O�D�!�!�!��<�D�J�J��O�O�C� � � ��K���d�#�#�#��/�D�J��trc��|j���}|tvr|xj|z
c_|j|_n;|�d��|j�|��|j|_dSr�)	r$rNr	r��script_data_end_tag_name_stater'r?rSr�r�s  rr�z,HTMLTokenizer.script_data_end_tag_open_state)sw���{�$�$�&�&���=� � ��!�!�T�)�!�!��<�D�J�J��O�O�D�!�!�!��K���d�#�#�#��/�D�J��trc���|jo9|jd���|j���k}|j���}|t
vr*|r(tj|jgdd�|_|j|_	n�|dkr*|r(tj|jgdd�|_|j
|_	n�|dkr>|r<tj|jgdd�|_|���|j|_	n]|tvr|xj|z
c_nC|�d|j����|j�|��|j|_	dSr�)r(r�r�r$rNrrrsr�r'r�rur&r	r?rSr�r�s   rr�z,HTMLTokenizer.script_data_end_tag_name_state4s~����
P���v�&�,�,�.�.�$�2G�2M�2M�2O�2O�O�	��{�$�$�&�&���#�#�#��#��
��-��$�	"�"�D���9�D�J�J�
�S�[�[�[�[��
��-��$�	"�"�D���:�D�J�J�
�S�[�[�[�[��
��-��$�	"�"�D��
�#�#�%�%�%���D�J�J�
�]�
"�
"��!�!�T�)�!�!�!��O�O�8��!6�8�8�9�9�9��K���d�#�#�#��/�D�J��trc���|j���}|dkr"|�d��|j|_n&|j�|��|j|_dS�N�-T)r$rNr?�#script_data_escape_start_dash_stater'rSr�r�s  rr�z,HTMLTokenizer.script_data_escape_start_stateZ�a���{�$�$�&�&���3�;�;��O�O�C� � � ��A�D�J�J��K���d�#�#�#��/�D�J��trc���|j���}|dkr"|�d��|j|_n&|j�|��|j|_dSr�)r$rNr?�#script_data_escaped_dash_dash_stater'rSr�r�s  rr�z1HTMLTokenizer.script_data_escape_start_dash_statedr�rc��|j���}|dkr"|�d��|j|_n�|dkr
|j|_nw|dkr+|�d��|�d��nF|tur
|j|_n0|�||j�	d��z��dS)Nr�r\rwrxrF)r\r�rwT)
r$rNr?�script_data_escaped_dash_stater'�(script_data_escaped_less_than_sign_stater<rr&r|r�s  r�script_data_escaped_statez'HTMLTokenizer.script_data_escaped_statens����{�$�$�&�&���3�;�;��O�O�C� � � ��<�D�J�J�
�S�[�[��F�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%�%�
�S�[�[���D�J�J��O�O�D�4�;�#:�#:�;O�#P�#P�P�Q�Q�Q��trc��|j���}|dkr"|�d��|j|_n�|dkr
|j|_nt|dkr7|�d��|�d��|j|_n7|tur
|j	|_n!|�|��|j|_dS)Nr�r\rwrxrFT)
r$rNr?r�r'r�r<r�rr&r�s  rr�z,HTMLTokenizer.script_data_escaped_dash_state~s����{�$�$�&�&���3�;�;��O�O�C� � � ��A�D�J�J�
�S�[�[��F�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%��7�D�J�J�
�S�[�[���D�J�J��O�O�D�!�!�!��7�D�J��trc���|j���}|dkr|�d��n�|dkr
|j|_n�|dkr"|�d��|j|_nt|dkr7|�d��|�d��|j|_n7|tur
|j	|_n!|�|��|j|_dS)Nr�r\r�rwrxrFT)
r$rNr?r�r'r�r<r�rr&r�s  rr�z1HTMLTokenizer.script_data_escaped_dash_dash_state�s����{�$�$�&�&���3�;�;��O�O�C� � � � �
�S�[�[��F�D�J�J�
�S�[�[��O�O�C� � � ��/�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%��7�D�J�J�
�S�[�[���D�J�J��O�O�D�!�!�!��7�D�J��trc�L�|j���}|dkrd|_|j|_np|t
vr,|�d|����||_|j|_n;|�d��|j�|��|j	|_dSr�)
r$rNr��&script_data_escaped_end_tag_open_stater'r	r?�%script_data_double_escape_start_staterSr�r�s  rr�z6HTMLTokenizer.script_data_escaped_less_than_sign_state�s����{�$�$�&�&���3�;�;�$&�D�!��D�D�J�J�
�]�
"�
"��O�O�J��J�J�'�'�'�$(�D�!��C�D�J�J��O�O�C� � � ��K���d�#�#�#��7�D�J��trc���|j���}|tvr||_|j|_n;|�d��|j�|��|j|_dSr�)	r$rNr	r��&script_data_escaped_end_tag_name_stater'r?rSr�r�s  rr�z4HTMLTokenizer.script_data_escaped_end_tag_open_state�sk���{�$�$�&�&���=� � �$(�D�!��D�D�J�J��O�O�D�!�!�!��K���d�#�#�#��7�D�J��trc���|jo9|jd���|j���k}|j���}|t
vr*|r(tj|jgdd�|_|j|_	n�|dkr*|r(tj|jgdd�|_|j
|_	n�|dkr>|r<tj|jgdd�|_|���|j|_	n]|tvr|xj|z
c_nC|�d|j����|j�|��|j|_	dSr�)r(r�r�r$rNrrrsr�r'r�rur&r	r?rSr�r�s   rr�z4HTMLTokenizer.script_data_escaped_end_tag_name_state�s~����
P���v�&�,�,�.�.�$�2G�2M�2M�2O�2O�O�	��{�$�$�&�&���#�#�#��#��
��-��$�	"�"�D���9�D�J�J�
�S�[�[�[�[��
��-��$�	"�"�D���:�D�J�J�
�S�[�[�[�[��
��-��$�	"�"�D��
�#�#�%�%�%���D�J�J�
�]�
"�
"��!�!�T�)�!�!�!��O�O�8��!6�8�8�9�9�9��K���d�#�#�#��7�D�J��trc��|j���}|ttd��zvrL|�|��|j���dkr
|j|_nb|j	|_nU|tvr&|�|��|xj|z
c_n&|j�|��|j	|_dS�N)r�r��scriptT)r$rNrrQr?r�r�� script_data_double_escaped_stater'r�r	rSr�s  rr�z3HTMLTokenizer.script_data_double_escape_start_state�s����{�$�$�&�&���$�y��'<�'<�<�=�=��O�O�D�!�!�!��$�*�*�,�,��8�8�!�B��
�
�!�;��
�
�
�]�
"�
"��O�O�D�!�!�!��!�!�T�)�!�!�!��K���d�#�#�#��7�D�J��trc��|j���}|dkr"|�d��|j|_n�|dkr"|�d��|j|_nq|dkr+|�d��|�d��n@|tur"|�d��|j|_n|�|��dS�Nr�r\rwrxrF�eof-in-script-in-scriptT)	r$rNr?�%script_data_double_escaped_dash_stater'�/script_data_double_escaped_less_than_sign_stater<rr&r�s  rr�z.HTMLTokenizer.script_data_double_escaped_state�s����{�$�$�&�&���3�;�;��O�O�C� � � ��C�D�J�J�
�S�[�[��O�O�C� � � ��M�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%�%�
�S�[�[����6�7�7�7���D�J�J��O�O�D�!�!�!��trc���|j���}|dkr"|�d��|j|_n�|dkr"|�d��|j|_n�|dkr7|�d��|�d��|j|_nL|tur"|�d��|j	|_n!|�|��|j|_dSr�)
r$rNr?�*script_data_double_escaped_dash_dash_stater'r�r<r�rr&r�s  rr�z3HTMLTokenizer.script_data_double_escaped_dash_states����{�$�$�&�&���3�;�;��O�O�C� � � ��H�D�J�J�
�S�[�[��O�O�C� � � ��M�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%��>�D�J�J�
�S�[�[����6�7�7�7���D�J�J��O�O�D�!�!�!��>�D�J��trc�"�|j���}|dkr|�d��n�|dkr"|�d��|j|_n�|dkr"|�d��|j|_n�|dkr7|�d��|�d��|j|_nL|tur"|�d��|j	|_n!|�|��|j|_dS)	Nr�r\r�rwrxrFr�T)
r$rNr?r�r'r�r<r�rr&r�s  rr�z8HTMLTokenizer.script_data_double_escaped_dash_dash_states	���{�$�$�&�&���3�;�;��O�O�C� � � � �
�S�[�[��O�O�C� � � ��M�D�J�J�
�S�[�[��O�O�C� � � ��/�D�J�J�
�X�
�
����0�1�1�1��O�O�H�%�%�%��>�D�J�J�
�S�[�[����6�7�7�7���D�J�J��O�O�D�!�!�!��>�D�J��trc���|j���}|dkr)|�d��d|_|j|_n&|j�|��|j|_dS)Nr�rCT)r$rNr?r��#script_data_double_escape_end_stater'rSr�r�s  rr�z=HTMLTokenizer.script_data_double_escaped_less_than_sign_state0si���{�$�$�&�&���3�;�;��O�O�C� � � �$&�D�!��A�D�J�J��K���d�#�#�#��>�D�J��trc��|j���}|ttd��zvrL|�|��|j���dkr
|j|_nb|j	|_nU|tvr&|�|��|xj|z
c_n&|j�|��|j	|_dSr�)r$rNrrQr?r�r�r�r'r�r	rSr�s  rr�z1HTMLTokenizer.script_data_double_escape_end_state;s����{�$�$�&�&���$�y��'<�'<�<�=�=��O�O�D�!�!�!��$�*�*�,�,��8�8�!�;��
�
�!�B��
�
�
�]�
"�
"��O�O�D�!�!�!��!�!�T�)�!�!�!��K���d�#�#�#��>�D�J��trc�2�|j���}|tvr"|j�td���nR|tvr0|jd�|dg��|j|_�n|dkr|�	��n�|dkr
|j
|_n�|dvrD|�d��|jd�|dg��|j|_n�|dkrD|�d	��|jd�d
dg��|j|_nY|tur"|�d��|j
|_n.|jd�|dg��|j|_dS)NTr/rCr�r�)�'�"rar\�#invalid-character-in-attribute-namerwrxrFz#expected-attribute-name-but-got-eof)r$rNrr|r	r(r9�attribute_name_stater'rur�r<rr&r�s  rr�z)HTMLTokenizer.before_attribute_name_stateKs����{�$�$�&�&���#�#�#��K�#�#�$4�d�;�;�;�;�
�]�
"�
"���v�&�-�-�t�R�j�9�9�9��2�D�J�J�
�S�[�[��#�#�%�%�%�%�
�S�[�[��:�D�J�J�
�)�
)�
)����B�C�C�C���v�&�-�-�t�R�j�9�9�9��2�D�J�J�
�X�
�
����0�1�1�1���v�&�-�-�x��n�=�=�=��2�D�J�J�
�S�[�[����B�C�C�C���D�J�J���v�&�-�-�t�R�j�9�9�9��2�D�J��trc�T�|j���}d}d}|dkr|j|_�nJ|tvrE|jdddxx||j�td��zz
cc<d}n�|dkrd}n�|tvr
|j|_n�|dkr
|j	|_n�|d	kr9|�
d
��|jdddxxdz
cc<d}n�|dvr9|�
d
��|jdddxx|z
cc<d}nN|tur"|�
d��|j|_n#|jdddxx|z
cc<d}|r�|jddd�
t��|jddd<|jddd�D]9\}}|jddd|kr|�
d��n�:|r|���dS)NTFrar/r^rr�r�rwrxrF�r�r�r\r�zeof-in-attribute-namezduplicate-attribute)r$rN�before_attribute_value_stater'r	r(r|r�after_attribute_name_stater�r<rr&ror
ru)r)r/�leaving_this_state�
emit_tokenrm�_s      rr�z"HTMLTokenizer.attribute_name_statefs����{�$�$�&�&��!���
��3�;�;��:�D�J�J�
�]�
"�
"���v�&�r�*�1�-�-�-��t�{�.�.�}�d�C�C�C�
E�-�-�-�!&���
�S�[�[��J�J�
�%�
%�
%��8�D�J�J�
�S�[�[��:�D�J�J�
�X�
�
����0�1�1�1���v�&�r�*�1�-�-�-��9�-�-�-�!&���
�_�
$�
$����B�C�C�C���v�&�r�*�1�-�-�-��5�-�-�-�!&���
�S�[�[����4�5�5�5���D�J�J���v�&�r�*�1�-�-�-��5�-�-�-�!&���	*�
�"�6�*�2�.�q�1�;�;�<P�Q�Q�
��v�&�r�*�1�-��-�f�5�c�r�c�:�
�
���a��%�f�-�b�1�!�4��<�<��$�$�%:�;�;�;��E�=��
*��'�'�)�)�)��trc�Z�|j���}|tvr"|j�td���nf|dkr|j|_�nR|dkr|����n6|tvr/|jd�	|dg��|j
|_n�|dkr
|j|_n�|dkrD|�d��|jd�	d	dg��|j
|_n�|d
vrD|�d��|jd�	|dg��|j
|_nY|tur"|�d��|j|_n.|jd�	|dg��|j
|_dS)
NTrar�r/rCr�rwrxrFr�z&invalid-character-after-attribute-namezexpected-end-of-tag-but-got-eof)r$rNrr|r�r'rur	r(r9r�r�r<rr&r�s  rr�z(HTMLTokenizer.after_attribute_name_state�s����{�$�$�&�&���#�#�#��K�#�#�$4�d�;�;�;�;�
�S�[�[��:�D�J�J�
�S�[�[��#�#�%�%�%�%�
�]�
"�
"���v�&�-�-�t�R�j�9�9�9��2�D�J�J�
�S�[�[��:�D�J�J�
�X�
�
����0�1�1�1���v�&�-�-�x��n�=�=�=��2�D�J�J�
�_�
$�
$����E�F�F�F���v�&�-�-�t�R�j�9�9�9��2�D�J�J�
�S�[�[����>�?�?�?���D�J�J���v�&�-�-�t�R�j�9�9�9��2�D�J��trc�j�|j���}|tvr"|j�td���nn|dkr|j|_�nZ|dkr(|j|_|j�|���n,|dkr|j|_�n|dkr*|�	d��|�
��n�|dkrC|�	d��|jd	d
dxxdz
cc<|j|_n�|d
vrC|�	d��|jd	d
dxx|z
cc<|j|_nX|tur"|�	d��|j
|_n-|jd	d
dxx|z
cc<|j|_dS)NTr�r[r�r�z.expected-attribute-value-but-got-right-bracketrwrxr/r^rrF)rar\�`z"equals-in-unquoted-attribute-valuez$expected-attribute-value-but-got-eof)r$rNrr|�#attribute_value_double_quoted_stater'�attribute_value_unquoted_staterS�#attribute_value_single_quoted_stater<rur(rr&r�s  rr�z*HTMLTokenizer.before_attribute_value_state�s����{�$�$�&�&���#�#�#��K�#�#�$4�d�;�;�;�;�
�S�[�[��A�D�J�J�
�S�[�[��<�D�J��K���d�#�#�#�#�
�S�[�[��A�D�J�J�
�S�[�[����M�N�N�N��#�#�%�%�%�%�
�X�
�
����0�1�1�1���v�&�r�*�1�-�-�-��9�-�-�-��<�D�J�J�
�_�
$�
$����A�B�B�B���v�&�r�*�1�-�-�-��5�-�-�-��<�D�J�J�
�S�[�[����C�D�D�D���D�J�J���v�&�r�*�1�-�-�-��5�-�-�-��<�D�J��trc���|j���}|dkr
|j|_n�|dkr|�d��n�|dkr7|�d��|jdddxxdz
cc<ng|tur"|�d	��|j|_n<|jdddxx||j�	d
��zz
cc<dS)Nr�r[rwrxr/r^rrFz#eof-in-attribute-value-double-quote)r�r[rwT�
r$rN�after_attribute_value_stater'rkr<r(rr&r|r�s  rr�z1HTMLTokenizer.attribute_value_double_quoted_state�����{�$�$�&�&���3�;�;��9�D�J�J�
�S�[�[��,�,�S�1�1�1�1�
�X�
�
����0�1�1�1���v�&�r�*�1�-�-�-��9�-�-�-�-�
�S�[�[����B�C�C�C���D�J�J���v�&�r�*�1�-�-�-��t�{�.�.�/C�D�D�D�
F�-�-�-��trc���|j���}|dkr
|j|_n�|dkr|�d��n�|dkr7|�d��|jdddxxdz
cc<ng|tur"|�d	��|j|_n<|jdddxx||j�	d
��zz
cc<dS)Nr�r[rwrxr/r^rrFz#eof-in-attribute-value-single-quote)r�r[rwTr�r�s  rr�z1HTMLTokenizer.attribute_value_single_quoted_state�r�rc	��|j���}|tvr|j|_�n,|dkr|�d���n|dkr|���n�|dvr7|�d��|jdddxx|z
cc<n�|dkr7|�d	��|jdddxxd
z
cc<n||tur"|�d��|j
|_nQ|jdddxx||j�td��tz��zz
cc<d
S)Nr[r�)r�r�rar\r�z0unexpected-character-in-unquoted-attribute-valuer/r^rrwrxrFz eof-in-attribute-value-no-quotes)r[r�r�r�rar\r�rwT)
r$rNrr�r'rkrur<r(rr&r|rQr�s  rr�z,HTMLTokenizer.attribute_value_unquoted_state�s����{�$�$�&�&���#�#�#��9�D�J�J�
�S�[�[��,�,�S�1�1�1�1�
�S�[�[��#�#�%�%�%�%�
�.�
.�
.����O�P�P�P���v�&�r�*�1�-�-�-��5�-�-�-�-�
�X�
�
����0�1�1�1���v�&�r�*�1�-�-�-��9�-�-�-�-�
�S�[�[����?�@�@�@���D�J�J���v�&�r�*�1�-�-�-��t�{�.�.��K�L�L�$�%�&�&�&�
'�-�-�-��trc��|j���}|tvr
|j|_n�|dkr|���n�|dkr
|j|_n�|tur<|�d��|j�	|��|j
|_n;|�d��|j�	|��|j|_dS)Nr�r�z$unexpected-eof-after-attribute-valuez*unexpected-character-after-attribute-valueT)r$rNrr�r'rur�rr<rSr&r�s  rr�z)HTMLTokenizer.after_attribute_value_states����{�$�$�&�&���#�#�#��9�D�J�J�
�S�[�[��#�#�%�%�%�%�
�S�[�[��:�D�J�J�
�S�[�[����C�D�D�D��K���d�#�#�#���D�J�J����I�J�J�J��K���d�#�#�#��9�D�J��trc��|j���}|dkrd|jd<|���n�|tur<|�d��|j�|��|j|_n;|�d��|j�|��|j	|_dS)Nr�Trnz#unexpected-eof-after-solidus-in-tagz)unexpected-character-after-solidus-in-tag)
r$rNr(rurr<rSr&r'r�r�s  rr�z*HTMLTokenizer.self_closing_start_tag_states����{�$�$�&�&���3�;�;�04�D��}�-��#�#�%�%�%�%�
�S�[�[����B�C�C�C��K���d�#�#�#���D�J�J����H�I�I�I��K���d�#�#�#��9�D�J��trc��|j�d��}|�dd��}|j�t
j|d���|j���|j|_	dS)Nr�rwrFr-T)
r$r|�replacer0r9r�COMMENTrNr&r'r�s  rr�z!HTMLTokenizer.bogus_comment_state-sq���{�&�&�s�+�+���|�|�H�h�/�/��������� E� E�F�F�F�	
��������_��
��trc��|j���g}|ddkr\|�|j�����|ddkr"tjdd�|_|j|_dS�n)|dr{|ddvrqd}dD]D}|�|j�����|dr
|d|vrd}n�E|r%tjddddd	�|_|j	|_dSn�|dd
kr�|j
��|j
jjr�|j
jjdj
|j
jjkrSd}dD]>}|�|j�����|d|krd}n�?|r|j|_dS|�d��|r.|j�|�����|�.|j|_dS)
Nr^r�rCr-T�dD)�oO�cC�tT�yY�pP�eEF)r.rm�publicId�systemId�correct�[zCDATA[zexpected-dashes-or-doctype)r$rNr9rr�r(�comment_start_stater'�DOCTYPE�
doctype_stater%�tree�
open_elements�	namespace�default_namespace�cdata_section_stater<rSr3r�)r)rW�matched�expecteds    rr�z+HTMLTokenizer.markup_declaration_open_state;sE����&�&�(�(�)����9�����L�L���.�.�0�0�1�1�1��R�y�C���.3�m�R�%H�%H��"�!�5��
��t� ��2�Y�	�5��9��,�,��G�@�
�
�����T�[�2�2�4�4�5�5�5��R�y��E�"�I�X�$=�$=�#�G��E�%>��	
�!�M�� $� $�#�&�&��"�"�/��
��t�	
��B�i�3����k�%��k��,�&��k��,�R�0�:��k��0�1�1��G�$�
�
�����T�[�2�2�4�4�5�5�5���9��(�(�#�G��E�)��
�!�5��
��t����5�6�6�6��	+��K���e�i�i�k�k�*�*�*��	+��-��
��trc�$�|j���}|dkr
|j|_n�|dkr+|�d��|jdxxdz
cc<n�|dkrA|�d��|j�|j��|j|_nk|turA|�d��|j�|j��|j|_n!|jdxx|z
cc<|j
|_d	S)
Nr�rwrxr/rFr��incorrect-comment�eof-in-commentT)r$rN�comment_start_dash_stater'r<r(r0r9r&r�
comment_stater�s  rrz!HTMLTokenizer.comment_start_statejs ���{�$�$�&�&���3�;�;��6�D�J�J�
�X�
�
����0�1�1�1���v�&�&�&�(�2�&�&�&�&�
�S�[�[����0�1�1�1���#�#�D�$6�7�7�7���D�J�J�
�S�[�[����-�.�.�.���#�#�D�$6�7�7�7���D�J�J���v�&�&�&�$�.�&�&�&��+�D�J��trc�*�|j���}|dkr
|j|_n�|dkr+|�d��|jdxxdz
cc<n�|dkrA|�d��|j�|j��|j|_nn|turA|�d��|j�|j��|j|_n$|jdxxd|��z
cc<|j
|_d	S)
Nr�rwrxr/�-�r�rrT)r$rN�comment_end_stater'r<r(r0r9r&rrr�s  rrz&HTMLTokenizer.comment_start_dash_state~s&���{�$�$�&�&���3�;�;��/�D�J�J�
�X�
�
����0�1�1�1���v�&�&�&�)�3�&�&�&�&�
�S�[�[����0�1�1�1���#�#�D�$6�7�7�7���D�J�J�
�S�[�[����-�.�.�.���#�#�D�$6�7�7�7���D�J�J���v�&�&�&�*�d�*�*�4�&�&�&��+�D�J��trc��|j���}|dkr
|j|_n�|dkr+|�d��|jdxxdz
cc<nz|turA|�d��|j�|j��|j	|_n0|jdxx||j�
d��zz
cc<dS)	Nr�rwrxr/rFr)r�rwT)r$rN�comment_end_dash_stater'r<r(rr0r9r&r|r�s  rrzHTMLTokenizer.comment_state�s����{�$�$�&�&���3�;�;��4�D�J�J�
�X�
�
����0�1�1�1���v�&�&�&�(�2�&�&�&�&�
�S�[�[����-�.�.�.���#�#�D�$6�7�7�7���D�J�J���v�&�&�&��t�{�.�.��?�?�?�
A�&�&�&��trc��|j���}|dkr
|j|_n�|dkr7|�d��|jdxxdz
cc<|j|_nn|turA|�d��|j�	|j��|j
|_n$|jdxxd|��z
cc<|j|_dS)Nr�rwrxr/rzeof-in-comment-end-dashT)r$rNrr'r<r(rrr0r9r&r�s  rrz$HTMLTokenizer.comment_end_dash_state�s����{�$�$�&�&���3�;�;��/�D�J�J�
�X�
�
����0�1�1�1���v�&�&�&�)�3�&�&�&��+�D�J�J�
�S�[�[����6�7�7�7���#�#�D�$6�7�7�7���D�J�J���v�&�&�&�*�d�*�*�4�&�&�&��+�D�J��trc���|j���}|dkr-|j�|j��|j|_�n|dkr7|�d��|jdxxdz
cc<|j|_n�|dkr"|�d��|j	|_n�|dkr+|�d	��|jdxx|z
cc<n�|turA|�d
��|j�|j��|j|_n9|�d��|jdxxd|��z
cc<|j|_d
S)Nr�rwrxr/u--�r�z,unexpected-bang-after-double-dash-in-commentr�z,unexpected-dash-after-double-dash-in-commentzeof-in-comment-double-dashzunexpected-char-in-commentz--T)r$rNr0r9r(r&r'r<r�comment_end_bang_staterr�s  rrzHTMLTokenizer.comment_end_state�s����{�$�$�&�&���3�;�;���#�#�D�$6�7�7�7���D�J�J�
�X�
�
����0�1�1�1���v�&�&�&�*�4�&�&�&��+�D�J�J�
�S�[�[����K�L�L�L��4�D�J�J�
�S�[�[����K�L�L�L���v�&�&�&�$�.�&�&�&�&�
�S�[�[����9�:�:�:���#�#�D�$6�7�7�7���D�J�J�
���9�:�:�:���v�&�&�&�+�t�+�+�5�&�&�&��+�D�J��trc�B�|j���}|dkr,|j�|j��|j|_n�|dkr"|jdxxdz
cc<|j|_n�|dkr7|�d��|jdxxdz
cc<|j	|_nn|turA|�d��|j�|j��|j|_n$|jdxxd|��z
cc<|j	|_d	S)
Nr�r�r/z--!rwrxu--!�zeof-in-comment-end-bang-stateT)r$rNr0r9r(r&r'rr<rrr�s  rrz$HTMLTokenizer.comment_end_bang_state�s9���{�$�$�&�&���3�;�;���#�#�D�$6�7�7�7���D�J�J�
�S�[�[���v�&�&�&�%�/�&�&�&��4�D�J�J�
�X�
�
����0�1�1�1���v�&�&�&�+�5�&�&�&��+�D�J�J�
�S�[�[����<�=�=�=���#�#�D�$6�7�7�7���D�J�J���v�&�&�&�,��,�,�6�&�&�&��+�D�J��trc��|j���}|tvr
|j|_n�|t
urK|�d��d|jd<|j�	|j��|j
|_n;|�d��|j�|��|j|_dS)N�!expected-doctype-name-but-got-eofFrzneed-space-after-doctypeT)r$rNr�before_doctype_name_stater'rr<r(r0r9r&rSr�s  rrzHTMLTokenizer.doctype_state�s����{�$�$�&�&���#�#�#��7�D�J�J�
�S�[�[����@�A�A�A�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J����7�8�8�8��K���d�#�#�#��7�D�J��trc�&�|j���}|tvrn�|dkrK|�d��d|jd<|j�|j��|j|_n�|dkr,|�d��d|jd<|j	|_nj|turK|�d	��d|jd<|j�|j��|j|_n||jd<|j	|_d
S)Nr�z+expected-doctype-name-but-got-right-bracketFrrwrxrFrmrT)r$rNrr<r(r0r9r&r'�doctype_name_staterr�s  rrz'HTMLTokenizer.before_doctype_name_state�s���{�$�$�&�&���#�#�#��
�S�[�[����J�K�K�K�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J�
�X�
�
����0�1�1�1�)1�D��v�&��0�D�J�J�
�S�[�[����@�A�A�A�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J�)-�D��v�&��0�D�J��trc�$�|j���}|tvr;|jd�t
��|jd<|j|_�n2|dkrY|jd�t
��|jd<|j�	|j��|j
|_n�|dkr7|�d��|jdxxdz
cc<|j|_n�|turx|�d��d|jd<|jd�t
��|jd<|j�	|j��|j
|_n|jdxx|z
cc<d	S)
Nrmr�rwrxrFzeof-in-doctype-nameFrT)r$rNrr(ror
�after_doctype_name_stater'r0r9r&r<rrr�s  rrz HTMLTokenizer.doctype_name_states����{�$�$�&�&���#�#�#��"�6�*�4�4�5I�J�J�
��v�&��6�D�J�J�
�S�[�[��"�6�*�4�4�5I�J�J�
��v�&���#�#�D�$6�7�7�7���D�J�J�
�X�
�
����0�1�1�1���v�&�&�&�(�2�&�&�&��0�D�J�J�
�S�[�[����2�3�3�3�,1�D��y�)��"�6�*�4�4�5I�J�J�
��v�&���#�#�D�$6�7�7�7���D�J�J���v�&�&�&�$�.�&�&�&��trc� �|j���}|tvr�ni|dkr-|j�|j��|j|_�n6|tured|jd<|j�	|��|�
d��|j�|j��|j|_n�|r?|dvr;d}dD]%}|j���}|r||vrd}n�&|r|j|_dSn@|r>|dvr:d}d	D]%}|j���}|r||vrd}n�&|r|j|_dS|j�	|��|�
d
|���d|jd<|j
|_dS)Nr�Fr�eof-in-doctyper�T)�uU�bB�lL�iIr��sS)r�r(r�r��mMz*expected-space-or-right-bracket-in-doctyper�)r$rNrr0r9r(r&r'rrSr<�"after_doctype_public_keyword_state�"after_doctype_system_keyword_state�bogus_doctype_state)r)r/rrs    rr!z&HTMLTokenizer.after_doctype_name_state"s����{�$�$�&�&���#�#�#��
�S�[�[���#�#�D�$6�7�7�7���D�J�J�
�S�[�[�,1�D��y�)��K���d�#�#�#����-�.�.�.���#�#�D�$6�7�7�7���D�J�J��
 ������� >���H��;�0�0�2�2�D���4�x�#7�#7�"'����$8�� �!%�!H�D�J��4� ��	
 �$�$�,�,��� >���H��;�0�0�2�2�D���4�x�#7�#7�"'����$8�� �!%�!H�D�J��4�
�K���d�#�#�#����I�PT��U�U�U�,1�D��y�)��1�D�J��trc���|j���}|tvr
|j|_n�|dvr<|�d��|j�|��|j|_nz|turK|�d��d|jd<|j	�
|j��|j|_n&|j�|��|j|_dS�N)r�r��unexpected-char-in-doctyper#FrT)r$rNr�&before_doctype_public_identifier_stater'r<rSrr(r0r9r&r�s  rr*z0HTMLTokenizer.after_doctype_public_keyword_stateO�����{�$�$�&�&���#�#�#��D�D�J�J�
�Z�
�
����9�:�:�:��K���d�#�#�#��D�D�J�J�
�S�[�[����-�.�.�.�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J��K���d�#�#�#��D�D�J��trc�b�|j���}|tvr�n
|dkrd|jd<|j|_n�|dkrd|jd<|j|_n�|dkrK|�d��d|jd<|j�	|j��|j
|_n|turK|�d	��d|jd<|j�	|j��|j
|_n+|�d
��d|jd<|j|_dS)Nr�rCr�r�r��unexpected-end-of-doctypeFrr#r/T)
r$rNrr(�-doctype_public_identifier_double_quoted_stater'�-doctype_public_identifier_single_quoted_stater<r0r9r&rr,r�s  rr0z4HTMLTokenizer.before_doctype_public_identifier_stateas9���{�$�$�&�&���#�#�#��
�S�[�[�-/�D��z�*��K�D�J�J�
�S�[�[�-/�D��z�*��K�D�J�J�
�S�[�[����8�9�9�9�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J�
�S�[�[����-�.�.�.�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J����9�:�:�:�,1�D��y�)��1�D�J��trc�4�|j���}|dkr
|j|_n�|dkr+|�d��|jdxxdz
cc<n�|dkrK|�d��d|jd	<|j�|j��|j|_ni|turK|�d
��d|jd	<|j�|j��|j|_n|jdxx|z
cc<dS)Nr�rwrxr�rFr�r3Frr#T�
r$rN�%after_doctype_public_identifier_stater'r<r(r0r9r&rr�s  rr4z;HTMLTokenizer.doctype_public_identifier_double_quoted_state{�0���{�$�$�&�&���3�;�;��C�D�J�J�
�X�
�
����0�1�1�1���z�*�*�*�h�6�*�*�*�*�
�S�[�[����8�9�9�9�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J�
�S�[�[����-�.�.�.�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J���z�*�*�*�d�2�*�*�*��trc�4�|j���}|dkr
|j|_n�|dkr+|�d��|jdxxdz
cc<n�|dkrK|�d��d|jd	<|j�|j��|j|_ni|turK|�d
��d|jd	<|j�|j��|j|_n|jdxx|z
cc<dS)Nr�rwrxr�rFr�r3Frr#Tr7r�s  rr5z;HTMLTokenizer.doctype_public_identifier_single_quoted_state�r9rc��|j���}|tvr|j|_�n|dkr,|j�|j��|j|_n�|dkr,|�	d��d|jd<|j
|_n�|dkr,|�	d��d|jd<|j|_n|turK|�	d��d|jd	<|j�|j��|j|_n+|�	d��d|jd	<|j
|_d
S)Nr�r�r/rCrr�r#FrT)r$rNr�3between_doctype_public_and_system_identifiers_stater'r0r9r(r&r<�-doctype_system_identifier_double_quoted_state�-doctype_system_identifier_single_quoted_staterr,r�s  rr8z3HTMLTokenizer.after_doctype_public_identifier_state�sJ���{�$�$�&�&���#�#�#��Q�D�J�J�
�S�[�[���#�#�D�$6�7�7�7���D�J�J�
�S�[�[����9�:�:�:�-/�D��z�*��K�D�J�J�
�S�[�[����9�:�:�:�-/�D��z�*��K�D�J�J�
�S�[�[����-�.�.�.�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J����9�:�:�:�,1�D��y�)��1�D�J��trc�"�|j���}|tvrn�|dkr,|j�|j��|j|_n�|dkrd|jd<|j|_n�|dkrd|jd<|j	|_n|turK|�d��d|jd<|j�|j��|j|_n+|�d	��d|jd<|j|_d
S)Nr�r�rCrr�r#Frr/T)
r$rNrr0r9r(r&r'r=r>rr<r,r�s  rr<zAHTMLTokenizer.between_doctype_public_and_system_identifiers_state�s���{�$�$�&�&���#�#�#��
�S�[�[���#�#�D�$6�7�7�7���D�J�J�
�S�[�[�-/�D��z�*��K�D�J�J�
�S�[�[�-/�D��z�*��K�D�J�J�
�S�[�[����-�.�.�.�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J����9�:�:�:�,1�D��y�)��1�D�J��trc���|j���}|tvr
|j|_n�|dvr<|�d��|j�|��|j|_nz|turK|�d��d|jd<|j	�
|j��|j|_n&|j�|��|j|_dSr.)r$rNr�&before_doctype_system_identifier_stater'r<rSrr(r0r9r&r�s  rr+z0HTMLTokenizer.after_doctype_system_keyword_state�r1rc�b�|j���}|tvr�n
|dkrd|jd<|j|_n�|dkrd|jd<|j|_n�|dkrK|�d��d|jd<|j�	|j��|j
|_n|turK|�d	��d|jd<|j�	|j��|j
|_n+|�d��d|jd<|j|_d
S)Nr�rCrr�r�r/Frr#T)
r$rNrr(r=r'r>r<r0r9r&rr,r�s  rrAz4HTMLTokenizer.before_doctype_system_identifier_state�s9���{�$�$�&�&���#�#�#��
�S�[�[�-/�D��z�*��K�D�J�J�
�S�[�[�-/�D��z�*��K�D�J�J�
�S�[�[����9�:�:�:�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J�
�S�[�[����-�.�.�.�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J����9�:�:�:�,1�D��y�)��1�D�J��trc�4�|j���}|dkr
|j|_n�|dkr+|�d��|jdxxdz
cc<n�|dkrK|�d��d|jd	<|j�|j��|j|_ni|turK|�d
��d|jd	<|j�|j��|j|_n|jdxx|z
cc<dS)Nr�rwrxrrFr�r3Frr#T�
r$rN�%after_doctype_system_identifier_stater'r<r(r0r9r&rr�s  rr=z;HTMLTokenizer.doctype_system_identifier_double_quoted_stater9rc�4�|j���}|dkr
|j|_n�|dkr+|�d��|jdxxdz
cc<n�|dkrK|�d��d|jd	<|j�|j��|j|_ni|turK|�d
��d|jd	<|j�|j��|j|_n|jdxx|z
cc<dS)Nr�rwrxrrFr�r3Frr#TrDr�s  rr>z;HTMLTokenizer.doctype_system_identifier_single_quoted_stater9rc��|j���}|tvrn�|dkr,|j�|j��|j|_nu|turK|�	d��d|jd<|j�|j��|j|_n!|�	d��|j
|_dS)Nr�r#Frr/T)r$rNrr0r9r(r&r'rr<r,r�s  rrEz3HTMLTokenizer.after_doctype_system_identifier_state-s����{�$�$�&�&���#�#�#��
�S�[�[���#�#�D�$6�7�7�7���D�J�J�
�S�[�[����-�.�.�.�,1�D��y�)���#�#�D�$6�7�7�7���D�J�J����9�:�:�:��1�D�J��trc�<�|j���}|dkr,|j�|j��|j|_nP|turF|j�|��|j�|j��|j|_n	dS)Nr�T)	r$rNr0r9r(r&r'rrSr�s  rr,z!HTMLTokenizer.bogus_doctype_state>s����{�$�$�&�&���3�;�;���#�#�D�$6�7�7�7���D�J�J�
�S�[�[��K���d�#�#�#���#�#�D�$6�7�7�7���D�J�J���trc��g}	|�|j�d����|�|j�d����|j���}|turnF|dksJ�|ddd�dkr|ddd�|d<n|�|����d�|��}|�d��x}d	kr=t|��D]}|�d
���|�	dd��}|r|�
|��|j|_dS)NT�]r�r^���z]]rCrwrrxrF)
r9r$r|rNrrP�countrr<r�r?r&r')r)r/�char�
null_countr�s     rr
z!HTMLTokenizer.cdata_section_stateLsY����	&��K�K���/�/��4�4�5�5�5��K�K���/�/��4�4�5�5�5��;�(�(�*�*�D��s�{�{���s�{�{�{�{���8�B�C�C�=�D�(�(�#�B�x����}�D��H���K�K��%�%�%�	&��w�w�t�}�}���*�*�X�.�.�.�J�!�3�3��:�&�&�
6�
6��� � �!4�5�5�5�5��<�<��(�3�3�D��	"��O�O�D�!�!�!��_��
��trr#)NF)O�__name__�
__module__�__qualname__�__doc__r+r6r<r?rYrirkrur&rzr�r�r�r�r�r{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr!r*r0r4r5r8r<r+rAr=r>rEr,r
�rrr!r!&s���������"�"�"�"�1�1�1�('�'�'�K�K�K�3�3�3�jEK�EK�EK�EK�NB�B�B�%�%�%�8���6���
���8���
������	�	�	�!�!�!�F���0���(	�	�	�	�	�	�$�$�$�L	�	�	�	�	�	�$�$�$�L���	�	�	�$�$�$�L��������� ���$���(
�
�
�	�	�	�$�$�$�L��� ���$���(���,	�	�	���� ���6/�/�/�b���:���<���"���"���0���$
�
�
����-�-�-�^���(���(��� ���"���4���*
�
�
����.���4+�+�+�Z���$���4���*���*���4���0���$���4���*���*���"�������rr!N)�bisectr�collectionsr�
html.entitiesrr�	constantsrrr	r
rrr
rr�inputstreamr�tuple�sortedrrrr!rSrr�<module>r[s0��������������+�+�+�+�+�+�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�)�(�(�(�(�(��e�F�F�8�$�$�%�%��-�-�-�������������r

Youez - 2016 - github.com/yon3zu
LinuXploit