HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/twisted/web/__pycache__/sux.cpython-38.pyc
U


W[�Q�@s�dZddlmZddlmZddlmZddlmZdZ	dZ
dZdZed	Z
d
d�Zdd
�Zdd�Zdd�Zdd�ZGdd�de�ZGdd�de�ZdS)a�
*S*mall, *U*ncomplicated *X*ML.

This is a very simple implementation of XML/HTML as a network
protocol.  It is not at all clever.  Its main features are that it
does not:

  - support namespaces
  - mung mnemonic entity references
  - validate
  - perform *any* external actions (such as fetching URLs or writing files)
    under *any* circumstances
  - has lots and lots of horrible hacks for supporting broken HTML (as an
    option, they're not on by default).
�)�print_function)�Protocol)�unicode)�prefixedMethodNames��z.-_:z;+#/%~cOsdS)zDo nothing.N�)�args�kwrr�1/usr/lib/python3/dist-packages/twisted/web/sux.py�nop'srcGs2g}|D]}|�|�qtdd�|D��}|��S)NcSsg|]}|df�qS)rr��.0�xrrr�
<listcomp>/szunionlist.<locals>.<listcomp>)�extend�dict�keys)r	�lr�drrr�	unionlist+s
rcsH|�dt��i}tdd�|D��D] �t��fdd�|D��|�<q"|S)N�defaultcSsg|]}|���qSr)r)rZfndictrrrr6szzipfndict.<locals>.<listcomp>csg|]}|�����qSr)�getr
�r�keyrrr7s)rrr�tuple)r	r
rrrr�	zipfndict3s
rcst��fdd�t���D��S)Ncsg|]}|t��|�f�qSr��getattr�r�name�Zclazz�prefixrrr<sz+prefixedMethodClassDict.<locals>.<listcomp>)rrr!rr!r�prefixedMethodClassDict;sr#cs t��fdd�t�j��D��S)Ncsg|]}|t��|�f�qSrrr��objr"rrr@sz)prefixedMethodObjDict.<locals>.<listcomp>)rr�	__class__r$rr$r�prefixedMethodObjDict?sr'c@seZdZdd�Zdd�ZdS)�
ParseErrorcCs||_||_||_||_dS�N��filename�line�col�message)�selfr+r,r-r.rrr�__init__EszParseError.__init__cCsd|j|j|j|jfS)Nz%s:%s:%s: %sr*�r/rrr�__str__Ks�zParseError.__str__N)�__name__�
__module__�__qualname__r0r2rrrrr(Csr(c@s�eZdZdZdZdZdZdZdZdd�Z	dd�Z
dd	�Zd
d�Zdd
�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Z d4d5�Z!d6d7�Z"d8d9�Z#d:d;�Z$d<Z%d<Z&d=d>�Z'd?d@�Z(dAdB�Z)dCdD�Z*dEdF�Z+dGdH�Z,dIdJ�Z-dKdL�Z.dMdN�Z/dOdP�Z0dQdR�Z1dSdT�Z2dUdV�Z3dWdX�Z4dYdZ�Z5d[d\�Z6d]d^�Z7d_d`�Z8dadb�Z9dcdd�Z:e2Z;e3Z<dedf�Z=dgdh�Z>didj�Z?dkdl�Z@dmdn�ZAdodp�ZBdqdr�ZCdS)s�	XMLParserNz<xml />rcCsd|_d|_g|_dS)Nrr)�lineno�colno�	encodingsr1rrr�connectionMade\szXMLParser.connectionMadecCs|j|jfS)z;Get the line number and column of the last character parsed)r7r8r1rrr�saveMarkaszXMLParser.saveMarkcCst|jf|��|f��dSr))r(r+r;)r/r.rrr�_parseErrorfszXMLParser._parseErrorcs8t�jdd�}|dkr4t�fdd�dD��}�j_|S)z;Return a dictionary of begin, do, end state function tuplesZ__stateTableNcsg|]}t�|��qSr)r')rr"r1rrrqs�z.XMLParser._buildStateTable.<locals>.<listcomp>)Zbegin_Zdo_Zend_)rr&rZ_XMLParser__stateTable)r/�
stateTablerr1r�_buildStateTableis
��zXMLParser._buildStateTablecCsRd|jksd|jkr(t|�d@r(td��|jr8|j|}|jD]}t||�}q>|S)N�UTF-16zUCS-2rz!UTF-16 must come in pairs for now)r9�len�AssertionError�_prependr)r/�data�encodingrrr�_decodeus

