Ë
    iKêj>`  ã                   óÖ  — d dl Z d dlZd dlmZmZmZ d dlmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=  G d„ de0e>e,df      «      Z?e	de0e>d      fd„«       Z@e	de0e,   de0e>e,      fd„«       Z@e	de0e(   de0e1   de0e>e(e1f      fd„«       Z@e	de0e(   de0e1   de0e)   de0e>e(e1e)f      fd„«       Z@e	de0e(   de0e1   de0e)   d e0e*   de0e>e(e1e)e*f      f
d!„«       Z@e	de0e(   de0e1   de0e)   d e0e*   d"e0e+   de0e>e(e1e)e*e+f      fd#„«       Z@e	d$e0e   de0e>edf      fd%„«       Z@e5 e6«       d$e0e   de0e>edf      fd&„«       «       Z@ G d'„ d(e0eAe,      «      ZB G d)„ d*eBe,   «      ZC G d+„ d,eC«      ZD G d-„ d.e0eeef      «      ZEy)/é    N)ÚCallableÚIterableÚMapping)ÚAnyÚ	TypeGuardÚoverload)Ú
strategies)Úcurrent_build_context)ÚCannotInvertÚInvalidArgument)Úadd_note)Úutils)ÚChoiceT)ÚUNIQUE_COLLECTION_LABELÚConjectureData)ÚBUFFER_SIZE)ÚLazySequenceCopyÚequal_values)Úcombine_labels)Úget_integer_predicate_bounds)Úis_identity_function)ÚT1ÚT3ÚT4ÚT5ÚExÚFilteredStrategyÚRecurTÚSampledFromStrategyÚSearchStrategyÚTÚcheck_strategyÚfilter_not_satisfied)Ú	cacheableÚdefines_strategy)ÚUniqueIdentifier)Ú
ArgLabelsTÚIDKeyÚ_fixeddict_pprinterÚ_tuple_pprinterc                   ó¨   ‡ — e Zd ZdZdeee      fˆ fd„Zdd„Zde	fd„Z
defd„Zdedefd	„Zd
edeedf   fd„Zdedeedf   fd„Zdedefd„Zˆ xZS )ÚTupleStrategyzpA strategy responsible for fixed length tuples based on heterogeneous
    strategies for each of their elements.r	   c                 óB   •— t         ‰| �  «        t        |«      | _        y ©N)ÚsuperÚ__init__ÚtupleÚelement_strategies)Úselfr	   Ú	__class__s     €úp/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/strategies/_internal/collections.pyr0   zTupleStrategy.__init__8   s   ø€ Ü‰ÑÔÜ"'¨
Ó"3ˆÕó    Úreturnc                 óF   — | j                   D ]  }|j                  «        Œ y r.   )r2   Úvalidate)r3   Úss     r5   Údo_validatezTupleStrategy.do_validate<   s    € Ø×(Ñ(ò 	ˆAØ�J‰J�Lñ	r6   c                 óP   — t        | j                  gd„ | j                  D «       ¢­Ž S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr.   )Úlabel)Ú.0r:   s     r5   ú	<genexpr>z+TupleStrategy.calc_label.<locals>.<genexpr>B   s   è ø€ ÒI¨A §¥ÑIùs   ‚)r   Úclass_labelr2   ©r3   s    r5   Ú
calc_labelzTupleStrategy.calc_label@   s+   € ÜØ×Ñð
ÙI°×1HÑ1HÔIò
ð 	
r6   c                 ó`   — dj                  t        t        | j                  «      «      }d|› d�S )Nú, zTupleStrategy((z)))ÚjoinÚmapÚreprr2   )r3   Útuple_strings     r5   Ú__repr__zTupleStrategy.__repr__E   s,   € Ø—y‘y¤¤T¨4×+BÑ+BÓ!CÓDˆØ   ¨bÐ1Ð1r6   Úrecurc                 ó@   ‡— t        ˆfd„| j                  D «       «      S )Nc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr.   © ©r?   ÚerK   s     €r5   r@   z9TupleStrategy.calc_has_reusable_values.<locals>.<genexpr>J   ó   øè ø€ Ò= ‘5˜—8Ñ=ùó   ƒ)Úallr2   ©r3   rK   s    `r5   Úcalc_has_reusable_valuesz&TupleStrategy.calc_has_reusable_valuesI   ó   ø€ ÜÓ= T×%<Ñ%<Ô=Ó=Ð=r6   Údata.c                 ót  — t        «       }i }g }t        | j                  «      D ]H  \  }}|j                  d|› d�«      5 }|j	                  |j                  |«      «       d d d «       |z  }ŒJ t        |«      }|r0|j                  t        |«         j	                  t        |«      «       |S # 1 sw Y   ŒOxY w)Nzarg[ú])
r
   Ú	enumerater2   Útrack_arg_labelÚappendÚdrawr1   Úknown_object_printersr(   r*   )r3   rW   ÚcontextÚ
arg_labelsÚresultÚiÚstrategyÚ	arg_labels           r5   Údo_drawzTupleStrategy.do_drawL   s¸   € Ü'Ó)ˆØ!#ˆ
ØˆÜ$ T×%<Ñ%<Ó=ò 	$‰KˆAˆxØ×%Ñ%¨¨Q¨C¨q kÓ2ð 3°iØ—‘˜dŸi™i¨Ó1Ô2÷3à˜)Ñ#‰Jð	$ô
 �v“ˆÙØ×)Ñ)¬%°«-Ñ8×?Ñ?Ü 
Ó+ôð ˆ÷3ð 3ús   ¿!B.Â.B7	Úvaluec                 ó¬  — t        |t        «      r!t        |«      t        | j                  «      k7  r#t	        |›dt        | j                  «      › �«      ‚g }t        t        | j                  |d¬«      «      D ])  \  }\  }}	 |j                  |j                  |«      «       Œ+ t        |«      S # t        $ r}t        |d|› d|›d| ›�«       ‚ d }~ww xY w)Nz is not a tuple of length T©Ústrictú	at index ú of ú, strategy=)
Ú
isinstancer1   Úlenr2   r   rZ   ÚzipÚextendÚ_invertr   )r3   rf   Úchoicesrb   rc   ÚelementÚexcs          r5   rq   zTupleStrategy._invert\   sÛ   € Ü˜%¤Ô'¬3¨u«:¼¸T×=TÑ=TÓ9UÒ+UÜØ�)Ð5´c¸$×:QÑ:QÓ6RÐ5SÐTóð ð "$ˆÜ&/Ü�×'Ñ'¨°tÔ<ó'
ò 	Ñ"ˆAÑ"�˜'ðØ—‘˜x×/Ñ/°Ó8Õ9ð		ô �W‹~Ðøô  ò Ü˜ 	¨!¨¨D°°	¸ÀTÀHÐMÔNØûðús   Â B/Â/	CÂ8CÃCc                 ó@   ‡— t        ˆfd„| j                  D «       «      S )Nc              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr.   rN   rO   s     €r5   r@   z.TupleStrategy.calc_is_empty.<locals>.<genexpr>m   rQ   rR   )Úanyr2   rT   s    `r5   Úcalc_is_emptyzTupleStrategy.calc_is_emptyl   rV   r6   ©r7   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    r   r0   r;   ÚintrC   ÚstrrJ   r   ÚboolrU   r   r1   r   re   r   rq   rx   Ú__classcell__©r4   s   @r5   r,   r,   4   s˜   ø„ ñ.ð4 8¨N¸3Ñ,?Ñ#@õ 4óð
˜Có 
ð
2˜#ó 2ð>¨fð >¸ó >ð˜Nð ¨u°R¸°W©~ó ð ˜Sð  U¨7°C¨<Ñ%8ó ð > 6ð >¨d÷ >r6   r,   .r7   rN   c                   ó   — y r.   rN   rN   r6   r5   Útuplesr„   p   s   € Ø+.r6   Ú__a1c                  ó   — y r.   rN   )r…   s    r5   r„   r„   t   s   € ØCFr6   Ú__a2c                  ó   — y r.   rN   )r…   r‡   s     r5   r„   r„   x   s   € ð $'r6   Ú__a3c                  ó   — y r.   rN   )r…   r‡   r‰   s      r5   r„   r„   ~   s   € ð (+r6   Ú__a4c                  ó   — y r.   rN   )r…   r‡   r‰   r‹   s       r5   r„   r„   „   s   € ð ,/r6   Ú__a5c                  ó   — y r.   rN   )r…   r‡   r‰   r‹   r�   s        r5   r„   r„   �   s   € ð 03r6   Úargsc                   ó   — y r.   rN   )r�   s    r5   r„   r„   —   s   € ð '*r6   c                  ó<   — | D ]  }t        |«       Œ t        | «      S )a9  Return a strategy which generates a tuple of the same length as args by
    generating the value at index i from args[i].

    e.g. tuples(integers(), integers()) would generate a tuple of length
    two with both values an integer.

    Examples from this strategy shrink by shrinking their component parts.
    )r"   r,   )r�   Úargs     r5   r„   r„   �   s(   € ð ò ˆÜ�sÕðô ˜ÓÐr6   c                   óN  ‡ — e Zd ZU dZeeeefZee	e
