o
    sÇhþ§  ã                   @   sL   d dgZ ddlmZ ddlT G dd„ deƒZG dd„ dƒZG dd „ d ƒZd	S )
ÚEmitterÚEmitterErroré   )Ú	YAMLError)Ú*c                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r	   r	   ú`/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/yaml/emitter.pyr      s    c                   @   s   e Zd Zdd„ ZdS )ÚScalarAnalysisc	           	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _d S ©N©ÚscalarÚemptyÚ	multilineÚallow_flow_plainÚallow_block_plainÚallow_single_quotedÚallow_double_quotedÚallow_block)	Úselfr   r   r   r   r   r   r   r   r	   r	   r
   Ú__init__   s   
zScalarAnalysis.__init__N)r   r   r   r   r	   r	   r	   r
   r      s    r   c                   @   s2  e Zd ZdddœZ		ddd„Zdd„ Zd	d
„ Zdd„ Zdd„ ZdŽdd„Z	dd„ Z
dd„ Zdd„ Zddd„Zdd„ Zdd„ Z		ddd„Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zdd8d9„Zd:d;„ Zd<d=„ Zdd>d?„Z d@dA„ Z!dBdC„ Z"dDdE„ Z#dFdG„ Z$dHdI„ Z%dJdK„ Z&dLdM„ Z'dNdO„ Z(dPdQ„ Z)dRdS„ Z*dTdU„ Z+dVdW„ Z,dXdY„ Z-dZd[„ Z.d\d]„ Z/d^d_„ Z0d`da„ Z1dbdc„ Z2ddde„ Z3	dŽdfdg„Z4dhdi„ Z5d‘djdk„Z6dldm„ Z7dndo„ Z8d’dqdr„Z9dsdtdudvdwdxdydzd{d|d}d~dd€dd‚œZ:d’dƒd„„Z;d…d†„ Z<d‡dˆ„ Z=d‰dŠ„ Z>d’d‹dŒ„Z?dS )“r   ú!z!!)r   ztag:yaml.org,2002:Nc                 C   sö   || _ d | _g | _| j| _g | _d | _g | _d | _d| _	d| _
d| _d| _d| _d| _d| _d| _d| _d| _|| _|| _d| _|rQd|  k rLdk rQn n|| _d| _|r`|| jd kr`|| _d| _|d	v rj|| _d | _d | _d | _d | _d | _d S )
Né    FTé   r   é
   éP   Ú
)úr   z
)ÚstreamÚencodingÚstatesÚexpect_stream_startÚstateÚeventsÚeventÚindentsÚindentÚ
flow_levelÚroot_contextÚsequence_contextÚmapping_contextÚsimple_key_contextÚlineÚcolumnÚ
whitespaceÚ	indentionÚ
open_endedÚ	canonicalÚallow_unicodeÚbest_indentÚ
best_widthÚbest_line_breakÚtag_prefixesÚprepared_anchorÚprepared_tagÚanalysisÚstyle)r   r   r2   r'   Úwidthr3   Ú
line_breakr	   r	   r
   r   &   sD   
zEmitter.__init__c                 C   s   g | _ d | _d S r   )r!   r#   ©r   r	   r	   r
   Údisposej   s   
zEmitter.disposec                 C   s@   | j  |¡ |  ¡ s| j  d¡| _|  ¡  d | _|  ¡ r
d S d S ©Nr   )r$   ÚappendÚneed_more_eventsÚpopr%   r#   ©r   r%   r	   r	   r
   Úemito   s   ýzEmitter.emitc                 C   sT   | j sdS | j d }t|tƒr|  d¡S t|tƒr|  d¡S t|tƒr(|  d¡S dS )NTr   r   r   é   F)r$   Ú
isinstanceÚDocumentStartEventÚneed_eventsÚSequenceStartEventÚMappingStartEventrD   r	   r	   r
   rB   x   s   






