Ë
    iKêj(Ó  ã                   ó„  — U d Z ddlZddlZddlZddlZddlmZmZmZ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mZmZ dd	lmZ dd
l m!Z!m"Z"m#Z$ ddl%m&Z&m'Z' ddl(m)Z)m*Z* ddl+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@mAZA ddlBmCZC ddlDmEZEmFZF ddlGmHZHmIZI ddlJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ ddlRmSZS ddlTmUZU er!ddlmVZV ddlWmXZX  G d„ dej²                  «      ZZ ed«      Z[ e7d «      Z\ee]   e^d!<   d"e_d#e`fd$„Za G d%„ d&«      Zb G d'„ d(«      Zcdddd)œd*edd+   d,e$dz  d-e]d.eeefe`f   dz  d#ed/   f
d0„Zgddd1œd*edd+   d,e$dz  d-e]d#dfd2„Zh G d3„ d4ed«      Zi e
d5d5¬6«       G d7„ d8«      «       Zj G d9„ d+ei¬:«      Zk e
d5d;¬6«       G d<„ d=«      «       Zl ejÚ                  «       ZneeNe      e^d><    G d?„ d@eM«      Zo G dA„ dBeNeK   «      ZpdCepeK   d#eNeK   fdD„Zq e
d5d5¬6«       G dE„ dFeeK   «      «       ZrdGe[d#ere[   fdH„ZsdI„ ZtdJZudKZvdLZwdMZxedNereK   eKz  f   ZyeeyeK   geyeK   f   ZzdOed#effdP„Z{edNdQœdRe	epeK      dSddTeNd#ezeK   fdU„«       Z|edNdVœdSepeK   dRebdTeNd#ezeK   fdW„«       Z|edNdNdXœdSddRebdTeNd#eed/   ged/   f   fdY„«       Z|dZdd[œdRe	epeK      ebz  dSepeK   dz  dTeNd#ezeK   eed/   ged/   f   z  fd\„Z|edNdQœdRe	epeK      dSddTeNd#ezeK   fd]„«       Z}edNdVœdSepeK   dRebdTeNd#ezeK   fd^„«       Z}edNdNdXœdSddRebdTeNd#eed/   ged/   f   fd_„«       Z}dZdd[œdRe	epeK      ebz  dSepeK   dz  dTeNd#ezeK   eed/   ged/   f   z  fd`„Z} e
d5d5¬6«       G da„ db«      «       Z~dceege`f   d#ee)ge)f   fdd„Z e
d5d5¬6«       G de„ df«      «       Z€d;dgœdhe`d#ee)ge)f   fdi„Z� G dj„ dkeN«      Z‚y)la  This module provides support for a stateful style of testing, where tests
attempt to find a sequence of operations that cause a breakage rather than just
a single value.

Notably, the set of steps available at any point may depend on the
execution to date.
é    N)ÚCallableÚIterableÚIteratorÚSequence)Ú	dataclassÚfield)Ú	lru_cache)ÚStringIO)Úperf_counter)
ÚTYPE_CHECKINGÚAnyÚClassVarÚFinalÚLiteralÚNeverÚ	TypeGuardÚTypeVarÚcastÚoverload)Ú
strategies)ÚHealthCheckÚ	VerbosityÚsettings)Ú_current_build_contextÚcurrent_build_context)ÚTestFuncÚgiven)ÚFlakyStrategyDefinitionÚInvalidArgumentÚInvalidDefinition)Úadd_noteÚbatched)ÚBUFFER_SIZE)Úgc_cumulative_time)Úcalc_label_from_name)Úfail_health_check)ÚPredicateCountsÚobservability_enabled)Úfunction_digestÚget_pretty_function_descriptionÚnicereprÚproxies)Ú
check_type)Úcurrent_verbosityÚreport)ÚFeatureFlagsÚFeatureStrategy)ÚExÚOneOfStrategyÚSampledFromStrategyÚSearchStrategyÚcheck_strategyÚcurrent_filter_call_siteÚfilter_not_satisfied)Únote_deprecation)ÚRepresentationPrinter)Údefaultdict)ÚConjectureDatac                   ó&   — e Zd ZU ee   ed<   dd„Zy)Ú_StateMachineTestCaser   Nc                  ó   — y ©N© ©Úselfs    úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/stateful.pyÚrunTestz_StateMachineTestCase.runTestV   ó   � ó    ©ÚreturnN)Ú__name__Ú
__module__Ú__qualname__r   ÚSettingsÚ__annotations__rE   rA   rG   rD   r>   r>   S   s   … Ø˜8Ñ$Ó$ä&rG   r>   ÚTzanother state machine stepÚSTATE_MACHINE_RUN_LABELÚobjrI   c                 óh   — t        | t        «      rd| cxk  rdk  ry t        | t        «      xs | du S )zm
    Returns True if two separately created instances of v will have the same id
    (due to interning).
    éûÿÿÿé   TN)Ú
isinstanceÚintÚbool)rQ   s    rD   Ú_is_singletonrX   ]   s:   € ô �#”sÔ  cÔ 0¨SÒ 0Øð !1ô �cœ4Ó Ò/ C¨4 KÐ/rG   c                   ó   — e Zd ZdZy)Ú_OmittedArgumentzmSentinel class to prevent overlapping overloads in type hints. See comments
    above the overloads of @rule.N)rJ   rK   rL   Ú__doc__rA   rG   rD   rZ   rZ   k   s   „ ò%rG   rZ   c                   óZ   — e Zd Z	 dddded   dz  ded   fd„Zded	edefd
„Zdedefd„Zy)ÚTestCasePropertyNrQ   zRuleBasedStateMachine | NoneÚtypÚRuleBasedStateMachinerI   r>   c                 óD   — |�t        |«      }|€J ‚|j                  «       S r@   )ÚtypeÚ_to_test_case)rC   rQ   r^   s      rD   Ú__get__zTestCaseProperty.__get__q   s+   € ð
 ˆ?Ü�s“)ˆCØˆÐˆØ× Ñ Ó"Ð"rG   Úvaluec                 ó   — t        d«      ‚)NzCannot set TestCase©ÚAttributeError)rC   rQ   rd   s      rD   Ú__set__zTestCaseProperty.__set__{   s   € ÜÐ2Ó3Ð3rG   c                 ó   — t        d«      ‚)NzCannot delete TestCaserf   )rC   rQ   s     rD   Ú
__delete__zTestCaseProperty.__delete__~   s   € ÜÐ5Ó6Ð6rG   r@   )rJ   rK   rL   ra   rc   r   rh   rj   rA   rG   rD   r]   r]   p   sf   „ ð 59ñ#à+ð#ð Ð)Ñ*¨TÑ1ð#ð 
Ð%Ñ	&ó	#ð4˜5ð 4¨ð 4°5ó 4ð7˜eð 7¨ô 7rG   r]   ©r   Ú
_min_stepsÚ_flaky_stateÚstate_machine_factoryr_   r   rl   rm   ).Nc                ó$  ‡ ‡‡‡— ‰€(	 ‰ j                   j                  Št        t        ‰d«       t        t        ‰d«       t        t        ‰d«       ‰dk  rt        d‰› d�«      ‚‰xs i Š‰t        t        j                  «       «      ˆˆˆˆ fd„«       «       }t        ‰ «      |j                  j                  _        t!        ‰ d	d «      |_        t!        ‰ d
d «      |_        d|_        |S # t        $ r t        d t        t        «      ¬«      ŠY Œßw xY w)Nz'state_machine_factory.TestCase.settings©ÚdeadlineÚsuppress_health_checkr   rl   r   z_min_steps=z must be non-negative.c           	      óh
  •‡‡— | j                   Š ‰«       }t        t        |d«       |‰_        ‰j                  |_        t        «       j                  xs t        «       t        j                  k\  Šg ‰_
        ˆˆfd„}	  |d|j                  j                  › d�«       |j                  ‰|‰j                  «       ‰j                  }d}	 ‰j!                  t"        «       d }||k\  rd}n |‰k  rd}n‰j$                  dt&        z  kD  rd}t)        «       }t+        «       }‰j-                  d	|¬
«      r�n�|dz  }d‰d<   |j.                  r |j.                  D �cg c]H  }t1        j2                  t1        j4                  |«      t1        j6                  |j8                  «      «      ‘ŒJ }	}‰j;                  t1        j<                  |	«      «      \  }} |j.                  j?                  |«       n‰j;                  |j@                  «      \  }} d‰d<   d|jB                  j                  › �}
‰jD                  jG                  |
d«       t+        «       |z
  }‰jD                  |
xx   t)        «       |z
  |z
  z  cc<   ‰s
