grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026ó ]°ŠŒJãóz•SrSSKJrJrJrJr J r SSKJ r JrJrJr SSKJrJrJr SSKJrJrJr SSK J!r" SSK#J$r% SSK&J'r( SS K)J*r+J,r- SS K.J.r/ SS K r0SS K1r1/S Qr2S \"S5-\ "S5- r3\"S5r4S\"S5-r5Sr6S\6*-r7Sr8S q9"SS\1Rt5r:"SS\:5r;\:"5r<\\•US:Xa˜[U[[45(a}[U[5(aURS5OUnU(a[ US5S-OSn[ [U5HnSU-U- S-nM U[ U5-nUS:XaSOUnOÈUS :Xaƒ[U[[[45(ac[cSS K J q [U[5(aUR5n[RU[U5R!5-5nO?[U[#S 5[[$[[[45(d ['S 5e[(TU]UU5 S Ulg ![a SS K J q N½f=f) a Initialize internal state from a seed. The only supported seed types are None, int, float, str, bytes, and bytearray. None or no argument seeds from current time or from an operating system specific randomness source if available. If *a* is an int, all bits are used. For version 2 (the default), all of the bits are used if *a* is a str, bytes, or bytearray. For version 1 (provided for reproducing random sequences from older versions of Python), the algorithm for str and bytes generates a narrower range of seeds. r9zlatin-1réiCBlÿÿÿÿéÿÿÿÿéþÿÿÿr8N)Úsha512zOThe only supported seed types are: None, int, float, str, bytes, and bytearray.)Ú isinstanceÚstrÚbytesÚdecodeÚordÚmapÚlenÚ bytearrayÚ_sha512Ú_sha2rIÚ ImportErrorÚhashlibÚencodeÚintÚ from_bytesÚdigestÚtypeÚfloatÚ TypeErrorÚsuperr+r>)r?ÚaÚversionr@ÚcÚ __class__s €rAr+Ú Random.seed€sIø€ð$ �a‹<œJ q¬3´¨,×7Ñ7Ü'1°!´U×';Ñ';�—‘˜Ô#ÀˆAÞ"#”�A�a‘D“ ˜Q’¨ˆAÜœ˜a–[�Ø ‘k QÑ&Ð*<Ñ<’ñ!à ”�Q“‰KˆAؘ2“g‘ 1‰Aà ˜‹\œj¨¬S´%¼Ð,C×DÑDä‰ð:õ8ô ˜!œS×!Ñ!Ø—H‘H“J�Ü—‘˜q¤7¨1£:×#4Ñ#4Ó#6Ñ6Ó7‰Aä˜A¤ T£ ¬C´¼¼UÄIÐN×OÑOÜðKóLð Lô ‰‰ �QŒØˆ�øô#ó:ç9ð:úsÃE?Å?FÆFcóN>•UR[TU] 5UR4$)z9Return internal state; can be passed to setstate() later.)ÚVERSIONr]r"r>)r?ras €rAr"ÚRandom.getstate°s ø€à�|‰|œU™WÑ-Ó/°·±Ð@Ð@rDcó >•USnUS:XaUup#Ul[TU] U5 gUS:Xa-Uup#Ul[SU55n[TU] U5 g[ SU<SUR <35e![a n[ UeSnAff=f)z:Restore internal state from object returned by getstate().rr<r8c3ó*# •UH oS-v• M g7f)lN©)Ú.0r@s rAÚ Ú"Random.setstate..Ásé€Ð%Kº]¸¨7¦mº]ùs‚Nzstate with version z( passed to Random.setstate() of version )r>r]r,ÚtupleÚ ValueErrorr\rd)r?Ústater_Ú internalstaterras €rAr,ÚRandom.setstate´s˜ø€à˜‘(ˆØ �a‹<Ø6;Ñ 3ˆG D¤OÜ ‰GÑ ˜]Õ +Ø ˜‹\Ø6;Ñ 3ˆG D¤Oð  'Ü %Ñ%K¹]Ó%KÓ K� ô ‰GÑ ˜]Õ +åã% t§|£|ð5ó6ð 6øô ó 'Ü QÐ&ûð 'ús¸A7Á7 B ÂBÂB có"•UR5$©N)r"©r?s rAÚ __getstate__ÚRandom.__getstate__Õs€Ø�}‰}‹ÐrDcó&•URU5 grr)r,)r?rns rAÚ __setstate__ÚRandom.__setstate__Øs€Ø � ‰ �eÕrDcó<•URSUR54$)Nrh)rar"rss rAÚ __reduce__ÚRandom.__reduce__Ûs€Ø�~‰~˜r 4§=¡=£?Ð2Ð2rDc óÚ•URH[nSUR;a gSUR;aURUl gSUR;dMJURUl g g)zõControl how subclasses generate random integers. The algorithm a subclass can use depends on the random() and/or getrandbits() implementation available to it and determines whether it can generate random integers from arbitrarily large ranges. Ú _randbelowr!r(N)Ú__mro__Ú__dict__Ú_randbelow_with_getrandbitsr}Ú_randbelow_without_getrandbits)ÚclsÚkwargsr`s rAÚ__init_subclass__ÚRandom.__init_subclass__ásY€ð—”ˆAؘqŸz™zÓ)áØ § ¡ Ó*Ø!$×!@Ñ!@�”ÙØ˜1Ÿ:™:Õ%Ø!$×!CÑ!C�”ÙòrDcóv•URnUR5nU"U5nXA:¼aU"U5nXA:¼aMU$)z;Return a random int in the range [0,n). Defined for n > 0.)r!Ú bit_length)r?Únr!ÚkÚrs rAr€Ú"Random._randbelow_with_getrandbitsõs=€ð×&Ñ&ˆ Ø �L‰L‹NˆÙ ˜‹NˆØ‹fÙ˜A“ˆAð�fàˆrDr9cóЕURnX:¼a!SSKJn U"S5 [U"5U-5$X!-nX%- U- nU"5nXv:¼aU"5nXv:¼aM[Xr-5U-$)z{Return a random int in the range [0,n). Defined for n > 0. The implementation does not use getrandbits, but only random. r)Úwarnz¤Underlying random() generator does not supply enough bits to choose from a population range this large. To remove the range limitation, add a getrandbits() method.)r(Úwarningsr�Ú_floor)r?rˆÚmaxsizer(r�ÚremÚlimitrŠs rAr�Ú%Random._randbelow_without_getrandbitsÿsv€ð —‘ˆØ ‹<Ý %Ù ðOô Pô™&›( Q™,Ó'Ð '؉kˆØ‘ 'Ñ)ˆÙ ‹HˆØ‹jÙ“ˆAð�jä�a‘kÓ" QÑ&Ð&rDcóJ•URUS-5RUS5$)úGenerate n random bytes.éÚlittle)r!Úto_bytes©r?rˆs rAr&ÚRandom.randbytes s$€à×Ñ  A¡Ó&×/Ñ/°°8Ó<ÐÓ?Ð?ØŸ™¤U¨5£\°Q˜Ð7ˆJ܈FÙ?IÓJºz¸!™v jÓ4Ô5¹zÑJÐ JØ—O‘Oˆ Ø�A�{˜�{ÜÐKÓLÐ LØ�˜!‘ˆØˆØ ˆq‹5Ø �qœE¤$ q¨1¡u¨a£.Ó1Ñ1Ñ 1ˆGØ ‹<ô˜ Ó#ˆDܘ1–X�Ù˜a™eÓ$�Ø ™G�‘ Ø 1™u q™y™/�“ñðˆ ô“uˆHØ#Ÿ<™<ˆLܘ1–X�Ù˜a“L�ؘ8“mÙ! !› �Að˜8•má˜Q”Ø&™M�“ ñ ð ˆ ùò3Ksà G )Ú cum_weightsr‰c ó„•URn[U5nUcQUc8[nUS- n[SU5Vs/sHo�U"U"5U-5PM sn$[ [ U55nOUb [ S5e[U5U:wa [S5eUSS-n U S::a [S5e[U 5(d [S5e[n US - n [SU5Vs/sHnX"X5"5U -S U 5PM sn$s snf![ a) [U[5(deUn[ SU<35Sef=fs snf) z¹Return a k sized list of population elements chosen with replacement. If the relative weights or cumulative weights are not specified, the selections are made with equal probability. Nçz4The number of choices must be a keyword argument: k=z2Cannot specify both weights and cumulative weightsz3The number of weights does not match the populationrGz*Total of weights must be greater than zerozTotal of weights must be finiter9r) r(rPr�Ú_repeatr»r¼r\rJrWrmÚ _isfiniter¾) r?rÃÚweightsrÎr‰r(rˆr r³rÅrÚhis rArÚRandom.choicesÊsj€ð—‘ˆÜ � ‹OˆØ Ñ Ø‰Ü�Ø�S‘�ÜAHÈÈqÔAQÓRÒAQ¸A¡5©«°A©Ó#6Ô7ÑAQÑRÐRð Ü"¤;¨wÓ#7Ó8‘ ðÑ ÜÐPÓQÐ QÜ ˆ{Ó ˜qÓ ÜÐRÓSÐ SؘB‘ #Ñ%ˆØ �C‹<ÜÐIÓJÐ Jܘ×ÑÜÐ>Ó?Ð ?ÜˆØ �‰Uˆä   qÔ)ó+Ú)�Að˜6 +¨v«x¸%Ñ/?ÀÀBÓGÔHÙ)ñ+ð +ùò+Søôó Ü! '¬3×/Ñ/ØØ�ÜØKÈÉÐMóàðð  üò$+s·DÁDÃ!D=Ä3D:có2•XU- UR5--$)zÅGet a random number in the range [a, b) or [a, b] depending on rounding. The mean (expected value) and variance of the random variable are: E[X] = (a + b) / 2 Var[X] = (b - a) ** 2 / 12 ©r(r¨s rAr/ÚRandom.uniformòs€ð˜‘E˜TŸ[™[›]Ñ*Ñ*Ð*rDcó°•UR5nUcSOX1- X!- - nXE:”a SU- nSU- nX!p!XU- [XE-5--$![a Us$f=f)auTriangular distribution. Continuous distribution bounded by given lower and upper limits, and having a given mode value in-between. http://en.wikipedia.org/wiki/Triangular_distribution The mean (expected value) and variance of the random variable are: E[X] = (low + high + mode) / 3 Var[X] = (low**2 + high**2 + mode**2 - low*high - low*mode - high*mode) / 18 çà?r5)r(ÚZeroDivisionErrorÚ_sqrt)r?ÚlowÚhighÚmodeÚur`s rAr.ÚRandom.triangularýst€ð �K‰K‹Mˆð Ø‘|‘¨$©*¸¹Ñ)DˆAð ‹5Ø�a‘ˆAØ�a‘ˆAØ�ؘS‘j¤E¨!©%£LÑ0Ñ0Ð0øô !ó ØŠJð ús’AÁ AÁAcóž•URnU"5nSU"5- n[US- -U- nXf-S- nU[U5*::aOM:XU--$)zLNormal distribution. mu is the mean, and sigma is the standard deviation. r5rÚr4)r(Ú NV_MAGICCONSTrÀ)r?ÚmuÚsigmar(Úu1Úu2ÚzÚzzs rAr$ÚRandom.normalvariatesc€ð—‘ˆØÙ“ˆBØ‘v“x‘ˆBÜ  c¡Ñ*¨RÑ/ˆAØ‘˜‘ˆBØ”d˜2“h�Y‹Øñ ð˜‘I‰~ÐrDcóð•URnURnSUlUcNU"5[-n[S[ SU"5- 5-5n[ U5U-n[ U5U-UlXU--$)z¸Gaussian distribution. mu is the mean, and sigma is the standard deviation. This is slightly faster than the normalvariate() function. Not thread-safe without a lock around calls. NgÀr5)r(r>ÚTWOPIrÜrÀÚ_cosÚ_sin)r?rärår(rèÚx2piÚg2rads rAr Ú Random.gauss+sr€ð6—‘ˆØ �O‰OˆØˆŒØ ‰9Ù“8œeÑ#ˆDܘ$¤ c©F«H¡nÓ!5Ñ5Ó6ˆEÜ�T“ ˜UÑ"ˆAÜ" 4›j¨5Ñ0ˆDŒOà˜‘I‰~ÐrDcó6•[URX55$)zÛLog normal distribution. If you take the natural logarithm of this distribution, you'll get a normal distribution with mean mu and standard deviation sigma. mu can have any value, and sigma must be greater than zero. )Ú_expr$)r?rärås rAr#ÚRandom.lognormvariateQs€ô�D×&Ñ& rÓ1Ó2Ð2rDcóB•[SUR5- 5*U- $)a¤Exponential distribution. lambd is 1.0 divided by the desired mean. It should be nonzero. (The parameter would be called "lambda", but that is a reserved word in Python.) Returned values range from 0 to positive infinity if lambd is positive, and from negative infinity to 0 if lambd is negative. The mean (expected value) and variance of the random variable are: E[X] = 1 / lambd Var[X] = 1 / lambd ** 2 r5)rÀr()r?Úlambds rArÚRandom.expovariate[s"€ô$�S˜4Ÿ;™;›=Ñ(Ó)Ð)¨EÑ1Ð1rDcó •URnUS::a[U"5-$SU- nU[SXD--5-nU"5n[[U-5nXuU-- nU"5n U SXˆ-- :dU SU- [ U5-::aOMJSU- n X§-SX§--- n U"5n U S:”aU[ U 5-[-n U $U[ U 5- [-n U $)aCircular data distribution. mu is the mean angle, expressed in radians between 0 and 2*pi, and kappa is the concentration parameter, which must be greater than or equal to zero. If kappa is equal to zero, this distribution reduces to a uniform random angle over the range 0 to 2*pi. g�íµ ÷ư>rÚr5)r(rìrÜríÚ_piróÚ_acos)r?räÚkappar(rÇrŠrærèÚdrçÚqÚfÚu3Úthetas rAr0ÚRandom.vonmisesvariateosï€ð —‘ˆØ �D‹=Ü™6›8Ñ#Ð #à �%‰KˆØ ”�c˜A™E‘kÓ"Ñ "ˆàÙ“ˆBÜ”S˜2‘X“ˆAà˜‘U‘ ˆAÙ“ˆBØ�C˜!™%‘KÓ 2¨#°©'´T¸!³WÑ)<Ó#<Øñð �!‰GˆØ ‰U�s˜Q™U‘{Ñ #ˆÙ ‹XˆØ �‹8Øœ% ›(‘]¤eÑ+ˆEðˆ ðœ% ›(‘]¤eÑ+ˆEàˆ rDcó¨•US::dUS::a [S5eURnUS:”aœ[SU-S- 5nU[- nX-nU"5nSUs=:aS:dO MSU"5- n[ USU- - 5U- n U[ U 5-n Xw-U-n XVU --U - n U [ -SU -- S:¼dU [ U 5:¼aX¢-$M}US:Xa[ SU"5- 5*U-$U"5n [U-[- nXí-nUS::a USU- -n O[ Xï- U- 5*n U"5nUS:”aXzUS- -::aX¢-$OU[ U *5::aX¢-$Mp)a¦Gamma distribution. Not the gamma function! Conditions on the parameters are alpha > 0 and beta > 0. The probability distribution function is: x ** (alpha - 1) * math.exp(-x / beta) pdf(x) = -------------------------------------- math.gamma(alpha) * beta ** alpha The mean (expected value) and variance of the random variable are: E[X] = alpha * beta Var[X] = alpha * beta ** 2 rÐz*gammavariate: alpha and beta must be > 0.0r5r3gH¯¼šò×z>gËPÊÿÿï?r6)rmr(rÜÚLOG4rÀróÚ SG_MAGICCONSTÚ_e)r?ÚalphaÚbetar(ÚainvÚbbbÚcccrærçÚvr@rèrŠràr©Úps rArÚRandom.gammavariate™s—€ð( �C‹<˜4 3›;ÜÐIÓJÐ Jà—‘ˆØ �3‹;ô ˜˜u™ sÑ*Ó+ˆDØœ$‘,ˆCØ‘,ˆCàÙ“X�ؘbÕ, 9Õ,ÙØ™6›8‘^�ܘ˜s R™x™Ó)¨DÑ0�ØœD ›G‘O�Ø‘G˜b‘L�Ø ™'‘M AÑ%�Ø”}Ñ$ s¨Q¡wÑ.°#Ó5¸¼dÀ1»g»Ø™8�Oñð�c‹\䘙v›x™Ó(Ð(¨4Ñ/Ð /ð Ù“H�ܘ%‘Z¤2Ñ%�Ø‘E�ؘ“8ؘc E™kÑ*‘Aä˜q™u¨™oÓ.Ð.�AÙ“X�Ø�s“7Ø 5¨3¡;Ñ/Ó/Øð‘8ˆOð 0àœ4  ›8“^ØØ‘8ˆOñrDcód•URUS5nU(aX3URUS5-- $g)a!Beta distribution. Conditions on the parameters are alpha > 0 and beta > 0. Returned values range between 0 and 1. The mean (expected value) and variance of the random variable are: E[X] = alpha / (alpha + beta) Var[X] = alpha * beta / ((alpha + beta)**2 * (alpha + beta + 1)) r5rÐ)r)r?rrÚys rArÚRandom.betavariateÞs7€ð6 × Ñ ˜e SÓ )ˆÞ ؘD×-Ñ-¨d°CÓ8Ñ8Ñ9Ð 9ØrDcó8•SUR5- nUSU- -$)z3Pareto distribution. alpha is the shape parameter.r5gð¿r×)r?rràs rAr%ÚRandom.paretovariateþs#€ð �$—+‘+“-Ñ ˆØ�T˜E‘\Ñ"Ð"rDcóR•SUR5- nU[U5*SU- --$)zVWeibull distribution. alpha is the scale parameter and beta is the shape parameter. r5)r(rÀ)r?rrràs rAr1ÚRandom.weibullvariates.€ð �$—+‘+“-Ñ ˆØœ˜a›˜ c¨D¡jÑ1Ñ1Ð1rDcój•US:a [S5eUS::dUS:¼aUS:XagUS:XaU$[S5eURnUS:Xa[U"5U:5$US:”aXRUSU- 5- $X-S:aLS=pE[ SU- 5nU(dU$U[ [ U"55U- 5S-- nXQ:”aU$US- nM1X-S:¼aUS::deS n[ X-SU- -5nS S U--n S SU --SU--n X-S-nSSU - - n U"5n U S-n S[U 5- n [ SU -U - U -U -U-5nUS:dXá:”aMCU"5nU S:¼aXû::aU$U(dOSSU - -U-n[USU- - 5n[ US-U-5n[US-5[UU- S-5-nS nUWX­U -- U -- -n[U5W[US-5- [X- S-5- UW- W--::aU$Mø![a GMƒf=f![a GMf=f)aZBinomial random variable. Gives the number of successes for *n* independent trials with the probability of success in each trial being *p*: sum(random() < p for i in range(n)) Returns an integer in the range: 0 <= X <= n The mean (expected value) and variance of the random variable are: E[X] = n * p Var[x] = n * p * (1 - p) rzn must be non-negativerÐr5z&p must be in the range 0.0 <= p <= 1.0r9rÚg$@TFgffffffò?g= ×£p=@gEØðôJY¶¿gaÃÓ+e™?ç{®Gáz„?gq= ×£pí?gÍÌÌÌÌÌ@r3gìQ¸…ë±?g¤p= ×£@gffffff@) rmr(r�rÚ_log2r�rÜÚ_fabsrÛrÀÚ_lgamma)r?rˆr r(r@rr`Úsetup_completeÚspqr©r^ÚvrràÚusr‰r rÚlpqÚmÚhs rArÚRandom.binomialvariates±€ð" ˆq‹5ÜÐ5Ó6Ð 6Ø �‹8�q˜C“xØ�C‹xØØ�C‹xØ�ÜÐEÓFÐ Fà—‘ˆð �‹6Ü™&›( Q™,Ó'Ð 'ð ˆs‹7Ø×+Ñ+¨A¨s°Q©wÓ7Ñ7Ð 7à ‰5�4‹<ðˆIˆAÜ�c˜A‘g“ˆAÞØ�ØðØœ¤¡f£h£°!Ñ 3Ó4°qÑ8Ñ8�Að“5Ø�HØ�Q‘�ñð‰s�d‹{˜q C›xÐ'Ð'؈ä�A‘E˜S 1™WÑ%Ó&ˆØ �4˜#‘:Ñ ˆØ �f˜q‘jÑ  4¨!¡8Ñ +ˆØ ‰E�C‰KˆØ �C˜!‘G‰^ˆàᓈAØ �‰HˆAØ”u˜Q“x‘ˆBð ܘC !™G b™L¨1Ñ,°Ñ1°AÑ5Ó6�ð�1‹u˜›Ùñ“ˆAØ�T‹z˜a›gØ�ö "Ø  a¡™¨3Ñ.�ܘ1  a¡™=Ó)�ܘA ™E Q™;Ó'�ܘA ™E“N¤W¨Q°©U°Q©YÓ%7Ñ7�Ø!%�Ø �˜! B™w™-¨!Ñ+Ñ,Ñ ,ˆAÜ�A‹w˜!œg a¨!¡e›nÑ,¬w°q±u¸q±yÓ/AÑAÀQÈÁUÈcÁMÑQÓQØ�ñ=øô%"óãðûô2%ó ãð ús$Â"HÄ4H#È H ÈH È# H2È1H2)r>rr)Nr8)rÐr5N©rÐr5)r5)r9rÚ)(Ú__name__Ú __module__Ú __qualname__Ú__firstlineno__Ú__doc__rdrBr+r"r,rtrwrzr„r€ÚBPFr�r}r&ržr)r'rr-r*rr/r.r$r r#rr0rrr%r1rÚ__static_attributes__Ú __classcell__)ras@rArrgsØø†ñ ð€Gô÷.õ`Aõ6òBòò3ò ò(ð9:¸3¹ô'ð(-€Jò=ð%)¨tô'3òR&ò.ò$ð/3õ]ð~#+¸tÀqö#+òP +ô1ô2ô*$òL3ô2ò((òTCòJò@#ò 2÷^ò^rDrcó>•\rSrSrSrSrSrSrSrSr \ =r r Sr g ) rixzÎAlternate random number generator using sources provided by the operating system (such as /dev/urandom on Unix or CryptGenRandom on Windows). Not available on all systems (see os.urandom() for details). cóR•[R[S55S- [-$)z7Get the next random number in the range 0.0 <= X < 1.0.rFr<)rWrXÚ_urandomÚ RECIP_BPFrss rAr(ÚSystemRandom.random�s€ä—‘œx¨›{Ó+¨qÑ0´IÑ=Ð=rDcó„•US:a [S5eUS-S-n[R[U55nX2S-U- - $)z:getrandbits(k) -> x. Generates an int with k random bits.rz#number of bits must be non-negativerFr–)rmrWrXr-)r?r‰Únumbytesr@s rAr!ÚSystemRandom.getrandbits…sG€à ˆq‹5ÜÐBÓCÐ Cؘ‘E˜a‘<ˆÜ �N‰Nœ8 HÓ-Ó .ˆØ ‘\ AÑ%Ñ&Ð&rDcó•[U5$)r•)r-r™s rAr&ÚSystemRandom.randbytes�s€ô˜‹{ÐrDcó•g)zò'òò òPð*Ð)€H‹xrDrcó4•SSKJnJn SSKJn U"5n[ SU5Vs/sHoq"U6PM nnU"5n U"U5n U"XŠ5n [ U5n [U5n [X–- SSUSURU<35 [SX«XÍ4-5 gs snf)Nr)ÚstdevÚfmean)Ú perf_counterz.3fz sec, z times z"avg %g, stddev %g, min %g, max %g ) Ú statisticsr?r@ÚtimerArÑÚminÚmaxÚprintr#)rˆÚfuncr7r?ÚmeanrAÚt0r³ÚdataÚt1ÚxbarrårÝrÞs rAÚ_test_generatorrMÂs™€ß/Ý!á ‹€BÜ!(¨¨qÔ!1Ó 2Ò!1˜AˆD�$‹KÑ!1€DÐ 2Ù ‹€Bá �‹:€DÙ �$Ó €EÜ ˆd‹)€CÜ ˆt‹9€Dä ˆR‰W�SˆM˜ ˜s '¨$¯-©-¨¸¹Ð AÔBÜ Ð /°4ÀÐ2JÑ JÕKùò 3s¤Bcóh•[U[S5 [U[S5 [U[S5 [U[S5 [U[ S5 [U[ S5 [U[ S5 [U[ S5 [U[ S5 [U[ S5 [U[ S 5 [U[ S 5 [U[ S 5 [U[ S 5 [U[ S 5 [U[S5 [U[S5 [U[S5 g)Nrhr")ég333333ã?)édgè?)rr5)çš™™™™™¹?r5)rQr3)rÚr5)gÍÌÌÌÌÌì?r5)r5r5)r3r5)g4@r5)gi@r5)ç@rR)rÐr5gUUUUUUÕ?) rMr(r$r#r0rrr rr.)ÚNs rAÚ_testrTÓsÛ€Ü�A”v˜rÔ"Ü�A”} jÔ1Ü�A”~ zÔ2Ü�A”¨ Ô3Ü�A”¨ Ô3Ü�A”¨ Ô4Ü�A”| [Ô1Ü�A”| ZÔ0Ü�A”| ZÔ0Ü�A”| ZÔ0Ü�A”| ZÔ0Ü�A”| ZÔ0Ü�A”| ZÔ0Ü�A”| [Ô1Ü�A”| \Ô2Ü�A”u˜jÔ)Ü�A”{ JÔ/Ü�A”zÐ#8Õ9rDÚfork)Úafter_in_childÚarg_listcó„•SSKnURURS9nUR5nUR SSSSS9 UR SS [ S S S 9 UR S S[ S SS 9 UR S[ SSURS9 UR SSSS9 URU5nXBR54$)Nr)Úformatter_classz-cz--choiceÚ+zprint a random choice)ÚnargsÚhelpz-iz --integerrSz0print a random integer between 1 and N inclusive)rZÚmetavarr\z-fz--floatz>print a random floating-point number between 0 and N inclusivez--testé'Ú?)rZÚconstr[r\ÚinputÚ*z“if no options given, output depends on the input string or multiple: same as --choice integer: same as --integer float: same as --float) ÚargparseÚArgumentParserÚRawTextHelpFormatterÚadd_mutually_exclusive_groupÚ add_argumentrWr[ÚSUPPRESSÚ parse_argsÚ format_help)rWrcÚparserÚgroupr7s rAÚ _parse_argsrmósû€ÛØ × $Ñ $Ø ×5Ñ5ð%ð7€Fà × /Ñ /Ó 1€EØ ×ÑØ ˆj Ø $ðñ&ð ×ÑØ ˆk¤¨SØ ?ðñAð ×ÑØ ˆiœe¨SØ MðñOð ×ÑØ”s &°Ø × Ñ ðñ ð ×ј sððñð × Ñ ˜XÓ &€DØ ×#Ñ#Ó%Ð %Ð%rDÚreturncóÈ•[U5upUR(a[UR5$URb[SUR5$URb[ SUR5$UR (a[UR 5 g[UR5S:Xa'URSn[U5n[SU5$[UR5S:¼a[UR5$U$![aF [ U5n[ SU5s$![a [UR55ss$f=ff=f)Nr9rÚr8) rmrÚintegerr'r[r/ÚtestrTrPrarWrmÚsplit)rWr7Ú help_textÚvals rAÚmainrvs€Ü! (Ó+�O€Dð ‡{‡{Ü�d—k‘kÓ"Ð"à ‡|�|ÑÜ�q˜$Ÿ,™,Ó'Ð'à ‡z�zÑÜ�q˜$Ÿ*™*Ó%Ð%à ‡y‡yÜ ˆd�i‰iÔØô ˆ4�:‰:ƒ˜!ÓØ�j‰j˜‰mˆð +ä�c“(ˆCܘ1˜c“?Ð "ô ˆ4�:‰:ƒ˜!ÓÜ�d—j‘jÓ!Ð!à Ðøôó +ð +ä˜C“j�ܘq #“Ò&øÜó +ä˜cŸi™i›kÓ*Ô*ð +úð  +ús0à DÄ E!ÄD5Ä2E!Ä5#EÅE!ÅEÅE!Ú__main__)r^rr)`r'ÚmathrrÀrrórrùrrrr¿rrÜr rúr rír rîr rìr r�rrÒrrrrrrÚosrr-Ú_collections_abcrrºÚoperatorrr�Ú itertoolsrr¼rrÑrr¾Ú_osÚ_randomÚ__all__rãrrr(r.ržrRrrÚ_instr+r(r/r.r'rr)r*r-rr$r#rr0rr rrr%r1r"r,r!r&rMrTÚhasattrÚregister_at_forkr»rKrmrWrvr#rFrhrDrAÚrƒsðñ.÷hMÕLßGÓGßEÑEß@Ñ@Ý"Ý2Ý$ßBÝ$ÛÛò €ð:‘D˜“J‘¡ s£Ñ+€ Ù ˆCƒy€Ø‘d˜3“i‘€ Ø€Ø �#�‰I€ Ø€Ø €ôJ ˆW�^‰^ôJ ôb"*�6ô"*ñX ‹€Ø ‡z�z€Ø �‰€Ø �-‰-€Ø × Ñ € Ø �-‰-€Ø �‰€Ø �O‰O€ Ø �‰€Ø �-‰-€Ø �-‰-€Ø×#Ñ#€ Ø×%Ñ%€Ø×Ñ€ Ø×'Ñ'€Ø×!Ñ!€ Ø � ‰ €Ø×Ñ€ Ø×'Ñ'€Ø×#Ñ#€ Ø×%Ñ%€Ø �>‰>€Ø �>‰>€Ø×Ñ€ Ø �O‰O€ ò Lô":ñ0 ˆ3�×ÑØ×Ò¨¯ © Ò3ð&˜$˜s™) dÑ*ô&ñ6$�4˜‘9˜tÑ#ð$¨s°S©yõ$ðN ˆzÓÙ ‰$‹&…MðrD