zEmitter.need_more_eventsc                 C   sv   d}| j dd … D ](}t|ttfƒr|d7 }nt|ttfƒr#|d8 }nt|tƒr*d}|dk r1 dS q	t| j ƒ|d k S )Nr   r   éÿÿÿÿF)r$   rG   rH   ÚCollectionStartEventÚDocumentEndEventÚCollectionEndEventÚStreamEndEventÚlen)r   ÚcountÚlevelr%   r	   r	   r
   rI   …   s   


ÿzEmitter.need_eventsFc                 C   sN   | j  | j¡ | jd u r|r| j| _d S d| _d S |s%|  j| j7  _d S d S r@   )r&   rA   r'   r4   )r   ÚflowÚ
indentlessr	   r	   r
   Úincrease_indent’   s   

ÿzEmitter.increase_indentc                 C   sL   t | jtƒr| jjrt| jdƒs| jj| _|  ¡  | j| _d S t	d| j ƒ‚)Nr    z%expected StreamStartEvent, but got %s)
rG   r%   ÚStreamStartEventr    Úhasattrr   Úwrite_stream_startÚexpect_first_document_startr#   r   r>   r	   r	   r
   r"       s   
ÿzEmitter.expect_stream_startc                 C   s   t d| j ƒ‚)Nzexpected nothing, but got %s)r   r%   r>   r	   r	   r
   Úexpect_nothingª   s   zEmitter.expect_nothingc                 C   ó   | j ddS ©NT)Úfirst)Úexpect_document_startr>   r	   r	   r
   rZ   ¯   ó   z#Emitter.expect_first_document_startc           	      C   sh  t | jtƒr| jjs| jjr| jr|  dd¡ |  ¡  | jjr+|  | jj¡}|  	|¡ | j
 ¡ | _| jjr]t| jj ¡ ƒ}|D ]}| jj| }|| j|< |  |¡}|  |¡}|  ||¡ q?|ov| jj ov| j ov| jj ov| jj ov|  ¡  }|sŠ|  ¡  |  dd¡ | jrŠ|  ¡  | j| _d S t | jtƒr­| jr£|  dd¡ |  ¡  |  ¡  | j| _d S td| j ƒ‚)Nú...Tú---z'expected DocumentStartEvent, but got %s)rG   r%   rH   ÚversionÚtagsr1   Úwrite_indicatorÚwrite_indentÚprepare_versionÚwrite_version_directiveÚDEFAULT_TAG_PREFIXESÚcopyr7   ÚsortedÚkeysÚprepare_tag_handleÚprepare_tag_prefixÚwrite_tag_directiveÚexplicitr2   Úcheck_empty_documentÚexpect_document_rootr#   rP   Úwrite_stream_endr[   r   )	r   r^   Úversion_textÚhandlesÚhandleÚprefixÚhandle_textÚprefix_textÚimplicitr	   r	   r
   r_   ²   sL   



ÿÿþÿzEmitter.expect_document_startc                 C   sR   t | jtƒr"|  ¡  | jjr|  dd¡ |  ¡  |  ¡  | j| _d S t	d| j ƒ‚)Nra   Tz%expected DocumentEndEvent, but got %s)
rG   r%   rN   rf   rp   re   Úflush_streamr_   r#   r   r>   r	   r	   r
   Úexpect_document_endÖ   s   ÿzEmitter.expect_document_endc                 C   s   | j  | j¡ | jdd d S )NT)Úroot)r!   rA   r|   Úexpect_noder>   r	   r	   r
   rr   â   s   zEmitter.expect_document_rootc                 C   sü   || _ || _|| _|| _t| jtƒr|  ¡  d S t| jtt	fƒrw|  
d¡ |  ¡  t| jtƒr5|  ¡  d S t| jtƒrU| jsI| jsI| jjsI|  ¡ rO|  ¡  d S |  ¡  d S t| jtƒru| jsi| jsi| jjsi|  ¡ ro|  ¡  d S |  ¡  d S d S td| j ƒ‚)Nú&zexpected NodeEvent, but got %s)r)   r*   r+   r,   rG   r%   Ú
AliasEventÚexpect_aliasÚScalarEventrM   Úprocess_anchorÚprocess_tagÚexpect_scalarrJ   r(   r2   Ú
flow_styleÚcheck_empty_sequenceÚexpect_flow_sequenceÚexpect_block_sequencerK   Úcheck_empty_mappingÚexpect_flow_mappingÚexpect_block_mappingr   )r   r}   ÚsequenceÚmappingÚ
simple_keyr	   r	   r
   r~   è   s2   