zXMLParser._decodecCs0|jr
dS|jdkr,d|jkr,|�d�dSdS)N�bodydata�script�src�waitforendscript)�endtag�tagName�
tagAttributes�begin_bodydatar1rrr�
maybeBodyData~s

zXMLParser.maybeBodyDatac	s"|��}|jsD|�d�r>|dd�|_|j�d�|dd�}d|_|jrV|�|�}n
|�d�}|j|j	��|j}|j
}��fdd�}||_
||\}}}zd|D]Z}	|	d	kr��d
7�d�n�d
7�||	�}
|
dk	r�|
|kr�|�|
}||\}}}||	�q�W5||_
��|_|_	X||_dS)N)s��s��rrr?�beginzutf-8cs��fSr)rr�r8r7rrr;�sz(XMLParser.dataReceived.<locals>.saveMark�
r)r>�state�
startswithrBr9�appendrE�decoder7r8r;)r/rCr=ZcurStateZ	_saveMarkr;ZbeginFnZdoFnZendFn�byteZnewStaterrPr�dataReceived�s>

zXMLParser.dataReceivedcCs|��}||jt�dS)z0
        End the last state we were in.
        N)r>rR�END_HANDLER)r/�reasonr=rrr�connectionLost�szXMLParser.connectionLostcCs8|��rdS|dkr4|jr$||_dS|�d|f�dS)N�<rFz$First char of document [%r] wasn't <�tagstart)�isspace�beExtremelyLenient�_leadingBodyDatar<�r/rVrrr�do_begin�szXMLParser.do_begincCs
d|_dS�N�)�
commentbufr`rrr�
begin_comment�szXMLParser.begin_commentcCs6|j|7_|j�d�r2|�|jdd��dSdS)Nz-->���rF)rd�endswith�
gotCommentr`rrr�
do_comment�szXMLParser.do_commentcCsd|_i|_d|_d|_dS�Nrcr)rKrL�termtagrJr`rrr�begin_tagstart�szXMLParser.begin_tagstartcCs4|��s|tkr0|j|7_|jdkr,dS�n|��rX|jrL|jrHdSdS|�d�n�|dkr�|jrv|�|j�dS|�|ji�|jr�dp�|�	�Sn�|dkr�|jr�d	Sd
|_n||dkr�|jr�|js�|�d�n|j|7_d
|_
nF|d
k�r|jdk�rdS|�d�n |j�r"d|_dS|�d|�dS)Nz!--�comment�	waitforgt�attrszWhitespace before tag-name�>rF�/�
afterslashr�!?zInvalid character in tag-name�[�!ZexpectcdatazInvalid '[' in tag-namer[ZunentityzInvalid tag character: %r)�isalnum�
identCharsrKr]rJr<�	gotTagEnd�gotTagStartr^rNrkrFr`rrr�do_tagstart�sD

