+
    Bi                     >   ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
  ! R R] P                  4      t ! R	 R
] P                  4      t ! R R] P                  4      t ! R R] P                  4      t]R8X  d   ] P"                  ! 4        R# R# )    N)array)cpython_only)	os_helper)script_helperensure_lazy_importsc                   0   a  ] tR t^t o ]R 4       tRtV tR# )LazyImportTestc                "    \        R RR04       R# )base64regetoptNr   selfs   &'/usr/lib/python3.14/test/test_base64.pytest_lazy_importLazyImportTest.test_lazy_import   s    HtX&67     N)__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell____classdict__s   @r   r
   r
      s     8 8r   r
   c                   >   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )LegacyBase64TestCasec                $   V P                  \        VR 4       V P                  \        V. 4       \        R4      P                  RR4      pV P                  \        W4       \        R4      P                  R4      pV P                  \        W4       R# ) s   1234BIN)   r$   )assertRaises	TypeError
memoryviewcast)r   fmultidimensionalint_datas   &&  r   check_type_errors&LegacyBase64TestCase.check_type_errors   ss    )Q+)Q+%g.33C@)Q9g&++C0)Q1r   c                   V P                   pV! \        P                  ! R 4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R	4      R
4       V! \        P                  ! R4      R4       V! \        P                  ! \        R4      4      R4       V! \        P                  ! \	        R4      4      R4       V! \        P                  ! \        RR4      4      R4       V P                  \        P                  4       R# )   www.python.org   d3d3LnB5dGhvbi5vcmc=
   a   YQ==
   ab   YWI=
   abc   YWJj
r   R   abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}r   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==
   Aladdin:open sesame   QWxhZGRpbjpvcGVuIHNlc2FtZQ==
r"   N)assertEqualr   encodebytes	bytearrayr'   r   r,   r   eqs   & r   test_encodebytes%LegacyBase64TestCase.test_encodebytes   s   
6/02KL
6d#Y/
6e$i0
6f%y1
6c"C(
6 A B3	4 	645?	A 	6i/0)<
6j019=
6eC019=v112r   c                   V P                   pV! \        P                  ! R 4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R	4       V! \        P                  ! R
4      R
4       V! \        P                  ! R4      R4       V! \        P                  ! \        R4      4      R4       V! \        P                  ! \	        R4      4      R4       V! \        P                  ! \        RR4      4      R4       V P                  \        P                  4       R# )r0   r/   r2   r1   r4   r3   r6   r5   r8   r7   r   r:   r9   r"   N)r;   r   decodebytesr=   r'   r   r,   r>   s   & r   test_decodebytes%LegacyBase64TestCase.test_decodebytes2   s   
678:KL
6i($/
6i(%0
6i(&1
6 G H-	. 	6c"C(
6?@4	6 	6i	23V<
6j34f=
6eC34f=v112r   c                   V P                   p^ RIHpHp V! R4      pV! 4       p\        P
                  ! WE4       V! VP                  4       R4       V P                  \        \        P
                  V! R4      V! 4       4       V P                  \        \        P
                  V! R4      V! 4       4       V P                  \        \        P
                  V! R4      V! 4       4       R# )r   BytesIOStringIOr7   r8   abcr5   N)	r;   iorH   rI   r   encodegetvaluer%   r&   )r   r?   rH   rI   infpoutfps   &     r   test_encode LegacyBase64TestCase.test_encodeG   s    ( 9 : 	d"
5>>3	4
 	)V]]HUOWYO)V]]GFOXZP)V]]HUOXZPr   c                   ^ RI HpHp V! R4      pV! 4       p\        P                  ! W44       V P                  VP                  4       R4       V P                  \        \        P                  V! R4      V! 4       4       V P                  \        \        P                  V! R4      V! 4       4       V P                  \        \        P                  V! R4      V! 4       4       R# )r   rG      d3d3LnB5dGhvbi5vcmc=r/   zYWJj
r6   N)
rK   rH   rI   r   decoder;   rM   r%   r&   rL   )r   rH   rI   rN   rO   s   &    r   test_decode LegacyBase64TestCase.test_decodeX   s    (./	d")+<=)V]]HX4F	R)V]]GI4F
S)V]]HX4F
Sr   r   N)r   r   r   r   r,   r@   rD   rP   rU   r   r   r   s   @r   r   r      s&     23*3*Q"	T 	Tr   r   c                      a  ] tR t^dt o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R  t#R! t$R" t%R#t&V t'R$# )%BaseXYTestCasec                b    V P                  \        VR 4       V P                  \        V. 4       R# )r!   Nr%   r&   r   r)   s   &&r   check_encode_type_errors'BaseXYTestCase.check_encode_type_errorsh   s&    )Q+)Q+r   c                4    V P                  \        V. 4       R # NrZ   r[   s   &&r   check_decode_type_errors'BaseXYTestCase.check_decode_type_errorsl   s    )Q+r   c                D   V P                   p\        V4      pV! V! V4      V4       V! WR4       V! V! \        V4      4      V4       V! V! \        R V4      4      V4       V P	                  \
        P                  V4       V P                  \
        P                  V4       R# )r"   N)r;   r=   r'   r   check_nonbyte_element_formatr   	b64encodecheck_multidimensional)r   r)   
