
    P                        S SK JrJrJrJr  S SKJr  S SK7  S SKJ	r	J
r
JrJrJr   / SQrSrSrSr " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rg)    )print_functionabsolute_importdivisionunicode_literals)MarkedYAMLError)*)utf8unichrPY3check_anchorname_charnprint)ScannerRoundTripScannerScannerErroru   
   u    
 	   	c                       \ rS rSrSrg)r   1    N)__name__
__module____qualname____firstlineno____static_attributes__r       &lib/third_party/ruamel/yaml/scanner.pyr   r   1   s    r   r   c                       \ rS rSrS rSrg)	SimpleKey5   c                 L    Xl         X l        X0l        X@l        XPl        X`l        g N)token_numberrequiredindexlinecolumnmark)selfr!   r"   r#   r$   r%   r&   s          r   __init__SimpleKey.__init__8   s!    ( 
		r   )r%   r#   r$   r&   r"   r!   N)r   r   r   r   r(   r   r   r   r   r   r   5   s    r   r   c                      \ rS rSrSrS jr\S 5       rS r\S 5       r\S 5       r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rASsS@ jrBSA rCSB rDSC rESD rFSE rG0 SFSG_SHSI_SJSK_SLSM_SMSM_SNSO_SPSQ_SRSS_STSU_SVSW_SXSX_SYSY_SZSZ_S[S[_S\S]_S^S__S`Sa_SbSc0ErHSdSeSfSg.rISh rJSi rKSj rLSk rMSl rNSm rOSn rPSo rQSp rRSqrSg)tr   B   Nc                     Xl         U R                   b(  [        U R                   SS5      c  X R                   l        U R                  5         SU l        g)zInitialize the scanner.N_scannerF)loadergetattrr-   reset_scanner