ge
f   df   ed<   dej                  fdee   dedeez  dz  fˆ fd	„Zd
efd„Zdd„Zded
efd„Zded
ee   fd„Zde
d
eedf   fd„Zd
efd„Zede	ee   gee   f   d
dfd„«       Z ede	ee   ge
f   d
dfd„«       Z d„ Z ˆ xZ!S )ÚListStrategyz‘A strategy for lists which takes a strategy for its elements and the
    allowed lengths, and generates lists with the correct size and contents..Ú_nonempty_filtersr   ÚelementsÚmin_sizeÚmax_sizeNc                 óŒ  •— t         ‰| �  «        |xs d| _        |�|nt        j                  | _        d| j                  cxk  r| j
                  k  sJ ‚ J ‚t        t        | j                  dz  | j                  dz   «      d| j                  | j
                  z   z  «      | _        || _	        |t        kD  rt        | ›d�«      ‚y )Nr   é   é   ç      à?zÖ can never generate a value, because min_size is larger than Hypothesis supports.  Including it is at best slowing down your tests for no benefit; at worst making them fail (maybe flakily) with a HealthCheck error.)r/   r0   r—   ÚmathÚinfr˜   ÚminÚmaxÚaverage_sizeÚelement_strategyr   r   )r3   r–   r—   r˜   r4   s       €r5   r0   zListStrategy.__init__´   s¿   ø€ ô 	‰ÑÔØ š AˆŒØ$,Ð$8™¼d¿h¹hˆŒØ�D—M‘MÔ2 T§]¡]Ò2Ð2Ñ2Ð2Ð2ÜÜ�—‘ Ñ! 4§=¡=°1Ñ#4Ó5Ø�4—=‘= 4§=¡=Ñ0Ñ1ó