ÿÿûzEmitter.expect_nodec                 C   s.   | j jd u r
tdƒ‚|  d¡ | j ¡ | _d S )Nz!anchor is not specified for aliasr   )r%   Úanchorr   rƒ   r!   rC   r#   r>   r	   r	   r
   r     s   
zEmitter.expect_aliasc                 C   s0   | j dd |  ¡  | j ¡ | _| j ¡ | _d S )NT©rT   )rV   Úprocess_scalarr&   rC   r'   r!   r#   r>   r	   r	   r
   r…   
  s   zEmitter.expect_scalarc                 C   ó6   | j dddd |  jd7  _| jdd | j| _d S )Nú[T©r/   r   r‘   )re   r(   rV   Úexpect_first_flow_sequence_itemr#   r>   r	   r	   r
   rˆ     ó   zEmitter.expect_flow_sequencec                 C   sz   t | jtƒr!| j ¡ | _|  jd8  _|  dd¡ | j ¡ | _	d S | j
s*| j| jkr.|  ¡  | j | j¡ | jdd d S )Nr   ú]FT©r   )rG   r%   ÚSequenceEndEventr&   rC   r'   r(   re   r!   r#   r2   r.   r5   rf   rA   Úexpect_flow_sequence_itemr~   r>   r	   r	   r
   r–     s   z'Emitter.expect_first_flow_sequence_itemc                 C   s    t | jtƒr.| j ¡ | _|  jd8  _| jr |  dd¡ |  	¡  |  dd¡ | j
 ¡ | _d S |  dd¡ | js=| j| jkrA|  	¡  | j
 | j¡ | jdd d S )Nr   ú,Fr˜   Tr™   )rG   r%   rš   r&   rC   r'   r(   r2   re   rf   r!   r#   r.   r5   rA   r›   r~   r>   r	   r	   r
   r›   $  s   z!Emitter.expect_flow_sequence_itemc                 C   r“   )NÚ{Tr•   r   r‘   )re   r(   rV   Úexpect_first_flow_mapping_keyr#   r>   r	   r	   r
   r‹   6  r—   zEmitter.expect_flow_mappingc                 C   s´   t | jtƒr!| j ¡ | _|  jd8  _|  dd¡ | j ¡ | _	d S | j
s*| j| jkr.|  ¡  | j
sE|  ¡ rE| j | j¡ | jddd d S |  dd¡ | j | j¡ | jdd d S )Nr   Ú}FT©rŽ   r   ú?©rŽ   )rG   r%   ÚMappingEndEventr&   rC   r'   r(   re   r!   r#   r2   r.   r5   rf   Úcheck_simple_keyrA   Ú expect_flow_mapping_simple_valuer~   Úexpect_flow_mapping_valuer>   r	   r	   r
   rž   <  s   z%Emitter.expect_first_flow_mapping_keyc                 C   sÚ   t | jtƒr.| j ¡ | _|  jd8  _| jr |  dd¡ |  	¡  |  dd¡ | j
 ¡ | _d S |  dd¡ | js=| j| jkrA|  	¡  | jsX|  ¡ rX| j
 | j¡ | jddd d S |  dd¡ | j
 | j¡ | jdd d S )	Nr   rœ   FrŸ   Tr    r¡   r¢   )rG   r%   r£   r&   rC   r'   r(   r2   re   rf   r!   r#   r.   r5   r¤   rA   r¥   r~   r¦   r>   r	   r	   r
   Úexpect_flow_mapping_keyM  s"   zEmitter.expect_flow_mapping_keyc                 C   ó*   |   dd¡ | j | j¡ | jdd d S ©Nú:FTr¢   )re   r!   rA   r§   r~   r>   r	   r	   r
   r¥   b  ó   z(Emitter.expect_flow_mapping_simple_valuec                 C   sD   | j s	| j| jkr|  ¡  |  dd¡ | j | j¡ | jdd d S )Nrª   Tr¢   )	r2   r.   r5   rf   re   r!   rA   r§   r~   r>   r	   r	   r
   r¦   g  s
   z!Emitter.expect_flow_mapping_valuec                 C   s(   | j o| j }| jd|d | j| _d S )NF)rT   rU   )r+   r0   rV   Ú expect_first_block_sequence_itemr#   )r   rU   r	   r	   r
   r‰   p  s   zEmitter.expect_block_sequencec                 C   r\   r]   )Úexpect_block_sequence_itemr>   r	   r	   r
   r¬   u  r`   z(Emitter.expect_first_block_sequence_itemc                 C   sb   |st | jtƒr| j ¡ | _| j ¡ | _d S |  ¡  | j	dddd | j 
| j¡ | jdd d S )Nú-T©r0   r™   )rG   r%   rš   r&   rC   r'   r!   r#   rf   re   rA   r­   r~   ©r   r^   r	   r	   r
   r­   x  s   z"Emitter.expect_block_sequence_itemc                 C   s   | j dd | j| _d S )NFr‘   )rV   Úexpect_first_block_mapping_keyr#   r>   r	   r	   r
   rŒ   „  s   zEmitter.expect_block_mappingc                 C   r\   r]   )Úexpect_block_mapping_keyr>   r	   r	   r
   r±   ˆ  r`   z&Emitter.expect_first_block_mapping_keyc                 C   sŠ   |st | jtƒr| j ¡ | _| j ¡ | _d S |  ¡  |  	¡ r.| j 