bytes_dataexpectedr?   bs   &&&&  r   check_other_types BaseXYTestCase.check_other_typeso   s    j!
1Q4
1
1Z
#$h/
1U3
#$h/))&*:*:JG##F$4$4jAr   c                    \        V4      ^,          '       d   RMRpW#,           p\        V4      ^,          ^3p\        V4      P                  RV4      pV P                  V! V4      V! V4      4       R# )r$       r   r"   Nlenr'   r(   r;   )r   r)   datapaddingrf   shaper*   s   &&&    r   re   %BaseXYTestCase.check_multidimensional{   sa     Y]]'^
ZA%q)%j166sEB+,a
m<r   c                    R ^\        V4      ,
          ^,          ,          pW#,           p\        V4      P                  R4      pV P                  V! V4      V! V4      4       R# )rl   r#   Nrm   )r   r)   ro   rp   rf   r+   s   &&&   r   rc   +BaseXYTestCase.check_nonbyte_element_format   sM    a#d)mq01^
j)..s38a
m4r   c           	     H   V P                   pV! \        P                  ! R 4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R	4       V! \        P                  ! R
4      R
4       V! \        P                  ! R4      R4       V! \        P                  ! RRR7      R4       V! \        P                  ! R\        R4      R7      R4       V! \        P                  ! R\	        R4      R7      R4       V! \        P                  ! R\        RR4      R7      R4       V P                  \        P                  RR4       V P                  \        P                  4       V P                  \        \        P                  R
RR7       V! \        P                  ! R 4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R	4       V! \        P                  ! R
4      R
4       V! \        P                  ! R4      R4       V P                  \        P                  RR4       V P                  \        P                  4       V! \        P                  ! R4      R4       V P                  \        P                  RR4       V P                  \        P                  4       R# )r/   rS   rl      AA==r1      YQ==r3      YWI=r5      YWJjr   r7   sp   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==   Vo   *$altchars   01a*b$cdr"      abcds   YWJjZA==z*$   01a-b_cdN)r;   r   rd   r=   r'   r   ri   r\   r%   r&   standard_b64encodeurlsafe_b64encoder>   s   & r   test_b64encodeBaseXYTestCase.test_b64encode   sv   
6-.0GH
6G$g.
6D!7+
6E"G,
6F#W-
6C #&
6 > ?1	2 	61EBKP
61Ie<LM	
61Ju<MN	
61E#u<MN	 	v//+F%%f&6&67)V%5%5sTJ
6$$%679PQ
6$$T*G4
6$$U+W5
6$$V,g6
6$$S)3/
6$$ &G H1	2 	v88&	5%%f&?&?@
6##$9:KHv774k	C%%f&>&>?r   c                   V P                   pR RRRRRRRRR	R
RRR/pVP                  4        FN  w  r4V! \        P                  ! V4      V4       V! \        P                  ! VP	                  R4      4      V4       KP  	  V P                  \        P                  RR	4       V P                  \        P                  4       RR/pVP                  4        F  w  w  r6pVP	                  R4      pVP	                  R4      pV! \        P                  ! W6R7      V4       V! \        P                  ! WvR7      V4       V! \        P                  ! W8R7      V4       V! \        P                  ! WxR7      V4       K  	  VP                  4        FN  w  r4V! \        P                  ! V4      V4       V! \        P                  ! VP	                  R4      4      V4       KP  	  V P                  \        P                  RR	4       V P                  \        P                  4       RRRR/p	V	P                  4        FN  w  r4V! \        P                  ! V4      V4       V! \        P                  ! VP	                  R4      4      V4       KP  	  V P                  \        P                  RR4       V P                  \        P                  4       R# )rS   r/   rv   rl   rw   r1   rx   r3   ry   r5   sq   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==r7   r   asciirz   r|   r   N)r~   r{   )	r;   itemsr   	b64decoderT   ri   r`   standard_b64decodeurlsafe_b64decode)
r   r?   testsro   restests_altcharsr}   data_straltchars_strtests_urlsafes
   &         r   test_b64decodeBaseXYTestCase.test_b64decode   sR   (*;'$%&73 c IDv%s+vG 45s; ' 	v//&A%%f&6&67 /0E %3%9%9%;!Tc{{7+H#??73Lv8#>v<cBv<cBv@#F &< IDv((.4v((W)=>D ' 	v88'6J%%f&?&?@ %&;c ',,.IDv''-s3v''G(<=sC / 	v774	6%%f&>&>?r   c                    V P                  \        P                  \        P                  R 4       V P                  \        P                  \        P                  R4       R# )r5   rJ   N)r%   binasciiErrorr   r   r   s   &r   test_b64decode_padding_error+BaseXYTestCase.test_b64decode_padding_error   s:    (..&*:*:FC(..&*:*:EBr   c                   R
p\         P                  \         P                  \         P                  3pV EF  w  r4V Fe  pV P	                  W5R7      ;_uu_ 4        V P                  V! V4      V4       V P                  V! VP                  R4      4      V4       RRR4       Kg  	  V P                  \        P                  4      ;_uu_ 4        \         P                  ! VRR7       RRR4       V P                  \        P                  4      ;_uu_ 4        \         P                  ! VP                  R4      RR7       RRR4       EK  	  RpV P                  \         P                  ! RR4      V4       V P                  \         P                  ! R	4      V4       R#   + '       g   i     EKp  ; i  + '       g   i     L; i  + '       g   i     EK  ; i)   %3d==)bstrfuncr   NT)validates   s   ++[[//]]s   []s   ++--//__)
)r      )s   $3d==r   )s   [==r   )s   YW]3=s   am)s   3{d==r   )s   3d}==r   )   @@r   )   !r   )r6   r5   )s	   YWJj
YWI=s   abcab)
r   r   r   r   subTestr;   rT   r%   r   r   )r   r   funcsr   r   r   s   &     r   test_b64decode_invalid_chars+BaseXYTestCase.test_b64decode_invalid_chars   sP   	, %%$$

 ID\\t\77$$T$Z5$$T$++g*>%?E 87  ""8>>22  5 3""8>>22  W!5E 32  *))+u=sC11+>D 877 32222s%   A F	F/(GF,/F?Gc                4   V P                   pV! \        P                  ! R 4      R 4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R	4      R
4       V! \        P                  ! R4      R4       V P                  \        P                  R	R
4       V P	                  \        P                  4       R# )r   rl      AA======r1      ME======r3      MFRA====r5      MFRGG===r      MFRGGZA=   abcde   MFRGGZDFN)r;   r   	b32encoderi   r\   r>   s   & r   test_b32encodeBaseXYTestCase.test_b32encode  s    
6C #&
6G$k2
6D!;/
6E"K0
6F#[1
6G$k2
6H%{3v//+F%%f&6&67r   c                   V P                   pR R RRRRRRRRR	R
RR/pVP                  4        FN  w  r4V! \        P                  ! V4      V4       V! \        P                  ! VP	                  R4      4      V4       KP  	  V P                  \        P                  RR4       V P                  \        P                  4       R# )r   r   rl   r   r1   r   r3   r   r5   r   r   r   r   r   N)r;   r   r   	b32decoderT   ri   r`   r   r?   r   ro   r   s   &    r   test_b32decodeBaseXYTestCase.test_b32decode$  s    cgdefgh IDv%s+vG 45s; ' 	v//fE%%f&6&67r   c                ~   V P                   pR R RRRRRRRRR	R
RRRRRRRRRR
/pVP                  4        FP  w  r4V! \        P                  ! VR4      V4       V! \        P                  ! VP	                  R4      R4      V4       KR  	  V P                  \        P                  \        P                  R4       V P                  \        P                  \        P                  R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       RRRR/pVP                  4        EF  w  w  r6pVP	                  R4      pVP	                  R4      pV! \        P                  ! W6R7      V4       V! \        P                  ! WvR7      V4       V! \        P                  ! W8R7      V4       V! \        P                  ! WxR7      V4       V P                  \        P                  \        P                  V4       V P                  \        P                  \        P                  V4       EK  	  R# )r   r   r1   r   r3   r   r5   r   r   r   r   s   me======s   mfra====s   mfrgg===s   mfrggza=s   mfrggzdfTr   zme======s   MLO23456s   bݭMLO23456s   b)map01N)   M1023456   L)r      I)r;   r   r   r   rT   r%   r   r   )	r   r?   r   ro   r   	map_testsr   r   	map01_strs	   &        r   test_b32decode_casefold&BaseXYTestCase.test_b32decode_casefold5  s   cdefghdefgh IDvd+S1vG 4d;SA ' 	(..&*:*:KH(..&*:*:JG 	6K(*>?
6J')=>(*>(*>	 #,//"3MT3{{7+HW-Iv2C8v6<v6<v:C@hnnf.>.>Ehnnf.>.>I #4r   c           
         . ROp. ROp\        ^ ^4       Fd  pV'       d   VP                  RV,          4       V F;  p\        V4      V,           ^8w  g   K  VP                  VRV,          ,           4       K=  	  Kf  	  V F  pV P                  VR7      ;_uu_ 4        V P	                  \
        P                  4      ;_uu_ 4        \        P                  ! V4       RRR4       V P	                  \
        P                  4      ;_uu_ 4        \        P                  ! VP                  R4      4       RRR4       RRR4       K  	  R#   + '       g   i     Ls; i  + '       g   i     L1; i  + '       g   i     K  ; i)r5      =)ro   Nr   )r5      ABCDEF==   ==ABCDEF   Ms   MEs   MFRAs   MFRGGs   MFRGGZAr   )
