+
    m4i'%                        R t ^ RIHt  ^ RItA^ RIHt ^ RIHtH	t	 ^ RI
HtHt ^ RIHt ^ RIHtHtHtHtHtHtHtHt ^ RIHt ^R	IHtHt ^ R
IHt ^ RIH t H!t!H"t"H#t#H$t$ ^ RI%H&t&H't'H(t) Rt*]! R4      t+]]R]+3,          .]+3,          t, ]- R t0Rs1] RR l4       t2] RR l4       t3] RR l4       t4] RR l4       t5R t6Rs7] R 4       t8] R 4       t9] R 4       t:R#   ]. d    ]/t- LWi ; i  ]; d    ^ RIH<t< Rt* R# i ; i) z
Hypothesis strategies.
)absolute_importN)reader)dirnamejoin)ascii_lettersdigits)
maxunicode)CallableIterableListOptionalSequenceTextTypeVarcast)open)
DecodedURL
EncodedURL)assume)	compositeintegerslistssampled_fromtext)	IDNAErrorcheck_labelencodeT.c            	     d   \         '       Eg   . p \        \        \        4      R4      p\	        V4      ;_uu_ 4       p\        R V 4       RR7      p\        V4       V F  pVw  rVpVR8w  d   K  V^ ,          P                  R^4      p\        V4      ^8X  d   VP                  V^ ,          4       R V 4       w  r\        W^,           4       F+  pV\        8  d    K  V P                  \        V4      4       K-  	  K  	  RRR4       R	P                  V 4      s \         #   + '       g   i     L'; i)
z.
Returns a string containing IDNA characters.
zidna-tables-properties.csv.gzc              3   B   "   T F  qP                  R 4      x  K  	  R# 5i)utf-8N)decode).0lines   & 6/usr/lib/python3/dist-packages/hyperlink/hypothesis.py	<genexpr>"idna_characters.<locals>.<genexpr>Q   s     ?hd[[))hs   ,)	delimiterPVALID-c              3   :   "   T F  p\        V^4      x  K  	  R# 5i)   N)int)r"   is   & r$   r%   r&   b   s     !?h#a**hs   N )_idnaCharactersr   r   __file__	open_gzip
csv_readernextsplitlenappendranger   unichr)resultdataFileNamedataFiler   rowcodespropdescriptionstartEndstartendr.   s               r$   idna_charactersrD   ?   s     F
  !#BL <((H#?h?! V!C/2,Ex' !"1v||C3H8}) 4!?h!?JE"5'2z>!fQi0 3 " )4 "hhv.O9 )(s   CDD/	r/   c                    \        4       pV^8  g   Q hVe
   V^8  g   Q h\        \        V ! \        WVR7      4      4      p \	        V4       V#   \
         d    \        R4        T# i ; i)z
A strategy which generates IDNA-encodable text.

@param min_size: The minimum number of characters in the text.
    C{None} is treated as C{0}.

@param max_size: The maximum number of characters in the text.
    Use C{None} for an unbounded size.
min_sizemax_sizealphabetF)rD   r   r   r   idna_encoder   r   )drawrG   rH   rI   r:   s   &&&  r$   	idna_textrL   o   sw     #$1}}q= =xXNO
	   	5M	s   A A*)A*c           
     ^    V'       d   ^ pM^p\        \        V ! \        VRR7      4      4      # )zn
A strategy which generates port numbers.

@param allow_zero: Whether to allow port C{0} as a possible value.
i  )	min_value	max_value)r   r-   r   )rK   
allow_zerorN   s   && r$   port_numbersrQ      s*     IICheLMNN    c                   V'       d5   \        \        V ! \        ^^?R7      4      4      p VP                  R4       MA\        \        V ! \        ^^?\        \        \        ,           R,           4      R7      4      4      p \        V4       V#   \         d:    \        TP                  R4      4      ^?\        R4      ,
          8  d   TRR	 pK6   LQi ; i  \         d    \        R4        T# i ; i)
z
A strategy which generates host name labels.

@param allow_idn: Whether to allow non-ASCII characters as allowed by
    internationalized domain names (IDNs).
