
    Fg                        S SK r S SKrS SKrS r " S S\5      r\ R                   " S S\5      5       r\ R                   " S S\5      5       r " S	 S
\5      r	 " S S\5      r
S rS rS rSr " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S \5      r\R.                   " S! S"\5      5       r " S# S$\5      r\r\R.                   " S% S&\5      5       rg)'    Nc                 j    U =(       a+    U S   S:H  =(       a    U R                  5       =(       a    U S:g  $ )Nr   0)isdigitvalues    f/Users/admin/workspace/ai/PDFMathTranslate/myenv/lib/python3.13/site-packages/semantic_version/base.py_has_leading_zeror	   
   s6     aC     c                   $    \ rS rSr/ rS rS rSrg)MaxIdentifier   c                     g)NzMaxIdentifier() selfs    r   __repr__MaxIdentifier.__repr__   s     r
   c                 ,    [        XR                  5      $ N
isinstance	__class__r   others     r   __eq__MaxIdentifier.__eq__       %00r
   r   N)__name__
__module____qualname____firstlineno__	__slots__r   r   __static_attributes__r   r
   r   r   r      s    I!1r
   r   c                   2    \ rS rSrS/rS rS rS rS rSr	g)	NumericIdentifier   r   c                 $    [        U5      U l        g r   )intr   r   r   s     r   __init__NumericIdentifier.__init__   s    Z