rangeappendrn   r   r%   r   r   r   r   rT   r   r   prefixesiprefixro   s   &     r   test_b32decode_error#BaseXYTestCase.test_b32decode_error^  s    2Lq"AT!V$"v;?a'LL$q&1 #  D4((&&x~~66$$T* 7&&x~~66$$T[[%9: 7 )( 6666 )((<   (E,E/E,
&E0E,EE,E)$E,,E=c                    . ROpV FN  w  r#V P                  VR7      ;_uu_ 4        V P                  \        P                  ! V4      V4       RRR4       KP  	  R#   + '       g   i     Ke  ; i)r   	to_decodeN))r   r   )rl      00======)r1      C4======)r3      C5H0====)r5      C5H66===)r      C5H66P0=)r      C5H66P35)r   r;   r   b32hexencode)r   
test_cases	to_encoderg   s   &   r   test_b32hexencode BaseXYTestCase.test_b32hexencoden  sV    	

 $.I	22  !4!4Y!?J 32 $.222s   'AA,c                    V P                  \        P                  R R4       V P                  \        P                  4       R# )r   r   N)ri   r   r   r\   r   s   &r   test_b32hexencode_other_types,BaseXYTestCase.test_b32hexencode_other_types}  s.    v22G[I%%f&9&9:r   c           
     L   . ROpV F  w  r#pV P                  W$R7      ;_uu_ 4        V P                  \        P                  ! W$4      V4       V P                  \        P                  ! VP	                  R4      V4      V4       RRR4       K  	  R#   + '       g   i     K  ; i)r   )r   casefoldr   N))r   r   F)r   rl   F)r   r1   F)r   r3   F)r   r5   F)r   r   F)r   r   F)r   r   T)r   rl   T)r   r1   T)r   r3   T)r   r5   T)r   r   T)r   r   T)   c4======r1   T)s   c5h0====r3   T)s   c5h66===r5   T)s   c5h66p0=r   T)s   c5h66p35r   T)r   r;   r   b32hexdecoderT   )r   r   r   rg   r   s   &    r   test_b32hexdecode BaseXYTestCase.test_b32hexdecode  s    