tI        «       r2| jK                  «       D ��ci c]  \  }}||jM                  |«      “Œ }}}tO        «       }	 tQ        | «      } tS        | jK                  «       «      D ]€  \  }}tU        |tV        «      r|jX                  |jZ                     | |<   Œ3tU        |tR        «      sŒDt]        d„ |D «       «      sŒW|D �cg c]  }|jX                  |jZ                     ‘Œ c}| |<   Œ‚ d|jB                  j                  › �}t)        «       }t+        «       } |jB                  |fi | ¤Ž}t+        «       |z
  }‰j                  |xx   t)        «       |z
  |z
  z  cc<   |j^                  rUtU        |t`        «      r'|jc                  |j^                  |jd                  «       nU|jc                  |j^                  |g«       n7|�5tg        ‰d|jB                  jh                  › d|›�tj        jl                  «       ‰s
tI        «       r ||jo                  ||«      «       	 |j                  ‰|‰j                  «       ‰jq                  «        �Œ÷	  |d«       |js                  «        y c c}w c c}}w c c}w # ‰s
tI        «       r ||jo                  ||«      «       w w xY w#  |d«       |js                  «        w xY w)Nzstate_machine_factory()c                 óV   •— ‰rt        | «       ‰j                  j                  | «       y r@   )r/   Ú_stateful_repr_partsÚappend)ÚsÚcdÚprint_stepss    €€rD   ÚoutputzAget_state_machine_test.<locals>.run_state_machine.<locals>.output§   s!   ø€ ÙÜ�q”	Ø×#Ñ#×*Ñ*¨1Õ-rG   zstate = ú()r   TFgš™™™™™é?g      ð>)ÚpÚforcedé   Úselecting_rulezgenerate:rule:g        c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr@   ©rU   ÚVarReference©Ú.0Úitems     rD   ú	<genexpr>zDget_state_machine_test.<locals>.run_state_machine.<locals>.<genexpr>ì   s   è ø€ ò 9Ø?CœJ t¬\×:ñ9ùó   ‚zexecute:rule:z<Rules should return None if they have no target bundle, but ú
 returned zstate.teardown()):Úconjecture_datar-   r_   Úhypothesis_runnerÚ_observability_predicatesr   Úis_finalr.   r   Údebugru   Ú	__class__rJ   Úcheck_invariantsÚ_stateful_run_timesÚstateful_step_countÚ
start_spanrP   Úlengthr#   r   r$   Údraw_booleanÚ_initialize_rules_to_runÚstÚtuplesÚjustÚfixed_dictionariesÚ	argumentsÚdrawÚone_ofÚremoveÚ_rules_strategyÚfunctionÚ
draw_timesÚ
setdefaultr(   ÚitemsÚ_pretty_printÚmultipleÚdictÚlistrU   r‚   Únames_to_valuesÚnameÚallÚtargetsÚMultipleResultsÚ_add_results_to_targetsÚvaluesr&   rL   r   Úreturn_valueÚ
_repr_stepÚ	stop_spanÚteardown)ÚdataÚmachinerz   Ú	max_stepsÚ	steps_runÚ	must_stopÚ
start_drawÚstart_gcÚruleÚ
init_rulesÚ
draw_labelÚ	in_gctimeÚkÚvÚdata_to_printÚresultr…   ÚlabelÚstartrx   ry   rm   rl   r   rn   s                      @@€€€€rD   Úrun_state_machinez1get_state_machine_test.<locals>.run_state_machine™   s¹  ú€ ð ×!Ñ!ˆÙ)>Ó)@ˆÜÔ(¨'Ð3LÔMØ&ˆÔØ,.×,HÑ,HˆÔ)ô "Ó#×,Ñ,ÒVÔ0AÓ0CÄyÇÁÑ0Vð 	ð #%ˆÔõ	.ð
b	Ù�X˜g×/Ñ/×8Ñ8Ð9¸Ð<Ô=Ø×$Ñ$ X¨v°r×7MÑ7MÔNØ ×4Ñ4ˆIØˆIàð —‘Ô5Ô6Ø �	Ø 	Ò)Ø $‘IØ *Ò,Ø %‘IØ—Y‘Y #¬Ñ"3Ò4ð !%�Iä)›^�
Ü-Ó/�Ø—?‘? V°I�?Ô>ÙØ˜Q‘�	ð 26�Ð-Ñ.Ø×3Ò3ð %,×$DÑ$Dö"à ô Ÿ	™	¤"§'¡'¨$£-´×1FÑ1FÀtÇ~Á~Ó1VÕWð"�Jð "ð "$§¡¬¯©°:Ó)>Ó!?‘J�D˜$Ø×4Ñ4×;Ñ;¸DÕAà!#§¡¨×)@Ñ)@Ó!A‘J�D˜$Ø16�Ð-Ñ.Ø-¨d¯m©m×.DÑ.DÐ-EÐF�
Ø—‘×(Ñ(¨°SÔ9Ü.Ó0°8Ñ;�	Ø—‘˜jÓ)¬\«^¸jÑ-HÈ9Ñ-TÑTÓ)ñ Ô"7Ô"9à@DÇ
Á
Ã÷%Ù8<¸¸1˜˜7×0Ñ0°Ó3Ñ3ð%�Mñ %ô
 "›�ð"PÜ ›:�DÜ $ T§Z¡Z£\Ó 2ò Y™˜˜1Ü% a¬Ô6Ø&-×&=Ñ&=¸a¿f¹fÑ&E˜D šGÜ'¨¬4Õ0´Sñ 9ØGHô9õ 6ð WXÖ&XÈd w×'>Ñ'>¸t¿y¹yÓ'IÒ&X˜D šGðYð ,¨D¯M©M×,BÑ,BÐ+CÐD�EÜ(›N�EÜ1Ó3�HØ*˜TŸ]™]¨7Ñ;°dÑ;�FÜ 2Ó 4°xÑ ?�IØ×*Ñ*¨5Ó1´\³^ÀeÑ5KÈiÑ5WÑWÓ1à—|’|Ü% f¬oÔ>Ø#×;Ñ;¸D¿L¹LÈ&Ï-É-ÕXà#×;Ñ;¸D¿L¹LÈ6È(ÕSØÐ+Ü)Ø$ð#Ø#'§=¡=×#=Ñ#=Ð">¸jÈÈ
ðTä'×4Ñ4ô	ñ #Ô&;Ô&=ñ ˜w×1Ñ1°$¸ÀvÓNÕOØ×(Ñ(¨°6¸2×;QÑ;QÔRØ—‘”ñs ð* ñL Ð%Ô&Ø×ÑÕùòA"ùó&%ùò 'Yøñ, #Ô&;Ô&=ñ ˜w×1Ñ1°$¸ÀvÓNÕOð	 '>ûñ Ð%Ô&Ø×ÑÕúsf   Á?CT ÅASÆ$C.T ÊS!Ê.T Ê<A'S, Ì$S, Ì7S, Ì; S'ÍDS, Ñ-AT ÓT Ó'S, Ó,(TÔT ÔT1Ú_hypothesis_internal_use_seedÚ*_hypothesis_internal_use_reproduce_failureF)ÚTestCaser   r-   rM   rg   r¦   r   rV   r   r   r–   r²   r)   Ú
hypothesisÚ
inner_testÚ_hypothesis_internal_add_digestÚgetattrrÄ   rÅ   Ú%_hypothesis_internal_print_given_args)rn   r   rl   rm   rÃ   s   ```` rD   Úget_state_machine_testrÌ   ‚   s"  û€ ð Ðð	XØ,×5Ñ5×>Ñ>ˆHÜ”x Ð+TÔUô Œx˜ :Ô.ÜŒs�J Ô-Ø�A‚~ô  ¨J¨<Ð7MÐNÓOÐOØÒ% 2€LàÜ
Œ2�7‰7‹9Óösó ó ðsôn 	Ð-Ó.ð × Ñ ×+Ñ+ÔKô 7>ØÐ>Àó7ÐÔ3ô DKØÐKÈTóDÐÔ@ð ?DÐÔ;ØÐøô[ ò 	XÜ¨ÄTÌ+ÓEVÔWŠHð	Xús   ˆ'C) Ã)#DÄD)r   rl   c                ó€   — ddi}t        | |||¬«      }	  |«        y# t        $ r}|d   rt        |d«       ‚ d}~ww xY w)ap  Run a state machine definition as a test, either silently doing nothing
    or printing a minimal breaking program and raising an exception.

    state_machine_factory is anything which returns an instance of
    RuleBasedStateMachine when called with no arguments - it can be a class or a
    function. settings will be used to control the execution of the test.
    r   Frk   zwwhile selecting a rule to run. This is usually caused by a flaky precondition, or a bundle that was unexpectedly empty.N)rÌ   r   r!   )rn   r   rl   Úflaky_stateÚstate_machine_testÚerrs         rD   Úrun_state_machine_as_testrÑ     s_   € ð $ UÐ+€KÜ/ØØØØ ô	Ðð	ÙÕøÜ"ò ØÐ'Ò(ÜØðQôð
 	ûðús   • �	=¦8¸=c                   ó,   ‡ — e Zd Zdededdfˆ fd„Zˆ xZS )ÚStateMachineMetar¨   rd   rI   Nc                 óè   •— |dk(  r]t        |t        «      rMd|j                  «       › d�}t        d| j                  › d|› d| j                  › d|› d| j                  › d	�«      ‚t
        ‰| �  ||«      S )
Nr   ú	settings(ú)z
Assigning z.settings = z does nothing. Assign to ú.TestCase.settings, or use @ú as a decorator on the ú class.)rU   rM   Úshow_changedrg   rJ   ÚsuperÚ__setattr__)Úclsr¨   rd   ÚdescrrŽ   s       €rD   rÜ   zStateMachineMeta.__setattr__@  s‰   ø€ Ø�:Ò¤*¨U´HÔ"=Ø × 2Ñ 2Ó 4Ð5°QÐ7ˆEÜ Ø˜SŸ\™\˜N¨,°u°gð >Ø—l‘l�^Ð#?À¸wð GØŸ,™,˜ wð0óð ô
 ‰wÑ" 4¨Ó/Ð/rG   )rJ   rK   rL   Ústrr   rÜ   Ú__classcell__©rŽ   s   @rD   rÓ   rÓ   ?  s"   ø„ ð0˜sð 0¨3ð 0°4÷ 0ñ 0rG   rÓ   T)ÚslotsÚfrozenc                   ó>   — e Zd ZU ed   ed<   ed   ed<   ed   ed<   y)Ú_SetupStateÚRuleÚrulesÚ	InvariantÚ
invariantsÚinitializersN)rJ   rK   rL   r¦   rN   rA   rG   rD   rå   rå   K  s!   … à�‰<ÓØ�[Ñ!Ó!Ø�v‘,ÔrG   rå   c                   ó¦  — e Zd ZU dZi Zeeeef      e	d<   e
d   e	d<   e
d   e	d<   eee
d   f   e	d<   ej                  e   e	d	<   e
e   e	d
<   eeef   e	d<   de	d<   d%d„Zd„ Zdefd„Zd„ Zdede
e   fd„Zdede
d   fd„Zedefd„«       Zdddededefd„Zd„ Zdedeegef   d eeef   ddfd!„Zd%d"„Z e «       Z!ee"ded#   fd$„«       «       Z#y)&r_   aÿ  A RuleBasedStateMachine gives you a structured way to define state machines.

    The idea is that a state machine carries the system under test and some supporting
    data. This data can be stored in instance variables or
    divided into Bundles. The state machine has a set of rules which may read data
    from bundles (or just from normal strategies), push data onto
    bundles, change the state of the machine, or verify properties.
    At any given point a random applicable rule will be executed.
    Ú_setup_state_per_classræ   rç   rè   ré   r‚   ÚbundlesÚnames_countersÚ
names_listr§   z!defaultdict[str, PredicateCounts]r‹   rI   Nc                 óØ  — | j                  «       }|j                  s"t        dt        | «      j                  › d�«      ‚t        t        t        | «      «      j                  d«      x}t        «      rAt        | «      j                  }d|j                  «       › d�}t        d|› d|› d|› d	|› d
�	«      ‚|j                  | _        |j                  | _
        |j                  j                  «       | _        i | _        t        j                   «       | _        g | _        i | _        t)        «       | _        t-        | j*                  t.        j0                  ¬«      | _        t5        | «      | _        y )NzState machine z defines no rulesr   rÕ   rÖ   zAssigning settings = z. as a class attribute does nothing. Assign to r×   rØ   rÙ   )Úcontext)Úsetup_staterç   r    ra   rJ   rU   ÚvarsÚgetrM   rÚ   ré   rê   Úcopyr•   rí   ÚcollectionsÚCounterrî   rï   r§   r
   Ú_RuleBasedStateMachine__streamr:   r   rd   Ú_RuleBasedStateMachine__printerÚRuleStrategyrž   )rC   rò   rw   ÚtnamerÞ   s        rD   Ú__init__zRuleBasedStateMachine.__init__h  sM  € Ø×&Ñ&Ó(ˆØ× Ò Ü#Ø ¤ d£×!4Ñ!4Ð 5Ð5FÐGóð ô œ4¤ T£
Ó+×/Ñ/°
Ó;Ð;�a¼XÔFÜ˜“J×'Ñ'ˆEØ §¡Ó 0Ð1°Ð3ˆEÜ#Ø'¨ wð /Ø"˜GÐ#?À¸wð GØ˜ ð)óð ð !×&Ñ&ˆŒ
Ø%×0Ñ0ˆŒà(3×(@Ñ(@×(EÑ(EÓ(GˆÔ%àˆŒÜ)×1Ñ1Ó3ˆÔØˆŒØ!ˆÔÜ ›
ˆŒÜ.Ø�M‰MÔ#9×#?Ñ#?ô
ˆŒô  ,¨DÓ1ˆÕrG   c                 ó|  — t        |t        «      r|j                  S t        |t        «      rAt	        d„ |D «       «      r/ddj                  |D �cg c]  }|j                  ‘Œ c}«      z   dz   S | j                  j                  d«       | j                  j                  d«       d| j                  _
        d| j                  _        | j                  j                  j                  «        | j                  j                  |«       | j                  j                  «        | j                  j!                  «       S c c}w )Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr@   r�   rƒ   s     rD   r†   z6RuleBasedStateMachine._pretty_print.<locals>.<genexpr>Š  s   è ø€ ò -
Ø/3ŒJ�tœ\×*ñ-
ùr‡   ú[ú, ú]r   )rU   r‚   r¨   r¦   r©   Újoinrø   ÚseekÚtruncaterù   Úoutput_widthÚbuffer_widthÚbufferÚclearÚprettyÚflushÚgetvalue)rC   rd   r…   s      rD   r£   z#RuleBasedStateMachine._pretty_print‡  së   € Ü�eœ\Ô*Ø—:‘:ÐÜ˜œtÔ$¬ñ -
Ø7<ô-
ô *
ð ˜Ÿ™¸%Ö#@°$ D§I£IÒ#@ÓAÑAÀCÑGÐGØ�‰×Ñ˜1ÔØ�‰×Ñ˜qÔ!Ø&'ˆ�‰Ô#Ø&'ˆ�‰Ô#Ø�‰×Ñ×#Ñ#Ô%Ø�‰×Ñ˜eÔ$Ø�‰×ÑÔØ�}‰}×%Ñ%Ó'Ð'ùò $As   ÁD9
c                 ó^   — t        | «      j                  › dt        | j                  «      › d�S )Nú(rÖ   )ra   rJ   r+   rí   rB   s    rD   Ú__repr__zRuleBasedStateMachine.__repr__—  s*   € Ü�t“*×%Ñ%Ð& a¬°·±Ó(>Ð'?¸qÐAÐArG   c                 ó’   — |› d| j                   |   › �}| j                   |xx   dz  cc<   | j                  j                  |«       |S )NÚ_r~   )rî   rï   rv   )rC   ÚtargetrÀ   s      rD   Ú	_new_namezRuleBasedStateMachine._new_nameš  sK   € Ø�8˜1˜T×0Ñ0°Ñ8Ð9Ð:ˆØ×Ñ˜FÓ# qÑ(Ó#Ø�‰×Ñ˜vÔ&ØˆrG   Únc                 ó^   — t        | j                  «      }||k\  sJ ‚| j                  ||z
  d  S r@   )Úlenrï   )rC   r  Úlen_s      rD   Ú_last_namesz!RuleBasedStateMachine._last_names   s1   € Ü�4—?‘?Ó#ˆØ�qŠyÐˆyØ�‰˜t a™x˜zÐ*Ð*rG   r¨   c                 ó:   — | j                   j                  |g «      S r@   )rí   r¡   )rC   r¨   s     rD   ÚbundlezRuleBasedStateMachine.bundle¥  s   € Ø�|‰|×&Ñ& t¨RÓ0Ð0rG   c                 óø  — 	 | j                   |    S # t        $ r Y nw xY wg }g }g }t        j                  | «      D ]Ÿ  \  }}t	        |t
        d «      }t	        |t        d «      }t	        |t        d «      }|�|j                  |«       |�|j                  |«       |�|j                  |«       t	        |t        d «      €Œ„|�Œ‡|�ŒŠt        t        |«      › d�«      ‚ t        |||¬«      }	|	| j                   | <   |	S )Nz· has been decorated with @precondition, but not @rule (or @invariant), which is not allowed. A precondition must be combined with a rule or an invariant, since it has no effect alone.)rç   rê   ré   )rì   ÚKeyErrorÚinspectÚ
getmembersrÊ   ÚRULE_MARKERÚINITIALIZE_RULE_MARKERÚINVARIANT_MARKERrv   ÚPRECONDITIONS_MARKERr    Ú_rule_qualnamerå   )
rÝ   rç   rê   ré   Ú_nameÚfr¹   ÚinitializerÚ	invariantÚstates
             rD   rò   z!RuleBasedStateMachine.setup_state¨  s(  € ð	Ø×-Ñ-¨cÑ2Ð2øÜò 	Ùð	úð ˆØ#%ˆØ&(ˆ
ä×*Ñ*¨3Ó/ò 	‰HˆE�1Ü˜1œk¨4Ó0ˆDÜ! !Ô%;¸TÓBˆKÜ Ô#3°TÓ:ˆIØÐØ—‘˜TÔ"ØÐ&Ø×#Ñ# KÔ0ØÐ$Ø×!Ñ! )Ô,ô ˜Ô/°Ó6ÑBØ‘LØÑ%ä'Ü% aÓ(Ð)ð *4ð 4óð ð!	ô. Ø l¸zô
ˆð +0ˆ×"Ñ" 3Ñ'Øˆs   ‚ ‘	œr¹   r²   rÀ   c                 ó$  — d}g }|j                   �r!t        |t        «      rt        |j                  «      nd}t        |j                   «      |z  }| j                  |«      }t        |t        «      r­t        |j                  «      dk(  r(|D �	cg c]  }	d|	› d�‘Œ
 }
}	dj                  |
«      dz   }n�|j                  rut        t        ||«      «      }dj                  |d   «      }|dz   }|dd  D ]*  }dj                  |«      }|j                  |dz   |z   «       Œ, ndj                  |«      dz   }dj                  d„ |j                  «       D «       «      }|› d	|j                  j                  › d|› d
�}dj                  |g|z   «      S c c}	w )NÚ r~   r  z,)z = r   r   c              3   ó0   K  — | ]  \  }}|› d |› �–— Œ y­w)ú=NrA   )r„   r½   r¾   s      rD   r†   z3RuleBasedStateMachine._repr_step.<locals>.<genexpr>ì  s   è ø€ Ò=©¨¨1˜A˜3˜a ˜sœÑ=ùs   ‚ústate.rÖ   ú
)rª   rU   r«   r  r­   r  r  r¦   r"   rv   r¢   rŸ   rJ   )rC   r¹   r²   rÀ   Úoutput_assignmentÚextra_assignment_linesÚnumber_of_resultsÚnumber_of_last_namesÚ
last_namesr¨   Úoutput_per_targetÚnames_per_targetÚfirst_target_outputÚother_target_namesÚother_target_outputÚargsÚoutput_lines                    rD   r¯   z RuleBasedStateMachine._repr_stepÐ  s–  € ØÐØ!#ÐØ�<‹<ä&0°¼Ô&I”�F—M‘MÔ"Èqð ô $' t§|¡|Ó#4Ð7HÑ#HÐ Ø×)Ñ)Ð*>Ó?ˆJÜ˜&¤/Ô2Ü�v—}‘}Ó%¨Ò*àBLÖ(M¸$¨1¨T¨F°"ªÐ(MÐ%Ð(MØ(-¯
©
Ð3DÓ(EÈÑ(MÑ%Ø—]’]ô (,¬G°JÐ@QÓ,RÓ'SÐ$Ø*.¯)©)Ð4DÀQÑ4GÓ*HÐ'Ø(;¸eÑ(CÐ%Ø.>¸q¸rÐ.Bò Ð*Ø.2¯i©iÐ8JÓ.KÐ+Ø.×5Ñ5Ø/°%Ñ7Ð:MÑMõñð %*§J¡J¨zÓ$:¸UÑ$BÐ!Ø�y‰yÑ=°·
±
³Ô=Ó=ˆØ*Ð+¨6°$·-±-×2HÑ2HÐ1IÈÈ4È&ÐPQÐRˆØ�y‰y˜+˜Ð)?Ñ?Ó@Ð@ùò% )Ns   ÂFc                 óF  — |D ]œ  }|D ]•  }| j                  |«      }|fd„}t        |«      s/| j                  j                  j	                  t        |«      |«       || j                  |<   | j                  j	                  |g «      j                  t        |«      «       Œ— Œž y )Nc                 ó$   — |j                  |«      S r@   )Útext)rQ   r|   Úcycler¨   s       rD   Úprinterz>RuleBasedStateMachine._add_results_to_targets.<locals>.printerö  s   € ØŸ6™6 $›<Ð'rG   )
r  rX   rù   Úsingleton_pprintersr¡   Úidr§   rí   rv   r‚   )rC   rª   Úresultsr  rÀ   r¨   r>  s          rD   r¬   z-RuleBasedStateMachine._add_results_to_targetsð  s–   € àò 	OˆFØ!ò O�Ø—~‘~ fÓ-�à04ó (ô
 % VÔ,Ø—N‘N×6Ñ6×AÑAÄ"ÀVÃ*ÈgÔVØ-3�×$Ñ$ TÑ*Ø—‘×'Ñ'¨°Ó3×:Ñ:¼<ÈÓ;MÕNñOñ	OrG   r   rz   Úruntimesc           	      ó4  ‡ — ‰ j                   D �]  }‰ j                  r|j                  sŒt        ˆ fd„|j                  D «       «      sŒ<|j
                  j                  }t        «       j                  s'|j                  t        j                  k\  s
t        «       r |d|› d�«       t        «       }|j                  ‰ «      }|d|› �xx   t        «       |z
  z  cc<   |€ŒÒt        |d|j
                  j                  › d|›d�t         j"                  «       �Œ
 y )Nc              3   ó.   •K  — | ]  } |‰«      –— Œ y ­wr@   rA   )r„   ÚprecondrC   s     €rD   r†   z9RuleBasedStateMachine.check_invariants.<locals>.<genexpr>	  s   øè ø€ ÒH¨‘w˜t—}ÑHùs   ƒr,  r{   zexecute:invariant:z9The return value of an @invariant is always ignored, but rˆ   z instead of None)ré   r•   Úcheck_during_initr©   ÚpreconditionsrŸ   rJ   r   rŒ   Ú	verbosityr   r�   r(   r   r&   rL   r   r®   )rC   r   rz   rB  Úinvarr¨   rÂ   rÀ   s   `       rD   r�   z&RuleBasedStateMachine.check_invariants   sû   ø€ ð —_‘_ó 	ˆEØ×,Ò,°U×5LÒ5LØÜÓH°E×4GÑ4GÔHÔHØØ—>‘>×*Ñ*ˆDä%Ó'×0Ò0Ø×%Ñ%¬¯©Ò8Ü(Ô*á˜ ˜v RÐ(Ô)Ü “NˆEØ—^‘^ DÓ)ˆFØÐ)¨$¨Ð0Ó1´\³^ÀeÑ5KÑKÓ1ØÑ!Ü!ØØOØ—~‘~×2Ñ2Ð3°:¸f¸Zð H&ð&ô  ×,Ñ,öñ!	rG   c                  ó   — y)z}Called after a run has finished executing to clean up any necessary
        state.

        Does nothing by default.
        NrA   rB   s    rD   r±   zRuleBasedStateMachine.teardown  rF   rG   r>   c                 ó¢   ‡ —  G ˆ fd„dt         j                  «      }‰ j                  dz   |_        ‰ j                  dz   |_        t	        d|«      S )Nc                   óV   •— e Zd Z ed ee«      ¬«      Zˆ fd„Zde_        W ° e_	        y)úARuleBasedStateMachine._to_test_case.<locals>.StateMachineTestCaseNrp   c                 ó4   •— t        ‰| j                  ¬«       y )N)r   )rÑ   r   )rC   rÝ   s    €rD   rE   zIRuleBasedStateMachine._to_test_case.<locals>.StateMachineTestCase.runTest-  s   ø€ Ü)¨#¸¿¹ÖFrG   T)