first_time)r'   r.   s     r   r(   Scanner.__init__C   sB     ;;"wt{{J'M'U#'KK r   c                 ,    [        U R                  5      $ r    )lenflow_contextr'   s    r   
flow_levelScanner.flow_levelU   s     4$$%%r   c                     SU l         / U l        / U l        U R                  5         SU l        SU l        / U l        SU l        0 U l        g )NFr   T)	doner5   tokensfetch_stream_starttokens_takenindentindentsallow_simple_keypossible_simple_keysr6   s    r   r0   Scanner.reset_scannerZ   s\     	   	!   , !% %'!r   c                      U R                   $ ! [         aa    [        U R                  S5      (       a  U R                  R                  U l         OU R                  R
                  U l         U R                   s $ f = fNtyp)_scanner_readerAttributeErrorhasattrr.   reader_readerr6   s    r   rJ   Scanner.reader   sc    	(''' 	(t{{E**'+{{'9'9$'+{{':':$'''	(s    A(A98A9c                     [        U R                  S5      (       a   U R                  R                  R                  $ U R                  R                  $ rE   )rI   r.   resolverprocessing_versionr6   s    r   scanner_processing_version"Scanner.scanner_processing_version   s;     4;;&&;;'':::{{---r   c                    U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  [        U R                  5      (       a1  U(       d  gU H#  n[	        U R                  S   U5      (       d  M#    g   gNTr   F)need_more_tokensfetch_more_tokensboolr<   
isinstancer'   choiceschoices      r   check_tokenScanner.check_token   sl     ##%%""$ ##%%!dkk!nf55 " r   c                     U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  [        U R                  5      (       a  U R                  S   $ g Nr   )rT   rU   rV   r<   r6   s    r   
peek_tokenScanner.peek_token   sR     ##%%""$ ##%%;;q>! r   c                    U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  [        U R                  5      (       a0  U =R                  S-  sl        U R                  R                  S5      $ g N   r   )rT   rU   rV   r<   r>   popr6   s    r   	get_tokenScanner.get_token   sh     ##%%""$ ##%%";;??1%% r   c                     U R                   (       a  gU R                  (       d  gU R                  5         U R                  5       U R                  :X  a  gg)NFT)r;   r<   stale_possible_simple_keysnext_possible_simple_keyr>   r6   s    r   rT   Scanner.need_more_tokens   sA    99{{ 	'')((*d.?.??r   c                     [         er    )NotImplementedError)r'   comments     r   fetch_commentScanner.fetch_comment   s    !!r   c                    U R                  5       nUb  U R                  U5      $ U R                  5         U R                  U R                  R
                  5        U R                  R                  5       nUS:X  a  U R                  5       $ US:X  a%  U R                  5       (       a  U R                  5       $ US:X  a%  U R                  5       (       a  U R                  5       $ US:X  a%  U R                  5       (       a  U R                  5       $ US:X  a  U R                  5       $ US:X  a  U R                  5       $ US:X  a  U R!                  5       $ US:X  a  U R#                  5       $ US	:X  a  U R%                  5       $ US:X  a%  U R'                  5       (       a  U R)                  5       $ US
:X  a%  U R+                  5       (       a  U R-                  5       $ US:X  a%  U R/                  5       (       a  U R1                  5       $ US:X  a  U R3                  5       $ US:X  a  U R5                  5       $ US:X  a  U R7                  5       $ US:X  a!  U R8                  (       d  U R;                  5       $ US:X  a!  U R8                  (       d  U R=                  5       $ US:X  a  U R?                  5       $ US:X  a  U RA                  5       $ U RC                  5       (       a  U RE                  5       $ [G        SS S[I        U5      -  U R                  RK                  5       5      e)N %-.[{]},?:r   &!|>'"z!while scanning for the next tokenz.found character %r that cannot start any token)&scan_to_next_tokenrn   rh   unwind_indentrJ   r%   peekfetch_stream_endcheck_directivefetch_directivecheck_document_startfetch_document_startcheck_document_endfetch_document_endfetch_flow_sequence_startfetch_flow_mapping_startfetch_flow_sequence_endfetch_flow_mapping_endfetch_flow_entrycheck_block_entryfetch_block_entry	check_key	fetch_keycheck_valuefetch_valuefetch_aliasfetch_anchor	fetch_tagr7   fetch_literalfetch_foldedfetch_singlefetch_doublecheck_plainfetch_plainr   r	   get_mark)r'   rm   chs      r   rU   Scanner.fetch_more_tokens   s    ))+%%g..'') 	4;;--. [[ :((** 9--//'')) 92244,,.. 90022**,, 91133 90022 9//11 9..00 9((** 9//11))++ 9))>>## 9))++##%% 9##%% 9$$&& 9>>## 9T__%%'' 9T__$$&& 9$$&& 9$$&& ##%% /<tBxGKK  "	
 	
r   c                     S nU R                    H3  nU R                   U   nUb  UR                  U:  d  M'  UR                  nM5     U$ r    )rB   r!   )r'   min_token_numberlevelkeys       r   ri    Scanner.next_possible_simple_keyF  sR      ..E++E2C'3+;+;>N+N#&#3#3  /  r   c                    [        U R                  5       H  nU R                  U   nUR                  U R                  R                  :w  d)  U R                  R                  UR                  -
  S:  d  M_  UR
                  (       a0  [        SUR                  SU R                  R                  5       5      eU R                  U	 M     g )Ni   while scanning a simple keycould not find expected ':')	listrB   r$   rJ   r#   r"   r   r&   r   )r'   r   r   s      r   rh   "Scanner.stale_possible_simple_keysV  s     $334E++E2Cxx4;;+++t{{/@/@399/Lt/S<<&55,,.	  --e4 5r   c           	         U R                   (       + =(       a#    U R                  U R                  R                  :H  nU R                  (       a  U R                  5         U R                  [        U R                  5      -   n[        UUU R                  R                  U R                  R                  U R                  R                  U R                  R                  5       5      nX0R                  U R                   '   g g r    )r7   r?   rJ   r%   rA   remove_possible_simple_keyr>   r4   r<   r   r#   r$   r   rB   )r'   r"   r!   r   s       r   save_possible_simple_key Scanner.save_possible_simple_keyj  s     &L4;;$++:L:L+L   ++-,,s4;;/??L!!  ""$$&C :=%%doo6 !r   c                    U R                   U R                  ;   ar  U R                  U R                      nUR                  (       a0  [        SUR                  SU R
                  R                  5       5      eU R                  U R                   	 g g )Nr   r   )r7   rB   r"   r   r&   rJ   r   )r'   r   s     r   r   "Scanner.remove_possible_simple_key  st     ??d777++DOO<C||"1HH1KK((*	  ))$//: 8r   c                 :   [        U R                  5      (       a  g U R                  U:  ap  U R                  R	                  5       nU R
                  R                  5       U l        U R                  R                  [        X"5      5        U R                  U:  a  Mo  g g r    )
rV   r7   r?   rJ   r   r@   rd   r<   appendBlockEndToken)r'   r%   r&   s      r   r   Scanner.unwind_indent  so         kkF";;'')D,,**,DKKK}T89 kkF"r   c                 |    U R                   U:  a,  U R                  R                  U R                   5        Xl         gg)NTF)r?   r@   r   )r'   r%   s     r   
add_indentScanner.add_indent  s1     ;;LL, Kr   c                     U R                   R                  5       nU R                  R                  [	        XU R                   R
                  S95        g )N)encoding)rJ   r   r<   r   StreamStartTokenr   r'   r&   s     r   r=   Scanner.fetch_stream_start  s:    
 {{##%+DAUAUVWr   c                     U R                  S5        U R                  5         SU l        0 U l        U R                  R                  5       nU R                  R                  [        X5      5        SU l	        g )Nr:   FT)
r   r   rA   rB   rJ   r   r<   r   StreamEndTokenr;   r   s     r   r   Scanner.fetch_stream_end  s^     	2'') %$&!{{##%>$56	r   c                     U R                  S5        U R                  5         SU l        U R                  R	                  U R                  5       5        g )Nr:   F)r   r   rA   r<   r   scan_directiver6   s    r   r   Scanner.fetch_directive  sE     	2 	'') % 	4..01r   c                 .    U R                  [        5        g r    )fetch_document_indicatorDocumentStartTokenr6   s    r   r   Scanner.fetch_document_start  s    %%&89r   c                 .    U R                  [        5        g r    )r   DocumentEndTokenr6   s    r   r   Scanner.fetch_document_end  s    %%&67r   c                 4   U R                  S5        U R                  5         SU l        U R                  R	                  5       nU R                  R                  S5        U R                  R	                  5       nU R                  R                  U" X#5      5        g )Nr:   F   )r   r   rA   rJ   r   forwardr<   r   )r'   
TokenClass
start_markend_marks       r   r    Scanner.fetch_document_indicator  sw     	2 	'') % [[))+
A;;''):j;<r   c                 ,    U R                  [        SS9  g )Nru   to_push)fetch_flow_collection_startFlowSequenceStartTokenr6   s    r   r   !Scanner.fetch_flow_sequence_start  s    (()?(Mr   c                 ,    U R                  [        SS9  g )Nrv   r   )r   FlowMappingStartTokenr6   s    r   r    Scanner.fetch_flow_mapping_start  s    (()>(Lr   c                 F   U R                  5         U R                  R                  U5        SU l        U R                  R                  5       nU R                  R                  5         U R                  R                  5       nU R                  R                  U" X45      5        g NT)r   r5   r   rA   rJ   r   r   r<   )r'   r   r   r   r   s        r   r   #Scanner.fetch_flow_collection_start  sw     	%%'  ) $[[))+
;;''):j;<r   c                 .    U R                  [        5        g r    )fetch_flow_collection_endFlowSequenceEndTokenr6   s    r   r   Scanner.fetch_flow_sequence_end
  s    &&';<r   c                 .    U R                  [        5        g r    )r   FlowMappingEndTokenr6   s    r   r   Scanner.fetch_flow_mapping_end  s    &&':;r   c                 f   U R                  5          U R                  R                  5       nSU l        U R
                  R                  5       nU R
                  R                  5         U R
                  R                  5       nU R                  R                  U" X45      5        g ! [         a     Nf = fNF)
r   r5   rd   
IndexErrorrA   rJ   r   r   r<   r   )r'   r   poppedr   r   s        r   r   !Scanner.fetch_flow_collection_end  s     	'')	&&**,F !&[[))+
;;''):j;<  	 	s   B# #
B0/B0c                    SU l         U R                  5         U R                  R                  5       nU R                  R	                  5         U R                  R                  5       nU R
                  R                  [        X5      5        g r   )rA   r   rJ   r   r   r<   r   FlowEntryToken)r'   r   r   s      r   r   Scanner.fetch_flow_entry%  sc     !%'')[[))+
;;'')>*?@r   c                 z   U R                   (       d  U R                  (       d&  [        S S SU R                  R	                  5       5      eU R                  U R                  R                  5      (       a>  U R                  R	                  5       nU R                  R                  [        X5      5        O SU l        U R                  5         U R                  R	                  5       nU R                  R                  5         U R                  R	                  5       nU R                  R                  [        X#5      5        g )Nz%sequence entries are not allowed hereT)r7   rA   r   rJ   r   r   r%   r<   r   BlockSequenceStartTokenr   r   BlockEntryTokenr'   r&   r   r   s       r   r   Scanner.fetch_block_entry1  s     (("$ GI]I]I_  t{{1122{{++-""#:4#FG  $'') [[))+
;;'')?:@Ar   c                    U R                   (       d  U R                  (       d&  [        S S SU R                  R	                  5       5      eU R                  U R                  R                  5      (       a>  U R                  R	                  5       nU R                  R                  [        X5      5        U R                   (       + U l        U R                  5         U R                  R	                  5       nU R                  R                  5         U R                  R	                  5       nU R                  R                  [        X#5      5        g )Nz!mapping keys are not allowed here)r7   rA   r   rJ   r   r   r%   r<   r   BlockMappingStartTokenr   r   KeyTokenr   s       r   r   Scanner.fetch_keyM  s      (("$ CT[[EYEYE[ 
 t{{1122{{++-""#9$#EF %)OO 3 	'') [[))+
;;'')8J9:r   c                    U R                   U R                  ;   Ga  U R                  U R                      nU R                  U R                   	 U R                  R                  UR                  U R
                  -
  [        UR                  UR                  5      5        U R                   (       dq  U R                  UR                  5      (       aQ  U R                  R                  UR                  U R
                  -
  [        UR                  UR                  5      5        SU l        OU R                   (       d7  U R                  (       d&  [        S S SU R                  R                  5       5      eU R                   (       dh  U R                  U R                  R                  5      (       a>  U R                  R                  5       nU R                  R                  [        X"5      5        U R                   (       + U l        U R!                  5         U R                  R                  5       nU R                  R#                  5         U R                  R                  5       nU R                  R                  [%        X45      5        g )NFz#mapping values are not allowed here)r7   rB   r<   insertr!   r>   r   r&   r   r%   r   rA   r   rJ   r   r   r   r   
ValueToken)r'   r   r&   r   r   s        r   r   Scanner.fetch_valuei  s    ??d777++DOO<C))$//:KK  4#4#44hsxx6R ????3::..KK&&((4+<+<<.sxxB %*D! ?? ,,&=,,.	  ????4;;#5#566;;//1DKK&&'=d'IJ )-$7D! ++- [[))+
;;''):j;<r   c                     U R                  5         SU l        U R                  R                  U R	                  [
        5      5        g r   )r   rA   r<   r   scan_anchor
AliasTokenr6   s    r   r   Scanner.fetch_alias  s5     	%%' %4++J78r   c                     U R                  5         SU l        U R                  R                  U R	                  [
        5      5        g r   )r   rA   r<   r   r   AnchorTokenr6   s    r   r   Scanner.fetch_anchor  s5     	%%' %4++K89r   c                     U R                  5         SU l        U R                  R                  U R	                  5       5        g r   )r   rA   r<   r   scan_tagr6   s    r   r   Scanner.fetch_tag  s0     	%%' %4==?+r   c                 "    U R                  SS9  g )Nr~   stylefetch_block_scalarr6   s    r   r   Scanner.fetch_literal      c*r   c                 "    U R                  SS9  g )Nr   r  r  r6   s    r   r   Scanner.fetch_folded  r  r   c                     SU l         U R                  5         U R                  R                  U R	                  U5      5        g r   )rA   r   r<   r   scan_block_scalarr'   r  s     r   r	  Scanner.fetch_block_scalar  s5     !%'')411%89r   c                 "    U R                  SS9  g )Nr   r  fetch_flow_scalarr6   s    r   r   Scanner.fetch_single      S)r   c                 "    U R                  SS9  g )Nr   r  r  r6   s    r   r   Scanner.fetch_double  r  r   c                     U R                  5         SU l        U R                  R                  U R	                  U5      5        g r   )r   rA   r<   r   scan_flow_scalarr  s     r   r  Scanner.fetch_flow_scalar  s5     	%%' %40078r   c                     U R                  5         SU l        U R                  R                  U R	                  5       5        g r   )r   rA   r<   r   
scan_plainr6   s    r   r   Scanner.fetch_plain  s3     	%%' !&4??,-r   c                 :    U R                   R                  S:X  a  gg )Nr   T)rJ   r%   r6   s    r   r   Scanner.check_directive  s     ;;"r   c                     U R                   R                  S:X  aC  U R                   R                  S5      S:X  a$  U R                   R                  S5      [        ;   a  gg )Nr   r   ---TrJ   r%   prefixr   _THE_END_SPACE_TABr6   s    r   r   Scanner.check_document_start  J     ;;"{{!!!$-$++2B2B12EI[2[r   c                     U R                   R                  S:X  aC  U R                   R                  S5      S:X  a$  U R                   R                  S5      [        ;   a  gg )Nr   r   ...Tr#  r6   s    r   r   Scanner.check_document_end   r'  r   c                 F    U R                   R                  S5      [        ;   $ )Nrc   )rJ   r   r%  r6   s    r   r   Scanner.check_block_entry  s     {{"&888r   c                 |    [        U R                  5      (       a  gU R                  R                  S5      [        ;   $ )NTrc   )rV   r7   rJ   r   r%  r6   s    r   r   Scanner.check_key  s1       {{"&888r   c                    U R                   S:X  a  [        U R                  5      (       a  gO[        U R                  5      (       a  U R                  S   S:X  a&  U R                  R                  S5      [        ;  a  g gU R                  (       aF  [        U R                  S   [        5      (       a$  U R                  R                  S5      [        ;  a  ggU R                  R                  S5      [        ;   $ )Nrc   rc   Tr:   ru   rc   F)
rP   rV   r7   r5   rJ   r   r%  r<   rW   r   r6   s    r   r   Scanner.check_value  s     **f4DOO$$ % DOO$$$$R(C/{{''*2DD$ E 	 [[ZB%L%L{{''*2DD${{"&888r   c                    U R                   R                  nU" 5       nU R                  S:X  aK  US;  =(       d?    U" S5      [        ;  =(       a)    US:H  =(       d    U R                  (       + =(       a    US;   $ US;  a  gU" S5      nUS:X  a  U[        ;  a  gUS:X  a%  [        U R                  5      (       a  U[        ;  a  gU" S5      [        ;  =(       a)    US:H  =(       d    U R                  (       + =(       a    US;   $ )Nr0  u      	
  -?:,[]{}#&*!|>'"%@`rc   rs   z?:Tr{   )rJ   r   rP   r%  r7   rV   
_SPACE_TAB)r'   srpr   ch1s       r   r   Scanner.check_plain(  s     kkU**f4LL A00 H3YFt#6#E2:
 DD!f9$669doo..3j3H1v// 
#I=doo-<"*	
r   c                    U R                   R                  nU R                   R                  nU R                   R                  S:X  a  U" 5       S:X  a  U" 5         Sn[        nU(       d  U" 5       S:X  a  U" 5         U" 5       S:X  a  M  U" 5       S:X  a  U" 5       U;  a  U" 5         U" 5       U;  a  M  U R                  5       (       a  U R                  (       d  SU l        OSnU(       d  M  g )Nr      ﻿F #T)rJ   r   r   r#   _THE_ENDscan_line_breakr7   rA   )r'   r4  srffound_the_ends        r   r   Scanner.scan_to_next_tokenM  s    ( kkkk!!;;!cex&7E%3, %3,u|e8+E e8+##%%,0D) % r   c                 F   U R                   R                  nU R                   R                  nU R                   R                  5       nU" 5         U R	                  U5      nS nUS:X  a,  U R                  U5      nU R                   R                  5       nOsUS:X  a,  U R                  U5      nU R                   R                  5       nOAU R                   R                  5       nU" 5       [        ;  a  U" 5         U" 5       [        ;  a  M  U R                  U5        [        XEX65      $ )NYAMLTAG)
rJ   r   r   r   scan_directive_namescan_yaml_directive_valuescan_tag_directive_valuer;  scan_directive_ignored_lineDirectiveToken)r'   r4  r=  r   namevaluer   s          r   r   Scanner.scan_directivet  s     kkkk!![[))+
''
36>22:>E{{++-HU]11*=E{{++-H{{++-H%x' %x'((4d:@@r   c                    SnU R                   R                  nU" U5      nSUs=::  a  S::  d&  O  SUs=::  a  S::  d  O  SUs=::  a  S::  d  O  US;   aH  US	-  nU" U5      nSUs=::  a  S::  a  M  O  SUs=::  a  S::  a  M-  O  SUs=::  a  S::  a  M>  O  US;   a  MH  U(       d2  [        S
US[        U5      -  U R                   R	                  5       5      eU R                   R                  U5      nU R                   R                  U5        U" 5       nUS;  a2  [        S
US[        U5      -  U R                   R	                  5       5      eU$ )Nr   09AZazz-_:.rc   while scanning a directive6expected alphabetic or numeric character, but found %r     
  )rJ   r   r   r	   r   r$  r   )r'   r   lengthr4  r   rJ  s         r   rD  Scanner.scan_directive_name  s1    kk[R3#"2s"2cR6F36F"PV,aKFVB R3#"2s"2cR6F36F"PV, ,H4PR8S$$&	  ""6*F#U..,H4PR8S$$&	  r   c           	         U R                   R                  nU R                   R                  nU" 5       S:X  a  U" 5         U" 5       S:X  a  M  U R                  U5      nU" 5       S:w  a7  [	        SUS[        U" 5       5      -  U R                   R                  5       5      eU" 5         U R                  U5      nU" 5       S;  a7  [	        SUS[        U" 5       5      -  U R                   R                  5       5      eXE4$ )Nr9  rt   rS  z%expected a digit or '.', but found %rrU  z%expected a digit or ' ', but found %r)rJ   r   r   scan_yaml_directive_numberr   r	   r   )r'   r   r4  r=  majorminors         r   rE  !Scanner.scan_yaml_directive_value  s     kkkk!!eslE esl//
;5C<,7$su+E$$&	  	//
;511,7$su+E$$&	  ~r   c                    U R                   R                  nU R                   R                  nU" 5       nSUs=::  a  S::  d4  O  [        SUS[	        U5      -  U R                   R                  5       5      eSnSU" U5      s=::  a  S::  a  O  OUS-  nSU" U5      s=::  a  S::  a  M  O  [        U R                   R                  U5      5      nU" U5        U$ )NrM  rN  rS  zexpected a digit, but found %rr   rc   )rJ   r   r   r   r	   r   intr$  )r'   r   r4  r=  r   rV  rJ  s          r   rY  "Scanner.scan_yaml_directive_number  s     kkkk!!Ur S ,048;$$&	  S['C'aKF S['C'DKK&&v./Fr   c                     U R                   R                  nU R                   R                  nU" 5       S:X  a  U" 5         U" 5       S:X  a  M  U R                  U5      nU" 5       S:X  a  U" 5         U" 5       S:X  a  M  U R	                  U5      nXE4$ )Nr9  )rJ   r   r   scan_tag_directive_handlescan_tag_directive_prefix)r'   r   r4  r=  handler$  s         r   rF   Scanner.scan_tag_directive_value  s}     kkkk!!eslE esl//
;eslE esl//
;r   c                     U R                  SU5      nU R                  R                  5       nUS:w  a2  [        SUS[	        U5      -  U R                  R                  5       5      eU$ )N	directiver9  rS  expected ' ', but found %r)scan_tag_handlerJ   r   r   r	   r   r'   r   rJ  r   s       r   ra  !Scanner.scan_tag_directive_handle  se     $$[*=[[9,,tBx7$$&	  r   c                     U R                  SU5      nU R                  R                  5       nUS;  a2  [        SUS[	        U5      -  U R                  R                  5       5      eU$ )Nrf  rU  rS  rg  )scan_tag_urirJ   r   r   r	   r   ri  s       r   rb  !Scanner.scan_tag_directive_prefix  sg     !!+z:[[..,,tBx7$$&	  r   c                    U R                   R                  nU R                   R                  nU" 5       S:X  a  U" 5         U" 5       S:X  a  M  U" 5       S:X  a'  U" 5       [        ;  a  U" 5         U" 5       [        ;  a  M  U" 5       nU[        ;  a2  [	        SUS[        U5      -  U R                   R                  5       5      eU R                  5         g )Nr9  r:  rS  0expected a comment or a line break, but found %rrJ   r   r   r;  r   r	   r   r<  )r'   r   r4  r=  r   s        r   rG  #Scanner.scan_directive_ignored_line  s     kkkk!!eslE esl5C<%x' %x'UX,BT"XM$$&	  	r   c                    U R                   R                  nU R                   R                  5       nU" 5       nUS:X  a  SnOSnU R                   R                  5         SnU" U5      n[	        U5      (       a  US-  nU" U5      n[	        U5      (       a  M  U(       d6  [        SU< 3US[        U5      -  U R                   R                  5       5      eU R                   R                  U5      nU R                   R                  U5        US;  a6  [        SU< 3US[        U5      -  U R                   R                  5       5      eU R                   R                  5       n	U" XU	5      $ )	Nr   aliasanchorr   rc   zwhile scanning an rT  u     	
  ?:,[]{}%@`)rJ   r   r   r   r   r   r	   r$  )
r'   r   r4  r   	indicatorrI  rV  r   rJ  r   s
             r   r   Scanner.scan_anchor  sG    kk[[))+
E	DD[ $B''aKFVB $B'' *.0H4PR8S$$&	  ""6*F# ::*.0H4PR8S$$&	  ;;'')%X66r   c           	         U R                   R                  nU R                   R                  5       nU" S5      nUS:X  a  S nU R                   R                  S5        U R	                  SU5      nU" 5       S:w  a7  [        SUS[        U" 5       5      -  U R                   R                  5       5      eU R                   R                  5         OU[        ;   a  S nSnU R                   R                  5         OrSnS	nUS
;  a  US:X  a  SnOUS-  nU" U5      nUS
;  a  M  SnU(       a  U R                  SU5      nOSnU R                   R                  5         U R	                  SU5      nU" 5       nUS
;  a2  [        SUS[        U5      -  U R                   R                  5       5      eXE4nU R                   R                  5       n	[        XU	5      $ )Nrc   <   tagr   zwhile parsing a tagzexpected '>', but found %rr}   FrU  Tzwhile scanning a tagrg  )
rJ   r   r   r   rl  r   r	   r%  rh  TagToken)
r'   r4  r   r   rc  suffixrV  
use_handlerJ  r   s
             r   r  Scanner.scan_tag@  s    kk[[))+
V9FKK"&&uj9Fu|")04;>KK((*	  KK!%%FFKK!FJ559!%J![ 55 F--eZ@##%&&uj9FU..&,tBx7$$&	   ;;'')844r   c                    U R                   R                  nUS:X  a  SnOSn/ nU R                   R                  5       nU R                   R                  5         U R	                  U5      u  pxU R                  U5      n	U R                  S-   n
UcY  U
S:  a4  US;  d,  U R                  S:X  a  [        U R                  SS5      (       a  Sn
U R                  5       u  pn[        X5      nO"U
S:  a  Sn
X-   S-
  nU R                  U5      u  pSnU R                   R                  U:X  Ga  U" 5       S	:w  Ga  UR                  U5        U" 5       S
;  nSnU" U5      [        ;  a  US-  nU" U5      [        ;  a  M  UR!                  U R                   R#                  U5      5        U R                   R                  U5        U R%                  5       nU R                  U5      u  pUS;   a1  U
S:X  a+  U R'                  5       (       d  U R)                  5       (       a  OU R                   R                  U:X  az  U" 5       S	:w  ao  U(       a  U(       a  US:X  a  UR!                  S5        U(       a1  US:X  a+  U(       a$  U" 5       S
;  a  U(       d  UR!                  S5        OUR!                  U5        OO(U R                   R                  U:X  a  U" 5       S	:w  a  GM  / nUS;   a  UR!                  U5        USL a  UR                  U5        OUS;   a  UR                  U5        [+        SR-                  U5      SXmU5      nU	b  UR/                  U	/5        [1        U5      S:  a  U R3                  5       nU(       a-  UR!                  US   5        U R3                  5       nU(       a  M-  U R                   R                  5       n[5        SR-                  U5      UU5      nUR7                  U5        U$ )Nr   TFrc   z|>r0  0top_level_block_style_scalar_no_indent_error_1_1 rq   r   r   
r9  r   r   )rJ   r   r   r   scan_block_scalar_indicatorsscan_block_scalar_ignored_liner?   rP   r/   r.   scan_block_scalar_indentationmaxscan_block_scalar_breaksr%   extendr;  r   r$  r<  r   r   ScalarTokenjoinadd_pre_commentsr4   r   CommentTokenadd_post_comment)r'   r  rtr4  foldedchunksr   chomping	incrementblock_scalar_comment
min_indentbreaks
max_indentr   r?   
line_breakleading_non_spacerV  trailingtokenrm   comment_end_marks                         r   r  Scanner.scan_block_scalarr  so    kkC<FF[[))+
 	"??
K#BB:N [[1_
A~T!33v=KK!SUZ  
+/+M+M+O(F0FA~
+a/F#<<VDF
 kk  F*su}MM&! #U 2Ff+X-! f+X-MM$++,,V45KK'--/J#<<VDF}q ,,..$2I2I2K2K{{!!V+ &Z4%7MM$'jD05F35X]K]!c*MM*- S kk  F*su}Z |#MM*%tMM&!&OOF# BGGFOUJ%P+""$8#9:x=1 --/G
+113 '  ${{335"2778#4h@PQG""7+r   c                    U R                   R                  nS nS nU" 5       nUS;   a  US:X  a  SnOSnU R                   R                  5         U" 5       nUS;   aQ  [        U5      nUS:X  a&  [	        SUSU R                   R                  5       5      eU R                   R                  5         OUS;   a  [        U5      nUS:X  a&  [	        SUSU R                   R                  5       5      eU R                   R                  5         U" 5       nUS;   a%  US:X  a  SnOSnU R                   R                  5         U" 5       nUS	;  a2  [	        SUS
[        U5      -  U R                   R                  5       5      eX44$ )Nz+-+TF
0123456789r   while scanning a block scalarz<expected indentation indicator in the range 1-9, but found 0rU  z9expected chomping or indentation indicators, but found %r)rJ   r   r   r^  r   r   r	   )r'   r   r4  r  r  r   s         r   r  $Scanner.scan_block_scalar_indicators  sn    kk	U:Sy KK!B\!G	>&7"Y,,.	  ##%<BIA~"3UKK((*	  KK!BTz9#H$H##%U../KdSUhV$$&	  ""r   c                    U R                   R                  nU R                   R                  nSnS nU" 5       S:X  a  XB" 5       -  nU" 5         U" 5       S:X  a  M  U" 5       S:X  a2  UnU" 5       [        ;  a!  XR" 5       -  nU" 5         U" 5       [        ;  a  M!  U" 5       nU[        ;  a2  [	        SUS[        U5      -  U R                   R                  5       5      eU R                  5         U$ )Nr  r9  r:  r  ro  rp  )r'   r   r4  r=  r$  rm   r   s          r   r  &Scanner.scan_block_scalar_ignored_line  s     kkkk!!eslceOFE esl 5C<G%x'35  %x' UX/BT"XM$$&	  	r   c                    U R                   R                  nU R                   R                  n/ nSnU R                   R                  5       nU" 5       S;   a  U" 5       S:w  a:  UR	                  U R                  5       5        U R                   R                  5       nO7U" 5         U R                   R                  U:  a  U R                   R                  nU" 5       S;   a  M  X4U4$ )Nr       
  r9  )rJ   r   r   r   r   r<  r%   )r'   r4  r=  r  r  r   s         r   r  %Scanner.scan_block_scalar_indentation/  s     kkkk!!
;;'')e..u|d2245;;//1;;%%
2!%!3!3J e.. 8++r   c                    / nU R                   R                  nU R                   R                  nU R                   R                  5       nU R                   R                  U:  a9  U" 5       S:X  a.  U" 5         U R                   R                  U:  a  U" 5       S:X  a  M.  U" 5       S;   a  UR                  U R                  5       5        U R                   R                  5       nU R                   R                  U:  a9  U" 5       S:X  a.  U" 5         U R                   R                  U:  a  U" 5       S:X  a  M.  U" 5       S;   a  M  X%4$ )Nr9  
   
  )rJ   r   r   r   r%   r   r<  )r'   r?   r  r4  r=  r   s         r   r   Scanner.scan_block_scalar_breaksA  s     kkkk!!;;'')kk  6)ceslE kk  6)cesle--MM$..01{{++-H++$$v-#%3, ++$$v-#%3, e--
 r   c                 P   US:X  a  SnOSnU R                   R                  n/ nU R                   R                  5       nU" 5       nU R                   R                  5         UR	                  U R                  X%5      5        U" 5       U:w  aM  UR	                  U R                  X%5      5        UR	                  U R                  X%5      5        U" 5       U:w  a  MM  U R                   R                  5         U R                   R                  5       n[        SR                  U5      SXWU5      $ )Nr   TFr  )	rJ   r   r   r   r  scan_flow_scalar_non_spacesscan_flow_scalar_spacesr  r  )r'   r  doubler4  r  r   quoter   s           r   r  Scanner.scan_flow_scalarQ  s     C<FFkk[[))+
d66vJKeunMM$66vJKMM$::6NO eun 	;;'')2776?E:OOr   rM  rq   rQ  r  bt	nr  vfrer9  r   /\N   _    Lu    Pu    ry        )xuUc                    / nU R                   R                  nU R                   R                  n SnU" U5      S;  a  US-  nU" U5      S;  a  M  US:w  a2  UR                  U R                   R	                  U5      5        U" U5        U" 5       nU(       d-  US:X  a'  U" S5      S:X  a  UR                  S5        U" S5        GOU(       a  US:X  d  U(       d   US;   a  UR                  U5        U" 5         GOU(       Gay  US:X  Gar  U" 5         U" 5       nXpR
                  ;   a'  UR                  U R
                  U   5        U" 5         GO0XpR                  ;   a  U R                  U   nU" 5         [        U5       HI  nU" U5      S;  d  M  [        S	US
U[        U" U5      5      4-  U R                   R                  5       5      e   [        U R                   R	                  U5      S5      n	UR                  [        U	5      5        U" U5        OkUS;   a1  U R                  5         UR                  U R                  X5      5        O4[        S	US[        U5      -  U R                   R                  5       5      eU$ GMN  )Nr   u    
'"\ 	  rc   r   ry  z"\r  0123456789ABCDEFabcdefz%while scanning a double-quoted scalarz?expected escape sequence of %d hexdecimal numbers, but found %r   u
   
  z!found unknown escape character %r)rJ   r   r   r   r$  ESCAPE_REPLACEMENTSESCAPE_CODESranger   r	   r   r^  r
   r<  r  scan_flow_scalar_breaks)
r'   r  r   r  r4  r=  rV  r   kcodes
             r   r  #Scanner.scan_flow_scalar_non_spaces  s    kkkk!!Ff+%EE! f+%EE{dkk0089FBbCiCFcMc"AR3Y2;b!B$JU111MM$":":2">?E,,,!..r2FE"6]q6)AA". G *!8;A4A<:P!Q $ 4 4 6#  + t{{11&92>DMM&,/K11((*MM$">">v"RS&?";d2hF,,.	  ] r   c                 @   U R                   R                  n/ nSnU" U5      S;   a  US-  nU" U5      S;   a  M  U R                   R                  U5      nU R                   R                  U5        U" 5       nUS:X  a&  [	        SUSU R                   R                  5       5      eUS;   ad  U R                  5       nU R                  X5      n	US:w  a  UR                  U5        OU	(       d  UR                  S	5        UR                  U	5        U$ UR                  U5        U$ )
Nr   r   rc   rq   while scanning a quoted scalarzfound unexpected end of streamr  r  r9  )
rJ   r   r$  r   r   r   r<  r  r   r  )
r'   r  r   r4  r  rV  whitespacesr   r  r  s
             r   r  Scanner.scan_flow_scalar_spaces  s    kk&kU"aKF &kU"kk((0F#U:00$$&	  ))--/J11&EFT!j)c"MM&!  MM+&r   c                    / nU R                   R                  nU R                   R                  n U R                   R                  S5      nUS:X  d  US:X  a6  U" S5      [        ;   a&  [        SUSU R                   R                  5       5      eU" 5       S;   a  U" 5         U" 5       S;   a  M  U" 5       S;   a   UR                  U R                  5       5        OU$ M  )Nr   r"  r)  r  z#found unexpected document separatorr   r  )	rJ   r   r   r$  r%  r   r   r   r<  )r'   r  r   r  r4  r=  r$  s          r   r  Scanner.scan_flow_scalar_breaks  s     kkkk!! [[''*F%6U?ABT8T"49KK((*	  %5. %5.u..d2245! r   c                    U R                   R                  nU R                   R                  n/ nU R                   R                  5       nUnU R                  S-   n/ n SnU" 5       S:X  a  GO U" U5      n	U	S:X  a  U" US-   5      [
        ;  a  OcU	S:X  a  U R                  S:w  a  OLU	[
        ;   dA  U R                  (       d  U	S:X  a  U" US-   5      [
        ;   d  U R                  (       a  U	S;   a  OUS-  nM  U R                  (       aD  U	S:X  a>  U" US-   5      S	;  a/  U" U5        [        S
USU R                   R                  5       S5      eUS:X  a  OSU l	        UR                  U5        UR                  U R                   R                  U5      5        U" U5        U R                   R                  5       nU R                  Xd5      nU(       a6  U" 5       S:X  d+  U R                  (       d  U R                   R                  U:  a  OGM  [        SR!                  U5      SXE5      n
U(       a8  US   S:X  a/  [#        SR!                  U5      S-   XE5      nU
R%                  U5        U
$ )Nrc   Tr   r:  r{   rz   r0  z,:?[]{}u     	
  ,[]{}zwhile scanning a plain scalarzfound unexpected ':'zGPlease check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.Fr  r  )rJ   r   r   r   r?   r%  rP   r7   r   rA   r  r   r$  scan_plain_spacesr%   r  r  r  r  )r'   r4  r=  r  r   r   r?   spacesrV  r   r  rm   s               r   r  Scanner.scan_plain  s     kkkk!![[))+
q
 Fu|[9VaZ8J!J3Y4#B#Bf#L,, OO#I
O/AAB)O!! & #I
O+KKF"3*KK((*#  {$)D!MM&!MM$++,,V45K{{++-H++F?F5C<DKK,>,>,Ge h BGGFOT:HfQi4'"2776?T#9:PG""7+r   c                    U R                   R                  nU R                   R                  n/ nSnU" U5      S;   a  US-  nU" U5      S;   a  M  U R                   R                  U5      nU R                   R                  U5        U" 5       nUS;   Ga  U R	                  5       n	SU l        U R                   R                  S5      n
U
S:X  d  U
S:X  a  U" S5      [        ;   a  g / nU" 5       S	;   aw  U" 5       S:X  a  U" 5         OWUR                  U R	                  5       5        U R                   R                  S5      n
U
S:X  d  U
S:X  a  U" S5      [        ;   a  g U" 5       S	;   a  Mw  U	S
:w  a  UR                  U	5        OU(       d  UR                  S5        UR                  U5        U$ U(       a  UR                  U5        U$ )Nr   r9  rc   r  Tr   r"  r)  r  r  )	rJ   r   r   r$  r<  rA   r%  r   r  )r'   r?   r   r4  r=  r  rV  r  r   r  r$  r  s               r   r  Scanner.scan_plain_spaces:  s   
 kkkk!!&kS aKF &kS kk((0F#U''--/J$(D![[''*F%6U?ABT8TF%225C<EMM$"6"6"89![[//2F%6U?AJ\@\ %22 T!j)c"MM&!  MM+&r   c                    U R                   R                  nU" 5       nUS:w  a6  [        SU< 3US[        U5      -  U R                   R	                  5       5      eSnU" U5      nUS:w  a  SUs=::  a  S::  d&  O  SUs=::  a  S	::  d  O  S
Us=::  a  S::  d  O  US;   aH  US-  nU" U5      nSUs=::  a  S::  a  M  O  SUs=::  a  S	::  a  M-  O  S
Us=::  a  S::  a  M>  O  US;   a  MH  US:w  aQ  U R                   R                  U5        [        SU< 3US[        U5      -  U R                   R	                  5       5      eUS-  nU R                   R                  U5      nU R                   R                  U5        U$ )Nr}   while scanning a zexpected '!', but found %rrc   r9  rM  rN  rO  rP  rQ  rR  z-_)rJ   r   r   r	   r   r   r$  )r'   rI  r   r4  r   rV  rJ  s          r   rh  Scanner.scan_tag_handle`  sY   
 kkU9)-/,tBx7$$&	  [9"s"cR&63&6#:Js:JbTXj![ "s"cR&63&6#:Js:JbTXj Sy##F+"-13048;KK((*	  aKF""6*F#r   c                 N   U R                   R                  n/ nSnU" U5      nSUs=::  a  S::  d&  O  SUs=::  a  S::  d  O  SUs=::  a  S::  d  O  US;   a  US	:X  ah  UR                  U R                   R                  U5      5        U R                   R	                  U5        SnUR                  U R                  X5      5        OUS
-  nU" U5      nSUs=::  a  S::  a  M  O  SUs=::  a  S::  a  M  O  SUs=::  a  S::  a  M  O  US;   a  M  US:w  aG  UR                  U R                   R                  U5      5        U R                   R	                  U5        SnU(       d6  [        SU< 3US[        U5      -  U R                   R                  5       5      eSR                  U5      $ )Nr   rM  rN  rO  rP  rQ  rR  z-;/?:@&=+$,_.!~*'()[]%rr   rc   zwhile parsing a zexpected URI, but found %rr  )
rJ   r   r   r$  r   scan_uri_escapesr   r	   r   r  )r'   rI  r   r4  r  rV  r   s          r   rl  Scanner.scan_tag_uri  sj    kk[2bCbC--Sydkk0089##F+d33DEF!VB 2bCbC-- Q;MM$++,,V45KK'F(,.,tBx7$$&	  wwvr   c                 t   U R                   R                  nU R                   R                  n/ nU R                   R                  5       nU" 5       S:X  a  U" 5         [	        S5       HK  nU" U5      S;  d  M  [        SU< 3US[        U" U5      5      -  U R                   R                  5       5      e   [        (       a5  UR                  [        U R                   R                  S5      S5      5        O=UR                  [        [        U R                   R                  S5      S5      5      5        U" S5        U" 5       S:X  a  M   [        (       a  [        U5      R                  S5      nU$ [        SR                  U5      S5      n U$ ! [          a   n	[        SU< 3U[#        U	5      U5      eS n	A	ff = f)	Nrr   ry  r  r  zBexpected URI escape sequence of 2 hexdecimal numbers, but found %rr  zutf-8r   )rJ   r   r   r   r  r   r	   r   r   r^  r$  chrbytesdecodeunicoder  UnicodeDecodeErrorstr)
r'   rI  r   r4  r=  
code_bytesr&   r  rJ  excs
             r   r  Scanner.scan_uri_escapes  sv    kkkk!!
{{##%eslE1Xq6!99&157"(*.s1v,7,,.   s!!#dkk&8&8&;R"@A!!#c$++*<*<Q*?&D"EFF esl 	\sj)009
    4g>  " 	\>
CPSHVZ[[	\s   %F /F 
F7F22F7c                 4   U R                   R                  5       nUS;   aV  U R                   R                  S5      S:X  a  U R                   R                  S5        gU R                   R                  5         gUS;   a  U R                   R                  5         U$ g)N   
ry  
r       r  rJ   r   r$  r   )r'   r   s     r   r<  Scanner.scan_line_break  s     [[{{!!!$.##A&  ##%>!KK!Ir   )rG   rA   r;   r1   r5   r?   r@   r.   rB   r<   r>   r    F)Tr   r   r   r   r(   propertyr7   r0   rJ   rP   r[   r_   re   rT   rn   rU   ri   rh   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   rD  rE  rY  rF  ra  rb  rG  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  rh  rl  r  r<  r   r   r   r   r   r   B   s    $ & &4'l 	( 	( . ."&"l
`  5(=0;$:2X
2:8= NM==<=&
AB8;8;=z9:,++:**9	.9
99&!
J%NA,84( (-7^05dn`1#f4,$  P2TV 	V 	V	
 	f 	V 	V 	V 	V 	V 	V 	S 	S 	d 	V  	V!" 	X#$ 	X%* +L4l<0KZ$LB!F@r   r   c                   L    \ rS rSrS rS rS rS rS rS r	SS jr
SS	 jrS
rg)r   i  c                 2   U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  U R                  5         [        U R                  5      (       a1  U(       d  gU H#  n[        U R                  S   U5      (       d  M#    g   grS   )rT   rU   _gather_commentsrV   r<   rW   rX   s      r   r[   RoundTripScanner.check_token  sx     ##%%""$ ##%%!dkk!nf55 " r   c                     U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  U R                  5         [        U R                  5      (       a  U R                  S   $ g r^   )rT   rU   r  rV   r<   r6   s    r   r_   RoundTripScanner.peek_token  s\     ##%%""$ ##%%;;q>!r   c                 *   / nU R                   (       d  U$ [        U R                   S   [        5      (       aA  U R                   R                  S5      nU =R                  S-  sl        UR                  U5        U R                  5       (       a  U R                  5         U R                   (       d  U$ [        U R                   S   [        5      (       aA  U =R                  S-  sl        U R                   R                  S5      nUR                  U5        U R                  5       (       a  M  [        U5      S:  a  U R                   S   R                  U5        U R                  (       d+  [        U R                   5      S:  a  U R                  5         ggg)zcombine multiple comment linesr   rc   ry  N)r<   rW   r  rd   r>   r   rT   rU   r4   r  r;   )r'   commentsrm   s      r   r  !RoundTripScanner._gather_comments  s#    {{Odkk!nl33kkooa(G"OOG$##%%""$;;$++a.,77!!Q&!++//!,( ##%% x=AKKN++H5yyS-1""$ 2yr   c                 4   U R                  5       (       a'  U R                  5         U R                  5       (       a  M'  U R                  5         [        U R                  5      (       Ga1  [        U R                  5      S:  a  [        U R                  S   [        [        [        [        45      (       a  [        U R                  S   [        5      (       a  U R                  S   R                  R                  U R                  S   R                  R                  :X  aL  U =R                  S-  sl        U R                  S   R!                  U R                  R#                  S5      5        U =R                  S-  sl        U R                  R#                  S5      $ g rb   )rT   rU   r  rV   r<   r4   rW   r  r   r   r   r  r   r$   r   r>   r  rd   r6   s    r   re   RoundTripScanner.get_token  s&    ##%%""$ ##%% DKK 1$KKN *.BDWX  t{{1~|<<KKN++00DKKN4M4M4R4RR!!Q&!A//0BC";;??1%%r   c                     Uu  p#nU(       a   US   S:X  a  US S nU(       a  US   S:X  a  M  U R                   R                  [        X#U5      5        g )Nr:   r9  )r<   r   r  )r'   rm   rJ  r   r   s        r   rn   RoundTripScanner.fetch_comment(  sR    &-#8b	S( #2JE b	S( 	<8DEr   c                    U R                   R                  nU R                   R                  nU R                   R                  S:X  a  U" 5       S:X  a  U" 5         SnU(       Gd  U" 5       S:X  a  U" 5         U" 5       S:X  a  M  U" 5       nUS:X  a  U R                   R	                  5       nUnU" 5         U[
        ;  a%  U" 5       nUS:X  a  OXd-  nU" 5         U[
        ;  a  M%  U R                  5       n[        U5      S:  a%  Xd-  nU R                  5       n[        U5      S:  a  M%  U R                   R	                  5       nU R                  (       d  SU l	        XeU4$ [        U R                  5       5      (       a  U R                   R	                  5       nU R                  (       d  SU l	        U" 5       nUS:X  a  U R                   R	                  5       nS	nU(       a  U R                  SS
9nXd-  nU(       a  M  U" 5       S:X  a  UR                  SS5      S   S-   nU R                   R	                  5       nXeU4$ OSnU(       d  GM  g )Nr   r8  Fr9  r:  rq   Tr  r  )
empty_linerc   )rJ   r   r   r#   r   r;  r<  r4   r7   rA   rV   rsplit)r'   r4  r=  r>  r   r   rm   r   s           r   r   #RoundTripScanner.scan_to_next_token3  s   * kkkk!!;;!cex&7E%3, %3,BSy![[113
(BTzMGE ( ))+"gkMG--/B "gk  ;;//1,0D)H44D((*++![[113
,0D)U:!%!5!5!7J G!11T1B " u|")..q"9!"<t"C#{{335H"88  Q %R r   c                    U R                   R                  5       nUS;   aV  U R                   R                  S5      S:X  a  U R                   R                  S5        gU R                   R                  5         gUS;   a  U R                   R                  5         U$ U(       a"  US;   a  U R                   R                  5         U$ g)Nr  ry  r  r  r  z	 r  r  )r'   r  r   s      r   r<   RoundTripScanner.scan_line_breakx  s     [[{{!!!$.##A&  ##%>!KK!IB%KKK!Ir   c                 *    [         R                  XUS9$ )N)r  )r   r  )r'   r  r  s      r   r  "RoundTripScanner.scan_block_scalar  s    (((<<r   )rA   Nr  )T)r   r   r   r   r[   r_   r  re   rn   r   r<  r  r   r   r   r   r   r     s-    %26FCJ2=r   r   N)
__future__r   r   r   r   ruamel.yaml.errorr   ruamel.yaml.tokensruamel.yaml.compatr	   r
   r   r   r   typingAnyDictOptionalListUnionTextVersionType__all__r;  r%  r3  r   objectr   r   r   r   r   r   <module>r     sm    S R< .   O O : $0 
	? 	
 
Vf Vr4x=w x=r   