, .8)I	EE  !4!4Y!I!)+  !4!4Y5E5Eg5N!)"+,46 FE .8EEEs   ABB#c                    V P                  \        P                  R R4       V P                  \        P                  4       R# )r   r5   N)ri   r   r   r`   r   s   &r   test_b32hexdecode_other_types,BaseXYTestCase.test_b32hexdecode_other_types  s.    v22KH%%f&9&9:r   c           
         . ROp. ROp\        ^ ^4       Fd  pV'       d   VP                  RV,          4       V F;  p\        V4      V,           ^8w  g   K  VP                  VRV,          ,           4       K=  	  Kf  	  V F  pV P                  VR7      ;_uu_ 4        V P	                  \
        P                  4      ;_uu_ 4        \        P                  ! V4       RRR4       V P	                  \
        P                  4      ;_uu_ 4        \        P                  ! VP                  R4      4       RRR4       RRR4       K  	  R#   + '       g   i     Ls; i  + '       g   i     L1; i  + '       g   i     K  ; i)r5   r   r   Nr   )r5   r   r   r   r   )
r   r   rn   r   r%   r   r   r   r   rT   r   s   &     r   test_b32hexdecode_error&BaseXYTestCase.test_b32hexdecode_error  s    ?Lq"AT!V$"v;?a'LL$q&1 #  D--&&x~~66''- 7&&x~~66''G(<= 7 .- 6666 .--r   c                   V P                   pV! \        P                  ! R 4      R4       V! \        P                  ! R4      R4       V P                  \        P                  R R4       V P	                  \        P                  4       R# )   
   0102ABCDEFrl      00N)r;   r   	b16encoderi   r\   r>   s   & r   test_b16encodeBaseXYTestCase.test_b16encode  sh    
634mD
6G$e,v//1H,	.%%f&6&67r   c                b   V P                   pV! \        P                  ! R 4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V P                  \        P
                  \        P                  R4       V P                  \        P
                  \        P                  R4       V! \        P                  ! RR4      R4       V! \        P                  ! RR4      R4       V P                  \        P                  R R4       V P                  \        P                  4       V! \        P                  ! \        R4      R4      R4       V! \        P                  ! \        R4      R4      R4       V! \        P                  ! \        R	R4      R4      R4       V P                  \        P
                  \        P                  R
4       V P                  \        P
                  \        P                  R4       R# )r   r   
0102ABCDEFr   rl   00s
   0102abcdef