rJ   rK   rL   rM   r¦   r   r   rE   Úis_hypothesis_testÚ_hypothesis_state_machine_class)rÝ   s   €rD   ÚStateMachineTestCaserM  *  s,   ø„ Ù¨ÁTÈ+ÓEVÔWˆHôGð *.ˆGÔ&Ù69ˆGÕ3rG   rQ  z	.TestCaseztype[_StateMachineTestCase])ÚunittestrÆ   rJ   rL   r   )rÝ   rQ  s   ` rD   rb   z#RuleBasedStateMachine._to_test_case'  sL   ø€ ö	:¤8×#4Ñ#4ô 	:ð ),¯©°{Ñ(BÐÔ%Ø,/×,<Ñ,<¸{Ñ,JÐÔ)ÜÐ1Ð3GÓHÐHrG   rH   )$rJ   rK   rL   r[   rì   r   r¥   ra   rå   rN   r¦   rß   rö   r÷   r   rü   r£   r  r  rV   r  r  Úclassmethodrò   r¯   r¬   rM   r   ÚobjectÚfloatr�   r±   r]   rÆ   r	   rb   rA   rG   rD   r_   r_   R  s‹  … ñð ACÐ˜H T¨$°Ð*;Ñ%<Ñ=ÓBà�‰<ÓØ�[Ñ!Ó!Ø�#�t˜NÑ+Ð+Ñ,Ó,Ø×'Ñ'¨Ñ,Ó,Ø�S‘	ÓØ˜#˜s˜(‘^Ó#àBÓBó2ò>(ð B˜#ó Bòð+˜Sð + T¨#¡Yó +ð
1˜3ð 1 4¨Ñ#7ó 1ð ð%˜Kò %ó ð%ðNA˜vð A¨Sð A¸#ð AÀ#ó Aò@Oð àðð ˜#˜ ˜Ñ'ðð �s˜E�zÑ"ð	ð
 
óó<ñ  Ó!€HàØðI˜dÐ#:Ñ;ò Ió ó ñIrG   )Ú	metaclassFc                   óà   — e Zd ZU eed<   eed<   eed<   eed<    ed¬«      Zed   ed<    edd	¬
«      Ze	d	z  ed<    edd	¬
«      Z
ed	z  ed<    ede¬«      Zeeef   ed<   d„ Zdefd„Zd„ Zy	)ræ   rª   rŸ   rš   rG  F)Úinit)ÚBundle.rí   N)rX  ÚdefaultÚ_cached_hashÚ_cached_repr)rX  Údefault_factoryÚarguments_strategiesc                 óp  — g }t        | j                  j                  «       «      D ]~  \  }}t        |t        «      rZ|j                  |«       t        d„ |j                  D «       «      }t	        |j                  |j                  ||j                  ¬«      }|| j                  |<   Œ€ t        |«      | _        y )Nc              3   ó*   K  — | ]  ^}}|d k(  –— Œ y­w)ÚfilterNrA   )r„   r¨   r  s      rD   r†   z%Rule.__post_init__.<locals>.<genexpr>M  s   è ø€ ò &Ø)1¨°�D˜HÕ$ñ&ùs   ‚©ÚconsumeÚdraw_referencesÚtransformations)Úsortedrš   r¢   rU   rY  rv   r©   Ú_transformationsr¨   rc  r^  Útuplerí   )rC   rí   r½   r¾   rd  s        rD   Ú__post_init__zRule.__post_init__C  s¦   € ØˆÜ˜4Ÿ>™>×/Ñ/Ó1Ó2ò 	-‰DˆAˆqÜ˜!œVÔ$Ø—‘˜qÔ!ô #&ñ &Ø56×5GÑ5Gô&ó #�ô Ø—F‘FØŸI™IØ$3Ø$%×$6Ñ$6ô	�ð ,-ˆD×%Ñ% aÒ(ð#	-ô$ ˜W“~ˆ�rG   rI   c                 ód  — | j                   €”t        j                  | «      D �cg c]F  }t        | |j                  «      r.|j                  › dt        t        | |j                  «      «      › �‘ŒH }}| j                  j                  › ddj                  |«      › d�| _         | j                   S c c}w )Nr+  r  r   rÖ   )	r\  ÚdataclassesÚfieldsrÊ   r¨   r*   rŽ   rJ   r  )rC   r   Úbitss      rD   r  zRule.__repr__Y  s¨   € Ø×ÑÐ$ô )×/Ñ/°Ó5öð Ü˜4 §¡Ô,ð —:‘:�,˜aÜ2´7¸4ÀÇÁÓ3LÓMÐNòPðˆDð ð $(§>¡>×#:Ñ#:Ð";¸1¸T¿Y¹YÀt»_Ð<MÈQÐ OˆDÔØ× Ñ Ð ùòs   ¤AB-c                 óî   — | j                   €^t        | j                  | j                  t	        | j
                  j                  «       «      | j                  | j                  f«      | _         | j                   S r@   )	r[  Úhashrª   rŸ   rh  rš   r¢   rG  rí   rB   s    rD   Ú__hash__zRule.__hash__d  sc   € ð ×ÑÐ$Ü $à—L‘LØ—M‘MÜ˜$Ÿ.™.×.Ñ.Ó0Ó1Ø×&Ñ&Ø—L‘Lðó!ˆDÔð × Ñ Ð rG   )rJ   rK   rL   r   rN   r   rí   rh  r[  rV   r\  rß   r¥   r^  ri  r  rp  rA   rG   rD   ræ   ræ   8  s…   … àƒLØƒMØƒNØÓÙ$)¨uÔ$5€GˆU�=Ñ!Ó5Ù$¨%¸Ô>€L�#˜‘*Ó>Ù$¨%¸Ô>€L�#˜‘*Ó>Ù+0°eÈTÔ+RÐ˜$˜s C˜x™.ÓRò&ð,	!˜#ó 	!ó!rG   ræ   Úself_strategyc                   ó,   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zˆ xZS )Ú_BundleSampleraÙ  A single draw from the current contents of a Bundle.

    A Bundle's elements are only known at draw time, so Bundle.do_draw
    constructs a throwaway instance of this strategy for each draw, passing
    (position, reference) pairs as the elements.

    The throwaway instance is also what makes bundle draws thread-safe:
    Bundle and its Rule-created copies are shared by every instance of the
    machine class, so per-draw state must live here and never on them.
    c                ó8   •— t         ‰| �  |||¬«       || _        y )N©Ú
force_reprre  )rÛ   rü   r³   )rC   r³   Úelementsrv  re  rŽ   s        €rD   rü   z_BundleSampler.__init__ƒ  s%   ø€ Ü‰ÑØ ¸_ð 	ô 	
ð ˆ�rG   c                ó˜   •— |\  }}t         ‰| �  | j                  j                  |j                     |¬«      }|t
        u rt
        S |||fS )N)r²   )rÛ   Ú
_transformr³   r§   r¨   r8   )rC   Úelementr²   ÚpositionÚ	referencerÀ   rŽ   s         €rD   ry  z_BundleSampler._transform‰  sY   ø€ ð
 &Ñˆ�)Ü‘Ñ#Ø�L‰L×(Ñ(¨¯©Ñ8¸tð $ó 
ˆð Ô)Ñ)Ü'Ð'Ø˜) VÐ,Ð,rG   )rJ   rK   rL   r[   rü   ry  rà   rá   s   @rD   rs  rs  w  s   ø„ ñ	ô÷-ð -rG   rs  c                   óÊ  ‡ — e Zd ZU dZeed<   eed<   eed<   edddœdd	dededed
   de	e	ed   e
egef   edz  f   df   ddfd„«       Zeddddœdededed   de	e	ed   e
egef   edz  f   df   ddf
d„«       Zddddœdededede	e	ed   e
egef   edz  f   df   ddf
ˆ fd„Zdddefd„Zddœd„Zedd	de
egef   dd	fd„«       Zede
egef   ddfd„«       Zde
egef   ddfd„Zedd	de
egef   dd	fd „«       Zede
egee   f   ddfd!„«       Zede
egef   dd"fd#„«       Zde
egef   ddfd$„Zd%„ Zdefd&„Zd'e
egef   ded   fd(„Zdddefd)„Zdefd*„Zˆ xZS )+rY  ab  A collection of values for use in stateful testing.

    Bundles are a kind of strategy where values can be added by rules,
    and (like any strategy) used as inputs to future rules.

    The ``name`` argument they are passed is the they are referred to
    internally by the state machine; no two bundles may have
    the same name. It is idiomatic to use the attribute
    being assigned to as the name of the Bundle::

        class MyStateMachine(RuleBasedStateMachine):
            keys = Bundle("keys")

    Bundles can contain the same value more than once; this becomes
    relevant when using :func:`~hypothesis.stateful.consumes` to remove
    values again.

    If the ``consume`` argument is set to True, then all values that are
    drawn from this bundle will be consumed (as above) when requested.

    Bundles may be used with |.filter| and |.map| like any other
    strategy, and this composes with :func:`~hypothesis.stateful.consumes` in
    either order - e.g. ``consumes(b.filter(fn))`` and ``consumes(b).filter(fn)``
    are equivalent, and only ever consume the value which was actually drawn.
    r¨   rc  rd  FrA   ©rc  re  rC   zBundle[VarReference]Tre  )ra  ÚmapN.rI   c                 ó   — y r@   rA   ©rC   r¨   rc  rd  re  s        rD   rü   zBundle.__init__¶  ó   € ð rG   rb  c                 ó   — y r@   rA   r�  s        rD   rü   zBundle.__init__Á  r‚  rG   c                óZ   •— t         ‰| �  «        || _        || _        || _        || _        y r@   )rÛ   rü   r¨   rc  rd  rg  )rC   r¨   rc  rd  re  rŽ   s        €rD   rü   zBundle.__init__Ì  s.   ø€ ô 	‰ÑÔØˆŒ	ØˆŒØ.ˆÔØ /ˆÕrG   r²   r<   c                 ó(  — |j                  t        «      }|j                  | j                  «      }|s|j	                  d| j                  ›�«       t        |t        t        |«      «      d d d…   | j                  «       | j                  ¬«      }|j                  |«      }|t        u r$|j	                  d| ›�|j                  «       ¬«       t        d|«      \  }}}| j                  r|j                  |«       | j                   rt        d|«      S |S )NzCannot draw from empty bundle éÿÿÿÿru  z'Aborted test because unable to satisfy ©Úlocationztuple[int, VarReference, Any]r2   )r›   rq  r  r¨   Úmark_invalidrs  r¦   Ú	enumerateÚ
_base_reprrg  Údo_filtered_drawr8   Úlast_rejected_filter_locationr   rc  Úpoprd  )	rC   r²   r³   r  ÚsamplerrÀ   r{  r|  rd   s	            rD   Údo_drawzBundle.do_drawÜ  sþ   € Ø—)‘)œMÓ*ˆØ—‘ §	¡	Ó*ˆÙØ×ÑÐ >¸t¿y¹y¸mÐLÔMô
 !ØÜ”˜6Ó"Ó#¡D b DÑ)Ø—‘Ó(Ø ×1Ñ1ô	
ˆð ×)Ñ)¨$Ó/ˆØÔ)Ñ)Ø×ÑØ9¸$¸ÐBØ×;Ñ;Ó=ð ô ô &*Ð*IÈ6Ó%RÑ"ˆ�)˜UØ�<Š<Ø�J‰J�xÔ Ø(,×(<Ò(<Œt�D˜)Ó$ÐGÀ%ÐGrG   r‡  c          	      ó€   — t        | j                  | j                  | j                  g | j                  ¢|||f‘­¬«      S )Nrb  )rY  r¨   rc  rd  rg  )rC   r¨   r$  rˆ  s       rD   Ú__with_transformzBundle.__with_transformû  s@   € ÜØ�I‰IØ—L‘LØ ×0Ñ0ØI˜d×3Ñ3ÐI°d¸A¸xÐ5HÑIô	
ð 	
rG   Úpackc                  ó   — y r@   rA   ©rC   r“  s     rD   r  z
Bundle.map  ó   € ð "%rG   z	Bundle[T]c                  ó   — y r@   rA   r•  s     rD   r  z
Bundle.map  s   € Ø;>rG   zBundle[Any]c                 ó&   — | j                  d|«      S )Nr  )Ú_Bundle__with_transformr•  s     rD   r  z
Bundle.map	  s   € Ø×$Ñ$ U¨DÓ1Ð1rG   Ú	conditionc                  ó   — y r@   rA   ©rC   rš  s     rD   ra  zBundle.filter  r–  rG   c                  ó   — y r@   rA   rœ  s     rD   ra  zBundle.filter  s   € ØNQrG   z
Bundle[Ex]c                  ó   — y r@   rA   rœ  s     rD   ra  zBundle.filter  s   € ØFIrG   c                 ó:   — | j                  d|t        «       ¬«      S )Nra  r‡  )r™  r7   rœ  s     rD   ra  zBundle.filter  s%   € Ø×$Ñ$Ø�iÔ*BÓ*Dð %ó 
ð 	
rG   c                 óF   — | j                   rdnd}d| j                  ›|› d�S )Nz, consume=Truer)  zBundle(name=rÖ   )rc  r¨   )rC   rc  s     rD   r‹  zBundle._base_repr  s'   € Ø&*§l¢lÑ"¸ˆØ˜dŸi™i˜]¨7¨)°1Ð5Ð5rG   c                 ól   — dj                  d„ | j                  D «       «      }| j                  «       |z   S )Nr)  c              3   óH   K  — | ]  \  }}}d |› dt        |«      › d�–— Œ y­w)ú.r  rÖ   N)r*   )r„   r¨   r$  r  s       rD   r†   z"Bundle.__repr__.<locals>.<genexpr>  s4   è ø€ ò 
á��a˜ð �ˆv�QÔ6°qÓ9Ð:¸!Ô<ñ
ùó   ‚ ")r  rg  r‹  )rC   Ú
transformss     rD   r  zBundle.__repr__  s7   € Ø—W‘Wñ 
à"×3Ñ3ô
ó 
ˆ
ð �‰Ó  :Ñ-Ð-rG   Úrecurc                  ó   — y)NFrA   )rC   r¦  s     rD   Úcalc_is_emptyzBundle.calc_is_empty$  s   € àrG   c                 óv   — |j                  t        «      }t        |j                  | j                  «      «       S r@   )r›   rq  rW   r  r¨   )rC   r²   r³   s      rD   Úis_currently_emptyzBundle.is_currently_empty(  s-   € ð —)‘)œMÓ*ˆÜ˜Ÿ™ t§y¡yÓ1Ó2Ð2Ð2rG   c                 ó0   — t        d| j                  f«      S )NrY  )ro  r¨   rB   s    rD   rp  zBundle.__hash__/  s   € ô �X˜tŸy™yÐ)Ó*Ð*rG   )rJ   rK   rL   r[   rß   rN   rW   r   r   rh  r   r   rü   r2   r�  r™  r  rO   ra  r   r‹  r  r¨  rª  rV   rp  rà   rá   s   @rD   rY  rY  —  s   ø… ñð4 ƒIØƒMØÓàð
 ð ò	Ø$ð	àð	ð ð		ð
 ! ™ð	ð Ø�'˜/Ñ*¨H°c°U¸C°ZÑ,@À#ÈÁ*ÐLÑMÈsÐRñ
ð	ð 
ò	ó ð	ð ð
 Ø*/ð ò	àð	ð ð		ð
 ! ™ð	ð Ø�'˜/Ñ*¨H°b°T¸3°YÑ,?ÀÀtÁÐKÑLÈcÐQñ
ð	ð 
ò	ó ð	ð Ø %ð ò0àð0ð ð	0ð
 ð0ð Ø�'˜/Ñ*¨H°c°U¸C°ZÑ,@À#ÈÁ*ÐLÑMÈsÐRñ
ð0ð 
õ0ð HÐ,ð H°ó Hð> 59ô 
ð ð%Ø$ð%Ø,4°c°U¸C°ZÑ,@ð%à	ò%ó ð%ð Ø>˜ "  q Ñ)Ð>¨kÒ>ó Ø>ð2˜ # ¨ Ñ,ð 2°ó 2ð ð%Ø$ð%Ø19¸3¸%À¸*Ñ1Eð%à	ò%ó ð%ð ØQ ¨"¨¨y¸©|Ð);Ñ <ÐQÀÒQó ØQØØI ¨"¨¨s¨Ñ 3ÐI¸ÒIó ØIð
 ¨"¨¨s¨Ñ 3ð 
¸ó 
ò
6ð.˜#ó .ð 8¨S¨E°4¨KÑ#8ð ¸WÀU¹^ó ð3Ð'7ð 3¸Dó 3ð+˜#÷ +rG   rY  r  c                 ó|   — t        | t        «      st        d«      ‚t        | j                  d| j                  ¬«      S )a   When introducing a rule in a RuleBasedStateMachine, this function can
    be used to mark bundles from which each value used in a step with the
    given rule should be removed. This function returns a strategy object
    that can be manipulated and combined like any other.

    For example, a rule declared with

    ``@rule(value1=b1, value2=consumes(b2), value3=lists(consumes(b3)))``

    will consume a value from Bundle ``b2`` and several values from Bundle
    ``b3`` to populate ``value2`` and ``value3`` each time it is executed.
    z)Argument to be consumed must be a bundle.Tr~  )rU   rY  Ú	TypeErrorr¨   rg  )r  s    rD   Úconsumesr®  8  s3   € ô �fœfÔ%ÜÐCÓDÐDÜ�&—+‘+ t¸V×=TÑ=TÔUÐUrG   c                   ó4   — e Zd ZU eedf   ed<   dee   fd„Zy)r«   .r­   rI   c                 ó,   — t        | j                  «      S r@   )Úiterr­   rB   s    rD   Ú__iter__zMultipleResults.__iter__N  s   € Ü�D—K‘KÓ Ð rG   N)rJ   rK   rL   rh  r2   rN   r   r²  rA   rG   rD   r«   r«   J  s    … à�"�c�'‰NÓð!˜( 2™,ô !rG   r«   r8  c                  ó   — t        | «      S )a  This function can be used to pass multiple results to the target(s) of
    a rule. Just use ``return multiple(result1, result2, ...)`` in your rule.

    It is also possible to use ``return multiple()`` with no arguments in
    order to end a rule without passing any result.
    )r«   )r8  s    rD   r¤   r¤   R  s   € ô ˜4Ó Ð rG   c           	      óº  — |�| rt        d| ›d|›dg | ¢|‘­›d�«      ‚|f} g }| D ]©  }t        |t        «      s0d}t        |t        «      r|dz  }t        ||t	        |«      fz  «      ‚t        |t        «      rF|j
                  rt        d|j                  › d�d	d
d¬«       |j                  }t        |t        «      rŒF|j                  |«       Œ« t        |«      S )z4Single validator and converter for target arguments.zPassing both targets=z and target=z is redundant - pass targets=z	 instead.zBGot invalid target %r of type %r, but all targets must be Bundles.z÷
It looks like you passed `one_of(a, b)` or `a | b` as a target.  You should instead pass `targets=(a, b)` to add the return value of this rule to both the `a` and `b` bundles, or define a rule for each target if it should be added to exactly one.zUsing consumes(z`) doesn't makes sense in this context.  This will be an error in a future version of Hypothesis.z
2021-09-08Fé   )ÚsinceÚhas_codemodÚ
stacklevel)
r   rU   rY  r3   ra   rc  r9   r¨   rv   rh  )rª   r  Úconverted_targetsÚtÚmsgs        rD   Ú_convert_targetsr¼  \  s  € àÐÙÜ!Ø'¨ {°,¸v¸jð I,Ø,>¨gÐ,>°vÑ,>Ð+AÀðLóð ð �)ˆàÐØò $ˆÜ˜!œVÔ$ØVˆCÜ˜!œ]Ô+Øð6ñ�ô " #¨¬D°«G¨Ñ"4Ó5Ð5Ü˜œFÔ#Ø�yŠyÜ Ø% a§f¡f Xð .Oð Oà&Ø %Ø õð —‘ˆAô ˜œFÕ#ð 	× Ñ  Õ#ð-$ô. Ð"Ó#Ð#rG   Úhypothesis_stateful_ruleÚ#hypothesis_stateful_initialize_ruleÚ!hypothesis_stateful_preconditionsÚhypothesis_stateful_invariant.r$  c                 ó>   — | j                   j                  d«      d   S )Nz	<locals>.r†  )rL   Úrsplit)r$  s    rD   r"  r"  ‹  s   € ð �>‰>× Ñ  Ó-¨bÑ1Ð1rG   )r  rª   r  Úkwargsc                  ó   — y r@   rA   ©rª   r  rÃ  s      rD   r¹   r¹   ®  ó   € ð rG   )rª   c                  ó   — y r@   rA   ©r  rª   rÃ  s      rD   r¹   r¹   ·  ó   € ð rG   )r  rª   c                  ó   — y r@   rA   rÈ  s      rD   r¹   r¹   ½  ó   € ð <?rG   rA   )rª   r  c                 óx   ‡‡— t        | |«      Š‰j                  «       D ]  \  }}t        ||¬«       Œ ˆˆfd„}|S )a½  Decorator for RuleBasedStateMachine. Any Bundle present in ``target`` or
    ``targets`` will define where the end result of this function should go. If
    both are empty then the end result will be discarded.

    ``target`` must be a Bundle, or if the result should be replicated to multiple
    bundles you can pass a tuple of them as the ``targets`` argument.
    It is invalid to use both arguments for a single rule.  If the result
    should go to exactly one of several bundles, define a separate rule for
    each case.

    kwargs then define the arguments that will be passed to the function
    invocation. If their value is a Bundle, or if it is ``consumes(b)``
    where ``b`` is a Bundle, then values that have previously been produced
    for that bundle will be provided. If ``consumes`` is used, the value
    will also be removed from the bundle.

    Any other kwargs should be strategies and values from them will be
    provided.
    ©r¨   c                 óŠ  •‡ — t        ‰ t        d «      rt        t        ‰ «      › d�«      ‚t        ‰ t        d «      }t        ‰ t
        d «      }|�t        t        ‰ «      › d�«      ‚|�t        t        ‰ «      › d�«      ‚t        ‰ t        d«      }t        ‰‰‰ |¬«      }t        ‰ «      ˆ fd„«       }t        |t        |«       |S )Nz} is used with both @rule and @invariant, which is not allowed. A function may be either a rule or an invariant, but not both.z; has been decorated with @rule twice, which is not allowed.úJ has been decorated with both @rule and @initialize, which is not allowed.rA   ©rª   rš   rŸ   rG  c                  ó   •—  ‰| i |¤ŽS r@   rA   ©r8  rÃ  r$  s     €rD   Úrule_wrapperz*rule.<locals>.accept.<locals>.rule_wrapperÿ  ó   ø€ á�dÐ%˜fÑ%Ð%rG   ©
