Caml1999I037   ؠ+Stdlib__Int!t1;@@@A#intA@@@@@@@'int.mliZ))Z)5@@A@@@A@$zero2@@@@][[][i@@ A@@#one3@@@@``@@-B@@)minus_one4*@@@@(c)c@@:C@@#neg5@9@@@=@@@@@'%negintAA @@@@fAf@@RD@@#add6@Q@@@@W@@@[@@@@@@@'%addintBA@@@@^i::_i:f@@pE@@#sub7@o@@@@u@@@y@@@@@@@'%subintBA<@@@@|l}l@@F@@#mul8@@@@@@@@@@@@@@@'%mulintBAZ@@@@oo@@G@@#div9@@@@@@@@@@@@@@@'%divintBAx@@@@rKKrKw@@H@@#rem:@@@@@@@@@@@@@@@'%modintBA@@@@uu@@I@@$succ;@@@@@@@@@(%succintAA@@@xBBxBi@@J@@$pred<@@@@@@@@@(%predintAAŠ@@@{{@@K@@#abs=@@@@@@@@@@~~@@)L@@'max_int>&@@@@$C  %C  @@6M@@'min_int?3@@@@1G  2G  @@CN@@&logand@@B@@@@H@@@L@@@@@@@'%andintBA@@@@OK r rPK r @@aO@@%logorA@`@@@@f@@@j@@@@@@@&%orintBA-@@@@mN  nN  @@P@@&logxorB@~@@@@@@@@@@@@@@ǐ'%xorintBAK@@@@Q N NQ N }@@Q@@&lognotC@@@@@@@@@@T  T  @@R@@*shift_leftD@@@@@@@@@@@@@@@ϐ'%lslintBA|@@@@W  W  M@@S@@+shift_rightE@@@@@@@@@@@@@@@Ԑ'%asrintBA@@@@[  [  @@T@@3shift_right_logicalF@@@@@@@@@@@@@@@ِ'%lsrintBA@@@@a  a *@@ U@@%equalG@ @@@@@@@$boolE@@@@@@@@iBBiB`@@%V@@'compareH@$@@@@*@@@.@@@@@@@@,l-l@@>W@@#minI@=@@@@C@@@G@@@@@@@@EoFo@@WX@@#maxJ@V@@@@\@@@`@@@@@@@@^tYY_tYt@@pY@@(to_floatK@o@@@%floatD@@@@@+%floatofintAA8@@@w{x{@@Z@@(of_floatL@@@@@@@@@+%intoffloatAAO@@@~??~?o@@[@@)to_stringM@@@@&stringQ@@@@@@@@\@@+seeded_hashN@@@@@@@@@@@@@@@@CCCf@@]@@$hashO@@@@@@@@@@>>>S@@^@@@i9.+Stdlib__Int0̵#&*ȇO7&Stdlib0Lku]8_٠8CamlinternalFormatBasics0%FU(Q/Tu@@@Caml1999T037^ L:`6C+Stdlib__Int*ocaml.text&_none_@@A Integer values. Integers are {!Sys.int_size} bits wide and use two's complement representation. All operations are taken modulo 2{^[Sys.int_size]}. They do not fail on overflow. @since 4.08 'int.mliP77V @@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@ @@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@A3 {1:ints Integers} XX'@@@@@@A+!tAZ).Z)/@@;@@@A@@@@@@@Z))Z)5@)ocaml.docɐ> The type for integer values. [66[6Y@@@@@@@A@@@@@Aг#intZ)2@@ 3@+;@@@A3@@@@@@@@'$@@@A &@@(%퐠$#@##@@@#@#@@32@$zero][_][c@г͠#int][f][i@@ @@@3@YS@A@@@][[ @M< [zero] is the integer [0]. ^jj^j@@@@@@@*A@@@]%@@@@@@!#one(`)`@г#int1`2`@@ @@@332233333@8K6@A@@@;` @; [one] is the integer [1]. HaIa@@@@@@@aB@@@\@@@@@@!)minus_one_c`c@г;#inthcic@@ @@@3jiijjjjj@8K6@A@@@rc @ " [minus_one] is the integer [-1]. dd@@@@@@@C@@@@@@@@@!#negff@б@гt#intf f @@ @@@3@:M8@A@@г#intff@@ @@@@@@@@@@'%negintAA @@@ff@ 3 [neg x] is [~-x]. g  g 8@@@@@@@D@@@㐠@@@@@@8#addi:Ci:F@б@гĠ#inti:Ii:L@@ @@@3@Qf?@A@@б@гՠ#inti:Pi:S@@ @@@@@г⠐#inti:Wi:Z@@ @@@@@@@@!@@@'@@$* @@'%addintBAb@@@@"i::#i:f@l $ [add x y] is the addition [x + y]. 0jgg1jg@@@@@@@IE@@@}E@@@@@@J#subHlIl@б@г&#intSlTl@@ @@@3UTTUUUUU@cx?@A@@б@г7#intdlel@@ @@@@@гD#intqlrl@@ @@@@@@@@!@@@'@@$* @@'%subintBAĠ@@@@ll@ΐ ' [sub x y] is the subtraction [x - y]. mm@@@@@@@F@@@@@@@@@J#muloo@б@г#intoo@@ @@@3@cx?@A@@б@г#intoo@@ @@@@@г#into o @@ @@@@@@@@!@@@'@@$* @@'%mulintBA&@@@@oo@0 * [mul x y] is the multiplication [x * y]. ppI@@@@@@@ G@@@A @@@@@@J#div rKT rKW@б@гꠐ#intrKZrK]@@ @@@3@cx?@A@@б@г#int(rKa)rKd@@ @@@@@г#int5rKh6rKk@@ @@@@@@@@!@@@'@@$* @@'%divintBA@@@@HrKKIrKw@ E [div x y] is the division [x / y]. See {!Stdlib.( / )} for details. VsxxWsx@@@@@@@oH@@@k@@@@@@J#remnuou@б@гL#intyuzu@@ @@@3{zz{{{{{@cx?@A@@б@г]#intuu@@ @@@@@гj#intuu@@ @@@@@@@@!@@@'@@$* @@'%modintBA@@@@uu@ J [rem x y] is the remainder [x mod y]. See {!Stdlib.( mod )} for details. vv@@@@@@@@I@@@͐@@@@@@J$succxBKxBO@б@г#intxBRxBU@@ @@@3@cx?@A@@г#intxBYxB\@@ @@@@@@@@@@(%succintAA:@@@xBBxBi@C8 [succ x] is [add x 1]. yjjyj@@@@@@@ J@@@T@@@@@@7$pred{ {@б@г#int*{+{@@ @@@3,++,,,,,@Pe>@A@@г #int9{:{@@ @@@@@@@@@@(%predintAA@@@H{I{@8 [pred x] is [sub x 1]. V|W|@@@@@@@oK@@@k@@@@@@7#absn~o~@б@гL#inty~z~@@ @@@3{zz{{{{{@Pe>@A@@г[#int~~@@ @@@@@@@@@@@~ @ܐ [abs x] is the absolute value of [x]. That is [x] if [x] is positive and [neg x] if [x] is negative. {b Warning.} This may be negative if the argument is {!min_int}. A w @@@@@@@L@@@@@@@@@1'max_intC  C  @г#intC  C  @@ @@@3@H]6@A@@@C   @ T [max_int] is the greatest representable integer, [2]{^[Sys.int_size - 1]}[-1]. D  E  @@@@@@@M@@@#될@@@@@@!'min_int G  G  @гʠ#intG  G  @@ @@@3@8K6@A@@@G   @J Q [min_int] is the smallest representable integer, [-2]{^[Sys.int_size - 1]}. H  I O p@@@@@@@'N@@@Z"@@@@@@!&logand!%K r {&K r @б@г#int0K r 1K r @@ @@@321122222@:M8@A@@б@г#intAK r BK r @@ @@@@@г!#intNK r OK r @@ @@@@@@@@!@@@'@@$* @@'%andintBA@@@@aK r rbK r @ 9 [logand x y] is the bitwise logical and of [x] and [y]. oL  pL  @@@@@@@O@@@@@@@@@J%logor"N  N  @б@гe#intN  N  @@ @@@3@cx?@A@@б@гv#intN  N  @@ @@@@@г#intN  N  @@ @@@@@@@@!@@@'@@$* @@&%orintBA@@@@N  N  @ 7 [logor x y] is the bitwise logical or of [x] and [y]. O  O  L@@@@@@@P@@@搠@@@@@@J&logxor#Q N WQ N ]@б@гǠ#intQ N `Q N c@@ @@@3@cx?@A@@б@гؠ#intQ N gQ N j@@ @@@@@г堐#intQ N nQ N q@@ @@@@@@@@!@@@'@@$* @@'%xorintBAe@@@@%Q N N&Q N }@o B [logxor x y] is the bitwise logical exclusive or of [x] and [y]. 3R ~ ~4R ~ @@@@@@@LQ@@@H@@@@@@J&lognot$KT  LT  @б@г)#intVT  WT  @@ @@@3XWWXXXXX@cx?@A@@г8#inteT  fT  @@ @@@@@@@@@@@pT   @ 4 [lognot x] is the bitwise logical negation of [x]. }U  ~U  @@@@@@@R@@@@@@@@@1*shift_left%W  #W  -@б@гr#intW  0W  3@@ @@@3@J_8@A@@б@г#intW  7W  :@@ @@@@@г#intW  >W  A@@ @@@@@@@@!@@@'@@$* @@'%lslintBA@@@@W  W  M@ y [shift_left x n] shifts [x] to the left by [n] bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. X N NY  @@@@@@@S@@@+󐠠@@@@@@J+shift_right&[  [  @б@гԠ#int[  [  @@ @@@3@cx?@A@@б@г堐#int[  [  @@ @@@@@г#int[   [  @@ @@@@@@@@!@@@'@@$* @@'%asrintBAr@@@@2[  3[  @| [shift_right x n] shifts [x] to the right by [n] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. @\  A_  @@@@@@@YT@@@U@@@@@@J3shift_right_logical'Xa  Ya  @б@г6#intca  da @@ @@@3eddeeeee@cx?@A@@б@гG#intta ua @@ @@@@@гT#inta a @@ @@@@@@@@!@@@'@@$* @@'%lsrintBAԠ@@@@a  a *@ސ [shift_right x n] shifts [x] to the right by [n] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. b++e@@@@@@@U@@@@@@@@@JĐ & {1:preds Predicates and comparisons} gg@@@@@@@3@\q8@A%equal(iBFiBK@б@г#intiBNiBQ@@ @@@@@б@г#intiBUiBX@@ @@@)@@г$booliB\iB`@@ @@@6@@@@@9@@@%@@<( @@@ iBB@K / [equal x y] is [true] if and only if [x = y].  jaa ja@@@@@@@ (V@@@[ #@@@@@@['compare) &l 'l@б@г #int 1l 2l@@ @@@3 3 2 2 3 3 3 3 3@to8@A@@б@г #int Bl Cl@@ @@@@@г "#int Ol Pl@@ @@@@@@@@!@@@'@@$* @@@ ]l@ > [compare x y] is {!Stdlib.compare}[ x y] but more efficient.  jm km@@@@@@@ W@@@ ~@@@@@@C#min* o o@б@г _#int o o @@ @@@3        @\q8@A@@б@г p#int o  o@@ @@@@@г }#int o o@@ @@@@@@@@!@@@'@@$* @@@ o@ : Return the smaller of the two arguments. @since 4.13  p rUW@@@@@@@ X@@@ ِ@@@@@@C#max+ tY] tY`@б@г #int tYc tYf@@ @@@3        @\q8@A@@б@г ˠ#int tYj tYm@@ @@@@@г ؠ#int tYq tYt@@ @@@@@@@@!@@@'@@$* @@@ tYY@\ ; Return the greater of the two arguments. @since 4.13  uuu !w@@@@@@@ 9Y@@@l 4@@@@@@C B A8 {1:convert Converting}  >y ?y@@@@@@3 = < < = = = = =@Uj1@A(to_float, J{ K{@б@г (#int U{ V{@@ @@@@@г %float b{ c{@@ @@@'@@@@@*@@+%floatofintAA@@@ q{ r{@ 1 [to_float x] is [x] as a floating point number.  | |=@@@@@@@ Z@@@ @@@@@@O(of_float- ~?H ~?P@б@г ]%float ~?S ~?X@@ @@@ 3        @hc>@A@@г #int ~?\ ~?_@@ @@@ @@@@@ @@+%intoffloatAA@@@ ~?? ~?o@ [of_float x] truncates [x] to an integer. The result is unspecified if the argument is [nan] or falls outside the range of representable integers.  pp @@@@@@@ [@@@  㐠@@@@@@7)to_string.  @б@г Ġ#int  @@ @@@ 3        @Pe>@A@@г Ǡ&string  @@ @@@ @@@@@@@@  @ T @ [to_string x] is the written representation of [x] in decimal.   A@@@@@@@ 1\@@@ d ,@@@@@@1+seeded_hash/ /CG 0CR@б@г #int :CU ;CX@@ @@@3 < ; ; < < < < <@J_8@A@@б@г #int KC\ LC_@@ @@@@@г +#int XCc YCf@@ @@@@@@@@!@@@'@@$* @@@ fCC@ A seeded hash function for ints, with the same output value as {!Hashtbl.seeded_hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.MakeSeeded}. @since 5.1  sgg t+<@@@@@@@ ]@@@  @@@@@@C$hash0 >B >F@б@г h#int >I >L@@ @@@3        @\q8@A@@г w#int >P >S@@ @@@@@@@@@@@ >> @ An unseeded hash function for ints, with the same output value as {!Hashtbl.hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.Make}. @since 5.1  TT @@@@@@@ ^@@@  А@@@@@@1@ % A@  @  @ x c@ C @@\@5@@u<@@@{T@4@@@j1@ @@c*@@j@0@@G@'@@pI@#@@\@@3        @p^@A@ H************************************************************************ A@@ A@L@ H  BMM BM@ H OCaml  C C@ H  !D "D3@ H The OCaml programmers  'E44 (E4@ H  -F .F@ H Copyright 2018 Institut National de Recherche en Informatique et  3G 4G@ H en Automatique.  9H :Hg@ H  ?Ihh @Ih@ H All rights reserved. This file is distributed under the terms of  EJ FJ@ H the GNU Lesser General Public License version 2.1, with the  KK LKN@ H special exception on linking described in the file LICENSE.  QLOO RLO@ H  WM XM@ H************************************************************************ ]N ^N5@ * Integer values. Integers are {!Sys.int_size} bits wide and use two's complement representation. All operations are taken modulo 2{^[Sys.int_size]}. They do not fail on overflow. @since 4.08  c4* {1:ints Integers}  Š?* The type for integer values.  =* [zero] is the integer [0].  [<* [one] is the integer [1].  ' #* [minus_one] is the integer [-1].  4* [neg x] is [~-x].  %* [add x y] is the addition [x + y].  H (* [sub x y] is the subtraction [x - y]. 頠 +* [mul x y] is the multiplication [x * y].  F* [div x y] is the division [x / y]. See {!Stdlib.( / )} for details. + K* [rem x y] is the remainder [x mod y]. See {!Stdlib.( mod )} for details. ̠9* [succ x] is [add x 1]. 9* [pred x] is [sub x 1]. 4 * [abs x] is the absolute value of [x]. That is [x] if [x] is positive and [neg x] if [x] is negative. {b Warning.} This may be negative if the argument is {!min_int}.  U* [max_int] is the greatest representable integer, [2]{^[Sys.int_size - 1]}[-1].  R* [min_int] is the smallest representable integer, [-2]{^[Sys.int_size - 1]}.  :* [logand x y] is the bitwise logical and of [x] and [y]. ' 8* [logor x y] is the bitwise logical or of [x] and [y]. Ƞ C* [logxor x y] is the bitwise logical exclusive or of [x] and [y]. i 5* [lognot x] is the bitwise logical negation of [x]. " z* [shift_left x n] shifts [x] to the left by [n] bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. Ġ * [shift_right x n] shifts [x] to the right by [n] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. e * [shift_right x n] shifts [x] to the right by [n] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}.  '* {1:preds Predicates and comparisons} ꠠ 0* [equal x y] is [true] if and only if [x = y].  ?* [compare x y] is {!Stdlib.compare}[ x y] but more efficient. G ;* Return the smaller of the two arguments. @since 4.13  <* Return the greater of the two arguments. @since 4.13 9* {1:convert Converting} | 2* [to_float x] is [x] as a floating point number. > * [of_float x] truncates [x] to an integer. The result is unspecified if the argument is [nan] or falls outside the range of representable integers.   val of_string : string -> int option (** [of_string s] is [Some s] if [s] can be parsed to an integer in the range representable by the type [int] (note that this depends on {!Sys.int_size}) and [None] otherwise. The string may start with an optional ['-'] or ['+'] sign, and may be followed by an optional prefix that specifies the base in which the number is expressed. If there is not prefix or if the prefix is [0u] or [0U] it is expressed in decimal. If the prefix is [0x] or [0X] it is expressed in hexadecimal. If the prefix is [0o] or [0O] it is expressed in octal. If the prefix is [0b] or [0B] it is expressed in binary. When the [0u] or [0U] prefix is used, the represented number may exceed {!max_int} or {!min_int} in which case it wraps around modulo 2{^[Sys.int_size]} like arithmetic operations do. The ['_'] (underscore) character can appear anywhere between two digits of the number. *)   @ A* [to_string x] is the written representation of [x] in decimal.  * A seeded hash function for ints, with the same output value as {!Hashtbl.seeded_hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.MakeSeeded}. @since 5.1 Y * An unseeded hash function for ints, with the same output value as {!Hashtbl.hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.Make}. @since 5.1 @?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o/stdlib__Int.cmi"-c ܐ [/home/teraram/ci/builds/workspace/parallel-build/flambda/false/label/ocaml-manycores/stdlib @@0hF:"a93        @ @@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠ 0̵#&*ȇO7@0̵#&*ȇO7A_C:t ʐ @7@@6H@   f D f@>}̰p  )@ ΐ @D@K  @[@Ұ   X @@:L@@W@RQ@@P@@