| j¡ | jddd d S | jdddd | j 
| j¡ | jdd d S )NTr    r¡   r¯   r¢   )rG   r%   r£   r&   rC   r'   r!   r#   rf   r¤   rA   Ú!expect_block_mapping_simple_valuer~   re   Úexpect_block_mapping_valuer°   r	   r	   r
   r²   ‹  s   z Emitter.expect_block_mapping_keyc                 C   r¨   r©   )re   r!   rA   r²   r~   r>   r	   r	   r
   r³   ™  r«   z)Emitter.expect_block_mapping_simple_valuec                 C   s6   |   ¡  | jdddd | j | j¡ | jdd d S )Nrª   Tr¯   r¢   )rf   re   r!   rA   r²   r~   r>   r	   r	   r
   r´   ž  s   z"Emitter.expect_block_mapping_valuec                 C   ó"   t | jtƒo| jot | jd tƒS r@   )rG   r%   rJ   r$   rš   r>   r	   r	   r
   r‡   ¦  ó   ÿzEmitter.check_empty_sequencec                 C   rµ   r@   )rG   r%   rK   r$   r£   r>   r	   r	   r
   rŠ   ª  r¶   zEmitter.check_empty_mappingc                 C   sN   t | jtƒr	| jsdS | jd }t |tƒo&|jd u o&|jd u o&|jo&|jdkS )NFr   Ú )	rG   r%   rH   r$   r‚   r   Útagrz   ÚvaluerD   r	   r	   r
   rq   ®  s   
ÿÿÿzEmitter.check_empty_documentc                 C   s  d}t | jtƒr"| jjd ur"| jd u r|  | jj¡| _|t| jƒ7 }t | jttfƒrD| jj	d urD| j
d u r=|  | jj	¡| _
|t| j
ƒ7 }t | jtƒr_| jd u rW|  | jj¡| _|t| jjƒ7 }|dk o€t | jtƒp€t | jtƒox| jj ox| jj p€|  ¡ p€|  ¡ S )Nr   é€   )rG   r%   Ú	NodeEventr   r8   Úprepare_anchorrQ   r‚   rM   r¸   r9   Úprepare_tagr:   Úanalyze_scalarr¹   r   r€   r   r   r‡   rŠ   )r   Úlengthr	   r	   r
   r¤   µ  s0   


ÿþýýzEmitter.check_simple_keyc                 C   sR   | j jd u rd | _d S | jd u r|  | j j¡| _| jr$|  || j d¡ d | _d S )NT)r%   r   r8   r¼   re   )r   Ú	indicatorr	   r	   r
   rƒ   Ë  s   