rÊ   r   r    r"  r  r  r!  ræ   r,   Úsetattr©r$  Úexisting_ruleÚexisting_initialize_rulerG  r¹   rÓ  r¹  rÃ  s   `     €€rD   Úacceptzrule.<locals>.acceptã  s÷   ù€ Ü�1Ô&¨Ô-Ü#Ü! !Ó$Ð%ð &+ð +óð ô
   ¤;°Ó5ˆÜ#*¨1Ô.DÀdÓ#KÐ ØÐ$Ü#Ü! !Ó$Ð%ð &ð óð ð $Ð/Ü#Ü! !Ó$Ð%ð &5ð 5óð ô
   Ô#7¸Ó<ˆÜØ%ØØØ'ô	
ˆô 
�‹ó	&ó 
ð	&ô 	�œk¨4Ô0ØÐrG   ©r¼  r¢   r6   ©rª   r  rÃ  r½   r¾   rÚ  r¹  s     `   @rD   r¹   r¹   Æ  sB   ù€ ô2 )¨°&Ó9ÐØ—‘“ò "‰ˆˆ1Ü�q˜qÖ!ð"õ!ðF €MrG   c                  ó   — y r@   rA   rÅ  s      rD   Ú
initializerÞ  
  rÆ  rG   c                  ó   — y r@   rA   rÈ  s      rD   rÞ  rÞ    rÉ  rG   c                  ó   — y r@   rA   rÈ  s      rD   rÞ  rÞ    rË  rG   c                 óx   ‡‡— t        | |«      Š‰j                  «       D ]  \  }}t        ||¬«       Œ ˆˆfd„}|S )a»  Decorator for RuleBasedStateMachine.

    An initialize decorator behaves like a rule, but all ``@initialize()`` decorated
    methods will be called before any ``@rule()`` decorated methods, in an arbitrary
    order.  Each ``@initialize()`` method will be called exactly once per run, unless
    one raises an exception - after which only the ``.teardown()`` method will be run.
    ``@initialize()`` methods may not have preconditions.
    rÍ  c                 ó¼  •‡ — t        ‰ t        d «      rt        t        ‰ «      › d�«      ‚t        ‰ t        d «      }t        ‰ t
        d «      }|�t        t        ‰ «      › d�«      ‚|�t        t        ‰ «      › d�«      ‚t        ‰ t        d«      }|rt        t        ‰ «      › d�«      ‚t        ‰‰‰ |¬«      }t        ‰ «      ˆ fd„«       }t        |t
        |«       |S )Nz“ is used with both @initialize and @invariant, which is not allowed. A function may be either an initialization rule or an invariant, but not both.rÏ  zA has been decorated with @initialize twice, which is not allowed.rA   úŸ has been decorated with both @initialize and @precondition, which is not allowed. An initialization rule runs unconditionally and may not have a precondition.rÐ  c                  ó   •—  ‰| i |¤ŽS r@   rA   rÒ  s     €rD   rÓ  z0initialize.<locals>.accept.<locals>.rule_wrapperU  rÔ  rG   rÕ  r×  s   `     €€rD   rÚ  zinitialize.<locals>.accept4  s!  ù€ Ü�1Ô&¨Ô-Ü#Ü! !Ó$Ð%ð &6ð 6óð ô
   ¤;°Ó5ˆÜ#*¨1Ô.DÀdÓ#KÐ ØÐ$Ü#Ü! !Ó$Ð%ð &5ð 5óð ð $Ð/Ü#Ü! !Ó$Ð%ð &(ð (óð ô   Ô#7¸Ó<ˆÙÜ#Ü! !Ó$Ð%ð &Hð Hóð ô
 Ø%ØØØ'ô	