0102abcdefTr"   0102AG010N)r;   r   	b16decoder%   r   r   ri   r`   r=   r'   r   r>   s   & r   test_b16decodeBaseXYTestCase.test_b16decode  s   
6M*,CD
6L)+BC
6E"G,
6D!7+(..&*:*:MJ(..&*:*:LI
6M402IJ
6L$/1HIv//6	8%%f&6&67
6Im4d;"	$
6J}5t<"	$
6E#}5t<"	$ 	(..&*:*:HE(..&*:*:EBr   c                   V P                   pR R RR\        \        ^4      4      RRRRRRR	R
RRRRRRRR&RR'RR(R/pVP                  4        Fo  w  r4V! \        P
                  ! V4      WC4       V! \        P
                  ! VRR7      WC4       V! \        P
                  ! VRR7      RV,           R,           V4       Kq  	  V P                  \        P
                  RR4       V P                  \        \        P
                  R4       V! \        P
                  ! R^RR7      R4       V! \        P
                  ! R^RR7      R4       V! \        P
                  ! R^RR7      R4       V! \        P
                  ! R)RRR 7      R!4       V! \        P
                  ! R*RRR 7      R"4       V! \        P
                  ! R+RRR 7      R#4       V! \        P
                  ! R,RRR 7      R$4       R%# )-r   r/      GB\6`E-ZP=Df.1GEb>s?  !!*-'"9eu7#RLhG$k3[W&.oNg'GVB"(`=52*$$(B+<_pR,UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm5X@_(6q'R884cEH9MJ8X:f1+h<)lt#=BSg3>[:ZC?t!MSA7]@cBPD3sCi+'.E,fo>FEMbNG^4U^I!pHnJ:W<)KS>/9Ll%"IN/`jYOHG]iPa.Q$R$jD4S=Q7DTV8*TUnsrdW2ZetXKAY/Yd(L?['d?O\@K2_]Y2%o^qmn*`5Ta:aN;TJbg"GZd*^:jeCE.%f\,!5gtgiEi8N\UjQ5OekiqBum-X60nF?)@o_%qPq"ad`r;HTr7   g   @:E_WAS,RgBkhF"D/O92EH6,BF`qtRH$VbC6UX@47n?3D92&&T:Jand;cHat='/U/0JP==1c70M3&r-I,;<FN.OZ`-3]oSW/g+A(H[P   no padding..   DJpY:@:Wn_DJ(RS   zero compression       H=_,8+Cf>,E,oN2F(oQ1z   zero compression      H=_,8+Cf>,E,oN2F(oQ1!!!!   Boundary:       6>q!aA79M(3WK-[!!   Space compr:       ;fH/TAKYK$D/aMV+<VdL      rr   s8N   s8W*   s8W-!FadobeT   <~   ~>r!   )wrapcolr  s   GB\6`E-
ZP=Df.1
GEb>s       www.python.orgs   zGB\6`E
-ZP=Df.
1GEb>s   <~GB\6`
E-ZP=Df
.1GEb>
~>
foldspacesr     yy   y+<Vd   y+<U   y+9N                                               )	r;   bytesr   r   r   	a85encoderi   r%   r&   r   s   &    r   test_a85encodeBaseXYTestCase.test_a85encode  s    5%*  2I/')A%'B "6!8Uvwx-2 IDv%s1vE2C>vD153;3FM '
 	v//1B5	7 	)V%5%5r:
6-qF%	'
65qN&	(
6-qE+	- 	6Ft5A5I
6Ft5A8L
6Ft5A7K
6Ft5A6Jr   c                (   V P                   pR R RR\        \        ^4      4      RRRRRRR	R
RRRRRRRRRRRRR/pVP                  4        F"  w  r4V! \        P
                  ! V4      V4       K$  	  V P                  \        P
                  RR4       R# )r   r/      cXxL#aCvlSZ*DGca%T?  009C61O)~M2nh-c3=Iws5D^j+6crX17#SKH9337XAR!_nBqb&%C@Cr{EG;fCFflSSG&MFiI5|2yJUu=?KtV!7L`6nNNJ&adOifNtP*GA-R8>}2SXo+ITwPvYU}0ioWMyV&XlZI|Y;A6DaB*^Tbai%jczJqze0_d@fPsR8goTEOh>41ejE#<ukdcy;l$Dm3n3<ZJoSmMZprN9pq@|{(sHv)}tgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zP<)YaD4*xB0K+}+;a;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qdpr7   g   VPa!sWoBn+X=-b1ZEkOHadLBXb#`}nd3r%YLqtVJM@UIZOH55pPf$@(Q&d$}S6EqEFflSSG&MFiI5{CeBQRbjDkv#CIy^osE+AW7dwlr      Zf_uPVPs@!Zf7nor      dS!BNAY*TBaB^jHb7^mG00000r     dS!BNAY*TBaB^jHb7^mG0000r     LT`0$WMOi7IsgCw00r     Q*dEpWgug3ZE$irARr(hr     {{   |Nj   |Ns9   |NsC0Nr  r  r  )r;   r  r   r   r   	b85encoderi   r   s   &    r   test_b85encodeBaseXYTestCase.test_b85encode
       4%*  6H//1M+-H,.F!8Uvwx-
2 IDv%s+ ' 	v//1B4	6r   c                (   V P                   pR R RR\        \        ^4      4      RRRRRRR	R
RRRRRRRRRRRRR/pVP                  4        F"  w  r4V! \        P
                  ! V4      V4       K$  	  V P                  \        P
                  RR4       R# )r   r/      CxXl-AcVLsz/dgCA+t?  009c61o!#m2NH?C3>iWS5d]J*6CRx17-skh9337xar.{NbQB=+c[cR@eg&FcfFLssg=mfIi5%2YjuU>)kTv.7l}6Nnnj=ADoIFnTp/ga?r8($2sxO*itWpVyu$0IOwmYv=xLzi%y&a6dAb/]tBAI+JCZjQZE0{D[FpSr8GOteoH(41EJe-<UKDCY&L:dM3N3<zjOsMmzPRn9PQ[%@^ShV!$TGwUeU^7HuW6^uKXvGh.YUh4]Z})[9-kP:p:JqPF+*1CV^9Zp<!yAd4/Xb0k*$*&A&nJXQ<MkK!>&}x#)cTlf[Bu8v].4}L}1:^-@qDPr7   g   vpA.SwObN*x>?B1zeKohADlbxB-}$ND3R+ylQTvjm[uizoh55PpF:[^q=D:$s6eQefFLssg=mfIi5@cEbqrBJdKV-ciY]OSe*aw7DWLr      zF{UpvpS[.zF7NOr      Ds.bnay/tbAb]JhB7]Mg00000r     Ds.bnay/tbAb]JhB7]Mg0000r     lt}0:wmoI7iSGcW00r     q/DePwGUG3ze:IRarR^Hr  r      %nJ   %nS9   %nSc0Nr  r  r  )r;   r  r   r   r   	z85encoderi   r   s   &    r   test_z85encodeBaseXYTestCase.test_z85encode,  r2  r   c                   V P                   pR R RRR\        \        ^4      4      RRRRRR	R
RRRRRRRRR%RR&RR'/pVP                  4        F  w  r4V! \        P
                  ! V4      WC4       V! \        P
                  ! VRR7      WC4       V! \        P
                  ! VP                  R4      RR7      WC4       V! \        P
                  ! RV,           R,           RR7      WC4       V! \        P
                  ! VR,           RR7      WC4       V! \        P
                  ! RVP                  R4      ,          RR7      WC4       K  	  V! \        P
                  ! RRRR7      R(4       V! \        P
                  ! RRRR7      R)4       V! \        P
                  ! RRRR7      R*4       V! \        P
                  ! R RRR7      R+4       V! \        P
                  ! R!RR"7      R#4       V P                  \        P
                  RR4       R$# ),r   r   r/   sJ  ! ! * -'"
		9eu
7#  RLhG$k3[W&.oNg'GVB"(`=52*$$(B+<_pR,UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm5X@_(6q'R884cEH9MJ8X:f1+h<)lt#=BSg3>[:ZC?t!MSA7]@cBPD3sCi+'.E,fo>FEMbNG^4U^I!pHnJ:W<)KS>/9Ll%"IN/`jYOHG]iPa.Q$R$jD4S=Q7DTV8*TUnsrdW2ZetXKAY/Yd(L?['d?O\@K2_]Y2%o^qmn*`5Ta:aN;TJbg"GZd*^:jeCE.%f\,!5gtgiEi8N\UjQ5OekiqBum-X60nF?)@o_%qPq"ad`r;HTr   r7   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  Fr  r   r  r  Tz<~%s~>r  r  r  r  r  s   aaaaayr  s   ɀ@    Nr  r  r  r  r  r  r  )r;   r  r   r   r   	a85decoderT   ri   r   s   &    r   test_a85decodeBaseXYTestCase.test_a85decodeN  s    "$5 "%*-F-$&I')H ">#%87IYi-2 IDv%s1vE2C>vG 4EBCNvu 4DA3MvuD93Ev4;;w+? ?tL ' 	6Ed%@&I
6HUCVL
6GEBFK
6Ft5A6J
6I$79MNv//1G0	2r   c                   V P                   pR R RRR\        \        ^4      4      RRRRRR	R
RRRRRRRRRRRRR/pVP                  4        FN  w  r4V! \        P
                  ! V4      V4       V! \        P
                  ! VP                  R4      4      V4       KP  	  V P                  \        P
                  RR4       R# )r   r#  r/   r$  r%  r7   r&  r   r'  r   r(  r  r)  r  r*  r  r+  r  r,  r-  r.  r   Nr  r  r  )r;   r  r   r   r   	b85decoderT   ri   r   s   &    r   test_b85decodeBaseXYTestCase.test_b85decode|       !#4 #5:.H6(*M')H$&F#%87IYi-
2 IDv%s+vG 45s; ' 	v//1F0	2r   c                   V P                   pR R RRR\        \        ^4      4      RRRRRR	R
RRRRRRRRRRRRR/pVP                  4        FN  w  r4V! \        P
                  ! V4      V4       V! \        P
                  ! VP                  R4      4      V4       KP  	  V P                  \        P
                  RR4       R# )r   r4  r/   r5  r6  r7   r7  r   r8  r   r9  r  r:  r  r;  r  r   r  r<  r=  r>  r   Nr  r  r  )r;   r  r   r   r   	z85decoderT   ri   r   s   &    r   test_z85decodeBaseXYTestCase.test_z85decode  rK  r   c                v   V P                   pV! \        P                  ! R RR7      R4       V! \        P                  ! RRR7      R4       V! \        P                  ! RRR7      R4       V! \        P                  ! RRR7      R	4       V! \        P                  ! R
RR7      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R	4      R4       V! \        P                  ! R4      R4       R# )   xTpads   GQ7^D   xxs   G^'2g   xxxs   G^+H5   xxxxs   G^+IX   xxxxxs
   G^+IXGQ7^D   x      xx     xxx    xxxxx   N)r;   r   r  rD  r>   s   & r   test_a85_paddingBaseXYTestCase.test_a85_padding      
6Dd+X6
6Et,h7
6F-x8
6G.9
6H$/?
6H%'78
6H%}5
6H%z2
6H%w/
6M*,@Ar   c                v   V P                   pV! \        P                  ! R RR7      R4       V! \        P                  ! RRR7      R4       V! \        P                  ! RRR7      R4       V! \        P                  ! RRR7      R	4       V! \        P                  ! R
RR7      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R4      R4       V! \        P                  ! R	4      R4       V! \        P                  ! R4      R4       R# )rQ  TrR  s   cmMzZrT  s   cz6H+rU  s   czAdKrV  s   czAetrW  s
   czAetcmMzZrX  rY  rZ  r[  N)r;   r   r/  rH  r>   s   & r   test_b85_paddingBaseXYTestCase.test_b85_padding  r^  r   c           	     b   \        \        ^ 4      4      \        \        ^vR4      4      ,          \        R4      ,
          pV EF  pV P                  \        \	        V.4      R7      ;_uu_ 4        \
        P                  ! R\	        V.4      ,           4       RRR4       V P                  \        \	        V.4      R7      ;_uu_ 4        \
        P                  ! R\	        V.4      ,           RR7       RRR4       V P                  \        \	        V.4      R7      ;_uu_ 4        \
        P                  ! R\	        V.4      ,           R	,           R