zEmitter.process_anchorc                 C   sð   | j j}t| j tƒrF| jd u r|  ¡ | _| jr|d u r6| jdkr&| j jd s1| jdkr6| j jd r6d | _d S | j jd rE|d u rEd}d | _n| jrM|d u rV| j jrVd | _d S |d u r^t	dƒ‚| jd u ri|  
|¡| _| jrs|  | jd¡ d | _d S )Nr·   r   r   r   ztag is not specifiedT)r%   r¸   rG   r‚   r;   Úchoose_scalar_styler2   rz   r9   r   r½   re   )r   r¸   r	   r	   r
   r„   Õ  s.   

€

zEmitter.process_tagc                 C   sÜ   | j d u r|  | jj¡| _ | jjdks| jrdS | jjs=| jjd r=| jr-| j js=| j j	s=| j
r4| j js;| j
s=| j jr=dS | jjrU| jjdv rU| j
sU| jsU| j jrU| jjS | jjr_| jjdkrl| j jrl| jrj| j j	sldS dS )Nú"r   r·   z|>ú')r:   r¾   r%   r¹   r;   r2   rz   r,   r   r   r(   r   r   r   r   r>   r	   r	   r
   rÁ   î  s@   
ÿÿþþýýÿÿÿzEmitter.choose_scalar_stylec                 C   sÂ   | j d u r|  | jj¡| _ | jd u r|  ¡ | _| j }| jdkr)|  | j j|¡ n0| jdkr7|  	| j j|¡ n"| jdkrD|  
| j j¡ n| jdkrQ|  | j j¡ n|  | j j|¡ d | _ d | _d S )NrÂ   rÃ   ú>ú|)r:   r¾   r%   r¹   r;   rÁ   r,   Úwrite_double_quotedr   Úwrite_single_quotedÚwrite_foldedÚwrite_literalÚwrite_plain)r   Úsplitr	   r	   r
   r’     s    







zEmitter.process_scalarc                 C   s,   |\}}|dkrt d||f ƒ‚d||f S )Nr   zunsupported YAML version: %d.%dz%d.%d©r   )r   rc   ÚmajorÚminorr	   r	   r
   rg     s   zEmitter.prepare_versionc                 C   s    |st dƒ‚|d dks|d dkrt d| ƒ‚|dd… D ]/}d|  kr*dksMn d	|  kr5d
ksMn d|  kr@dksMn |dv sMt d||f ƒ‚q|S )Nztag handle must not be emptyr   r   rL   z*tag handle must start and end with '!': %rr   Ú0Ú9ÚAÚZÚaÚzú-_z*invalid character %r in the tag handle: %rrÌ   )r   rv   Úchr	   r	   r
   rm   !  s   Bÿ€zEmitter.prepare_tag_handlec                 C   s  |st dƒ‚g }d }}|d dkrd}|t|ƒk rt|| }d|  kr(dksCn d|  kr3dksCn d	|  kr>d
ksCn |dv rH|d7 }n&||k rU| |||… ¡ |d  }}| d¡}|D ]}| dt|ƒ ¡ qb|t|ƒk s||k r| |||… ¡ d |¡S )Nztag prefix must not be emptyr   r   r   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   z-;/?!:@&=+$,_.~*'()[]úutf-8ú%%%02Xr·   )r   rQ   rA   ÚencodeÚordÚjoin)r   rw   ÚchunksÚstartÚendrÖ   Údatar	   r	   r
   rn   -  s*   B

õ
zEmitter.prepare_tag_prefixc                 C   sˆ  |st dƒ‚|dkr|S d }|}t| j ¡ ƒ}|D ] }| |¡r9|dks,t|ƒt|ƒk r9| j| }|t|ƒd … }qg }d }}|t|ƒk r¦|| }	d|	  krTdkswn d|	  kr_dkswn d|	  krjd	kswn |	d
v sw|	dkr||dkr||d7 }n$||k r‰| |||… ¡ |d  }}|	 d¡}
|
D ]	}	| d|	 ¡ q–|t|ƒk sF||k r³| |||… ¡ d |¡}|rÀd||f S d| S )Nztag must not be emptyr   r   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   z-;/?:@&=+$,_.~*'()[]r   r×   rØ   r·   z%s%sz!<%s>)	r   rk   r7   rl   Ú
startswithrQ   rA   rÙ   rÛ   )r   r¸   rv   ÚsuffixÚprefixesrw   rÜ   rÝ   rÞ   rÖ   rß   Úsuffix_textr	   r	   r
   r½   D  sD   