ˆô 
�‹ó	&ó 
ð	&ô 	�Ô4°dÔ;ØÐrG   rÛ  rÜ  s     `   @rD   rÞ  rÞ  "  sB   ù€ ô )¨°&Ó9ÐØ—‘“ò "‰ˆˆ1Ü�q˜qÖ!ð"õ&ðP €MrG   c                   ó   — e Zd ZU eed<   y)r‚   r¨   N)rJ   rK   rL   rß   rN   rA   rG   rD   r‚   r‚   _  s   … à
„IrG   r‚   rE  c                 ó   ‡ — ˆ fd„}|S )a¡  Decorator to apply a precondition for rules in a RuleBasedStateMachine.
    Specifies a precondition for a rule to be considered as a valid step in the
    state machine, which is more efficient than using :func:`~hypothesis.assume`
    within the rule.  The ``precond`` function will be called with the instance of
    RuleBasedStateMachine and should return True or False. Usually it will need
    to look at attributes on that instance.

    For example::

        class MyTestMachine(RuleBasedStateMachine):
            state = 1

            @precondition(lambda self: self.state != 0)
            @rule(numerator=integers())
            def divide_with(self, numerator):
                self.state = numerator / self.state

    If multiple preconditions are applied to a single rule, it is only considered
    a valid step when all of them return True.  Preconditions may be applied to
    invariants as well as rules.
    c           
      ó  •‡ — t        ‰ «      ˆ fd„«       }t        ‰ t        d «      }|�t        t	        ‰ «      › d�«      ‚t        ‰ t
        d «      }t        ‰ t        d «      }|�=|�J ‚t        j                  |g |j                  ¢‰‘­¬«      }t        |t
        |«       |S |�=|�J ‚t        j                  |g |j                  ¢‰‘­¬«      }t        |t        |«       |S t        |t        g t        ‰ t        d«      ¢‰‘­«       |S )Nc                  ó   •—  ‰| i |¤ŽS r@   rA   rÒ  s     €rD   Úprecondition_wrapperz=precondition.<locals>.decorator.<locals>.precondition_wrapper~  rÔ  rG   rã  )rG  rA   )r,   rÊ   r  r    r"  r  r   rk  ÚreplacerG  rÖ  r!  )r$  ré  rÙ  r¹   r&  Únew_ruleÚnew_invariantrE  s   `      €rD   Ú	decoratorzprecondition.<locals>.decorator}  sB  ù€ Ü	�‹ó	&ó 
