
    ,hh                     (   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS/r\R                  R                  r\R                  R                  r\R                  " SS9S 5       r\R                   " S\R"                  \R$                  -  5      rSS jrS	 r\R                   " S
\R,                  \R"                  -  5      R.                  r\R                   " S\R,                  \R"                  -  5      R.                  r " S S\R4                  5      rg)    DecimalNFractioni @  )maxsizec                      [        US[        5      n[        [        [        U 5      5      U-  5      nU S:  a  UOU* nUS:X  a  S$ U$ ! [         a	    [
        n N'f = f)Nr   )pow_PyHASH_MODULUShashabs
ValueError_PyHASH_INF)	numeratordenominatordinvhash_results        2/opt/python-3.13.8/usr/lib/python3.13/fractions.py_hash_algorithmr      se    2;O4( T#i.)D011nU5&F22)6)+  s   A AAa  
    \A\s*                                  # optional whitespace at the start,
    (?P<sign>[-+]?)                        # an optional sign, then
    (?=\d|\.\d)                            # lookahead for digit or .digit
    (?P<num>\d*|\d+(_\d+)*)                # numerator (possibly empty)
    (?:                                    # followed by
       (?:\s*/\s*(?P<denom>\d+(_\d+)*))?   # an optional denominator
    |                                      # or
       (?:\.(?P<decimal>\d*|\d+(_\d+)*))?  # an optional fractional part
       (?:E(?P<exp>[-+]?\d+(_\d+)*))?      # and optional exponent
    )
    \s*\Z                                  # and optional whitespace to finish
c                     US:  a	  USU-  -  nO	U SU* -  -  n [        XS-	  -   U5      u  pEUS:X  a  US-  S:X  a  US-  nU(       a  US:  OU S:  nU[        U5      4$ )Nr   
      r	   )divmodr   )ndexponentno_neg_zeroqrsigns          r   _round_to_exponentr"   J   sx     1}	R\	R(] !Av,"DAAv!a%1*	R1q5QUDQ<    c                    U S:X  a  SSSU-
  4$ [        [        U 5      5      [        U5      pC[        U5      [        U5      -
  XC:*  -   nXR-
  n[        XU5      u  px[        [        U5      5      US-   :X  a
  US-  nUS-  nXxU4$ )Nr   Fr   r   )strr   lenr"   )	r   r   figuresstr_nstr_dmr   r!   significands	            r   _round_to_figuresr,   g   s    " 	AvaW$$ s1v;A5E
SZ5>2A {H*1:D 3{!+Ah&&r#   ay  
    (?:
        (?P<fill>.)?
        (?P<align>[<>=^])
    )?
    (?P<sign>[-+ ]?)
    # Alt flag forces a slash and denominator in the output, even for
    # integer-valued Fraction objects.
    (?P<alt>\#)?
    # We don't implement the zeropad flag since there's no single obvious way
    # to interpret it.
    (?P<minimumwidth>0|[1-9][0-9]*)?
    (?P<thousands_sep>[,_])?
a  
    (?:
        (?P<fill>.)?
        (?P<align>[<>=^])
    )?
    (?P<sign>[-+ ]?)
    (?P<no_neg_zero>z)?
    (?P<alt>\#)?
    # A '0' that's *not* followed by another digit is parsed as a minimum width
    # rather than a zeropad flag.
    (?P<zeropad>0(?=[0-9]))?
    (?P<minimumwidth>0|[1-9][0-9]*)?
    (?P<thousands_sep>[,_])?
    (?:\.(?P<precision>0|[1-9][0-9]*))?
    (?P<presentation_type>[eEfFgG%])
c                     ^  \ rS rSrSrS0U 4S jjr\S 5       r\S 5       r\U 4S j5       r	S r
S rS1S	 jr\S
 5       r\S 5       rS rS rS rS rS r S2S jrS r\" \\R0                  5      u  rrS r\" \\R8                  5      u  rrS r\" \\R@                  5      u  r!r"S r#\" \#\RH                  5      u  r%r&S r'\" \'\RP                  S5      u  r)r*S r+\" \+\,S5      u  r-r.S r/\" \/\R`                  S5      u  r1r2S r3S r4S r5S r6S r7\Rp                  4S jr9S  r:S! r;S" r<S3S# jr=S$ r>S% r?S& r@S' rAS( rBS) rCS* rDS+ rES, rFS- rGS. rHS/rIU =rJ$ )4r      
_numerator_denominatorc                   > [         [        U ]  U 5      nUGc  [        U5      [        L a  Xl        SUl        U$ [        U[        R                  5      (       a$  UR                  Ul        UR                  Ul        U$ [        U[        [        45      (       a  UR                  5       u  Ul        Ul        U$ [        U[        5      (       Ga  [         R#                  U5      nUc  [%        SU-  5      e[	        UR'                  S5      =(       d    S5      nUR'                  S5      nU(       a  [	        U5      nOSnUR'                  S5      nU(       a4  UR)                  SS5      nS	[+        U5      -  nX-  [	        U5      -   nX'-  nUR'                  S
5      nU(       a#  [	        U5      nUS:  a	  US	U-  -  nO	US	U* -  -  nUR'                  S5      S:X  a  U* nO[-        S5      e[        U5      [        s=L a  [        U5      L a  O  OO{[        U[        R                  5      (       aQ  [        U[        R                  5      (       a2  UR                  UR                  -  UR                  UR                  -  p!O[-        S5      eUS:X  a  [/        SU-  5      e[0        R2                  " X5      n	US:  a  U	* n	X-  nX)-  nXl        X#l        U$ )Nr   z Invalid literal for Fraction: %rnum0denomdecimal_ r   expr   r!   -z2argument should be a string or a Rational instancez+both arguments should be Rational instancesFraction(%s, 0))superr   __new__typeintr0   r1   
isinstancenumbersRationalr   r   floatr   as_integer_ratior%   _RATIONAL_FORMATmatchr   groupreplacer&   	TypeErrorZeroDivisionErrormathgcd)clsr   r   selfr*   r5   r6   scaler9   g	__class__s             r   r=   Fraction.__new__   s   > Xs+C0I#%"+$%!Iw'7'788"+"5"5$-$9$9!Iw'7885>5O5O5Q2!2Is++$**959$%G%.&/ 0 0 5#6	("%e*K"#Kggi0G")//#r": "CL 0$-$5G$D	#,''%.C!#h!8%S0I'2t83K776?c)!*
I   !9 : : )_8tK'88G$4$455{G$4$455##k&=&==%%	(=(== #
  1 2 2 !#$5	$ABBHHY,?A	#'r#   c           	         [        U[        R                  5      (       a  U " U5      $ [        U[        5      (       d4  [	        U R
                  < SU< S[        U5      R
                  < S35      eU R                  " UR                  5       6 $ )Nz%.from_float() only takes floats, not  ())	r@   rA   IntegralrC   rI   __name__r>   _from_coprime_intsrD   )rM   fs     r   
from_floatFraction.from_float4  sq     a))**q6MAu%% \\1d1g.>.>@ A A%%q'9'9';<<r#   c           	      2   SSK Jn  [        U[        R                  5      (       a  U" [        U5      5      nOD[        X5      (       d4  [        U R                  < SU< S[        U5      R                  < S35      eU R                  " UR                  5       6 $ )Nr   r   z).from_decimal() only takes Decimals, not rT   rU   )r6   r   r@   rA   rV   r?   rI   rW   r>   rX   rD   )rM   decr   s      r   from_decimalFraction.from_decimalB  sv     	$c7++,,#c(#CC))sDI$6$689 9 %%s';';'=>>r#   c                F   > [         [        U ]  U 5      nXl        X#l        U$ N)r<   r   r=   r0   r1   )rM   r   r   objrQ   s       r   rX   Fraction._from_coprime_intsN  s&     Hc*3/"&
r#   c                      U R                   S:H  $ Nr   r1   rN   s    r   
is_integerFraction.is_integerZ  s      A%%r#   c                 2    U R                   U R                  4$ ra   r/   rg   s    r   rD   Fraction.as_integer_ratio^  s    
 !2!233r#   c                    US:  a  [        S5      eU R                  U::  a  [        U 5      $ Su  p#pEU R                  U R                  pv Xg-  nX8U-  -   n	X:  a  OXEX(U-  -   U	4u  p#pEXvX-  -
  pvM'  X-
  U-  n
SU-  X:U-  -   -  U R                  ::  a  [        R	                  XE5      $ [        R	                  X*U-  -   X:U-  -   5      $ )Nr   z$max_denominator should be at least 1)r   r   r   r      )r   r1   r   r0   rX   )rN   max_denominatorp0q0p1q1r   r   aq2ks              r   limit_denominatorFraction.limit_denominatore  s    @ QCDD/D>!# 1 11AbDB#R"Wb0NBBeq  "$ Q3R4=D---..r66..rB$wR4@@r#   c                     U R                   $ ra   )r0   rs   s    r   r   Fraction.numerator  s    ||r#   c                     U R                   $ ra   rf   ry   s    r   r   Fraction.denominator  s    ~~r#   c                 n    U R                   R                  < SU R                  < SU R                  < S3$ )N(z, rU   )rQ   rW   r0   r1   rg   s    r   __repr__Fraction.__repr__  s*    #~~66#0A0AC 	Cr#   c                     U R                   S:X  a  [        U R                  5      $ U R                  < SU R                   < 3$ )Nr   /)r1   r%   r0   rg   s    r   __str__Fraction.__str__  s4    !t''"oot/@/@AAr#   c                 "   US   =(       d    SnUS   =(       d    SnUS   S:X  a  SOUS   n[        US   5      n[        US	   =(       d    S
5      nUS   =(       d    SnU R                  U R                  pU	S:  d  U(       a  [	        U5      U  SX  3n
O[	        U5      U  n
US:  a  SOUnX&[        U5      -
  [        U
5      -
  -  nUS:X  a  X-   U
-   $ US:X  a  X-   U-   $ US:X  a  [        U5      S-  nUS U U-   U
-   XS  -   $ X-   U
-   $ )Nfill align>r!   r:   r8   altminimumwidthr4   thousands_sepr   r   r   <^rm   )boolr?   r0   r1   r   r&   )rN   rF   r   r   pos_signalternate_formr   r   r   r   bodyr!   paddinghalfs                 r   _format_generalFraction._format_general  sA    V}#g%#v#-25=eEl+507C8o.4"  1 11q5N!fm_-Qq.ABD!fm_-D!es T2SY>?C<>D((c\;((c\w<1$D5D>D(4/'%.@@>D((r#   c           
        ^^  US   =(       d    SnUS   =(       d    SnUS   S:X  a  SOUS   n[        US   5      n[        US	   5      n[        US
   5      n[        US   =(       d    S5      nUS   m [        US   =(       d    S5      n	US   n
U
S;   =(       a    U(       + nU(       + nU
S;   a  SOSnUS:X  a  US:X  a  SnU
S;   a7  U	* nU
S:X  a  US-  n[        U R                  U R                  X5      u  nnSnU	nOkU
S;   a  [        U	S5      OU	S-   n[        U R                  U R                  U5      u  nnnU
S;   =(       d    US:  =(       d    UU-   S:*  nU(       a  US-
  OU* nU
S:X  a  SnOU(       a  U UU-   S 3nOSnUSUS-    S 3 nU(       a  SOUnUS [        U5      U-
   mU[        U5      U-
  S  nU(       a  UR                  S5      nU(       a	  U(       d  SOS!nUU-   U-   nU(       a=  U[        U5      -
  [        U5      -
  nTR                  T (       a  S"U-  S#-  S-   OU5      mT (       aJ  S[        T5      S-
  S"-  -   nTS U SR                  UU 4S$ j[        U[        T5      S"5       5       5      -   mTU-   nX([        U5      -
  [        U5      -
  -  nUS:X  a  UU-   U-   $ US%:X  a  UU-   U-   $ US&:X  a  [        U5      S-  nUS U U-   U-   UUS  -   $ UU-   U-   $ )'Nr   r   r   r   r!   r:   r8   r   r   zeropadr   r4   r   	precision6presentation_typegGEFGEe=TzfF%%rm   Fr   eEr   z+03dr   .      c              3   8   >#    U  H  nTTXS -    -   v   M     g7f)r   N ).0posleadingr   s     r   	<genexpr>/Fraction._format_float_style.<locals>.<genexpr>%  s&      4<C Ag 66<s   r   r   )r   r?   r"   r0   r1   maxr,   r&   rstripzfilljoinrange)!rN   rF   r   r   r   r   r   r   r   r   r   
trim_zeros
trim_pointexponent_indicatorr   negativer+   
scientific	point_posr'   suffixdigitsr!   	frac_part	separatortrailingmin_leading	first_posr   r   r   r   r   s!                                  @@r   _format_float_styleFraction._format_float_style  s   V}#g%#v#-25=5/0eEl+uY'(507C8o.k*1c2	!"56&$.E~3E
''
$5$>SCC<DCKG %!zH C'A$6!2!2H%K!HkJ!I %, Iq!] 
 /@!2!2G/=+Hk8 "T) ,a<,g%+ 
 (2!yI #F*+Hy,@+FGFF  )a-12
 sH23v;233v;245	!((-I$YBC	y(61 &T2S]BK mm,9K1$q({G
 S\A-22Ijy)BGG 4 CL!<4 - G !T2SY>?C<T>D((c\$;((c\w<1$D5D>D(4/'$%.@@'>D((r#   c                    [        U5      =n(       a  U R                  U5      $ [        U5      =n(       a  US   b  US   c  U R                  U5      $ [	        SU< S[        U 5      R                  < 35      e)Nr   r   zInvalid format specifier z for object of type )%_GENERAL_FORMAT_SPECIFICATION_MATCHERr   #_FLOAT_FORMAT_SPECIFICATION_MATCHERr   r   r>   rW   )rN   format_specrF   s      r   
__format__Fraction.__format__8  s     :+FF5F''..7DD5D W~%y)9)A//66' 7""&t*"5"5!8:
 	
r#   c                    ^ ^^ UUU 4S jnSTR                   -   S-   Ul         T R                  Ul        UUU 4S jnSTR                   -   S-   Ul         T R                  Ul        X44$ )Nc                 B  > [        U[        5      (       a  T" X5      $ [        U[        5      (       a  T" U [        U5      5      $ [        U[        5      (       a  T" [        U 5      U5      $ T(       a'  [        U[        5      (       a  T" [	        U 5      U5      $ [
        $ ra   )r@   r   r?   rC   complexNotImplemented)rs   bfallback_operatorhandle_complexmonomorphic_operators     r   forward-Fraction._operator_fallbacks.<locals>.forward  s}    !X&&+A11As##+Ax{;;Au%%(q155Jq'$:$:(Q77%%r#   __c                 h  > [        U[        R                  5      (       a  T" [        U5      U 5      $ [        U[        R                  5      (       a  T" [        U5      [        U 5      5      $ T(       a:  [        U[        R                  5      (       a  T" [        U5      [        U 5      5      $ [        $ ra   )	r@   rA   rB   r   RealrC   Complexr   r   )r   rs   r   r   r   s     r   reverse-Fraction._operator_fallbacks.<locals>.reverse  s{    !W--..+HQK;;Aw||,,(q58<<Jq'//$B$B(WQZ@@%%r#   __r)rW   __doc__)r   r   r   r   r   s   ```  r   _operator_fallbacksFraction._operator_fallbacksI  sg    b
	&  "3"<"<<tC.66		& !#4#=#==D.66r#   c                    U R                   U R                  p2UR                   UR                  pT[        R                  " X55      nUS:X  a  [        R                  X%-  X4-  -   X5-  5      $ X6-  nX%U-  -  XG-  -   n[        R                  " X5      n	U	S:X  a  [        R                  XU-  5      $ [        R                  X-  XuU	-  -  5      $ re   r0   r1   rK   rL   r   rX   
rs   r   nadanbdbrP   stg2s
             r   _addFraction._add      q~~Bq~~BHHR6..rw/@"'JJG'NRV#XXa^7..qb&99**17ArNCCr#   c                    U R                   U R                  p2UR                   UR                  pT[        R                  " X55      nUS:X  a  [        R                  X%-  X4-  -
  X5-  5      $ X6-  nX%U-  -  XG-  -
  n[        R                  " X5      n	U	S:X  a  [        R                  XU-  5      $ [        R                  X-  XuU	-  -  5      $ re   r   r   s
             r   _subFraction._sub  r   r#   c                 "   U R                   U R                  p2UR                   UR                  pT[        R                  " X%5      nUS:  a  X&-  nXV-  n[        R                  " XC5      nUS:  a  XG-  nX7-  n[        R                  X$-  XS-  5      $ re   r   )rs   r   r   r   r   r   g1r   s           r   _mulFraction._mul  s}    q~~Bq~~BXXb6IBIBXXb6IBIB**27BG<<r#   c                 d   UR                   UR                  p2US:X  a  [        SU-  5      eU R                   U R                  pT[        R                  " XB5      nUS:  a  XF-  nX&-  n[        R                  " X55      nUS:  a  XW-  nX7-  nXC-  X%-  pU	S:  a  U* U	* p[
        R                  X5      $ )Nr   r;   r   )r0   r1   rJ   rK   rL   r   rX   )
rs   r   r   r   r   r   r   r   r   r   s
             r   _divFraction._div+  s     q~~B7#$5$:;;q~~BXXb6IBIBXXb6IBIBw1q52rq**100r#   c                 h    U R                   UR                  -  U R                  UR                   -  -  $ ra   )r   r   rs   r   s     r   	_floordivFraction._floordivA  s'    amm+1LMMr#   Fc                     U R                   UR                   p2[        U R                  U-  X!R                  -  5      u  pEU[        XRU-  5      4$ ra   )r   r   r   r   )rs   r   r   r   divn_mods         r   _divmodFraction._divmodG  sC    BAKK",b;;.>?
HUG,,,r#   c                     U R                   UR                   p2[        U R                  U-  UR                  U-  -  X#-  5      $ ra   )r   r   r   )rs   r   r   r   s       r   _modFraction._modO  s7    Br)akkB.>?IIr#   c                    [        U[        R                  5      (       Ga  UR                  S:X  a  UR                  nUS:  a0  [
        R                  U R                  U-  U R                  U-  5      $ U R                  S:  a2  [
        R                  U R                  U* -  U R                  U* -  5      $ U R                  S:X  a  [        SU R                  U* -  -  5      e[
        R                  U R                  * U* -  U R                  * U* -  5      $ [        U 5      [        U5      -  $ [        U[        [        45      (       a  [        U 5      U-  $ [        $ )Nr   r   r;   )r@   rA   rB   r   r   r   rX   r0   r1   rJ   rC   r   r   )rs   r   powers      r   __pow__Fraction.__pow__V  s>    a))**}}!A:#66q||u7L78~~7NP P\\A%#66q~~%7O78||v7MO O\\Q&+,=,-NNuf,D-E F F $66UF7R9:5&7PR R
 Qx58++E7+,,8q= !!r#   c                 :   U R                   S:X  a  U R                  S:  a  XR                  -  $ [        U[        R                  5      (       a#  [        UR                  UR                  5      U -  $ U R                   S:X  a  XR                  -  $ U[        U 5      -  $ )Nr   r   )	r1   r0   r@   rA   rB   r   r   r   rC   )r   rs   s     r   __rpow__Fraction.__rpow__v  sz    >>Q1<<1#4$$a))**AKK71<<>>Q$$E!H}r#   c                 V    [         R                  U R                  U R                  5      $ ra   r   rX   r0   r1   ry   s    r   __pos__Fraction.__pos__  s    **1<<HHr#   c                 X    [         R                  U R                  * U R                  5      $ ra   r  ry   s    r   __neg__Fraction.__neg__  s    **ALL=!..IIr#   c                 h    [         R                  [        U R                  5      U R                  5      $ ra   )r   rX   r   r0   r1   ry   s    r   __abs__Fraction.__abs__  s"    **3q||+<annMMr#   c                     U R                   S:  a!  U" U R                   * U R                  -  * 5      $ U" U R                   U R                  -  5      $ Nr   r/   )rs   _indexs     r   __int__Fraction.__int__  sC    <<!Q\\MQ^^;<==!,,!..899r#   c                     U R                   S:  a  U R                   * U R                  -  * $ U R                   U R                  -  $ r  r/   ry   s    r   	__trunc__Fraction.__trunc__  s9    <<!ll]ann455<<1>>11r#   c                 4    U R                   U R                  -  $ ra   r/   ry   s    r   	__floor__Fraction.__floor__  s    ||q~~--r#   c                 8    U R                   * U R                  -  * $ ra   r/   ry   s    r   __ceil__Fraction.__ceil__  s     ,,!..011r#   c                 *   UcM  U R                   n[        U R                  U5      u  p4US-  U:  a  U$ US-  U:  a  US-   $ US-  S:X  a  U$ US-   $ S[        U5      -  nUS:  a  [	        [        X-  5      U5      $ [	        [        X-  5      U-  5      $ )Nrm   r   r   r   )r1   r   r0   r   r   round)rN   ndigitsr   floor	remaindershifts         r   	__round__Fraction.__round__  s    
 ?!!A%dooq9E1}q Q"qy aqy CL  Q;E$,/77E$,/%788r#   c                 B    [        U R                  U R                  5      $ ra   )r   r0   r1   rg   s    r   __hash__Fraction.__hash__  s    t0A0ABBr#   c                 h   [        U5      [        L a%  U R                  U:H  =(       a    U R                  S:H  $ [	        U[
        R                  5      (       a9  U R                  UR                  :H  =(       a    U R                  UR                  :H  $ [	        U[
        R                  5      (       a  UR                  S:X  a  UR                  n[	        U[        5      (       aN  [        R                  " U5      (       d  [        R                  " U5      (       a  SU:H  $ X R!                  U5      :H  $ ["        $ )Nr   r           )r>   r?   r0   r1   r@   rA   rB   r   r   r   imagrealrC   rK   isnanisinfrZ   r   r   s     r   __eq__Fraction.__eq__  s    7c><<1$<1)<<a))**LLAKK/ 4NNamm35a))affkAazz!}}

1 axLLO++ "!r#   c                    [        U[        R                  5      (       a7  U" U R                  UR                  -  U R
                  UR                  -  5      $ [        U[        5      (       aV  [        R                  " U5      (       d  [        R                  " U5      (       a	  U" SU5      $ U" X R                  U5      5      $ [        $ )Nr*  )r@   rA   rB   r0   r   r1   r   rC   rK   r-  r.  rZ   r   )rN   otherops      r   _richcmpFraction._richcmp  s     eW--..doo(9(99''%//9; ;eU##zz%  DJJu$5$5#u~%$ 677!!r#   c                 B    U R                  U[        R                  5      $ ra   )r4  operatorltr   s     r   __lt__Fraction.__lt__      zz!X[[))r#   c                 B    U R                  U[        R                  5      $ ra   )r4  r7  gtr   s     r   __gt__Fraction.__gt__  r;  r#   c                 B    U R                  U[        R                  5      $ ra   )r4  r7  ler   s     r   __le__Fraction.__le__  r;  r#   c                 B    U R                  U[        R                  5      $ ra   )r4  r7  ger   s     r   __ge__Fraction.__ge__  r;  r#   c                 ,    [        U R                  5      $ ra   )r   r0   ry   s    r   __bool__Fraction.__bool__   s     ALL!!r#   c                 J    U R                   U R                  U R                  44$ ra   )rQ   r0   r1   rg   s    r   
__reduce__Fraction.__reduce__  s     $2C2C DEEr#   c                 x    [        U 5      [        :X  a  U $ U R                  U R                  U R                  5      $ ra   r>   r   rQ   r0   r1   rg   s    r   __copy__Fraction.__copy__  .    :!K~~doot/@/@AAr#   c                 x    [        U 5      [        :X  a  U $ U R                  U R                  U R                  5      $ ra   rO  )rN   memos     r   __deepcopy__Fraction.__deepcopy__  rR  r#   )r1   r0   )r   N)i@B )Tra   )KrW   
__module____qualname____firstlineno__	__slots__r=   classmethodrZ   r^   rX   rh   rD   rv   propertyr   r   r   r   r   r   r   r   r   r7  add__add____radd__r   sub__sub____rsub__r   mul__mul____rmul__r   truediv__truediv____rtruediv__r   floordiv__floordiv____rfloordiv__r   r   
__divmod____rdivmod__r   mod__mod____rmod__r  r  r  r  r  indexr  r  r  r  r$  r'  r/  r4  r9  r>  rB  rF  rI  rL  rP  rU  __static_attributes____classcell__)rQ   s   @r   r   r      s   * /IgR = = 	? 	? 	 	&47Ar    C
B )Db)H
$ ,0l dD ,D(,,?GXD ,D(,,?GX= ,D(,,?GX1( !4D(:J:J KKN #6iARARTY"ZL-- 2'65IJJ
 ,D(,,FGX"@IJN #.. :2.2
94C"*",****"FB
B Br#   )F)r6   r   	functoolsrK   rA   r7  resys__all__	hash_infomodulusr   infr   	lru_cacher   compileVERBOSE
IGNORECASErE   r"   r,   DOTALL	fullmatchr   r   rB   r   r   r#   r   <module>r     s        	 
,
 --'' mm
w'* (*@ ::  ZZ"--! ":$'P )+

 4 YY) 'Y &$ ')jj 2 YY' 'Y $$`Bw `Br#   