Caml1999I031  < .Stdlib__Random$init@#intA@@@$unitF@@@@@@*random.mliTT@@@@)full_init@%arrayH@@@@@@@@@@@@XX>@@3A@)self_init@,@@@0@@@@@@.[{{/[{@@FB@$bits@?@@@I@@@@@@AbBb@@YC@#int@X@@@\@@@@@@ThxxUhx@@lD@(full_int@k@@@o@@@@@@gm00hm0I@@E@%int32@&Stdlib%Int32!t@@@ %Int32!t@@@@@@x  x  8@@F@)nativeint@)Nativeint!t@@@#)Nativeint!t@@@@@@|  |  @@G@%int64@5%Int64!t@@@<%Int64!t@@@@@@@ ~ ~@ ~ @@H@%float@%floatD@@@@@@@@@D ( (D ( B@@I@$bool@@@@$boolE@@@@@@J  J  &@@J@&bits32@@@@|%Int32!t@@@@@@M u uM u @@ K@&bits64@@@@%Int64!t@@@@@@ R R3@@#L@*nativebits@@@@)Nativeint!t@@@@@@!W"W@@9M@Ӡ%State@!t8@@@A@@@@@0g1g@@@@HNA@$make@/K@@@@@@@@@@@@HjIj)@@`O@.make_self_init@Y@@@@@@@@@Zmnp[mn@@rP@$copy@!@@@$@@@@@@kqlq@@Q@$bits@2@@@@@@@@@}t.0~t.C@@R@#int@D@@@@@@@@@@@@@@@uDFuD_@@S@(full_int@\@@@@@@@@@@@@@@@v`bv`@@T@%int32@t@@@@K%Int32!t@@@R%Int32!t@@@@@@@@ww@@U@)nativeint@@@@@i)Nativeint!t@@@p)Nativeint!t@@@@@@@@xx@@V@%int64@@@@@%Int64!t@@@%Int64!t@@@@@@@@yy@@W@%float@@@@@W@@@[@@@@@@@@z z @@7X@$bool@@@@T@@@@@@1{!#2{!7@@IY@&bits32@@@@%Int32!t@@@@@@F|8:G|8S@@^Z@&bits64@ @@@%Int64!t@@@@@@[}TV\}To@@s[@*nativebits@"@@@)Nativeint!t@@@@@@p~prq~p@@\@@@tfu-0@]@@)get_state@@@@`!t@@@@@@333R@@^@)set_state@!t@@@@@@@@@@@_@@t\.Stdlib__Random0]-J<>Zj1Stdlib__Nativeint0E|*9PF-Stdlib__Int640&:P夣Wm-Stdlib__Int320eoq,hZs&Stdlib0>,W:(8CamlinternalFormatBasics0cEXy@@ @@@@@@@@@@@X @N 5 Same as {!Random.init} but takes more data as seed. Y??Y?y@@@@@@@A@@*)self_init [{[{@б@г9$unit[{[{@@ @@@0@Cb,@A@@гH$unit[{[{@@ @@@@@@@@@@@[{{ @ # Initialize the generator with a random seed chosen in a system-dependent way. If [/dev/urandom] is available on the host machine, it is used to provide a highly random initial seed. Otherwise, a less random seed is computed from system parameters (current time, process IDs). \`@@@@@@@B@@%$bits bb@б@гv$unitbb@@ @@@0@>S,@A@@г֠#int,b-b@@ @@@@@@@@@@@7b @Ȑ Return 30 random bits in a nonnegative integer. @before 3.12.0 used a different algorithm (affects all the following functions) CcDftv@@@@@@@[C@@%#intOhx|Phx@б@г#intZhx[hx@@ @@@0\[[\\\\\@>S,@A@@г#intihxjhx@@ @@@@@@@@@@@thxx @ [Random.int bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] must be greater than 0 and less than 2{^30}. ik.@@@@@@@D@@%(full_intm04m0<@б@гA#intm0?m0B@@ @@@0@>S,@A@@гP#intm0Fm0I@@ @@@@@@@@@@@m00 @B  [Random.full_int bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] may be any positive integer. If [bound] is less than 2{^30}, [Random.full_int bound] is equal to {!Random.int}[ bound]. If [bound] is greater than 2{^30} (on 64-bit systems or non-standard environments, such as JavaScript), [Random.full_int] returns a value, where {!Random.int} raises {!Invalid_argument}. @since 4.13.0 nJJv  @@@@@@@E@@%%int328x  x  #@б@г%Int32!tx  &x  -@@ @@@0@AV/@A@@г%Int32!tx  1x  8@@ @@@@@@@@@@@x   @ [Random.int32 bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] must be greater than 0. y 9 9z  @@@@@@@F@@()nativeintb |   |  @б@г)Nativeint!t|  |  @@ @@@0@D\/@A@@г)Nativeint!t,|  -|  @@ @@@ @@@@@ @@@7|   @Ȑ [Random.nativeint bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] must be greater than 0. C}  D~ ; |@@@@@@@[G@@(%int64O@ ~ P@ ~ @б@г%%Int64!t]@ ~ ^@ ~ @@ @@@ K0_^^_____@D\/@A@@г7%Int64!to@ ~ p@ ~ @@ @@@ L@@@@@ M@@@z@ ~ ~ @ [Random.int64 bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] must be greater than 0. A  B  &@@@@@@@H@@(%floatD ( ,D ( 1@б@гO%floatD ( 4D ( 9@@ @@@ N0@AY,@A@@г^%floatD ( =D ( B@@ @@@ O@@@@@ P@@@D ( ( @H [Random.float bound] returns a random floating-point number between 0 and [bound] (inclusive). If [bound] is negative, the result is negative or zero. If [bound] is 0, the result is 0. E C CH  @@@@@@@I@@%$boolJ  J  @б@г3$unitJ  J  @@ @@@ Q0@>S,@A@@г$boolJ  "J  &@@ @@@ R@@@@@ S@@@J   @ G [Random.bool ()] returns [true] or [false] with probability 0.5 each. K ' 'K ' s@@@@@@@J@@%&bits32 M u y M u @б@гp$unitM u M u @@ @@@ T0@>S,@A@@г%Int32!t)M u *M u @@ @@@ U@@@@@ V@@@4M u u @Ő ~ [Random.bits32 ()] returns 32 random bits as an integer between {!Int32.min_int} and {!Int32.max_int}. @since 4.14.0 @N  AP@@@@@@@XK@@(&bits64LRMR!@б@г$unitWR$XR(@@ @@@ W0YXXYYYYY@AV,@A@@г1%Int64!tiR,jR3@@ @@@ X@@@@@ Y@@@tR @ ~ [Random.bits64 ()] returns 64 random bits as an integer between {!Int64.min_int} and {!Int64.max_int}. @since 4.14.0 S44U@@@@@@@L@@(*nativebitsWW@б@г$unitWW@@ @@@ Z0@AV,@A@@гq)Nativeint!tWW@@ @@@ [@@@@@ \@@@W @E [Random.nativebits ()] returns 32 or 64 random bits (depending on the bit width of the platform) as an integer between {!Nativeint.min_int} and {!Nativeint.max_int}. @since 4.14.0 X[@@@@@@@M@@(֐8 {1 Advanced functions} ]]@@@@@@0@8M#@A琠  The functions from module {!State} manipulate the current state of the random generator explicitly. This allows using one or several deterministic PRNGs, even in a multi-threaded program, without interference from other parts of the program. _d@@@@@@%StateAff@@БA(!tBgg@@8@@@A@@@@@g@: The type of PRNG states.  h h @@@@@@@@@$N@@A@@0        @<@A@$makejj@б@г%array$j%j$@гؠ#int.j/j@@ @@@ ]00//00000@a=7@A@@@ @@@ _ @@гF!tBj(Cj)@@ @@@ `@@@@@ a@@@Mj @ސ ; Create a new state and initialize it with the given seed. Yk*,Zk*l@@@@@@@qO@@*.make_self_initemntfmn@б@гɠ$unitpmnqmn@@ @@@ b0rqqrrrrr@Cb,@A@@г!tmnmn@@ @@@ c@@@@@ d@@@mnp @ V Create a new state and initialize it with a system-dependent low-entropy seed. no@@@@@@@P@@%$copyqq@б@г!tqq@@ @@@ e0@>S,@A@@г!tqq@@ @@@ f@@@@@ g@@@q @X # Return a copy of the given state. rr,@@@@@@@Q@@%$bitst.4t.8@б@г!tt.;t.<@@ @@@ h0@>S,@A@@г#intt.@t.C@@ @@@ i@@@@@ j@@@t.0 @@R@ @@#intuDJuDM@б@г!tuDPuDQ@@ @@@ k0@1F@A@@б@гՠ#int+uDU,uDX@@ @@@ l@@г⠐#int8uD\9uD_@@ @@@ m@@@@@ n!@@@'@@ o$* @@@FuDF@@]S@@@*(full_intQv`fRv`n@б@г`!t\v`q]v`r@@ @@@ p0^]]^^^^^@CX@A@@б@г#intmv`vnv`y@@ @@@ q@@г$#intzv`}{v`@@ @@@ r@@@@@ s!@@@'@@ t$* @@@v`b@@T@@@*%int32ww@б@г!tww@@ @@@ u0@CX@A@@б@гz%Int32!tww@@ @@@ v@@г%Int32!tww@@ @@@ w$@@@@@ x'@@@-@@ y*0 @@@w@@U@@@0)nativeintxx@б@гꠐ!txx@@ @@@ z0@I^@A@@б@г)Nativeint!txx@@ @@@ {@@г)Nativeint!t x x@@ @@@ |$@@@@@ }'@@@-@@ ~*0 @@@x@@/V@@@0%int64#y$y@б@г2!t.y/y@@ @@@ 00//00000@I^@A@@б@г %Int64!tByCy@@ @@@ @@г%Int64!tRySy@@ @@@ $@@@@@ '@@@-@@ *0 @@@`y@@wW@@@0%floatkzlz @б@гz!tvz wz@@ @@@ 0xwwxxxxx@I^@A@@б@г9%floatzz@@ @@@ @@гF%floatzz @@ @@@ @@@@@ !@@@'@@ $* @@@z@@X@@@*$bool{!'{!+@б@г!t{!.{!/@@ @@@ 0@CX@A@@г$bool{!3{!7@@ @@@ @@@@@ @@@{!# @@Y@ @@&bits32|8>|8D@б@г점!t|8G|8H@@ @@@ 0@1F@A@@г%Int32!t|8L|8S@@ @@@ @@@@@ @@@|8: @@Z@ @@&bits64}TZ}T`@б@г!t}Tc}Td@@ @@@ 0@4I@A@@г%Int64!t-}Th.}To@@ @@@ @@@@@ @@@8}TV @@O[@ @@*nativebitsC~pvD~p@б@гR!tN~pO~p@@ @@@ 0POOPPPPP@4I@A@@г()Nativeint!t`~pa~p@@ @@@ @@@@@ @@@k~pr @ These functions are the same as the basic functions, except that they use (and update) the given PRNG state instead of the default one. wx(,@@@@@@@\@@(@A@j4@ @@@|C@<@@w@p1@*@@@a@Z0@@0@G\2@A!ɰf-0@@@f@ΰ@)get_state373@@б@г$unit3C3G@@ @@@ 0@@A@w@c<@(@@@F@?@@t@m4@-@@@s@@@=]@A)(@@г!t%State3K3R@@ @@@ 3@@@9@@ 6<@@@33 @ H Return the current state of the generator used by the basic functions. SS S@@@@@@@ ^@@I)set_state  @б@г*!t%State  @@ @@@ 0        @ez/@A@@г$unit ( )@@ @@@ @@@@@ @@@ 3 @Đ = Set the state of the generator used by the basic functions.  ? @@@@@@@@ W_@@%@@@xQ@=@@@_@K@ @@g@S)@@@x@@@@s@_5@@0 c b b c c c c c@Ia7@A@ H************************************************************************ lA@@ mA@L@ H  rBMM sBM@ H OCaml  xC yC@ H  ~D D3@ H Damien Doligez, projet Para, INRIA Rocquencourt  E44 E4@ H  F F@ H Copyright 1996 Institut National de Recherche en Informatique et  G G@ H en Automatique.  H Hg@ H  Ihh Ih@ H All rights reserved. This file is distributed under the terms of  J J@ H the GNU Lesser General Public License version 2.1, with the  K KN@ H special exception on linking described in the file LICENSE.  LOO LO@ H  M M@ H************************************************************************ N N5@ ** Pseudo-random number generators (PRNG).  6* {1 Basic functions}  }* Initialize the generator, using the argument as a seed. The same seed will always yield the same sequence of numbers. I 6* Same as {!Random.init} but takes more data as seed.  $* Initialize the generator with a random seed chosen in a system-dependent way. If [/dev/urandom] is available on the host machine, it is used to provide a highly random initial seed. Otherwise, a less random seed is computed from system parameters (current time, process IDs). Ơ * Return 30 random bits in a nonnegative integer. @before 3.12.0 used a different algorithm (affects all the following functions)  * [Random.int bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] must be greater than 0 and less than 2{^30}. R * [Random.full_int bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] may be any positive integer. If [bound] is less than 2{^30}, [Random.full_int bound] is equal to {!Random.int}[ bound]. If [bound] is greater than 2{^30} (on 64-bit systems or non-standard environments, such as JavaScript), [Random.full_int] returns a value, where {!Random.int} raises {!Invalid_argument}. @since 4.13.0  * [Random.int32 bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] must be greater than 0. ؠ * [Random.nativeint bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] must be greater than 0.  * [Random.int64 bound] returns a random integer between 0 (inclusive) and [bound] (exclusive). [bound] must be greater than 0. X * [Random.float bound] returns a random floating-point number between 0 and [bound] (inclusive). If [bound] is negative, the result is negative or zero. If [bound] is 0, the result is 0.  H* [Random.bool ()] returns [true] or [false] with probability 0.5 each. 䠠 * [Random.bits32 ()] returns 32 random bits as an integer between {!Int32.min_int} and {!Int32.max_int}. @since 4.14.0  * [Random.bits64 ()] returns 64 random bits as an integer between {!Int64.min_int} and {!Int64.max_int}. @since 4.14.0 j * [Random.nativebits ()] returns 32 or 64 random bits (depending on the bit width of the platform) as an integer between {!Nativeint.min_int} and {!Nativeint.max_int}. @since 4.14.0 -9* {1 Advanced functions}  * The functions from module {!State} manipulate the current state of the random generator explicitly. This allows using one or several deterministic PRNGs, even in a multi-threaded program, without interference from other parts of the program. ;* The type of PRNG states. ꠠ <* Create a new state and initialize it with the given seed.  W* Create a new state and initialize it with a system-dependent low-entropy seed. f $* Return a copy of the given state. , * These functions are the same as the basic functions, except that they use (and update) the given PRNG state instead of the default one.  I* Return the current state of the generator used by the basic functions.  >* Set the state of the generator used by the basic functions. @D)../ocamlc0-strict-sequence(-absname"-w8+a-4-9-41-42-44-45-48-70"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal,-safe-string/-strict-formats"-o2stdlib__Random.cmi"-c   1/home/barsac/ci/builds/workspace/bootstrap/stdlib @0Yt$F5 NCP0        @ @@8CamlinternalFormatBasics0cEXy,W:(-Stdlib__Int320eoq,hZs-Stdlib__Int640&:P夣Wm1Stdlib__Nativeint0E|*9PF O0]-J<>Zj@0]-J<>ZjA`@@@?@@*)?>@srrq@ΰxw@@LK@@@HWPO@@@SR@ڰ@]\@@P@