ð	&ô $+¨1Ô.DÀdÓ#KÐ Ø#Ð/Ü#Ü! !Ó$Ð%ð &Hð Hóð ô �qœ+ tÓ,ˆÜ˜AÔ/°Ó6ˆ	ØÐØÐ$Ð$Ð$Ü"×*Ñ*ØÐ$B d×&8Ñ&8Ð$B¸'Ñ$BôˆHô Ð(¬+°xÔ@ð $Ð#ð Ð"Ø�<Ð�<Ü'×/Ñ/ØÐ)L¨9×+BÑ+BÐ)LÀGÑ)LôˆMô Ð(Ô*:¸MÔJð $Ð#ô Ø$Ü$Ø@”'˜!Ô1°2Ó6Ð@¸Ñ@ôð $Ð#rG   rA   )rE  rí  s   ` rD   Úpreconditionrî  f  s   ø€ ô."$ðH ÐrG   c                   ó8   — e Zd ZU eed<   eed<   eed<   defd„Zy)rè   rŸ   rG  rF  rI   c                 ó–   — dt        | j                  «      › �d| j                  ›�d| j                  ›�g}ddj	                  |«      › d�S )Nz	function=zself.preconditions=zself.check_during_init=z
Invariant(r   rÖ   )r*   rŸ   rG  rF  r  )rC   Úpartss     rD   r  zInvariant.__repr__ª  s[   € àÔ7¸¿¹ÓFÐGÐHØ"ˆt×!Ñ!Ð#Ð$Ø&ˆt×%Ñ%Ð'Ð(ð
ˆð
 ˜DŸI™I eÓ,Ð-¨QÐ/Ð/rG   N)rJ   rK   rL   r   rN   rW   rß   r  rA   rG   rD   rè   rè   ¤  s   … àƒMØÓØÓð0˜#ô 0rG   rè   )rF  rF  c                 ó4   ‡ — t        t        ‰ d«       ˆ fd„}|S )ap  Decorator to apply an invariant for rules in a RuleBasedStateMachine.
    The decorated function will be run after every rule and can raise an
    exception to indicate failed invariants.

    For example::

        class MyTestMachine(RuleBasedStateMachine):
            state = 1

            @invariant()
            def is_nonzero(self):
                assert self.state != 0

    By default, invariants are only checked after all
    :func:`@initialize() <hypothesis.stateful.initialize>` rules have been run.
    Pass ``check_during_init=True`` for invariants which can also be checked
    during initialization.
    rF  c                 óV  •‡ — t        ‰ t        d «      st        ‰ t        d «      rt        t	        ‰ «      › d�«      ‚t        ‰ t
        d «      }|�t        t	        ‰ «      › d�«      ‚t        ‰ t        d«      }t        ‰ |‰¬«      }t        ‰ «      ˆ fd„«       }t        |t
        |«       |S )NzI has been decorated with both @invariant and @rule, which is not allowed.z@ has been decorated with @invariant twice, which is not allowed.rA   )rŸ   rG  rF  c                  ó   •—  ‰| i |¤ŽS r@   rA   rÒ  s     €rD   Úinvariant_wrapperz4invariant.<locals>.accept.<locals>.invariant_wrapperÛ  rÔ  rG   )