ˆÔð !)ˆÔØ”kÒ!Ü!Ø�(ð 'ð 'óð ð "r6   r7   c                 óV   — t        | j                  | j                  j                  «      S r.   )r   rA   r¢   r>   rB   s    r5   rC   zListStrategy.calc_labelË   s!   € Ü˜d×.Ñ.°×0EÑ0E×0KÑ0KÓLÐLr6   c                 ó<  — | j                   j                  «        | j                  rt        d| j                   ›d�«      ‚| j                   j                  rGd| j                  cxk  rt        d«      k  r(n y t        d| j                  ›d| j                   ›�«      ‚y y )Nz@Cannot create non-empty lists with elements drawn from strategy z because it has no values.r   rž   z'Cannot create a collection of max_size=z=, because no elements can be drawn from the element strategy )r¢   r9   Úis_emptyr   r˜   ÚfloatrB   s    r5   r;   zListStrategy.do_validateÎ   s¡   € Ø×Ñ×&Ñ&Ô(Ø�=Š=Ü!ðØ ×1Ñ1Ð4Ð4NðPóð ð × Ñ ×)Ò)¨a°$·-±-Ô.NÄ%ÈÃ,Õ.NÜ!Ø9¸$¿-¹-Ð9Jð KNà×(Ñ(Ð+ð-óð ð /OÐ)r6   rK   c                 óF   — | j                   dk(  ry || j                  «      S )Nr   F)r—   r¢   rT   s     r5   rx   zListStrategy.calc_is_emptyÜ   s"   € Ø�=‰=˜AÒØÙ�T×*Ñ*Ó+Ð+r6   rW   c                 óJ  — | j                   j                  r| j                  dk(  sJ ‚g S t        j                  || j                  | j
                  | j                  ¬«      5 }|D �cg c]  }|j                  | j                   «      ‘Œ c}cd d d «       S c c}w # 1 sw Y   y xY w)Nr   ©r—   r˜   r¡   )r¢   r¥   r—   ÚcuÚmanyr˜   r¡   r]   )r3   rW   r–   Ú_s       r5   re   zListStrategy.do_drawá   s•   € Ø× Ñ ×)Ò)Ø—=‘= AÒ%Ð%Ð%ØˆIä�W‰WØØ—]‘]Ø—]‘]Ø×*Ñ*ô	
ð 	Hð
 Ø>FÖG¸�D—I‘I˜d×3Ñ3Õ4ÒG÷	Hñ 	Hùò H÷	Hð 	Hús   Á!BÁ&"BÂBÂBÂB"rf   c                 óþ  — t        |t        «      st        |›d�«      ‚| j                  t	        |«      cxk  r| j
                  k  s6n t        dt	        |«      › d| j                  › d| j
                  ›d| ›�«      ‚| j                  j                  r|rt        d| ›d�«      ‚yt        j                  | j                  | j
                  «      }g }t        |«      D ]O  \  }}|j                  |j                  «       «       	 |j                  | j                  j                  |«      «       ŒQ |j                  |j                  «       «       t!        |«      S # t        $ r}t        |d	|› d
|›d| ›�«       ‚ d }~ww xY w)Nú is not a listúlen=ú
 outside [rE   ú] for zelements of z
 are emptyrN   rj   rk   rl   )rm   Úlistr   r—   rn   r˜   r¢   r¥   rª   Úinvert_manyrZ   rp   Úmorerq   r   Údoner1   ©r3   rf   r–   rr   rb   rs   rt   s          r5   rq   zListStrategy._invertî   sX  € Ü˜%¤Ô&Ü % ¨.Ð9Ó:Ð:Ø—‘¤ U£Ô<¨t¯}©}Ô<ÜØ”s˜5“z�lð #Ø—M‘M�? " T§]¡]Ð$5°V¸D¸8ðEóð ð × Ñ ×)Ò)áÜ" \°$°¸Ð#DÓEÐEØÜ—>‘> $§-¡-°·±Ó?ˆØ!#ˆÜ# EÓ*ò 	‰JˆAˆwØ�N‰N˜8Ÿ=™=›?Ô+ðØ—‘˜t×4Ñ4×<Ñ<¸WÓEÕFð	ð 	�‰�x—}‘}“Ô'Ü�W‹~Ðøô	  ò Ü˜ 	¨!¨¨D°°	¸ÀTÀHÐMÔNØûðús   Ä*EÅ	E<Å!E7Å7E<c                 ó†   — | j                   j                  › d| j                  ›d| j                  d›d| j                  d›d�S )Nú(z, min_size=r¬   z, max_size=ú))r4   rz   r¢   r—   r˜   rB   s    r5   rJ   zListStrategy.__repr__  sK   € à�~‰~×&Ñ&Ð' q¨×)>Ñ)>Ð(Að BØŸ™ aÐ(¨°D·M±MÀ!Ð3DÀAðGð	
r6   Ú	conditionzSearchStrategy[T]c                  ó   — y r.   rN   ©r3   rº   s     r5   ÚfilterzListStrategy.filter  s   € ð "r6   zSearchStrategy[list[Ex]]c                  ó   — y r.   rN   r¼   s     r5   r½   zListStrategy.filter  s   € ð &)r6   c                 ój  — || j                   v st        |«      rE| j                  dk\  sJ d«       ‚| j                  dk\  r| S t	        j                  | «      }d|_        |S t        |«      \  }}|j                  d«      �r d|v sd|v �rt	        j                  | «      }t        | j                  |j                  d| j                  «      «      |_        t        | j                  |j                  d| j                  «      «      |_        |j                  |j                  kD  rt        j                  | |«      S t        t        |j                  dz  |j                  dz   «      d|j                  |j                  z   z  «      |_        |€|S t        j                  ||«      S t        j                  | |«      S )	Né   z+Always-empty is special cased in st.lists()rn   Ú	min_valueÚ	max_valuerš   r›   rœ   )r•   r   r˜   r—   Úcopyr   Úgetr    rŸ   r    r½   r¡   )r3   rº   ÚnewÚconstraintsÚpreds        r5   r½   zListStrategy.filter  sp  € Ø˜×.Ñ.Ñ.Ô2FÀyÔ2QØ—=‘= AÒ%ÐTÐ'TÓTÐ%Ø�}‰} Ò!Ø�Ü—)‘)˜D“/ˆCØˆCŒLØˆJä8¸ÓCÑˆ�TØ�?‰?˜5Õ!Ø˜;Ñ&¨+¸Ò*Dä—)‘)˜D“/ˆCÜØ—‘˜{Ÿ™¨{¸D¿M¹MÓJóˆCŒLô Ø—‘˜{Ÿ™¨{¸D¿M¹MÓJóˆCŒLð �|‰|˜cŸl™lÒ*Ü%×,Ñ,¨T°9Ó=Ð=ä"Ü�C—L‘L 1Ñ$ c§l¡l°QÑ&6Ó7Ø�s—|‘| c§l¡lÑ2Ñ3ó ˆCÔð ˆ|Ø�
Ü!×(Ñ(¨¨iÓ8Ð8ä×$Ñ$ T¨9Ó5Ð5r6   ry   )"rz   r{   r|   r}   r€   rn   r1   r²   r•   r   r   Ú__annotations__r�   rž   r    r   r~   r¦   r0   rC   r;   r   rx   r   re   r   rq   r   rJ   r   r   r!   r½   r�   r‚   s   @r5   r”   r”   ®   sH  ø… ñPð <@ÀÀeÈTÐ:RÐ�u˜X s e¨S jÑ1°3Ð6Ñ7ÓRð
 Ø'+§x¡xñ	à  Ñ$ðð ðð ˜#‘+ Ñ$õ	ð.M˜Có Móð, 6ð ,¨dó ,ð
H˜Nð H¨t°B©xó Hð˜Sð  U¨7°C¨<Ñ%8ó ð2
˜#ó 
ð ð"Ø! 4¨¡8 *¨i¸©lÐ":Ñ;ð"à	ò"ó ð"ð ð)Ø! 4¨¡8 *¨c /Ñ2ð)à	#ò)ó ð)ö 6r6   r”   c                   óÎ   ‡ — e Zd Zdee   dedeez  dz  deeege	f   df   deeedf      dz  f
ˆ fd„Z
d	ed
ee   fd„Zdee	   d
dfd„Zde	d
ee	   fd„Zde	d
eedf   fd„Zˆ xZS )ÚUniqueListStrategyr–   r—   r˜   NÚkeys.Útuple_suffixesc                 óD   •— t         ‰| �  |||«       || _        || _        y r.   )r/   r0   rË   rÌ   )r3   r–   r—   r˜   rË   rÌ   r4   s         €r5   r0   zUniqueListStrategy.__init__9  s%   ø€ ô 	‰Ñ˜ 8¨XÔ6ØˆŒ	Ø,ˆÕr6   rW   r7   c                 ó‚  ‡ ‡
— ‰ j                   j                  r‰ j                  dk(  sJ ‚g S t        d„ ‰ j                  D «       «      Š
g }dt
        dt        fˆ