€B

ô
zEmitter.prepare_tagc                 C   st   |st dƒ‚|D ]/}d|  krdks7n d|  krdks7n d|  kr*dks7n |dv s7t d	||f ƒ‚q|S )
Nzanchor must not be emptyrÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   z&invalid character %r in the anchor: %rrÌ   )r   r   rÖ   r	   r	   r
   r¼   h  s   Bÿ€zEmitter.prepare_anchorc              
   C   s  |st |ddddddddS d}d}d}d}d}d}d}d}	d}
d}| d¡s,| d¡r0d}d}d}t|ƒdkp=|d dv }d}d}d}|t|ƒk r3|| }|dkrp|d	v r[d}d}|d
v red}|red}|dkro|rod}d}n|dv rvd}|dkr€d}|r€d}|dkrŠ|rŠd}d}|dv rd}|dksÓd|  krždksÓn |dksÅd|  kr­dksÅn d|  kr¸dksÅn d|  krÃdk rÑn n|dkrÑd}| jsÐd}nd}|dkrð|dkrÝd}|t|ƒd krçd}|rëd}
d}d}n$|dv r|dkrûd}|t|ƒd krd}	|rd}d}d}nd}d}|d7 }|dv }|d t|ƒkp,||d  dv }|t|ƒk sKd}d}d}d}d}|sI|sI|sI|	rMd }}|rRd}|
r[d } }}|sa|rid } } }}|rpd }}|rud}|rzd}t |d||||||dS )NTFr   rb   ra   r   u     	
Â…â€¨â€©r   z#,[]{}&*!|>'"%@`z?:r®   z,?[]{}rª   ú#õ	   
Â…â€¨â€©r   ú ú~õ   Â…õ   Â õ   íŸ¿õ   î€€õ   ï¿½u   ð€€u   ô¿¿õ   ï»¿)r   rà   rQ   r3   )r   r   Úblock_indicatorsÚflow_indicatorsÚline_breaksÚspecial_charactersÚleading_spaceÚleading_breakÚtrailing_spaceÚtrailing_breakÚbreak_spaceÚspace_breakÚpreceded_by_whitespaceÚfollowed_by_whitespaceÚprevious_spaceÚprevious_breakÚindexrÖ   Úunicode_charactersr   r   r   r   r   r	   r	   r
   r¾   r  sî   ý