r
   c                      SU R                   -  $ )NzNumericIdentifier(%r)r   r   s    r   r   NumericIdentifier.__repr__"   s    &33r
   c                 j    [        U[        5      (       a  U R                  UR                  :H  $ [        $ r   )r   r%   r   NotImplementedr   s     r   r   NumericIdentifier.__eq__%   s)    e.//::,,r
   c                     [        U[        5      (       a  g[        U[        5      (       a  g[        U[        5      (       a  U R                  UR                  :  $ [
        $ NT)r   r   AlphaIdentifierr%   r   r/   r   s     r   __lt__NumericIdentifier.__lt__*   sI    e]++//011::++!!r
   r   N
r   r   r    r!   r"   r*   r   r   r4   r#   r   r
   r   r%   r%      s    	I 4
"r
   r%   c                   2    \ rS rSrS/rS rS rS rS rSr	g)	r3   5   r   c                 0    UR                  S5      U l        g )Nascii)encoder   r)   s     r   r*   AlphaIdentifier.__init__9   s    \\'*
r
   c                      SU R                   -  $ )NzAlphaIdentifier(%r)r   r   s    r   r   AlphaIdentifier.__repr__<   s    $tzz11r
   c                 j    [        U[        5      (       a  U R                  UR                  :H  $ [        $ r   )r   r3   r   r/   r   s     r   r   AlphaIdentifier.__eq__?   s(    e_--::,,r
   c                     [        U[        5      (       a  g[        U[        5      (       a  g[        U[        5      (       a  U R                  UR                  :  $ [
        $ )NTF)r   r   r%   r3   r   r/   r   s     r   r4   AlphaIdentifier.__lt__D   sI    e]++011//::++!!r
   r   Nr6   r   r
   r   r3   r3   5   s    	I+2
"r
   r3   c                   L   \ rS rSr\R
                  " S5      r\R
                  " S5      r       SS jr\	SS j5       r
S rS rS	 rSS
 jr\	SS j5       r\	S S j5       r\	SS j5       r\	S 5       rS rS rS rS rSS jr\S 5       rS rS rS rS rS rS rS r Sr!g)!VersionO   zB^(\d+)\.(\d+)\.(\d+)(?:-([0-9a-zA-Z.-]+))?(?:\+([0-9a-zA-Z.-]+))?$zL^(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:-([0-9a-zA-Z.-]*))?(?:\+([0-9a-zA-Z.-]*))?$Nc                 B   U(       a  [         R                  " S[        SS9  US LnX#s=L =(       a(    Us=L =(       a    Us=L =(       a    Us=L =(       a    S L Os  (       + n	X-  (       d  [        S5      eU(       a  U R	                  X5      u  p#pEnOB[        U=(       d    S5      nU(       d  [        U=(       d    S5      nU R                  X#XEXg5        X l        X0l        X@l	        XPl
        X`l        Xpl        U R                  SS9U l        U R                  SS9U l        g )	NzIPartial versions will be removed in 3.0; use SimpleSpec('1.x.x') instead.   
stacklevelz6Call either Version('1.2.3') or Version(major=1, ...).r   F)
with_buildT)warningswarnDeprecationWarning
ValueErrorparsetuple_validate_kwargsmajorminorpatch
prereleasebuildpartial_build_precedence_key_cmp_precedence_key_sort_precedence_key)
r   version_stringrR   rS   rT   rU   rV   rW   has_text	has_partss
             r   r*   Version.__init__T   s     MM["
 "-OO5OOJOO%OO4OP	#UVV59ZZ5X2E%U z/R0Jekr*!!%5R


$
 $(#=#=#=#O $($>$>$$>$O!r
   c                 0    Uc	  U(       a  U$ [        U5      $ r   )r(   )clsr   
allow_nones      r   _coerceVersion._coerce   s    =ZL5zr
   c                     U R                   (       aD  U R                  U R                  s=:X  a  S:X  a#  O  O [        U R                  SSU R
                  S9$ [        U R                  S-   SSU R
                  S9$ Nr   rR   rS   rT   rW      )rU   rS   rT   rD   rR   rW   r   s    r   
next_majorVersion.next_major   se    ??tzzTZZ<1<jj	  jj1n	 r
   c                     U R                   (       a:  U R                  S:X  a*  [        U R                  U R                  SU R
                  S9$ [        U R                  U R                  S-   SU R
                  S9$ re   )rU   rT   rD   rR   rS   rW   r   s    r   
next_minorVersion.next_minor   sc    ??tzzQjjjj	  jjjj1n	 r
   c                     U R                   (       a4  [        U R                  U R                  U R                  U R
                  S9$ [        U R                  U R                  U R                  S-   U R
                  S9$ )Nrf   rg   )rU   rD   rR   rS   rT   rW   r   s    r   
next_patchVersion.next_patch   sa    ??jjjjjj	  jjjjjj1n	 r
   c                 J   US:X  a  U $ US:X  a?  [        U R                  U R                  U R                  U R                  U R
                  S9$ US:X  a4  [        U R                  U R                  U R                  U R
                  S9$ US:X  a=  [        U R                  U R                  U R
                  (       a  SOSU R
                  S9$ US	:X  aF  [        U R                  U R
                  (       a  SOSU R
                  (       a  SOSU R
                  S9$ [        S
U-  5      e)z@Return a new Version object, truncated up to the selected level.rV   rU   )rR   rS   rT   rU   rW   rT   rf   rS   Nr   rR   zInvalid truncation level `%s`.)rD   rR   rS   rT   rU   rW   rN   )r   levels     r   truncateVersion.truncate   s    GKl"jjjjjj??  gjjjjjj	  gjjjj"lld	  gjj"lld"lld	  =EFFr
   c                 H   [         R                  " S5      nUR                  U5      nU(       d  [        SU-  5      eUSUR	                  5        nU(       d1  UR                  S5      S:  a  US-  nUR                  S5      S:  a  M  SR                  S UR                  S5       5       5      nUR	                  5       [        U5      :X  a	  [        XRS9$ XR	                  5       S n[         R                  " S	S
U5      nUS   S:X  a  SnUSS nO\US   S:X  a  SnUSS nOKUS   S
:X  a$  USS nSU;   a  UR                  SS5      u  pxO"USpOSU;   a  UR                  SS5      u  pxOUSpUR                  SS5      nU(       a	  U< S
U< 3nU(       a	  U< SU< 3nU " XRS9$ )aS  Coerce an arbitrary version string into a semver-compatible one.

The rule is:
- If not enough components, fill minor/patch with zeroes; unless
  partial=True
- If more than 3 dot-separated components, extra components are "build"
  data. If some "build" data already appeared, append it to the
  extra components

Examples:
    >>> Version.coerce('0.1')
    Version(0, 1, 0)
    >>> Version.coerce('0.1.2.3')
    Version(0, 1, 2, (), ('3',))
    >>> Version.coerce('0.1.2.3+4')
    Version(0, 1, 2, (), ('3', '4'))
    >>> Version.coerce('0.1+2-3+4_5')
    Version(0, 1, 0, (), ('2-3', '4-5'))
z^\d+(?:\.\d+(?:\.\d+)?)?z.Version string lacks a numerical component: %rN.rG   z.0c              3   V   #    U  H  nUR                  S 5      =(       d    S v   M!     g7f)r   N)lstrip.0parts     r   	<genexpr>!Version.coerce.<locals>.<genexpr>   s*      
 + KK##*s   ')rW   z[^a-zA-Z0-9+.-]-r   + rg   )recompilematchrN   endcountjoinsplitlenrD   subreplace)	r`   r[   rW   base_rer   versionrestrU   rV   s	            r   coerceVersion.coerce   s   * **89n-@ ! 
 !%))+.--$q(4 --$q(
 (( 
  c*
 
 99;#n--744iikl+ vv(#t47c>JHE!W^JHE!W^8Dd{$(JJsA$6!
E$("ED[ $

3 2J $bc3'!(*5G!(%0G7,,r
   c                    U(       d  [        SU-  5      eU(       a  U R                  nOU R                  nUR                  U5      nU(       d  [        SU-  5      eUR	                  5       u  pgpn
[        U5      (       a  [        SU-  5      e[        U5      (       a  [        SU-  5      e[        U5      (       a  [        SU-  5      e[        U5      nU R                  Xr5      nU R                  X5      nU	c  U(       a	  U
c  XgUSS4$ Sn	O3U	S:X  a  Sn	O*[        U	R                  S	5      5      n	U R                  U	S
S9  U
c  U(       a  Sn
O6Sn
O3U
S:X  a  Sn
O*[        U
R                  S	5      5      n
U R                  U
SS9  XgXU
4$ )a0  Parse a version string into a tuple of components:
   (major, minor, patch, prerelease, build).

Args:
    version_string (str), the version string to parse
    partial (bool), whether to accept incomplete input
    coerce (bool), whether to try to map the passed in string into a
        valid Version.
z Invalid empty version string: %rzInvalid version string: %rz!Invalid leading zero in major: %rz!Invalid leading zero in minor: %rz!Invalid leading zero in patch: %rNr   r   ru   Fallow_leading_zeroesT)rN   partial_version_re
version_rer   groupsr	   r(   rb   rP   r   _validate_identifiers)r`   r[   rW   r   r   r   rR   rS   rT   rU   rV   s              r   rO   Version.parse)  s    ?.PQQ//JJ  09NJKK16.eU##@>QRRU##@>QRRU##@>QRRE
E+E+EMeT488
2Jz//45J%%ju%M=b[E%++c*+E%%e$%Ge77r
   c           	          U Hk  nU(       d"  [        SU< SSR                  U5      < 35      eUS   S:X  d  M7  UR                  5       (       d  MN  US:w  d  MV  U(       a  M_  [        SU-  5      e   g )NzInvalid empty identifier z in ru   r   r   z%Invalid leading zero in identifier %r)rN   r   r   )r`   identifiersr   items       r   r   Version._validate_identifiersf  sc    D SXXk24 
 Aw#~$,,..TS[I]I] !H4!OPP  r
   c                 .   U[        U5      :w  d<  X R                  X&5      :w  d(  X0R                  X65      :w  d  Uc  U(       a
  Uc*  U(       d#  [        SU< SU< SU< SU< SU< SU< 35      eUb  U R                  USS9  Ub  U R                  US	S9  g g )
Nz Invalid kwargs to Version(major=z, minor=z, patch=z, prerelease=z, build=z
, partial=Fr   T)r(   rb   rN   r   )r`   rR   rS   rT   rU   rV   rW   s          r   rQ   Version._validate_kwargsr  s     U#KK77KK77%g= 5%UG 
 !%%ju%M%%e$%G r
   c                     [        U R                  U R                  U R                  U R                  U R
                  45      $ r   )iterrR   rS   rT   rU   rV   r   s    r   __iter__Version.__iter__  s,    TZZTZZ$**UVVr
   c                    SU R                   -  nU R                  b  SXR                  4-  nU R                  b  SXR                  4-  nU R                  (       d.  U R                  (       a?  U R                  S:X  a/  U R
                  c"  U< SSR                  U R                  5      < 3nU R
                  (       d!  U R                  (       a2  U R
                  S:X  a"  U< SSR                  U R
                  5      < 3nU$ )Nz%dz%s.%dr   r~   ru   r   )rR   rS   rT   rU   rW   rV   r   r   r   s     r   __str__Version.__str__  s    #::!** 55G::!** 55G??t||20E$**J\!(#((4??*CDG::$,,4::+;!(#((4::*>?Gr
   c                 |    U R                   R                  < S[        U 5      < U R                  (       a  SOS< S3$ )N(z, partial=Truer   ))r   r   strrW   r   s    r   r   Version.__repr__  s/    NN##I $"4
 	
r
   c                     [        U R                  U R                  U R                  U R                  U R
                  45      $ r   )hashrR   rS   rT   rU   rV   r   s    r   __hash__Version.__hash__  s.     TZZTZZ$**UVVr
   c                 ^   U R                   (       a  [        S U R                    5       5      nO[        5       4nU(       d$  U R                  U R                  U R
                  U4$ [        S U R                  =(       d    S 5       5      nU R                  U R                  U R
                  UU4$ )ziBuild a precedence key.

The "build" component should only be used when sorting an iterable
of versions.
c              3   x   #    U  H0  nUR                  5       (       a  [        U5      O
[        U5      v   M2     g 7fr   r   r%   r3   rx   s     r   r{   0Version._build_precedence_key.<locals>.<genexpr>  s1      #+D ,0<<>>!$'t?TT+   8:c              3   x   #    U  H0  nUR                  5       (       a  [        U5      O
[        U5      v   M2     g 7fr   r   rx   s     r   r{   r     s1      
( (,||~~d#?4;PP(r   r   )rU   rP   r   rR   rS   rT   rV   )r   rJ   prerelease_key	build_keys       r   rX   Version._build_precedence_key  s     ??" # OO# N N 





	   


(b(
 
	 JJJJJJ
 	
r
   c                     U R                   $ r   )rZ   r   s    r   precedence_keyVersion.precedence_key  s    (((r
   c                 r    [        XR                  5      (       d  [        $ X:  a  gX:  a  gX:X  a  g[        $ )Nrg   r   )r   r   r/   r   s     r   __cmp__Version.__cmp__  s5    %00!!<\]!!r
   c                    [        XR                  5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  =(       a}    U R
                  UR
                  :H  =(       a]    U R                  =(       d    SUR                  =(       d    S:H  =(       a+    U R                  =(       d    SUR                  =(       d    S:H  $ )Nr   )r   r   r/   rR   rS   rT   rU   rV   r   s     r   r   Version.__eq__  s    %00!!JJ%++% :

ekk):

ekk): &BE,<,<,BC: !ru{{'8b9	
r
   c                 p    [        XR                  5      (       d  [        $ [        U 5      [        U5      :g  $ r   )r   r   r/   rP   r   s     r   __ne__Version.__ne__  s*    %00!!T{eEl**r
   c                 t    [        XR                  5      (       d  [        $ U R                  UR                  :  $ r   r   r   r/   rY   r   s     r   r4   Version.__lt__  .    %00!!''%*C*CCCr
   c                 t    [        XR                  5      (       d  [        $ U R                  UR                  :*  $ r   r   r   s     r   __le__Version.__le__  .    %00!!''5+D+DDDr
   c                 t    [        XR                  5      (       d  [        $ U R                  UR                  :  $ r   r   r   s     r   __gt__Version.__gt__  r   r
   c                 t    [        XR                  5      (       d  [        $ U R                  UR                  :  $ r   r   r   s     r   __ge__Version.__ge__  r   r
   )rY   rZ   rV   rR   rS   rW   rT   rU   )NNNNNNF)F)rT   )FF)"r   r   r    r!   r   r   r   r   r*   classmethodrb   rh   rk   rn   rr   r   rO   r   rQ   r   r   r   r   rX   propertyr   r   r   r   r4   r   r   r   r#   r   r
   r   rD   rD   O   s   abJ$st  )PV  
   "GH M- M-^ :8 :8x 	Q 	Q H H$W
W
#
J ) )
"	
+
D
E
D
Er
   rD   c                       \ 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\	\\
\0r\R&                  " S5      rSS jr\S 5       r\S 5       rS rS rS rS rS rSrg)SpecItemi  zA requirement specification.*<<====r   >=>!=^~~=z$^(<|<=||=|==|>=|>|!=|\^|~|~=)(\d.*)$c                     U(       a  [         R                  " S[        SS9  U R                  U5      u  p4X0l        X@l        [        U5      R                  U l        g )Nz,The `SpecItem` class will be removed in 3.0.rG   rH   )	rK   rL   rM   rO   kindspecSpecclause_clause)r   requirement_string_warnr   r   s        r   r*   SpecItem.__init__  sJ    MM>"
 ZZ 23
		./66r
   c                    U(       d  [        SU-  5      eUS:X  a  U R                  S4$ U R                  R                  U5      nU(       d  [        SU-  5      eUR	                  5       u  p4X0R
                  ;   a  U R
                  U   n[        USS9nUR                  b)  X0R                  U R                  4;  a  [        SU-  5      eX54$ )Nz+Invalid empty requirement specification: %rr   r   z%Invalid requirement specification: %rTr}   zEInvalid requirement specification %r: build numbers have no ordering.)
rN   KIND_ANYre_specr   r   KIND_ALIASESrD   rV   
KIND_EQUALKIND_NEQ)r`   r   r   r   r   r   s         r   rO   SpecItem.parse  s    !JM__`` $LL"%%!!"45DGYYZZ#####D)Dw-::!d>>3<<2P&PW$%  |r
   c                     U[        5       :X  a  U " SSS9$ U[        5       :X  a  U " SSS9$ [        U[        5      (       a!  U " UR                  < UR
                  < 3SS9$ g )Nr   F)r   z<0.0.0-)AlwaysNeverr   Rangeoperatortarget)r`   matchers     r   from_matcherSpecItem.from_matcher8  s^    fhs%((y..''!1!17>>B%PP (r
   c                 8    U R                   R                  U5      $ r   )r   r   r   s     r   r   SpecItem.matchA  s    ||!!'**r
   c                 :    U R                   < U R                  < 3$ r   r   r   r   s    r   r   SpecItem.__str__D  s    DII..r
   c                 @    SU R                   < SU R                  < S3$ )Nz<SpecItem:  r   r   r   s    r   r   SpecItem.__repr__G  s    &*ii;;r
   c                     [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r   )r   r   r/   r   r   r   s     r   r   SpecItem.__eq__J  s:    %**!!yyEJJ&B499

+BBr
   c                 D    [        U R                  U R                  45      $ r   )r   r   r   r   s    r   r   SpecItem.__hash__O  s    TYY		*++r
   )r   r   r   N)T)r   r   r    r!   __doc__r   KIND_LTKIND_LTEr   KIND_SHORTEQ
KIND_EMPTYKIND_GTEKIND_GTr   
KIND_CARET
KIND_TILDEKIND_COMPATIBLEr   r   r   r   r*   r   rO   r   r   r   r   r   r   r#   r   r
   r   r   r     s    &HGHJLJHGHJJO 	jJL
 jj@AG
7  0 Q Q+/<C
,r
   r   c                 H    [        U 5      R                  [        U5      5      $ r   )rD   r   )v1v2s     r   comparer  S  s    2;wr{++r
   c                 H    [        U 5      R                  [        U5      5      $ r   )r   r   rD   )r   r   s     r   r   r   W  s    :GG,--r
   c                 P     [         R                  U 5        g! [         a     gf = f)z;Validates a version string againt the SemVer specification.TF)rD   rO   rN   )r[   s    r   validater  [  s(    n% s    
%%simplec                      ^  \ rS rSrSr0 r\S 5       rU 4S jr\\	4S j5       r
\S 5       rS rS rS	 rS
 rS rS rS rS rSrU =r$ )BaseSpecig  a  A specification of compatible versions.

Usage:
>>> Spec('>=1.0.0', syntax='npm')

A version matches a specification if it matches any
of the clauses of that specification.

Internally, a Spec is AnyOf(
    AllOf(Matcher, Matcher, Matcher),
    AllOf(...),
)
c                     UR                   nUc  [        S5      eX R                  ;   a$  [        SU< SU R                  U   < SU< 35      eXR                  U'   U$ )Nz(A Spec needs its SYNTAX field to be set.zDuplicate syntax for : , )SYNTAXrN   SYNTAXES)r`   subclasssyntaxs      r   register_syntaxBaseSpec.register_syntaxw  s[    >GHH||#3<</;   (Vr
   c                 b   > [         [        U ]  5         Xl        U R	                  U5      U l        g r   )superr  r*   
expression_parse_to_clauser   )r   r%  r   s     r   r*   BaseSpec.__init__  s'    h&($++J7r
   c                 ,    U R                   U   " U5      $ )z>Convert a syntax-specific expression into a BaseSpec instance.)r  )r`   r%  r   s      r   rO   BaseSpec.parse  s     ||F#J//r
   c                     [        5       e)z#Converts an expression to a clause.NotImplementedErrorr`   r%  s     r   r&  BaseSpec._parse_to_clause  s     "##r
   c              #   V   #    U H  nU R                  U5      (       d  M  Uv   M!     g7f)z3Filter an iterable of versions satisfying the Spec.Nr   )r   versionsr   s      r   filterBaseSpec.filter  s#     Gzz'""  s   )	)c                 8    U R                   R                  U5      $ )z+Check whether a Version satisfies the Spec.)r   r   r   s     r   r   BaseSpec.match  s    {{  ))r
   c                 \    [        U R                  U5      5      nU(       a  [        U5      $ g)z@Select the best compatible version among an iterable of options.N)listr2  max)r   r1  optionss      r   selectBaseSpec.select  s%    t{{8,-w<r
   c                 P    [        U[        5      (       a  U R                  U5      $ g)zWhether `version in self`.F)r   rD   r   r   s     r   __contains__BaseSpec.__contains__  s!    gw''::g&&r
   c                 t    [        XR                  5      (       d  [        $ U R                  UR                  :H  $ r   )r   r   r/   r   r   s     r   r   BaseSpec.__eq__  s*    %00!!{{ell**r
   c                 ,    [        U R                  5      $ r   )r   r   r   s    r   r   BaseSpec.__hash__  s    DKK  r
   c                     U R                   $ r   )r%  r   s    r   r   BaseSpec.__str__  s    r
   c                 T    SU R                   R                  < SU R                  < S3$ )Nr   r  r   )r   r   r%  r   s    r   r   BaseSpec.__repr__  s    !^^44dooFFr
   )r   r%  )r   r   r    r!   r  r  r   r!  r*   DEFAULT_SYNTAXrO   r&  r2  r   r:  r=  r   r   r   r   r#   __classcell__r   s   @r   r  r  g  s     H
 
8
 &4 0 0 $ $*+!G Gr
   r  c                   L    \ rS rSr/ rS rS rS rS rSS jr	S r
S rS	 rS
rg)Clausei  c                     [        5       er   r+  r   s     r   r   Clause.match      !##r
   c                     [        5       er   r+  r   s     r   __and__Clause.__and__  rN  r
   c                     [        5       er   r+  r   s     r   __or__Clause.__or__  rN  r
   c                     [        5       er   r+  r   s     r   r   Clause.__eq__  rN  r
   c                 `    SR                  U R                  5       5      R                  SU5      $ )z!Pretty-print the clause.
        
	)r   _prettyr   )r   indents     r   prettyprintClause.prettyprint  s&     yy(00v>>r
   c              #   &   #    [        U 5      v   g7f)zaActual pretty-printing logic.

Yields:
    A list of string. Indentation is performed with     .
Nreprr   s    r   rZ  Clause._pretty  s      4js   c                     X:X  + $ r   r   r   s     r   r   Clause.__ne__  s      r
   c                     U $ r   r   r   s    r   simplifyClause.simplify      r
   r   N)rY  )r   r   r    r!   r"   r   rP  rS  r   r\  rZ  r   re  r#   r   r
   r   rK  rK    s/    I$$$$?
!r
   rK  c                   d   ^  \ rS rSrS/rU 4S jrS rS rS rS r	S r
S	 rS
 rS rS rSrU =r$ )AnyOfi  clausesc                 J   > [         [        U ]  5         [        U5      U l        g r   )r$  ri  r*   	frozensetrj  r   rj  r   s     r   r*   AnyOf.__init__      eT#% )r
   c                 B   ^ [        U4S jU R                   5       5      $ )Nc              3   D   >#    U  H  oR                  T5      v   M     g 7fr   r0  )ry   cr   s     r   r{   AnyOf.match.<locals>.<genexpr>  s     :\777##\    )anyrj  r   s    `r   r   AnyOf.match  s    :T\\:::r
   c                 6   [        5       nU R                   HY  nUR                  5       n[        U[        5      (       a  XR                  -  nM8  U[        5       :X  a  MH  UR                  U5        M[     [        U5      S:X  a  UR                  5       $ [	        U6 $ Nrg   )	setrj  re  r   ri  r   addr   popr   
subclausesr   
simplifieds       r   re  AnyOf.simplify  s}    U
llF*J*e,,000
uw&z* # z?a>>##j!!r
   c                 8    [        [        U R                  45      $ r   )r   ri  rj  r   s    r   r   AnyOf.__hash__      UDLL)**r
   c                 ,    [        U R                  5      $ r   r   rj  r   s    r   r   AnyOf.__iter__      DLL!!r
   c                 l    [        XR                  5      =(       a    U R                  UR                  :H  $ r   r   r   rj  r   s     r   r   AnyOf.__eq__  #    %0RT\\U]]5RRr
   c                     [        U[        5      (       a  X-  $ [        U[        5      (       d  [        U[        5      (       a  [        X5      $ [        $ r   r   AllOfMatcherri  r/   r   s     r   rP  AnyOf.__and__  A    eU##<w'':eU+C+C%%!!r
   c                 (   [        U[        5      (       a#  [        U R                  UR                  -  5      nOS[        U[        5      (       d  [        U[
        5      (       a#  [        U R                  [        U/5      -  5      nO[        $ [        U6 $ r   )r   ri  r7  rj  r  r  ry  r/   r   r   rj  s      r   rS  AnyOf.__or__  sh    eU##4<<%--78Gw'':eU+C+C4<<#ug,67G!!gr
   c                 ^    SSR                  [        S U R                   5       5      5      -  $ )Nz	AnyOf(%s)r  c              3   8   #    U  H  n[        U5      v   M     g 7fr   r_  ry   rr  s     r   r{   !AnyOf.__repr__.<locals>.<genexpr>       -L|!d1gg|   r   sortedrj  r   s    r   r   AnyOf.__repr__  %    TYYv-Lt||-L'LMMMr
   c              #      #    Sv   U R                    H<  n[        UR                  5       5      nUS S  H
  nSU-   v   M     SUS   -   S-   v   M>     Sv   g 7f)NzAnyOF(r   rY  ,r   rj  r7  rZ  r   r   lineslines       r   rZ  AnyOf._pretty  ^     llF)*Ecr
Tk! #r"S((	 #
 	   AArj  r   r   r    r!   r"   r*   r   re  r   r   r   rP  rS  r   rZ  r#   rH  rI  s   @r   ri  ri    sC    I*;"+"S"N r
   ri  c                   d   ^  \ rS rSrS/rU 4S jrS rS rS rS r	S r
S	 rS
 rS rS rSrU =r$ )r  i  rj  c                 J   > [         [        U ]  5         [        U5      U l        g r   )r$  r  r*   rl  rj  rm  s     r   r*   AllOf.__init__  ro  r
   c                 B   ^ [        U4S jU R                   5       5      $ )Nc              3   D   >#    U  H  oR                  T5      v   M     g 7fr   r0  )ry   r   r   s     r   r{   AllOf.match.<locals>.<genexpr>$  s     D|V<<((|rt  )allrj  r   s    `r   r   AllOf.match#  s    Dt||DDDr
   c                 6   [        5       nU R                   HY  nUR                  5       n[        U[        5      (       a  XR                  -  nM8  U[        5       :X  a  MH  UR                  U5        M[     [        U5      S:X  a  UR                  5       $ [	        U6 $ rx  )	ry  rj  re  r   r  r   rz  r   r{  r|  s       r   re  AllOf.simplify&  s}    U
llF*J*e,,000
vx'z* # z?a>>##j!!r
   c                 8    [        [        U R                  45      $ r   )r   r  rj  r   s    r   r   AllOf.__hash__4  r  r
   c                 ,    [        U R                  5      $ r   r  r   s    r   r   AllOf.__iter__7  r  r
   c                 l    [        XR                  5      =(       a    U R                  UR                  :H  $ r   r  r   s     r   r   AllOf.__eq__:  r  r
   c                 (   [        U[        5      (       d  [        U[        5      (       a#  [        U R                  [        U/5      -  5      nO>[        U[        5      (       a#  [        U R                  UR                  -  5      nO[        $ [        U6 $ r   )r   r  ri  r7  rj  ry  r  r/   r  s      r   rP  AllOf.__and__=  sh    eW%%E5)A)A4<<#ug,67Gu%%4<<%--78G!!gr
   c                     [        U[        5      (       a  X-  $ [        U[        5      (       a  [        U [        U5      5      $ [        U[        5      (       a  [        X5      $ [        $ r   r   ri  r  r  r/   r   s     r   rS  AllOf.__or__F  sS    eU##<w''uU|,,u%%%%!!r
   c                 ^    SSR                  [        S U R                   5       5      5      -  $ )Nz	AllOf(%s)r  c              3   8   #    U  H  n[        U5      v   M     g 7fr   r_  r  s     r   r{   !AllOf.__repr__.<locals>.<genexpr>Q  r  r  r  r   s    r   r   AllOf.__repr__P  r  r
   c              #      #    Sv   U R                    H<  n[        UR                  5       5      nUS S  H
  nSU-   v   M     SUS   -   S-   v   M>     Sv   g 7f)NzAllOF(r   rY  r  r   r  r  s       r   rZ  AllOf._prettyS  r  r  r  r  rI  s   @r   r  r    sD    I*E"+"S"N r
   r  c                   $    \ rS rSr/ rS rS rSrg)r  i]  c                     [        U[        5      (       a  X-  $ [        U[        5      (       d  [        U[        5      (       a  [        X5      $ [        $ r   r  r   s     r   rP  Matcher.__and__`  r  r
   c                     [        U[        5      (       a  X-  $ [        U[        5      (       d  [        U[        5      (       a  [        X5      $ [        $ r   r  r   s     r   rS  Matcher.__or__h  r  r
   r   N)r   r   r    r!   r"   rP  rS  r#   r   r
   r   r  r  ]  s    I""r
   r  c                   <    \ rS rSr/ rS rS rS rS rS r	S r
Srg	)
r   iq  c                     g)NFr   r   s     r   r   Never.matcht  s    r
   c                 "    [        [        45      $ r   )r   r   r   s    r   r   Never.__hash__w  s    UH~r
   c                 ,    [        XR                  5      $ r   r   r   s     r   r   Never.__eq__z  r   r
   c                     U $ r   r   r   s     r   rP  Never.__and__}  rg  r
   c                     U$ r   r   r   s     r   rS  Never.__or__      r
   c                     g)NzNever()r   r   s    r   r   Never.__repr__  s    r
   r   Nr   r   r    r!   r"   r   r   r   rP  rS  r   r#   r   r
   r   r   r   q  s%    I1r
   r   c                   <    \ rS rSr/ rS rS rS rS rS r	S r
Srg	)
r   i  c                     gr2   r   r   s     r   r   Always.match  s    r
   c                 "    [        [        45      $ r   )r   r   r   s    r   r   Always.__hash__  s    VIr
   c                 ,    [        XR                  5      $ r   r   r   s     r   r   Always.__eq__  r   r
   c                     U$ r   r   r   s     r   rP  Always.__and__  r  r
   c                     U $ r   r   r   s     r   rS  Always.__or__  rg  r
   c                     g)NzAlways()r   r   s    r   r   Always.__repr__  s    r
   r   Nr  r   r
   r   r   r     s%    I1r
   r   c                      ^  \ 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Qr\\4U 4S jjrS rS rS rS rS rSrU =r$ )r   i  r   r   r   r   r   r   alwaysnaturalz
same-patchimplicitstrict)r   r   prerelease_policybuild_policyc                    > [         [        U ]  5         UR                  (       a.  XR                  U R
                  4;  a  [        SU< U< S35      eXl        X l        X0l	        UR                  (       a  U R                  U l        g UU l        g )NzInvalid range z!: build numbers have no ordering.)r$  r   r*   rV   OP_EQOP_NEQrN   r   r   r  BUILD_STRICTr  )r   r   r   r  r  r   s        r   r*   Range.__init__  sm    eT#%<<HZZ,EEV%& & !!217D--<r
   c                    U R                   U R                  :w  a  UR                  S5      nUR                  (       aM  U R                  R                  5       UR                  5       :H  nU R
                  U R                  :X  a  U(       d  gU R                  U R                  :X  a  U R                   U R                  :X  aW  U R                  R                  S5      UR                  S5      :H  =(       a#    UR                  U R                  R                  :H  $ XR                  :H  $ U R                  U R                  :X  a  XR                  :  $ U R                  U R                  :X  a  XR                  :  $ U R                  U R                  :X  a  UR                  (       ab  U R
                  U R                  :X  aH  UR                  5       U R                  R                  5       :X  a  U R                  R                  (       d  gXR                  :  $ U R                  U R                  :X  a  XR                  :*  $ U R                  U R                  :X  d   eU R                   U R                  :X  a\  U R                  R                  S5      UR                  S5      :H  =(       a#    UR                  U R                  R                  :H  (       + $ UR                  (       ab  U R
                  U R                  :X  aH  UR                  5       U R                  R                  5       :X  a  U R                  R                  (       d  gXR                  :g  $ )NrU   F)r  r  rr   rU   r   r  PRERELEASE_SAMEPATCHr   r  rV   OP_GTOP_GTEOP_LTPRERELEASE_NATURALOP_LTEr  )r   r   
same_patchs      r   r   Range.match  sg    1 11&&|4G--/73C3C3EEJ%%)B)BB:==DJJ&  D$5$55KK((6':J:J<:XX ;):):: kk))]]djj([[((]]dkk)kk))]]djj(""**d.E.EE$$&$++*>*>*@@..[[((]]dkk)kk))==DKK///  D$5$55KK((6':J:J<:XX ;):)::  ""**d.E.EE$$&$++*>*>*@@..kk))r
   c                 d    [        [        U R                  U R                  U R                  45      $ r   )r   r   r   r   r  r   s    r   r   Range.__hash__  s$    UDMM4;;8N8NOPPr
   c                     [        XR                  5      =(       aY    U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r   )r   r   r   r   r  r   s     r   r   Range.__eq__  s[    unn- B/Bu||+B &&%*A*AA		
r
   c                 :    U R                   < U R                  < 3$ r   r   r   r   s    r   r   Range.__str__  s    44r
   c                     U R                   U R                  :X  a  SOSU R                   -  U R                  U R                  :X  a  SOSU R                  -  -   nSU R                  < SU R
                  < U< S3$ )Nr   z, prerelease_policy=%rz, build_policy=%rzRange(r  r   )r  r  r  BUILD_IMPLICITr   r   )r   policy_parts     r   r   Range.__repr__  sn    ((D,C,CCB)D,B,BB##t':'::B$t'8'88
 MMKK
 	
r
   )r  r   r  r   )r   r   r    r!   r  r  r  r  r  r  PRERELEASE_ALWAYSr  r  r  r  r"   r*   r   r   r   r   r   r#   rH  rI  s   @r   r   r     sr    EEFEFF !"'  NLKI;M\j 	P/*bQ
5
 
r
   r   c                   <    \ rS rSrSr\S 5       r " S S5      rSrg)
SimpleSpeci  r  c                 8    U R                   R                  U5      $ r   ParserrO   r-  s     r   r&  SimpleSpec._parse_to_clause      zz
++r
   c                       \ rS rSrSr\R                  " SR                  \S9\R                  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Qr\
S 5       rSrg)SimpleSpec.Parseri  z\*|0|[1-9][0-9]*z^
            (?P<op><|<=||=|==|>=|>|!=|\^|~|~=)
            (?P<major>{nb})(?:\.(?P<minor>{nb})(?:\.(?P<patch>{nb}))?)?
            (?:-(?P<prerel>[a-z0-9A-Z.-]*))?
            (?:\+(?P<build>[a-z0-9A-Z.-]*))?
            $
            )nbc                     UR                  S5      n[        5       nU HD  nU R                  R                  U5      (       d  [	        SU-  5      eX0R                  U5      -  nMF     U$ )Nr  zInvalid simple block %r)r   r   
NAIVE_SPECr   rN   parse_block)r`   r%  blocksr   blocks        r   rO   SimpleSpec.Parser.parse!  sa    %%c*FXF~~++E22$%>%FGG//%00  
 Mr
   r   r   r   r   r   r   r   r   r   )r   r   r   xXNc           	         U R                   R                  U5      (       d  [        SU-  5      eU R                   R                  U5      R                  5       u  p#pEpgU R                  R                  X"5      nX0R                  ;   a  S O
[        U5      nX@R                  ;   a  S O
[        U5      n	XPR                  ;   a  S O
[        U5      n
Uc5  [        SSSS9nX R                  U R                  4;  a  [        SU-  5      eOZU	c  [        USSS9nOKU
c  [        XSS9nO=[        UU	U
U(       a  UR                  S5      OSU(       a  UR                  S5      OSS9nUb  U	b  U
c  U(       d  U(       a  [        SU-  5      eUb)  X R                  U R                  4;  a  [        SU-  5      eX R                  :X  a  UR                  (       a  UR                  5       nO2UR                   (       a  UR#                  5       nOUR%                  5       n['        [&        R(                  U5      ['        [&        R*                  U5      -  $ X R,                  :X  a^  Uc   eU	c  UR                  5       nOUR#                  5       n['        [&        R(                  U5      ['        [&        R*                  U5      -  $ X R.                  :X  aa  Uc   eU	b  U
c  UR                  5       nOUR#                  5       n['        [&        R(                  U5      ['        [&        R*                  U5      -  $ X R                  :X  a  Uc  ['        [&        R(                  U5      $ U	cC  ['        [&        R(                  U5      ['        [&        R*                  UR                  5       5      -  $ U
cC  ['        [&        R(                  U5      ['        [&        R*                  UR#                  5       5      -  $ US:X  a'  ['        [&        R0                  U[&        R2                  S	9$ ['        [&        R0                  U5      $ X R                  :X  Ga  Uc   eU	cC  ['        [&        R*                  U5      ['        [&        R(                  UR                  5       5      -  $ U
cC  ['        [&        R*                  U5      ['        [&        R(                  UR#                  5       5      -  $ US:X  a'  ['        [&        R4                  U[&        R6                  S
9$ US:X  a'  ['        [&        R4                  U[&        R2                  S	9$ ['        [&        R4                  U5      $ X R8                  :X  au  Uc   eU	c(  ['        [&        R(                  UR                  5       5      $ U
c(  ['        [&        R(                  UR#                  5       5      $ ['        [&        R:                  U5      $ X R                  :X  a  ['        [&        R(                  U5      $ X R<                  :X  aL  Uc   eUS:X  a'  ['        [&        R*                  U[&        R6                  S
9$ ['        [&        R*                  U5      $ X R>                  :X  d   eUc   eU	c(  ['        [&        R*                  UR                  5       5      $ U
c(  ['        [&        R*                  UR#                  5       5      $ ['        [&        R@                  U5      $ )Nz!Invalid simple spec component: %rr   rR   rS   rT   zInvalid simple spec: %rru   r   rR   rS   rT   rU   rV   r   )r  r  )!r  r   rN   r   PREFIX_ALIASESgetEMPTY_VALUESr(   rD   	PREFIX_EQ
PREFIX_GTEr   
PREFIX_NEQPREFIX_CARETrR   rh   rS   rk   rn   r   r  r  PREFIX_TILDEPREFIX_COMPATIBLEr  r  r  r  	PREFIX_GTr  	PREFIX_LT
PREFIX_LTEr  )r`   exprprefixmajor_tminor_tpatch_tprerelrV   rR   rS   rT   r   highs                r   r  SimpleSpec.Parser.parse_block=  sN   >>''-- !Dt!KLL?B~~?S?STX?Y?`?`?b<FWv''++F;F#'7'77DS\E#'7'77DS\E#'7'77DS\E} q;--!@@$%>%EFF A uAQ? uC 4:v||C0.3%++c* %-fPU !:T!ABB VMM3>>3R%R !:T!ABB)))<<!,,.D\\!,,.D!,,.DU\\62U5;;5MMM+++((( =!,,.D!,,.DU\\62U5;;5MMM000(((=EM!,,.D!,,.DU\\62U5;;5MMM==(= v66] v6u{{FL]L]L_9```] v6u{{FL]L]L_9```b[ f5CUCUVV f55>>)(((= f5ellFL]L]L_8```] f5ellFL]L]L_8```r\ vI`I`aab[ vEDVDVWW v66==((((= v/@/@/BCC] v/@/@/BCC f55>>)U\\622==((((R< fH_H_``U[[&11 ///(((= f.?.?.ABB] f.?.?.ABB v66r
   r   N)r   r   r    r!   NUMBERr   r   formatVERBOSEr  r   rO   r#  r$  r%  r   r"  r&  r!  r'  r(  r  r  r  r#   r   r
   r   r
  r    s    $ZZ ! &!JJ

 
	 
	  	
	
	
 

 -	y	7 
y	7r
   r
  r   N	r   r   r    r!   r  r   r&  r
  r#   r   r
   r   r  r    s'     F, ,b7 b7r
   r  c                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )
LegacySpeci  c                    > [         R                  " S[        SS9  [        U5      S:  a  [         R                  " S[        SS9  SR                  U5      n[        [        U ]#  U5        g )NzBThe Spec() class will be removed in 3.1; use SimpleSpec() instead.rG   rH   rg   z]Passing 2+ arguments to SimpleSpec will be removed in 3.0; concatenate them with ',' instead.r  )	rK   rL   PendingDeprecationWarningr   rM   r   r$  r6  r*   )r   expressionsr%  r   s      r   r*   LegacySpec.__init__  s[    P%	
 {aMMo"
 XXk*
j$(4r
   c                     [        U 5      $ r   )r7  r   s    r   specsLegacySpec.specs  s    Dzr
   c              #      #    [         R                  " S[        SS9   [        U R                  5      nU H  n[        R                  U5      v   M     g ! [
         a    U R                  /n N:f = f7f)NzLIterating over the components of a SimpleSpec object will be removed in 3.0.rG   rH   )rK   rL   rM   r7  r   	TypeErrorr   r   )r   rj  r   s      r   r   LegacySpec.__iter__  se     Z	

	$4;;'G F''//   	${{mG	$s'   A1A !A1A.+A1-A..A1r   )
r   r   r    r!   r*   r   r<  r   r#   rH  rI  s   @r   r6  r6    s&    5   0 0r
   r6  c                   <    \ rS rSrSr\S 5       r " S S5      rSrg)NpmSpeci  npmc                 8    U R                   R                  U5      $ r   r	  r-  s     r   r&  NpmSpec._parse_to_clause  r  r
   c            
       R   \ rS rSrSrSrSrSr\R                  " SR                  \\S9\R                  5      r\S 5       r\S	 5       rS
rSrSrSrSrSrSrS\0r\\R2                  \\R4                  \\R6                  \\R8                  \\R:                  0r/ SQr\S 5       r Sr!g)NpmSpec.Parseri  z||z - zx|X|\*|0|[1-9][0-9]*z[a-zA-Z0-9.-]*aQ  
            ^(?:v)?                     # Strip optional initial v
            (?P<op><|<=|>=|>|=|\^|~|)   # Operator, can be empty
            (?P<major>{nb})(?:\.(?P<minor>{nb})(?:\.(?P<patch>{nb}))?)?
            (?:-(?P<prerel>{part}))?    # Optional re-release
            (?:\+(?P<build>{part}))?    # Optional build
            $)r  rz   c                 2    [        X[         R                  S9$ )Nr  )r   r  )r`   r   r   s      r   rangeNpmSpec.Parser.range  s    U=W=WXXr
   c                    [        5       nUR                  U R                  5      nU GH  nUR                  5       nU(       d  Sn/ nU R                  U;   aH  UR                  U R                  S5      u  pgU R                  SU-   5      U R                  SU-   5      -   nOmUR                  S5      nU HV  n	U R                  R                  U	5      (       d  [        SU< SU	< 35      eUR                  U R                  U	5      5        MX     / n
/ nU GH  nUR                  R                  (       Ga  UR                  [        R                  [        R                  4;   a  U
R!                  [        [        R"                  [%        UR                  R&                  UR                  R(                  UR                  R*                  S-   S	9[        R,                  S
95        OUR                  [        R"                  [        R.                  4;   ah  U
R!                  [        [        R                  [%        UR                  R&                  UR                  R(                  SSS9[        R,                  S
95        U
R!                  U5        UR!                  U R1                  UR                  UR                  R3                  5       S95        GM  UR!                  U5        GM     U
(       a  U[5        U
6 -  nU[5        U6 -  nGM     U$ )Nz>=0.0.0rG   r   r   r   zInvalid NPM block in r  rg   r  )r   r   r  r   r   )rR   rS   rT   rU   r  )r   r   JOINERstripHYPHENparse_simpleNPM_SPEC_BLOCKr   rN   extendr   rU   r   r   r  r  appendr  rD   rR   rS   rT   r  r  rI  rr   r  )r`   r%  resultr   groupr}  lowr/  r  r  prerelease_clausesnon_prerel_clausesr   s                r   rO   NpmSpec.Parser.parse  sp   WF%%cjj1F%E
::& %CJJ :IC!$!1!1$*!=@P@PQUX\Q\@]!]J #[[-F!'"1177>>",jZ_-`"aa"))#*:*:5*AB	 "( &("%'"(F}}///!??u{{ELL.II.55e).'.*0--*=*=*0--*=*=*0--*=*=*A("
 382I2I7  $__ell0KK.55e).'.*0--*=*=*0--*=*=*+/1	(" 382I2I	7 	 +11&9*11#))%+__#)==#9#9#; 3< 3 
 +11&9; )< &e%788F%!344i  l Mr
   r   r   r   r   r   r   r   r   r  c           	          U R                   R                  U5      nUR                  5       u  p4pVpxU R                  R	                  X35      nX@R
                  ;   a  S O
[        U5      n	XPR
                  ;   a  S O
[        U5      n
X`R
                  ;   a  S O
[        U5      nUb  X0R                  4;  a  S nU	cA  [        SSSS9nX0R                  U R                  4;  a  [        SU-  5      eU R                  nOZU
c  [        U	SSS9nOKUc  [        XSS9nO=[        U	U
UU(       a  UR                  S5      OSU(       a  UR                  S5      OSS9nU	b  U
b  Uc  U(       d  U(       a  [        SU-  5      eX0R                  :X  Ga  UR                  (       a  UR                  5       R                  5       nOUR                   (       a  UR                  5       R#                  5       nObU
c  UR                  5       R                  5       nO@Uc  UR                  5       R#                  5       nOUR                  5       R%                  5       nU R'                  [(        R*                  U5      U R'                  [(        R,                  U5      /$ X0R.                  :X  ai  U	c   eU
c  UR                  5       nOUR#                  5       nU R'                  [(        R*                  U5      U R'                  [(        R,                  U5      /$ X0R                  :X  a  U	c!  U R'                  [(        R*                  U5      /$ U
cN  U R'                  [(        R*                  U5      U R'                  [(        R,                  UR                  5       5      /$ UcN  U R'                  [(        R*                  U5      U R'                  [(        R,                  UR#                  5       5      /$ U R'                  [(        R0                  U5      /$ X0R2                  :X  a  U	c   eU
c/  U R'                  [(        R*                  UR                  5       5      /$ Uc/  U R'                  [(        R*                  UR#                  5       5      /$ U R'                  [(        R4                  U5      /$ X0R                  :X  a!  U R'                  [(        R*                  U5      /$ X0R6                  :X  a&  U	c   eU R'                  [(        R,                  U5      /$ X0R8                  :X  d   eU	c   eU
c/  U R'                  [(        R,                  UR                  5       5      /$ Uc/  U R'                  [(        R,                  UR#                  5       5      /$ U R'                  [(        R:                  U5      /$ )Nr   r  zInvalid expression %rru   r   r  zInvalid NPM spec: %r)rP  r   r   r  r  r  r(   r   rD   r!  rN   r   r#  rR   rr   rh   rS   rk   rn   rI  r   r  r  r$  r  r&  r  r'  r(  r  )r`   r  r   r*  r+  r,  r-  r.  rV   rR   rS   rT   r   r/  s                 r   rO  NpmSpec.Parser.parse_simpleN  si   &&,,V4E?D||~<FWv''++F;F#'7'77DS\E#'7'77DS\E#'7'77DS\E VMM?%B} q;--!@@$%<v%EFF uAQ? uC 4:v||C0.3%++c* %-fPU !7&!@AA)))<<!??,779D\\!??,779D]!??,779D]!??,779D!??,779D		%,,75;;PT9UVV+++(((=!,,.D!,,.D		%,,75;;PT9UVV==(=IIellF;<<]IIellF;SYYu{{TZTeTeTg=hii]IIellF;SYYu{{TZTeTeTg=hiiIIekk6:;;==((((=IIellF4E4E4GHII]IIellF4E4E4GHIIIIekk6:;;>>)		%,,788==((((		%++v677 ///(((=IIekk63D3D3FGHH]IIekk63D3D3FGHHIIellF;<<r
   r   N)"r   r   r    r!   rL  rN  r1  PARTr   r   r2  r3  rP  r   rI  rO   r#  r$  r   r&  r!  r'  r(  r  r   r  r  r  r  r  PREFIX_TO_OPERATORr  rO  r#   r   r
   r   r
  rG    s    (  % 6-JJ
 
	Y 
	Y 
9	 
9	v 		
	
 	

 u{{u{{u{{
 -	Z	= 
Z	=r
   r
  r   Nr4  r   r
   r   rB  rB    s%    F, ,A= A=r
   rB  )	functoolsr   rK   r	   objectr   total_orderingr%   r3   rD   r   r  r   r  rG  r  rK  ri  r  r  r   r   r   r!  r  r6  r   rB  r   r
   r   <module>r`     sa  
  	 1F 1 " " "2 "f " "2iEf iEXU,v U,p,. PGv PGf V  F<F <~>F >B"f "(G ,W ,l
G l
^ 
j7 j7 j7Z 0  0F  
H=h H= H=r
   