ˆ fd„}t        ‰ j                   |f¬«      }|j                  t        «       |j                  dk(  rd|_        	 t        j                  |‰ j                  ‰ j                  ‰ j                  ¬«      5 }|D ]à  }|xj                  dz  c_
        	 |j!                  |«      }|xj                  dz  c_
        |t"        u r|j%                  d	|›�«       Œ\t'        |t(        «      rJ ‚t+        ‰ j                  ‰
d
¬«      D ]  \  }}	|	j-                   ||«      «       Œ ‰ j.                  �|g|j1                  ‰ j.                  «      ¢­}|j3                  |«       Œâ 	 d d d «       |j5                  «        ‰ j                  t7        |«      cxk\  r‰ j                  k\  sJ ‚ J ‚|S # |xj                  dz  c_
        w xY w# 1 sw Y   ŒbxY w# |j5                  «        w xY w)Nr   c              3   ó0   K  — | ]  }t        «       –— Œ y ­wr.   ©Úset©r?   r¬   s     r5   r@   z-UniqueListStrategy.do_draw.<locals>.<genexpr>L  ó   è ø€ Ò.H¸¬s¯uÑ.Hùó   ‚Úvalr7   c                 óZ   •‡ — t        ˆ fd„t        ‰j                  ‰d¬«      D «       «      S )Nc              3   ó8   •K  — | ]  \  }} |‰«      |v–— Œ y ­wr.   rN   )r?   ÚkeyÚseenrÕ   s      €r5   r@   zMUniqueListStrategy.do_draw.<locals>.not_yet_in_unique_list.<locals>.<genexpr>W  s&   øè ø€ ò á�C˜ñ �C“ Ô$ñùó   ƒTrh   )rS   ro   rË   )rÕ   Ú	seen_setsr3   s   `€€r5   Únot_yet_in_unique_listz:UniqueListStrategy.do_draw.<locals>.not_yet_in_unique_listV  s*   ù€ Üó ä!$ T§Y¡Y°	À$Ô!Gôó ð r6   )Ú
conditionsr©   rÀ   z'Aborted test because unable to satisfy Trh   )r¢   r¥   r—   r1   rË   r   r€   r   Ú
start_spanr   Úunique_element_depthÚsimplest_indexrª   r«   r˜   r¡   Údo_filtered_drawr#   Úrejectrm   r&   ro   ÚaddrÌ   r]   r\   Ú	stop_spanrn   )r3   rW   ra   rÜ   Úfilteredr–   r¬   rf   rØ   rÙ   rÛ   s   `         @r5   re   zUniqueListStrategy.do_drawG  s  ù€ Ø× Ñ ×)Ò)Ø—=‘= AÒ%Ð%Ð%ØˆIä).Ñ.H¸d¿i¹iÔ.HÓ)Hˆ	ð
 ˆð
	¬ð 	¬tö 	ô $Ø×!Ñ!Ð/EÐ.Gô