rG   rH   asciipunycodezxn--Nr*   rF   F)r   r   rL   r   UnicodeEncodeErrorr6   r   r   r   r   UnicodeErrorr   )rK   	allow_idnlabels   && r$   hostname_labelsr\      s     tIq2$FGHE
'W% !"!#!%mf&<t&C!D	E	 = & ' %,,z23b3v;6FF "#2JE	 G	'6  	5M	s$   B ?C ACCC-,C-c                t  a \        \        V ! \        VR7      P                  V3R l4      4      4      .pV\        \        \        ,          V ! \        \        VR7      ^^R7      4      4      ,          p\        R V 4       4      \        V4      ,           ^,
          ^8  d   VRR pK5  RP                  V4      # )a  
A strategy which generates host names.

@param allow_leading_digit: Whether to allow a leading digit in host
    names; they were not allowed prior to RFC 1123.

@param allow_idn: Whether to allow non-ASCII characters as allowed by
    internationalized domain names (IDNs).
)rZ   c                 8   < S'       d   R # V ^ ,          \         9  # T)r   )lallow_leading_digits   &r$   <lambda>hostnames.<locals>.<lambda>   s    $7DOQqT=OOrR   rT   c              3   8   "   T F  p\        V4      x  K  	  R # 5i)N)r6   )r"   r[   s   & r$   r%   hostnames.<locals>.<genexpr>   s     1&#e**&s   N.rW   )	r   r   r\   filterr   r   sumr6   r   )rK   ra   rZ   labelss   &f& r$   	hostnamesrj      s     #i8??	
 	$J#i8	
 		
 1&11CK?!CcICR[Fyy  rR   c                 P    \         f   R p RP                  V ! 4       4      s \         # )z8
Returns a string containing valid URL path characters.
c               3      "   \        \        4       F-  p \        V 4      pVR 9   d   K   VP                  R4       Tx  K/  	  R#   \         d     KA  i ; i5i)z#/?r    N)r8   r   r9   r   rX   )r.   cs     r$   charspath_characters.<locals>.chars  sT     z*Aq	A Ez !) G + . ! !s'   'AA
AAAAAr/   )_path_charactersr   )rn   s    r$   path_charactersrq      s(     #"  "wwuw/rR   c                     \        \        \        ,          V ! \        \	        ^\        4       R7      ^
R7      4      4      # )   )rG   rI   )rH   )r   r   r   r   r   rq   rK   s   &r$   pathsru     s4     JdA0ABRP
 	
rR   c           
     P   \        \        \        ,          V ! \        RR7      4      4      p\        \        V ! \        4       4      4      p\        \        \        ,          V ! \        4       4      4      pV^ 8X  d   Rp\        \        \        V ! \        R4      4      4      VVVR7      # )z
A strategy which generates L{EncodedURL}s.
Call the L{EncodedURL.to_uri} method on each URL to get an HTTP
protocol-friendly URI.
T)rP   N)schemehostportpath)httphttps)
r   r   r-   rQ   r   rj   r   ru   r   r   )rK   ry   rx   rz   s   &   r$   encoded_urlsr}   #  s~     HSM4(E#FGD$y{+,HTNDM219Dd<0C#DEF	
 	
rR   c                4    \        V ! \        4       4      4      # )z
A strategy which generates L{DecodedURL}s.
Call the L{EncodedURL.to_uri} method on each URL to get an HTTP
protocol-friendly URI.
)r   r}   rt   s   &r$   decoded_urlsr   9  s     $|~.//rR   )Tuple)r   r}   r\   rj   rL   ru   rQ   )rs   N)Fr_   )TT )=__doc__
__future__r   
hypothesiscsvr   r3   os.pathr   r   stringr   r   sysr   typingr	   r
   r   r   r   r   r   r   gzipr   r2   r/   r   r   r   hypothesis.strategiesr   r   r   r   r   idnar   r   r   rJ   __all__r   DrawCallabler9   	NameErrorchrrD   r0   rL   rQ   r\   rj   rq   rp   ru   r}   r   ImportErrorr   r   rR   r$   <module>r      sb   'z0 )%,	 	 	 '(!  CBG 	AXc1f-.12L,\ O @ O O + +Z )! )!V < 
 
 
 
* 0 0}  c  Gs#   C( C 	C%$C%(C;:C;