zXMLParser.do_tagstartcCs|j|7_dSr)�rFr`rrr�begin_unentityszXMLParser.begin_unentitycCs|j|7_dS)NrFr{r`rrr�do_unentityszXMLParser.do_unentitycCs|�|j�dSr)��gotTextrFr1rrr�end_unentityszXMLParser.end_unentitycCs
||_dSr))�cdatabufr`rrr�begin_expectcdataszXMLParser.begin_expectcdatacCsj|j|7_|j}d}t|�t|�krJ|�|�r6dS|jr@dS|�d�||kr\d|_dS|�d�dS)Nz[CDATA[rnzMal-formed CDATA headerrc�cdata)r�r@rSr^r<)r/rVZcdbZcdrrr�do_expectcdatas

zXMLParser.do_expectcdatacCs2|j|7_|j�d�r.|jdd�|_dSdS)Nz]]>rfrF)r�rgr`rrr�do_cdata1szXMLParser.do_cdatacCs|�|j�d|_dSrb)�gotCDatar�r1rrr�	end_cdata7szXMLParser.end_cdatacCs�|��s|tkr4|jdkrdS|jddkr0dSdS|��r@dS|dkrl|�|j|j�|jrddpj|��S|d	krxd
S|jr�dS|�d|�dS)N�!DOCTYPE�doctyperrsrn�attrnamerprFrqrrzUnexpected character: %r)	rvrwrKr]ryrLr^rNr<r`rrr�do_attrs;s 
zXMLParser.do_attrscCs
||_dSr)�r�r`rrr�
begin_doctypePszXMLParser.begin_doctypecCs|dkrdS|j|7_dS�NrprFr�r`rrr�
do_doctypeSszXMLParser.do_doctypecCs|�|j�d|_dSr))�
gotDoctyper�r1rrr�end_doctypeXszXMLParser.end_doctypecCs$|dkr |js|jsdS|��SdSr�)rJr^rNr`rrr�do_waitforgt\szXMLParser.do_waitforgtcCs||_d|_dS�Nr)r��_attrname_termtagr`rrr�begin_attrnamebszXMLParser.begin_attrnamecCs�|��s|tkr"|j|7_dS|dkr.dS|��r:dS|jr�|dkrLdS|tks\|��rn|j|7_dS|dkr�d|_dS|dkr�d	|_|j|j|j<|�	|j
|j�|jr�|�|j
�d
S|��SdS|�
d|j|f�dS)N�=�
beforeattrvalZbeforeeq�"'�attrvalrqrrp�TruerFzInvalid attribute name: %r %r)rvrwr�r]r^�lenientIdentCharsr�r�rLryrKrxrNr<r`rrr�do_attrnamefs4zXMLParser.do_attrnamecCs�|dkrdS|��rdS|jrr|tks.|��r2dS|dkrfd|_|j|j|j<|�|j|j�|�	�S|dkrrdS|�
d|�dS)Nr�r�Z	messyattrrpr��\zEInvalid initial attribute value: %r; Attribute values must be quoted.)r]r^r�rvr�rLr�ryrKrNr<r`rrr�do_beforeattrval�szXMLParser.do_beforeattrvalrccCs
d|_dSr�)�_beforeeq_termtagr`rrr�begin_beforeeq�szXMLParser.begin_beforeeqcCs�|dkrdS|��rdS|jr�|��s.|tkrFd|_|j|j|j<dS|dkr�d|_|j|j|j<|�|j|j�|j	r�|�
|j�dS|��S|dkr�d|_	dS|�d	�dS)
Nr�r�r�r�rprFrqrzInvalid attribute)
r]r^rvrwr�rLr�ryrKr�rxrNr<r`rrr�do_beforeeq�s*zXMLParser.do_beforeeqcCs||_d|_dSrb�Z	quotetyper�r`rrr�
begin_attrval�szXMLParser.begin_attrvalcCs ||jkrdS|j|7_dS)Nror�r`rrr�
do_attrval�s
zXMLParser.do_attrvalcCs|j|j|j<d|_|_dSrb�r�rLr�r1rrr�end_attrval�szXMLParser.end_attrvalcCs
||_dSr))r�r`rrr�begin_messyattr�szXMLParser.begin_messyattrcCs�|��rdS|dkrrd}|j�d�r8d}|jdd�|_|j|j|j<|�|j|j�|rj|�|j�dS|��S|j|7_dS)Nrorprrqr���rF)	r]r�rgrLr�ryrKrxrN)r/rVZendTagrrr�do_messyattr�szXMLParser.do_messyattrcCs|jr|j|j|j<dSr)r�r1rrr�
end_messyattr�szXMLParser.end_messyattrcCs
d|_dSr�)�_after_slash_closedr`rrr�begin_afterslash�szXMLParser.begin_afterslashcCsR|jr|�d�|dkr,|jr"dS|�d�d|_|�|j|j�|�|j�dS)Nz
Mal-formedrpzNo data allowed after '/'rrF)r�r<r^ryrKrLrxr`rrr�
do_afterslash�s