ÿ€ €
ÿ½Gÿÿ
ÿúzEmitter.analyze_scalarc                 C   s   t | jdƒr| j ¡  d S d S )NÚflush)rX   r   rþ   r>   r	   r	   r
   r{     s   ÿzEmitter.flush_streamc                 C   s2   | j r| j  d¡r| j d | j ¡¡ d S d S d S )Nzutf-16rí   )r    rà   r   ÚwriterÙ   r>   r	   r	   r
   rY     s   ÿzEmitter.write_stream_startc                 C   s   |   ¡  d S r   )r{   r>   r	   r	   r
   rs     r`   zEmitter.write_stream_endc                 C   sd   | j s|s|}nd| }|| _ | jo|| _|  jt|ƒ7  _d| _| jr*| | j¡}| j |¡ d S )Nræ   F)	r/   r0   r.   rQ   r1   r    rÙ   r   rÿ   )r   rÀ   Úneed_whitespacer/   r0   rß   r	   r	   r
   re      s   
zEmitter.write_indicatorc                 C   s|   | j pd}| jr| j|ks| j|kr| js|  ¡  | j|k r<d| _d|| j  }|| _| jr4| | j¡}| j |¡ d S d S )Nr   Træ   )	r'   r0   r.   r/   Úwrite_line_breakr    rÙ   r   rÿ   )r   r'   rß   r	   r	   r
   rf   .  s   

úzEmitter.write_indentc                 C   sP   |d u r| j }d| _d| _|  jd7  _d| _| jr | | j¡}| j |¡ d S )NTr   r   )	r6   r/   r0   r-   r.   r    rÙ   r   rÿ   )r   rß   r	   r	   r
   r  ;  s   zEmitter.write_line_breakc                 C   s2   d| }| j r| | j ¡}| j |¡ |  ¡  d S )Nz	%%YAML %s©r    rÙ   r   rÿ   r  )r   rt   rß   r	   r	   r
   rh   F  s
   zEmitter.write_version_directivec                 C   s6   d||f }| j r| | j ¡}| j |¡ |  ¡  d S )Nz%%TAG %s %sr  )r   rx   ry   rß   r	   r	   r
   ro   M  s
   zEmitter.write_tag_directiveTc           
      C   s  |   dd¡ d}d}d }}|t|ƒkrd }|t|ƒk r!|| }|ri|d u s+|dkrh|d |krH| j| jkrH|rH|dkrH|t|ƒkrH|  ¡  n|||… }|  jt|ƒ7  _| jr`| | j¡}| j |¡ |}nb|r›|d u ss|dvrš|| dkr}|  	¡  |||… D ]}	|	dkrŽ|  	¡  qƒ|  	|	¡ qƒ|  ¡  |}n0|d u s§|d	v s§|dkrË||k rË|||… }|  jt|ƒ7  _| jrÃ| | j¡}| j |¡ |}|dkrëd
}|  jd7  _| jrá| | j¡}| j |¡ |d }|d ur÷|dk}|dv }|d7 }|t|ƒks|   dd¡ d S )NrÃ   TFr   ræ   r   rå   r   õ
    
Â…â€¨â€©z''r   )
re   rQ   r.   r5   rf   r    rÙ   r   rÿ   r  )
r   ÚtextrË   ÚspacesÚbreaksrÝ   rÞ   rÖ   rß   Úbrr	   r	   r
   rÇ   V  sh   
€
€Ò/zEmitter.write_single_quotedrÏ   rÓ   ÚbÚtÚnÚvÚfÚrÚerÂ   ú\ÚNÚ_ÚLÚP)ú úúú	r   úúr   úrÂ   r  rè   ré   u   â€¨u   â€©c                 C   s„  |   dd¡ d }}|t|ƒkr:d }|t|ƒk r|| }|d u sI|dv sId|  kr/dks¶n | jrId|  kr=dks¶n d	|  krHd
ks¶n ||k rm|||… }|  jt|ƒ7  _| jre| | j¡}| j |¡ |}|d ur¶|| jv r~d| j|  }n|dkr‰dt	|ƒ }n|dkr”dt	|ƒ }ndt	|ƒ }|  jt|ƒ7  _| jr¬| | j¡}| j |¡ |d }d|  k rÅt|ƒd k r0n ni|dksÐ||kr0| j||  | j
kr0|r0|||… d }||k rì|}|  jt|ƒ7  _| jrþ| | j¡}| j |¡ |  ¡  d| _d| _|| dkr0d}|  jt|ƒ7  _| jr*| | j¡}| j |¡ |d7 }|t|ƒks|   dd¡ d S )NrÂ   Tr   u   "\Â…â€¨â€©ï»¿ræ   rç   ré   rê   rë   rì   r  õ   Ã¿z\x%02Xu   ï¿¿z\u%04Xz\U%08Xr   F)re   rQ   r3   r.   r    rÙ   r   rÿ   ÚESCAPE_REPLACEMENTSrÚ   r5   rf   r/   r0   )r   r  rË   rÝ   rÞ   rÖ   rß   r	   r	   r
   rÆ   ž  sj   ÿ