ˆð 	�‰Ô/Ô0Ø×$Ñ$¨Ò)ð
 #$ˆDÔð	Ü—‘ØØŸ™ØŸ™Ø!×.Ñ.ô	ð -ð
 Ø!ò -�AØ×-Ò-°Ñ2Õ-ð7Ø (× 9Ñ 9¸$Ó ?˜à×1Ò1°QÑ6Õ1ØÔ 4Ñ4Ø Ÿ™ØEÀhÀ\ÐRõô $.¨eÔ5EÔ#FÐFÐFÜ),¨T¯Y©Y¸	È$Ô)Oò 1™I˜C Ø ŸH™H¡S¨£ZÕ0ð1à×.Ñ.Ð:Ø%*Ð$L¨T¯Y©Y°t×7JÑ7JÓ-KÑ$L˜EØŸ™ eÕ,ñ!-÷-ð0 �N‰NÔØ�}‰}¤ F£Ô<¨t¯}©}Ò<Ð<Ñ<Ð<Ð<Øˆøð ×1Ò1°QÑ6Ö1ú÷-ð -ûð0 �N‰NÕús=   Â!7H, ÃH Ã4HÄB9H Æ?H, ÈHÈH È H)È%H, È,H>c                 óî   — | j                   D ]J  }	 t        t        ||«      «      }t        t	        |«      «      t        |«      k(  }|rŒ<t        |›d| ›�«      ‚ y # t
        $ r t        d| ›�«      d ‚w xY w)Nz&could not compute uniqueness keys for z has duplicate keys for )rË   r²   rG   rn   rÑ   Ú	Exceptionr   )r3   r–   ÚkeyfuncrË   Úuniques        r5   Ú_check_unique_keysz%UniqueListStrategy._check_unique_keysƒ  sŠ   € Ø—y‘yò 		TˆGðÜœC ¨Ó2Ó3�ÜœS ›Y›¬3¨t«9Ñ4�ò
 Ü" h \Ð1IÈ$ÈÐ#RÓSÐSñ		Tøô ò Ü"Ø<¸T¸HÐEóàððús   ‘5AÁA4rf   c                 ó®   — t        |t        «      st        |›d�«      ‚t        d„ |D «       «      st        |›d�«      ‚|D �cg c]  }|d   ‘Œ	 c}S c c}w )Nr®   c              3   óD   K  — | ]  }t        |t        «      xr |–— Œ y ­wr.   )rm   r1   )r?   rP   s     r5   r@   z5UniqueListStrategy._split_suffixed.<locals>.<genexpr>•  s   è ø€ Ò=°!”:˜a¤Ó'Ò-¨AÓ-Ñ=ùs   ‚ z! is not a list of nonempty tuplesr   )rm   r²   r   rS   )r3   rf   rP   s      r5   Ú_split_suffixedz"UniqueListStrategy._split_suffixed�  sY   € ô ˜%¤Ô&Ü % ¨.Ð9Ó:Ð:ÜÑ=°uÔ=Ô=Ü % Ð*KÐLÓMÐMØ#Ö$˜��!“Ò$Ð$ùÒ$s   ÁAc                 óŠ  — | j                   €'| j                  |«       t        j                  | |«      S | j                  | j	                  |«      «       | j
                  t        |«      cxk  r| j                  k  s6n t        dt        |«      › d| j
                  › d| j                  ›d| ›�«      ‚t        j                  | j
                  | j                  «      }g }t        |«      D ]ˆ  \  }}|j                  |j                  «       «       	 |j                  | j                  j                  |d   «      «       |j                  | j                   j                  t        |dd  «      «      «       ŒŠ |j                  |j#                  «       «       t        |«      S # t        $ r}t!        |d|› d|›d	| ›�«       ‚ d }~ww xY w)
Nr¯   r°   rE   r±   r   rÀ   rj   rk   rl   )rÌ   rê   r”   rq   rí   r—   rn   r˜   r   rª   r³   rZ   rp   r´   r¢   r1   r   rµ   r¶   s          r5   rq   zUniqueListStrategy._invert™  s‡  € Ø×ÑÐ&ð ×#Ñ# EÔ*Ü×'Ñ'¨¨eÓ4Ð4Ø×Ñ × 4Ñ 4°UÓ ;Ô<Ø—‘¤ U£Ô<¨t¯}©}Ô<ÜØ”s˜5“z�lð #Ø—M‘M�? " T§]¡]Ð$5°V¸D¸8ðEóð ô —>‘> $§-¡-°·±Ó?ˆØ!#ˆÜ# EÓ*ò 	‰JˆAˆwØ�N‰N˜8Ÿ=™=›?Ô+ðØ—‘˜t×4Ñ4×<Ñ<¸WÀQ¹ZÓHÔIØ—‘˜t×2Ñ2×:Ñ:¼5ÀÈÈÀÓ;MÓNÕOð		ð 	�‰�x—}‘}“Ô'Ü�W‹~Ðøô	  ò Ü˜ 	¨!¨¨D°°	¸ÀTÀHÐMÔNØûðús   ÄA#FÆ	GÆ'F=Æ=G)rz   r{   r|   r    r   r~   r¦   r1   r   r   r0   r   r²   re   rê   rí   r   rq   r�   r‚   s   @r5   rÊ   rÊ   8  sÒ   ø„ ð-à  Ñ$ð-ð ð-ð ˜#‘+ Ñ$ð	-ð �H˜b˜T 3˜YÑ'¨Ð,Ñ-ð-ð ' u¨R°¨W¡~Ñ6¸Ñ=õ-ð:˜Nð :¨t°B©xó :ðx
T¨4°©9ð 
T¸ó 
Tð% Sð %¨T°#©Yó %ð˜Sð  U¨7°C¨<Ñ%8÷ r6   rÊ   c                   ó<   — e Zd Zdedee   fd„Zdedee	df   fd„Z
y)ÚUniqueSampledListStrategyrW   r7   c           
      óÈ  ‡
— t        | j                  t        «      sJ ‚t        d„ | j                  D «       «      }g }t        | j                  j                  «      }t        j                  || j                  | j                  | j                  ¬«      5 }|D �]  }|j                  dt        |«      dz
  «      }| j                  j                  |j                  |«      |¬«      Š