zXMLParser.do_afterslashcCs|jr|j|_|`nd|_dSrb)r_rFr`rrrrM�szXMLParser.begin_bodydatacCs*|dkrdS|dkrdS|j|7_dS)Nr[r\�&Z	entityrefr{r`rrr�do_bodydata�s
zXMLParser.do_bodydatacCs|�|j�d|_dSrbr~r1rrr�end_bodydata�szXMLParser.end_bodydatacCs|dkrdS|j|7_dS)Nr[�waitscriptendtagr{r`rrr�do_waitforendscript�szXMLParser.do_waitforendscriptcCsd|_d|_d|_dSrj)�temptagdatarKrJr`rrr�begin_waitscriptendtagsz XMLParser.begin_waitscriptendtagcCs�|j|7_|dkrd|_n�|js<|jd|j7_dS|��sL|tkr�|j|7_d�|j�s~|jd|j7_dS|jdkr�|�|j�|�|j�dSn$|�	�r�dS|jd|j7_dSdS)NrqTr[rIrGrnr�)
r�rJrFrvrwrKrSrrxr]r`rrr�do_waitscriptendtags&

zXMLParser.do_waitscriptendtagcCsd|_d|_dSrb)�erefbuf�	erefextrar`rrr�begin_entityref0szXMLParser.begin_entityrefcCs~|��s|dkr^|jrR|jr.|jdkr.|j|_d|_|dkr@dS|j|7_dS|�d�n|dkrv|j|7_ndSdS)Nr[Zampr\Z
spacebodydatazBad entity reference�;rF)r]r^r�r�r<r`rrr�do_entityref4szXMLParser.do_entityrefcCs|�|j�dSr))�gotEntityReferencer�r1rrr�
end_entityrefFszXMLParser.end_entityrefcCs|j|_d|_dSr))r�rFr`rrr�begin_spacebodydataKszXMLParser.begin_spacebodydatacCstd||�dS)zCEncountered an opening tag.

        Default behaviour is to print.rON��print)r/r Z
attributesrrrrySszXMLParser.gotTagStartcCstdt|��dS)z8Encountered text

        Default behaviour is to print.ztext:N�r��repr)r/rCrrrrYszXMLParser.gotTextcCstd|�dS)zMEncountered mnemonic entity reference

        Default behaviour is to print.zentityRef: &%s;Nr�)r/Z	entityRefrrrr�_szXMLParser.gotEntityReferencecCsdS)z=Encountered comment.

        Default behaviour is to ignore.Nr)r/rmrrrrheszXMLParser.gotCommentcCs|�|�dS)zJEncountered CDATA

        Default behaviour is to call the gotText methodN)r)r/r�rrrr�kszXMLParser.gotCDatacCstdt|��dS)z�Encountered DOCTYPE

        This is really grotty: it basically just gives you everything between
        '<!DOCTYPE' and '>' as an argument.
        r�Nr�)r/r�rrrr�qszXMLParser.gotDoctypecCstd|�dS)z?Encountered closing tag

        Default behaviour is to print.�endNr�)r/r rrrrxyszXMLParser.gotTagEnd)Dr3r4r5rRr9r+r^rBr_r:r;r<r>rErNrWrZrarerirlrzr|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�rMr�r�r�r�r�r�r�r�r�Zdo_spacebodydataZend_spacebodydataryrr�rhr�r�rxrrrrr6Os�	-

,(r6N)�__doc__Z
__future__rZtwisted.internet.protocolrZtwisted.python.compatrZtwisted.python.reflectrZ
BEGIN_HANDLERZ
DO_HANDLERrXrwr�rrrr#r'�	Exceptionr(r6rrrr�<module>s