R7       RRR4       EK  	  V P                  \        \
        P                  RR
R7       V P                  \        \
        P                  RR
R7       V P                  \        \
        P                  R4       V P                  \        \
        P                  RRR7       \
        P                  ! RR
R7       V P                  \        \
        P                  RRR7       V P                  \        \
        P                  RRR7       V P                  \        \
        P                  RRRR7       V P                  \        \
        P                  RRR7       V P                  \        \
        P                  RRR7       V P                  \        \
        P                  RRR7       V P                  \        \
        P                  RRR7       V P                  \        \
        P                  RRR7       V P                  \        \
        P                  RR
R7       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EKm  ; i)       s    	
msgs   !!!!NFr  s   <~!!!!r  Ts	   malformeds   <~still malformeds   <~~>s   abcxs   abcdeys   a b
cr   )r  ignorechars   ss   s8s   s8Ws   s8W-s   s8W-"s   aaaayrC  )setr   r%   
ValueErrorr  r   rD  r   illegalcs   &  r   test_a85decode_errors$BaseXYTestCase.test_a85decode_errors  s   uRy>Cc3$88C<MMA"":5!:">>  5!:!56 ?"":5!:">>  5!:!5UC ?"":5!:">>  UA3Z!7%!?tL ?>  	*f&6&6&2$ 	 	@*f&6&6&:$ 	 	H 	*f&6&6&-	/*f&6&6&-U 	 	<-*f&6&6&-U 	 	<*f&6&6&/u 	 	>*f&6&6&/u# 	 	O 	*f&6&6EJ*f&6&6UK*f&6&6eL*f&6&6uM*f&6&6N*f&6&6%) 	 	+? ?>>>>>>>>s$   .(M4*N"1N4NNN.c           	        \        \        ^!4      4      \        R4      ,           \        \        ^R4      4      ,           pV F\  pV P                  \        \	        V.4      R7      ;_uu_ 4        \
        P                  ! R\	        V.4      ,           4       RRR4       K^  	  V P                  \        \
        P                  R4       V P                  \        \
        P                  R4       V P                  \        \
        P                  R4       V P                  \        \
        P                  R	4       V P                  \        \
        P                  R
4       R#   + '       g   i     EK-  ; i)!   s	   "',./:[\]rd  re     0000N   |s   |Ns   |Nss   |NsCs   |NsC1)listr   r%   rj  r  r   rH  rk  s   &  r   test_b85decode_errors$BaseXYTestCase.test_b85decode_errors  s    uRy/~&'uS#'( A"":5!:">>  5!:!56 ?>  	*f&6&6=*f&6&6>*f&6&6?*f&6&6@*f&6&6A ?>>   -(EE.c           	        \        \        ^!4      4      \        R4      ,           \        \        ^R4      4      ,           pV F\  pV P                  \        \	        V.4      R7      ;_uu_ 4        \
        P                  ! R\	        V.4      ,           4       RRR4       K^  	  V P                  \        \
        P                  R4       V P                  \        \
        P                  R4       V P                  \        \
        P                  R4       V P                  \        \
        P                  R	4       V P                  \        \
        P                  R