‰
t         uržt#        ˆ
fd„t%        | j                  |d¬«      D «       «      rtt%        | j                  |d¬«      D ]  \  }}	|	j'                   |‰
«      «       Œ | j(                  �‰
g|j+                  | j(                  «      ¢­Š
|j-                  ‰
«       n|j/                  d	«       |r�Œ	 n d d d «       | j                  t        |«      cxk\  r| j                  k\  sJ ‚ J ‚|S # 1 sw Y   Œ8xY w)
Nc              3   ó0   K  — | ]  }t        «       –— Œ y ­wr.   rÐ   rÒ   s     r5   r@   z4UniqueSampledListStrategy.do_draw.<locals>.<genexpr>·  rÓ   rÔ   r©   r   rÀ   ©rW   c              3   ó8   •K  — | ]  \  }} |‰«      |v–— Œ y ­wr.   rN   )r?   rØ   rÙ   rf   s      €r5   r@   z4UniqueSampledListStrategy.do_draw.<locals>.<genexpr>Å  s&   øè ø€ ò =á!˜˜Tñ ˜“J dÔ*ñ=ùrÚ   Trh   zDUniqueSampledListStrategy filter not satisfied or value already seen)rm   r¢   r   r1   rË   r   r–   rª   r«   r—   r˜   r¡   Údraw_integerrn   Ú
_transformÚpopr#   rS   ro   rã   rÌ   r]   r\   râ   )r3   rW   rÛ   ra   Ú	remainingr–   r¬   ÚjrØ   rÙ   rf   s             @r5   re   z!UniqueSampledListStrategy.do_draw´  s­  ø€ Ü˜$×/Ñ/Ô1DÔEÐEÐEä).Ñ.H¸d¿i¹iÔ.HÓ)Hˆ	Øˆä$ T×%:Ñ%:×%CÑ%CÓDˆ	ä�W‰WØØ—]‘]Ø—]‘]Ø×*Ñ*ô	
ð 	ð
 Øó �Ø×%Ñ% a¬¨Y«¸!Ñ);Ó<�Ø×-Ñ-×8Ñ8¸¿¹ÀqÓ9IÐPTÐ8ÓU�ØÔ 4Ñ4¼ó =ä%(¨¯©°IÀdÔ%Kô=ô :ô &)¨¯©°IÀdÔ%Kò -™	˜˜TØŸ™¡ U£Õ,ð-à×*Ñ*Ð6Ø!&Ð H¨¯©°4×3FÑ3FÓ)GÑ H˜Ø—M‘M %Õ(à—O‘Oð-ôó !Ùð%÷	ð2 �}‰}¤ F£Ô<¨t¯}©}Ò<Ð<Ñ<Ð<Ð<Øˆ÷5	ð 	ús   ÂD
GÆGÇG!rf   .c                 óœ  — t        |t        «      st        |›d�«      ‚| j                  t	        |«      cxk  r| j
                  k  s6n t        dt	        |«      › d| j                  › d| j
                  ›d| ›�«      ‚| j                  €|n| j                  |«      }t        | j                  t        «      sJ ‚t        | j                  j                  «      }t        j                  | j                  | j
                  «      }g }t        t        ||d¬«      «      D ]à  \  }\  }}|j                  |j!                  «       «       t        |«      D ]P  \  }	}
t#        | j                  j%                  |
d ¬«      |«      sŒ.|j'                  |	«       |j)                  |	«        n t        d	|› d
|›d|›d| ›�«      ‚| j                  €Œª	 |j                  | j                  j+                  t-        |dd  «      «      «       Œâ |j                  |j1                  «       «       t-        |«      S # t        $ r}t/        |d	|› d
|›d| ›�«       ‚ d }~ww xY w)Nr®   r¯   r°   rE   r±   Trh   ró   rj   rk   z: z( is not among the remaining elements of rÀ   rl   )rm   r²   r   r—   rn   r˜   rÌ   rí   r¢   r   r–   rª   r³   rZ   ro   rp   r´   r   rö   r\   r÷   rq   r1   r   rµ   )r3   rf   Útargetsrø   r–   rr   rb   rs   Útargetrù   Ú	candidatert   s               r5   rq   z!UniqueSampledListStrategy._invertØ  s-  € Ü˜%¤Ô&Ü % ¨.Ð9Ó:Ð:Ø—‘¤ U£Ô<¨t¯}©}Ô<ÜØ”s˜5“z�lð #Ø—M‘M�? " T§]¡]Ð$5°V¸D¸8ðEóð ð  ×.Ñ.Ð6‘%¸D×<PÑ<PÐQVÓ<Wˆô ˜$×/Ñ/Ô1DÔEÐEÐEÜ˜×.Ñ.×7Ñ7Ó8ˆ	Ü—>‘> $§-¡-°·±Ó?ˆØ!#ˆÜ$-¬c°%¸ÈÔ.NÓ$Oò 	Ñ ˆAÑ �˜Ø�N‰N˜8Ÿ=™=›?Ô+Ü )¨)Ó 4ò ‘��9ÜØ×)Ñ)×4Ñ4°YÀTÐ4ÓJÈFõð —N‘N 1Ô%Ø—M‘M !Ô$Ùðô #Ø ˜s $ u i¨r°&°ð <-Ø-1¨Hð6óð ð ×"Ñ"Ñ.ðØ—N‘N 4×#6Ñ#6×#>Ñ#>¼uÀWÈQÈRÀ[Ó?QÓ#RÕSð!	ð( 	�‰�x—}‘}“Ô'Ü�W‹~Ðøô	 $ò Ü˜S I¨a¨S°°U°I¸[ÈÈÐ"QÔRØûðús   Ç6H'È'	IÈ0IÉIN)rz   r{   r|   r   r²   r   re   r   r1   r   rq   rN   r6   r5   rð   rð   ³  s6   „ ð"˜Nð "¨t°B©xó "ðH$˜Sð $ U¨7°C¨<Ñ%8ô $r6   rð   c                   ó¢   ‡ — e Zd ZdZdeeee   f   deeee   f   dz  fˆ fd„Zdedeeef   fd„Z	d	ede
ed
f   fd„Zdedefd„Zdefd„Zˆ xZS )ÚFixedDictStrategyzðA strategy which produces mappings with a fixed set of keys, given a
    strategy for each of their equivalent values.

    e.g. {'foo' : some_int_strategy} would generate mappings with the single
    key 'foo' mapping to some integer.
    ÚmappingÚoptionalNc                ó
  •‡‡— t         ‰| �  «        t        |«      Š|| _        t	        |j                  «       «      Št        j                  ‰D �cg c]  }||   ‘Œ	 c}Ž j                  ˆˆfd„«      | _	        || _
        y c c}w )Nc                 ó,   •—  ‰t        ‰| d¬«      «      S )NTrh   )ro   )rf   Ú	dict_typerË   s    €€r5   ú<lambda>z,FixedDictStrategy.__init__.<locals>.<lambda>  s   ø€ ™)¤C¨¨e¸DÔ$AÓB€ r6   )r/   r0   Útyper   r1   rË   Ústr„   rG   Úfixedr  )r3   r   r  Úkr  rË   r4   s       @@€r5   r0   zFixedDictStrategy.__init__  sk   ú€ ô 	‰ÑÔÜ˜“Mˆ	ØˆŒÜ�W—\‘\“^Ó$ˆÜ—Y‘Y°TÖ :° ¨£Ò :Ð;×?Ñ?ÜBó