4Ð1zEmitter.write_double_quotedc                 C   s^   d}|r-|d dv r|t | jƒ7 }|d dvr|d7 }|S t|ƒdks)|d dv r-|d	7 }|S )
Nr·   r   r  rL   rå   r®   r   éþÿÿÿú+)Ústrr4   rQ   )r   r  Úhintsr	   r	   r
   Údetermine_block_hintsÔ  s   þzEmitter.determine_block_hintsc                 C   sü  |   |¡}|  d| d¡ |dd … dkrd| _|  ¡  d}d}d}d }}|t|ƒkrüd }|t|ƒk r8|| }|r||d u sB|dvr{|sV|d urV|dkrV|| d	krV|  ¡  |dk}|||… D ]}	|	d	krk|  ¡  q`|  |	¡ q`|d ury|  ¡  |}nh|r´|dkr³|d
 |kr“| j| jkr“|  ¡  n|||… }
|  jt|
ƒ7  _| jr«|
 	| j¡}
| j
 |
¡ |}n0|d u s¼|dv rä|||… }
|  jt|
ƒ7  _| jrÔ|
 	| j¡}
| j
 |
¡ |d u râ|  ¡  |}|d urð|dv }|dk}|d
7 }|t|ƒks,d S d S )NrÄ   TrL   r  Fr   rå   ræ   r   r   r  )r!  re   r1   r  rQ   rf   r.   r5   r    rÙ   r   rÿ   )r   r  r   rò   r  r  rÝ   rÞ   rÖ   r  rß   r	   r	   r
   rÈ   ß  sh   

€
€ÖzEmitter.write_foldedc           	      C   s:  |   |¡}|  d| d¡ |dd … dkrd| _|  ¡  d}d }}|t|ƒkr›d }|t|ƒk r4|| }|r`|d u s>|dvr_|||… D ]}|dkrO|  ¡  qD|  |¡ qD|d ur]|  ¡  |}n'|d u sh|dv r‡|||… }| jrw| | j¡}| j 	|¡ |d u r…|  ¡  |}|d ur|dv }|d7 }|t|ƒks(d S d S )	NrÅ   TrL   r  r   rå   r   r   )
r!  re   r1   r  rQ   rf   r    rÙ   r   rÿ   )	r   r  r   r  rÝ   rÞ   rÖ   r  rß   r	   r	   r
   rÉ     sB   

€çzEmitter.write_literalc           
      C   sú  | j rd| _|s
d S | js'd}|  jt|ƒ7  _| jr!| | j¡}| j |¡ d| _d| _	d}d}d }}|t|ƒkrûd }|t|ƒk rG|| }|r‡|dkr†|d |krf| j| j
krf|rf|  ¡  d| _d| _	n|||… }|  jt|ƒ7  _| jr~| | j¡}| j |¡ |}n\|r»|dvrº|| dkr—|  ¡  |||… D ]}	|	dkr¨|  ¡  q|  |	¡ q|  ¡  d| _d| _	|}n(|d u sÃ|dv rã|||… }|  jt|ƒ7  _| jrÛ| | j¡}| j |¡ |}|d urï|dk}|dv }|d7 }|t|ƒks;d S d S )	NTræ   Fr   r   rå   r   r  )r)   r1   r/   r.   rQ   r    rÙ   r   rÿ   r0   r5   rf   r  )
r   r  rË   rß   r  r  rÝ   rÞ   rÖ   r  r	   r	   r
   rÊ   8  sr   €
€×zEmitter.write_plain)NNNNN)FF)F)FFFFr   )T)@r   r   r   ri   r   r?   rE   rB   rI   rV   r"   r[   rZ   r_   r|   rr   r~   r   r…   rˆ   r–   r›   r‹   rž   r§   r¥   r¦   r‰   r¬   r­   rŒ   r±   r²   r³   r´   r‡   rŠ   rq   r¤   rƒ   r„   rÁ   r’   rg   rm   rn   r½   r¼   r¾   r{   rY   rs   re   rf   r  rh   ro   rÇ   r  rÆ   r!  rÈ   rÉ   rÊ   r	   r	   r	   r
   r      sª    þ
ÿD	


$
ÿ	


$
 #
ÿ

	7ñ
66#N)Ú__all__Úerrorr   r$   r   r   r   r	   r	   r	   r
   Ú<module>   s   