4       R#   + '       g   i     EK-  ; i)rq  s	   "',;_`|\~rd  re  rr  N   %s   %ns   %nSs   %nScs   %nSc1)rt  r   r%   rj  r  r   rM  rk  s   &  r   test_z85decode_errors$BaseXYTestCase.test_z85decode_errors  s    uRy/~&'uS#'( A"":5!:">>  5!:!56 ?> 
 	*f&6&6=*f&6&6>*f&6&6?*f&6&6@*f&6&6A ?>>rw  c                :   \         P                  \         P                  \         P                  \         P                  \         P
                  \         P                  \         P                  \         P                  3pV F  pV P                  \        VR 4       K  	  R# )u   with non-ascii ËN)r   r   r   r   r   r   rH  rD  rM  r%   rj  )r   decode_funcsr)   s   &  r   test_decode_nonascii_str'BaseXYTestCase.test_decode_nonascii_str"  sp    ((1100((((((((((* Aj!-BC r   c                N    V P                  \        P                  \        4       R # r_   )assertIsSubclassr   r   rj  r   s   &r   test_ErrorHeritage!BaseXYTestCase.test_ErrorHeritage.  s    hnnj9r   c                   \         P                  p\         P                  p\         P                  p\         P                  pV P                  V! R 4      R 4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R	4      R
4       V P                  V! R4      R4       V P                  V! R 4      R 4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R	4      R4       V P                  V! R4      R4       V P                  V! R 4      R 4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R	4      R4       V P                  V! R4      R4       V P                  V! R 4      R 4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R	4      R4       V P                  V! R4      R4       R# ) r      fs   Zg==s   fos   Zm8=s   foos   Zm9vs   foobs   Zm9vYg==s   foobas   Zm9vYmE=s   foobars   Zm9vYmFys   MY======s   MZXQ====s   MZXW6===s   MZXW6YQ=s   MZXW6YTBs   MZXW6YTBOI======s   CO======s   CPNG====s   CPNMU===s   CPNMUOG=s   CPNMUOJ1s   CPNMUOJ1E8======s   66s   666Fs   666F6Fs   666F6F62s
   666F6F6261s   666F6F626172N)r   rd   r   r   r   r;   )r   rd   r   r   r   s   &    r   test_RFC4648_test_cases&BaseXYTestCase.test_RFC4648_test_cases1  sv   $$	**$$	$$	3-4'25)736*G47+[98,k:9-{;3-4+65);76*K87+[98,k:9-/BCc*C0d+[9e,k:f-{;g.<h/=i02EF3-4%05)736*I67+[98,m<9-?r   r   N)(r   r   r   r   r\   r`   ri   re   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0  r@  rE  rI  rN  r\  r`  rn  ru  rz  r~  r  r  r   r   r   s   @r   rX   rX   d   s     ,,
B=50@d6@pCE@88"'JR; K;6<;>"8C60Kd 6D 6D,2\!2F!2FBB#+JBB
D:%@ %@r   rX   c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )TestMainiY  c                    \         P                  P                  \        P                  4      '       d'   \         P
                  ! \        P                  4       R # R # r_   )ospathexistsr   TESTFNunlinkr   s   &r   tearDownTestMain.tearDownZ  s2    77>>)**++IIi&&' ,r   c                H    \         P                  ! R R.VO5!  P                  # )-mr   )r   assert_python_okout)r   argss   &*r   
get_outputTestMain.get_output^  s     --dHDtDHHHr   c                $   \        \        P                  R 4      ;_uu_ 4       pVP                  R4       RRR4       V P	                  R\        P                  4      pV P                  VP                  4       R4       R#   + '       g   i     LR; i)wb   ab
N-e   Yf9iCg==openr   r  writer  r;   rstripr   fpoutputs   &  r   test_encode_fileTestMain.test_encode_filea  s]    )""D))RHH[! *y'7'78+6 *)   A??B	c                   \         P                  ! R RR4      ;_uu_ 4       pVP                  R4      w  r#RRR4       V P                  XP	                  4       R4       V P                  X4       R#   + '       g   i     LC; i)r  r   r  r  Nr  )r   spawn_pythoncommunicater;   r  assertIsNone)r   procr  errs   &   r   test_encode_from_stdinTestMain.test_encode_from_stding  s]    ''h==''4HC >{3# >=s   A00B 	c                $   \        \        P                  R 4      ;_uu_ 4       pVP                  R4       RRR4       V P	                  R\        P                  4      pV P                  VP                  4       R4       R#   + '       g   i     LR; i)r  r  Nz-ds   abr  r  s   &  r   rU   TestMain.test_decodem  s]    )""D))RHH[! *y'7'78)4 *)r  c                p    V P                  R 4      pV P                  RV4       V P                  RV4       R# )z-h   usage:    -d, -u: decodeN)r  assertInr   r  s   & r    test_prints_usage_with_help_flag)TestMain.test_prints_usage_with_help_flags  s-    &j&)'0r   c                    \         P                  ! R RR4      P                  pV P                  RV4       V P                  RV4       R# )r  r   z-xr  r  N)r   assert_python_failurer  r  r  s   & r   #test_prints_usage_with_invalid_flag,TestMain.test_prints_usage_with_invalid_flagx  s9    44T8TJNNj&)'0r   r   N)r   r   r   r   r  r  r  r  rU   r  r  r   r   r   s   @r   r  r  Y  s.     (I751
1 1r   r  __main__)unittestr   r   r  r   test.supportr   r   r   test.support.import_helperr   TestCaser
   r   rX   r  r   mainr   r   r   <module>r     s       	  % " & :8X&& 8OT8,, OTdr@X&& r@j"1x   "1H zMMO r   