ˆŒ
ð !ˆ�ùò !;s   ÁB rW   r7   c           
      óL  — t        «       }i }g }| j                  j                  «       D ]O  \  }}|j                  t	        |«      «      5 }|j                  ||j                  |«      f«       d d d «       |z  }ŒQ | j                  ��| j                  j                  «       D ��	cg c]  \  }}	|	j                  rŒ|‘Œ }
}}	t        j                  |dt        |
«      t        |
«      dz  ¬«      5 }|D ]˜  }|j                  dt        |
«      dz
  «      }|
|   |
d   c|
d<   |
|<   |
j                  «       }|j                  t	        |«      «      5 }|j                  ||j                  | j                  |   «      f«       d d d «       |z  }Œš 	 d d d «       t        j                  ||«        t        | j                  «      |«      }|r0|j                   t#        |«         j                  t%        |«      «       |S # 1 sw Y   �Œ‘xY wc c}	}w # 1 sw Y   Œ‘xY w# 1 sw Y   Œ�xY w)Nr   rš   r©   rÀ   éÿÿÿÿ)r
   r   Úitemsr[   r   r\   r]   r  r¥   rª   r«   rn   rõ   r÷   Úfisher_yates_shuffler  r^   r(   r)   )r3   rW   r_   r`   ÚpairsrØ   rc   rd   r	  Úvrø   r–   r¬   rù   rf   s                  r5   re   zFixedDictStrategy.do_draw  sü  € Ü'Ó)ˆØ!#ˆ
Ø')ˆà!Ÿ\™\×/Ñ/Ó1ò 	$‰MˆC�Ø×%Ñ%¤c¨#£hÓ/ð 9°9Ø—‘˜c 4§9¡9¨XÓ#6Ð7Ô8÷9à˜)Ñ#‰Jð	$ð
 �=‰=Ñ$Ø'+§}¡}×':Ñ':Ó'<×O™t˜q !ÀAÇJÃJšÐOˆIÑOÜ—‘ØØÜ˜Y›Ü  ›^¨aÑ/ô	ð ,ð
 Ø!ò ,�AØ×)Ñ)¨!¬S°«^¸aÑ-?Ó@�AØ2;¸A±,À	È"ÁÐ/�I˜b‘M 9¨Q¡<Ø#Ÿ-™-›/�CØ×-Ñ-¬c°#«hÓ7ð K¸9ØŸ™ c¨4¯9©9°T·]±]À3Ñ5GÓ+HÐ%IÔJ÷Kà )Ñ+‘Jñ,÷,ô  	×Ñ  eÔ,Ø"”�T—\‘\Ó" 5Ó)ˆáØ×)Ñ)¬%°«,Ñ7×>Ñ>Ü# JÓ/ôð ˆ÷;9ñ 9üó
 P÷Kð Kú÷,ð ,ús=   Á	#G;Â%HÂ:HÃ/AHÅ0HÅ>HÇ;H	ÈHÈHÈH#rf   .c                 ó˜  ‡ ‡‡— t        ‰t        «      st        ‰›d�«      ‚‰ j                  xs i Št	        ˆfd„‰ j
                  D «       «      st	        ˆˆ fd„‰D «       «      rt        ‰›d‰ ›�«      ‚g }t        ‰ j
                  «      }‰ j
                  j                  «       D ])  \  }}	 |j                  |j                  ‰|   «      «       Œ+ ‰ j                  ��l‰ j                  j                  «       D ��cg c]  \  }}|j                  rŒ|‘Œ }	}}|	D �cg c]  }|‰v sŒ|‰ j
                  vsŒ|‘Œ }
}|t        |
«      z   t        ‰«      k7  rt        ‰›d‰ ›�«      ‚t        j                  dt        |	«      «      }|
D ]•  }|j                  |j                  «       «       |	j                  |«      }|j!                  |«       |	|   |	d	   c|	d	<   |	|<   |	j#                  «        	 |j                  ‰ j                  |   j                  ‰|   «      «       Œ— |j                  |j%                  «       «       |t        |
«      z  }|j                  t'        |d
z
  «      «       t)        |«      S # t        $ r}t        |d|›d‰›d‰ ›�«       ‚ d }~ww xY wc c}}w c c}w # t        $ r}t        |d|›d‰›d‰ ›�«       ‚ d }~ww xY w)Nz is not a mappingc              3   ó&   •K  — | ]  }|‰v–— Œ
 y ­wr.   rN   )r?   r	  rf   s     €r5   r@   z,FixedDictStrategy._invert.<locals>.<genexpr>?  s   øè ø€ Ò4 !ˆq˜Œ~Ñ4ùs   ƒc              3   óF   •K  — | ]  }|‰j                   vxr |‰v–— Œ y ­wr.   )r   )r?   r	  r  r3   s     €€r5   r@   z,FixedDictStrategy._invert.<locals>.<genexpr>?  s,   øè ø€ ò <
Ø<=ˆA�T—\‘\Ð!Ò7 a¨xÐ&7Ó7ñ<
ùs   ƒ!z has the wrong keys for zat key rk   rl   r   r  rÀ   )rm   r   r   r  rw   r   rn   r  rp   rq   r   r¥   rª   r³   r´   Úindexr\   r÷   rµ   Úranger1   )r3   rf   rr   ÚnpairsrØ   rc   rt   r	  r  rø   ÚpresentÚselectorrù   r  s   ``           @r5   rq   zFixedDictStrategy._invert;  s”  ú€ Ü˜%¤Ô)Ü % Ð*;Ð<Ó=Ð=Ø—=‘=Ò& BˆÜÓ4 t§|¡|Ô4Ô4¼ô <
ØAFô<
ô 9
ô  % Ð*BÀ4À(ÐKÓLÐLà!#ˆÜ�T—\‘\Ó"ˆØ!Ÿ\™\×/Ñ/Ó1ò 	‰MˆC�ðØ—‘˜x×/Ñ/°°c±
Ó;Õ<ð	ð �=‰=Ñ$ð (,§}¡}×':Ñ':Ó'<×O™t˜q !ÀAÇJÃJšÐOˆIÑOØ"+ÖT˜Q¨q°Eªz¸aÀtÇ|Á|Ò>S’qÐTˆGÐTØœ˜G›Ñ$¬¨E«
Ò2ä" e YÐ.FÀtÀhÐ#OÓPÐPÜ—~‘~ a¬¨Y«Ó8ˆHØò 
�Ø—‘˜xŸ}™}›Ô/Ø—O‘O CÓ(�Ø—‘˜qÔ!Ø.7¸©l¸IÀb¹MÐ+�	˜"‘˜y¨™|Ø—‘”ðØ—N‘N 4§=¡=°Ñ#5×#=Ñ#=¸eÀC¹jÓ#IÕJð
ð �N‰N˜8Ÿ=™=›?Ô+Ø”c˜'“lÑ"ˆFð 	�‰”u˜V a™ZÓ(Ô)Ü�W‹~Ðøô=  ò Ü˜ ¨ w¨d°5°)¸;ÀtÀhÐOÔPØûðüó PùÚTøô $ò Ü˜S G¨C¨7°$°u°i¸{È4È(Ð"SÔTØûðúsN   Â-#I3Ã<JÄJÄ	J Ä&J Ä5J Ç,0J%É3	JÉ<JÊJÊ%	K	Ê.KËK	rK   c                 ó&   —  || j                   «      S r.   )r  rT   s     r5   rx   zFixedDictStrategy.calc_is_emptyi  s   € Ù�T—Z‘ZÓ Ð r6   c                 ót   — | j                   �d| j                  ›d| j                   ›d�S d| j                  ›d�S )Nzfixed_dictionaries(z, optional=r¹   )r  r   rB   s    r5   rJ   zFixedDictStrategy.__repr__l  s@   € Ø�=‰=Ð$Ø(¨¯©Ð(8¸ÀDÇMÁMÐCTÐTUÐVÐVØ$ T§\¡\Ð$4°AÐ6Ð6r6   )rz   r{   r|   r}   r   r   r    r0   r   re   r1   r   rq   r   r€   rx   r   rJ   r�   r‚   s   @r5   rÿ   rÿ   ÿ  s›   ø„ ñð!à˜˜n¨SÑ1Ð1Ñ2ð!ð ˜#˜~¨cÑ2Ð2Ñ3°dÑ:õ	!ð#˜Nð #¨w°s¸C°xÑ/@ó #ðJ,˜Sð , U¨7°C¨<Ñ%8ó ,ð\! 6ð !¨dó !ð7˜#÷ 7r6   rÿ   )FrÃ   r�   Úcollections.abcr   r   r   Útypingr   r   r   Ú
hypothesisr	   r  Úhypothesis.controlr
   Úhypothesis.errorsr   r   Úhypothesis.internal.compatr   Úhypothesis.internal.conjecturer   rª   Ú%hypothesis.internal.conjecture.choicer   Ú#hypothesis.internal.conjecture.datar   r   Ú%hypothesis.internal.conjecture.enginer   Ú)hypothesis.internal.conjecture.junkdrawerr   r   Ú$hypothesis.internal.conjecture.utilsr   Úhypothesis.internal.filteringr   Úhypothesis.internal.reflectionr   Ú*hypothesis.strategies._internal.strategiesr   r   r   r   r   r   r   r   r    r!   r"   r#   Ú%hypothesis.strategies._internal.utilsr$   r%   Úhypothesis.utils.conventionsr&   Úhypothesis.vendor.prettyr'   r(   r)   r*   r1   r,   r„   r²   r”   rÊ   rð   rÿ   rN   r6   r5   ú<module>r,     s	  ðó Û ß 7Ñ 7ß +Ñ +å 'Ý 4ß ;Ý /Ý 6Ý 9ß WÝ =ß TÝ ?Ý FÝ ?÷÷ ÷ ó ÷ NÝ 9÷ó ô9>�N 5¨¨S¨¡>Ñ2ô 9>ðx 
Ø .�˜u R™yÑ)Ò .ó 
Ø .ð 
Ø F� Ñ#Ð F¨°u¸R±yÑ(AÒ Fó 
Ø Fð 
ð'Ø
˜Ñ
ð'Ø$2°1Ñ$5ð'à�E˜"˜a˜%‘LÑ!ò'ó 
ð'ð
 
ð+Ø
˜Ñ
ð+Ø$2°1Ñ$5ð+Ø=KÈBÑ=Oð+à�E˜"˜a ˜)Ñ$Ñ%ò+ó 
ð+ð
 
ð/Ø
˜Ñ
ð/à
˜Ñ
ð/ð ˜Ñ
ð/ð ˜Ñ
ð	/ð
 �E˜"˜a  R˜-Ñ(Ñ)ò/ó 
ð/ð 
ð3Ø
˜Ñ
ð3à
˜Ñ
ð3ð ˜Ñ
ð3ð ˜Ñ
ð	3ð
 ˜Ñ
ð3ð �E˜"˜a  R¨Ð+Ñ,Ñ-ò3ó 
ð3ð 
ð*Ø˜#Ñð*à�E˜#˜s˜(‘OÑ$ò*ó 
ð*ð
 ÙÓð�. Ñ%ð ¨.¸¸sÀC¸x¹Ñ*Iò ó ó ðôG6�> $ r¡(Ñ+ô G6ôTx˜ bÑ)ô xôvIÐ 2ô IôXp7˜ w¨s°C¨xÑ'8Ñ9õ p7r6   