rÊ   r  r  r    r"  r   r!  rè   r,   rÖ  )r$  Úexisting_invariantrG  rI  rõ  rF  s   `    €rD   rÚ  zinvariant.<locals>.acceptÈ  sÉ   ù€ Ü�1”k 4Ô(¬G°AÔ7MÈtÔ,TÜ#Ü! !Ó$Ð%ð &/ð /óð ô % QÔ(8¸$Ó?ÐØÐ)Ü#Ü! !Ó$Ð%ð &(ð (óð ô   Ô#7¸Ó<ˆÜØØ'Ø/ô
ˆô 
�‹ó	&ó 
ð	&ô 	Ð!Ô#3°UÔ;Ø Ð rG   )r-   rW   )rF  rÚ  s   ` rD   r&  r&  ³  s   ø€ ô& ŒtÐ&Ð(;Ô<ô!ð4 €MrG   c            
       ó  ‡ — e Zd ZU eed<   ed   ed<   ee   ed<   ee	   ed<   ee
   ed<   deddfˆ fd	„Zeed
ee   deed   ee   ee	   f   fd„«       «       Zdefd„Zd„ Zdddee	eeef   f   fd„Zde	defd„Zˆ xZS )rú   r³   ræ   rç   Ú
rule_namesÚrules_strategyÚenabled_rules_strategyrI   Nc                 ó2  •— t         ‰| �  «        || _        | j                  t	        |«      «      \  | _        }| _        t        j                  t        |¬«      d|f¬«      | _
        d | _        | j                  j                  | j                  «      | _        y )N)Úat_least_one_ofzenabled rules©Úkey)rÛ   rü   r³   Ú
_setup_forra   rç   rù  r–   Úsharedr1   rú  Ú_feature_flagsra  Ú_rule_is_enabledÚ_enabled_rules_strategy)rC   r³   rø  rŽ   s      €rD   rü   zRuleStrategy.__init__ì  s}   ø€ Ü‰ÑÔØˆŒØ6:·o±oÄdÈ7ÃmÓ6TÑ3ˆŒ
�J Ô 3ä&(§i¡iÜ¨JÔ7Ø  'Ð*ô'
ˆÔ#ð 48ˆÔØ'+×':Ñ':×'AÑ'AÀ$×BWÑBWÓ'XˆÕ$rG   Úmachine_typec                 óÌ   — |j                  «       j                  j                  «       }|j                  d„ ¬«       t	        d„ |D «       «      }||t        j                  |«      fS )Nc                 ó€   — t        | j                  «      t        | j                  «      | j                  j
                  fS r@   )rf  rª   r  rš   rŸ   rJ   )r¹   s    rD   ú<lambda>z)RuleStrategy._setup_for.<locals>.<lambda>  s.   € Ü�t—|‘|Ó$Ü�D—N‘NÓ#Ø—‘×&Ñ&ð€ rG   rý  c              3   óH   K  — | ]  }|j                   j                  –— Œ y ­wr@   )rŸ   rJ   )r„   Úrs     rD   r†   z*RuleStrategy._setup_for.<locals>.<genexpr>  s   è ø€ ÒB°q˜qŸz™z×2Õ2ÑBùr¤  )rò   rç   rõ   ÚsortÚ	frozensetr–   Úsampled_from)rÝ   r  rç   rø  s       rD   rÿ  zRuleStrategy._setup_forý  sa   € ð ×(Ñ(Ó*×0Ñ0×5Ñ5Ó7ˆð 	�
‰
ñð 	ô 	
ô ÑB¸EÔBÓBˆ
Ø�z¤2§?¡?°5Ó#9Ð:Ð:rG   c                 óv   — | j                   j                  › d| j                  j                   j                  › d�S )Nz	(machine=z({...})))rŽ   rJ   r³   rB   s    rD   r  zRuleStrategy.__repr__  s2   € Ø—.‘.×)Ñ)Ð*¨)°D·L±L×4JÑ4J×4SÑ4SÐ3TÐT^Ð_Ð_rG   c                 ó¢   — | j                   €J ‚| j                  |«      xr/ | j                   j                  |j                  j                  «      S r@   )r  Úis_validÚ
is_enabledrŸ   rJ   )rC   r	  s     rD   r  zRuleStrategy._rule_is_enabled  sE   € ð ×"Ñ"Ð.Ð.Ð.Ø�}‰}˜QÓÒW D×$7Ñ$7×$BÑ$BÀ1Ç:Á:×CVÑCVÓ$WÐWrG   r²   r<   c                 ój  ‡ — t        ˆ fd„‰ j                  D «       «      s[dj                  ‰ j                  D �cg c]  }|j                  j                  ‘Œ c}«      }d‰ j
                  ›d|› �}t        |«      d ‚|j                  ‰ j                  «      ‰ _	        |j                  ‰ j                  «      }i }|j                  j                  «       D ]  \  }}	 |j                  |«      ||<   Œ ||fS c c}w # t        $ r1}|j                  j                  }	t        |d|›d|›d|	› �«       ‚ d }~ww xY w)Nc              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr@   )r  )r„   r¹   rC   s     €rD   r†   z'RuleStrategy.do_draw.<locals>.<genexpr>&  s   øè ø€ Ò>¨4�4—=‘= ×&Ñ>ùs   ƒr   z#No progress can be made from state z<, because no available rule had a True precondition. rules: zwhile generating z from z
 for rule )Úanyrç   r  rŸ   rJ   r³   r    r›   rú  r  r  r^  r¢   Ú	Exceptionr!   )
rC   r²   r¹   rç   r»  rš   r½   ÚstratrÐ   Úrnames
   `         rD   r�  zRuleStrategy.do_draw%  s-  ø€ ÜÓ>°4·:±:Ô>Ô>Ø—I‘IÀ$Ç*Á*ÖM¸$˜tŸ}™}×5Ó5ÒMÓNˆEà5°d·l±lÐ5Eð FBØBGÀðJð ô $ CÓ(¨dÐ2à"Ÿi™i¨×(CÑ(CÓDˆÔØ�y‰y˜×5Ñ5Ó6ˆàˆ	Ø×1Ñ1×7Ñ7Ó9ò 	‰HˆAˆuðØ#Ÿy™y¨Ó/�	˜!’ð	ð �iÐ Ð ùò% Nøô ò ØŸ™×.Ñ.�Ü˜Ð 1°!°°f¸U¸IÀZÐPUÈwÐWÔXØûðús   ¹C3ÃC8Ã8	D2Ä,D-Ä-D2r¹   c                 ó¬  — |j                   D ])  }| j                  j                  |j                  «      rŒ) y | j                  j                  }| j                  j
                  j                  › d|j                  j                  › d�}|j                  D ]=  } || j                  «      }|› dt        |«      › �}||   j                  |¬«       |rŒ= y y)NFz, rule ú,z precondition )rš  T)rí   r³   r  r¨   r‹   rŽ   rL   rŸ   rJ   rG  r*   Úupdate_count)rC   r¹   ÚbÚ
predicatesÚdescÚpredÚmeets_precondÚwheres           rD   r  zRuleStrategy.is_valid;  sÉ   € Ø—‘ò 	ˆAØ—<‘<×&Ñ& q§v¡vÕ.Ùð	ð —\‘\×;Ñ;ˆ
Ø—,‘,×(Ñ(×5Ñ5Ð6°g¸d¿m¹m×>TÑ>TÐ=UÐUVÐWˆØ×&Ñ&ò 	ˆDÙ  §¡Ó.ˆMØ�f˜NÔ+JÈ4Ó+PÐ*QÐRˆEØ�uÑ×*Ñ*°]Ð*ÔCÚ Ùð	ð rG   )rJ   rK   rL   r_   rN   r¦   r  rß   r5   ræ   r0   rü   rS  r	   ra   rh  rÿ  r  r  r¥   r   r�  rW   r  rà   rá   s   @rD   rú   rú   å  sâ   ø… Ø"Ó"Ø�‰<ÓØ˜#‘ÓØ" 4Ñ(Ó(Ø*¨<Ñ8Ó8ðYÐ 5ð Y¸$õ Yð" Øð;ØÐ 5Ñ6ð;à	ˆt�F‰|˜Y s™^¨^¸DÑ-AÐAÑ	Bò;ó ó ð;ð2`˜#ó `òXð!Ð,ð !°°t¸TÀ#ÀsÀ(¹^Ð7KÑ1Ló !ð,˜Tð  d÷ rG   rú   )ƒr[   rö   rk  r  rR  Úcollections.abcr   r   r   r   r   r   Ú	functoolsr	   Úior
   Útimer   Útypingr   r   r   r   r   r   r   r   r   r   rÇ   r   r–   Úhypothesis._settingsr   r   r   rM   Úhypothesis.controlr   r   Úhypothesis.corer   r   Úhypothesis.errorsr   r   r    Úhypothesis.internal.compatr!   r"   Ú%hypothesis.internal.conjecture.enginer#   Ú)hypothesis.internal.conjecture.junkdrawerr$   Ú$hypothesis.internal.conjecture.utilsr%   Úhypothesis.internal.healthcheckr&   Ú!hypothesis.internal.observabilityr'   r(   Úhypothesis.internal.reflectionr)   r*   r+   r,   Úhypothesis.internal.validationr-   Úhypothesis.reportingr.   r/   Ú,hypothesis.strategies._internal.featureflagsr0   r1   Ú*hypothesis.strategies._internal.strategiesr2   r3   r4   r5   r6   r7   r8   Úhypothesis.utils.deprecationr9   Úhypothesis.vendor.prettyr:   r;   Ú#hypothesis.internal.conjecture.datar<   rÆ   r>   rO   rP   rV   rN   rT  rW   rX   rZ   r]   ra   r¥   rß   rÌ   rÑ   rÓ   rå   r_   ræ   Úrunnerrq  rs  rY  r®  r«   r¤   r¼  r  r  r!  r   Ú	_RuleTypeÚ_RuleWrapperr"  r¹   rÞ  r‚   rî  rè   r&  rú   rA   rG   rD   ú<module>r:     sC  ðòó Û Û Û ß BÓ Bß (Ý Ý Ý ÷÷ ÷ õ (ß MÑ Mß Lß +÷ñ ÷
 9Ý =Ý HÝ EÝ =ß T÷ó õ 6ß :ß V÷÷ ñ õ :Ý :áÝ'åBô' × 1Ñ 1ô 'ñ ˆCƒL€Ù&:Ð;WÓ&XÐ ˜˜s™Ó Xð0�vð 0 $ó 0÷%ñ %÷
7ñ 7ð* !%ØØ+/òZØÐ 7Ñ8ðZð ˜‰oðZð ð	Zð
 �s˜D�y‘/ DÑ(ðZð ˆiÑóZð@ !%Øò	ØÐ 7Ñ8ðð ˜‰oðð ð	ð
 
óô@	0�tô 	0ñ �˜dÔ#÷ð ó $ðôcIÐ&6õ cIñL �˜eÔ$÷8!ð 8!ó %ð8!ðv -6¨B¯I©I«K€ˆu�^ CÑ(Ñ)Ó 7ô-Ð(ô -ô@^+ˆ^˜BÑô ^+ðBV�V˜B‘Zð V N°2Ñ$6ó Vñ$ �˜dÔ#ô!�h˜r‘ló !ó $ð!ð!�Að !˜/¨!Ñ,ó !ò"$ðJ )€Ø>Ð Ø:Ð Ø2Ð ð �S˜/¨"Ñ-°Ñ2Ð2Ñ3€	Ø˜ 2™˜¨°2©Ð6Ñ7€ð2�cð 2˜có 2ðF 
ð òà�f˜R‘jÑ!ðð ðð ð	ð
 �"Ñòó 
ðð 
à7:òØ�b‰zðØ$4ðØFTðà�"Ñòó 
ðð
 
ð Ø #ò?àð?ð ð?ð ð	?ð
 ˆx˜	Ñ"Ð# X¨iÑ%8Ð8Ñ9ò?ó 
ð?ð 8:Ø $ò@à�f˜R‘jÑ!Ð$4Ñ4ð@ð �2‰J˜Ñð@ð ð	@ð
 �"Ñ˜ (¨9Ñ"5Ð!6¸ÀÑ8KÐ!KÑLÑLó@ðH 
ð òà�f˜R‘jÑ!ðð ðð ð	ð
 �"Ñòó 
ðð 
à7:òØ�b‰zðØ$4ðØFTðà�"Ñòó 
ðð
 
ð Ø #ò?àð?ð ð?ð ð	?ð
 ˆx˜	Ñ"Ð# X¨iÑ%8Ð8Ñ9ò?ó 
ð?ð 8:Ø $ò:à�f˜R‘jÑ!Ð$4Ñ4ð:ð �2‰J˜Ñð:ð ð	:ð
 �"Ñ˜ (¨9Ñ"5Ð!6¸ÀÑ8KÐ!KÑLÑLó:ñz �˜dÔ#÷ð ó $ðð;˜( C 5¨$ ;Ñ/ð ;°H¸h¸ZÈÐ=QÑ4Ró ;ñ| �˜dÔ#÷0ð 0ó $ð0ð ,1ò / Dð /°X¸x¸jÈ(Ð>RÑ5Só /ôdd�>õ drG   